Mã hoá và giải mã dữ liệu

Hướng dẫn này mô tả cách hoạt động của tính năng mã hoá và giải mã bằng API Mã hoá phía máy khách của Google Workspace.

Bạn phải đưa mọi dịch vụ của Nhà cung cấp danh tính (IdP) vào danh sách cho phép mà người dùng sử dụng để chia sẻ tệp đã mã hoá. Thường thì bạn có thể tìm thấy thông tin bắt buộc của nhà cung cấp danh tính trong tệp .well-known công khai của họ. Nếu không, hãy liên hệ với quản trị viên Google Workspace của tổ chức để biết thông tin chi tiết về IdP của họ.

Mã hoá dữ liệu

Khi người dùng Google Workspace yêu cầu lưu hoặc lưu trữ dữ liệu đã mã hoá phía máy khách (CSE), Google Workspace sẽ gửi yêu cầu wrap đến URL điểm cuối KACLS để mã hoá. Ngoài các bước kiểm tra bảo mật không bắt buộc, chẳng hạn như kiểm tra dựa trên xác nhận quyền sở hữu và ngoại vi và JWT, KACLS của bạn phải thực hiện các bước sau:

  1. Xác thực người dùng yêu cầu.

    • Xác thực cả mã thông báo xác thựcmã thông báo uỷ quyền.
    • Kiểm tra để đảm bảo rằng mã thông báo uỷ quyền và mã xác thực dành cho cùng một người dùng bằng cách thực hiện kiểu khớp không phân biệt chữ hoa chữ thường trên các thông báo xác nhận quyền sở hữu qua email.
    • Khi mã thông báo xác thực chứa thông báo xác nhận quyền sở hữu google_email không bắt buộc, bạn phải so sánh thông báo này với thông báo xác nhận quyền sở hữu qua email trong mã thông báo uỷ quyền bằng phương pháp không phân biệt chữ hoa chữ thường. Đừng sử dụng thông báo xác nhận quyền sở hữu qua email trong mã thông báo xác thực để so sánh này.
    • Trong các trường hợp mã thông báo xác thực thiếu thông báo xác nhận quyền sở hữu google_email (không bắt buộc), thông báo xác nhận quyền sở hữu email trong mã thông báo xác thực phải được so sánh với thông báo xác nhận quyền sở hữu email trong mã thông báo uỷ quyền, bằng cách sử dụng một phương thức không phân biệt chữ hoa chữ thường.
    • Trong các trường hợp Google cấp mã uỷ quyền cho một email không liên kết với Tài khoản Google, thì bạn phải có thông báo xác nhận quyền sở hữu email_type. Điều này đóng vai trò quan trọng trong tính năng Quyền truy cập của chế độ khách, cung cấp thông tin có giá trị để KACLS thực thi các biện pháp bảo mật bổ sung đối với người dùng bên ngoài.
      • Một số ví dụ về cách KACLS có thể sử dụng thông tin này:
      • Để áp dụng các yêu cầu ghi nhật ký bổ sung.
      • Để chỉ cấp phép nhà phát hành mã xác thực cho một IdP khách chuyên biệt.
      • Để yêu cầu xác nhận thêm quyền sở hữu đối với mã thông báo xác thực.
      • Nếu khách hàng chưa định cấu hình Quyền truy cập của khách, thì mọi yêu cầu có đặt email_type thành google-visitor hoặc customer-idp đều có thể bị từ chối. Các yêu cầu có email_typegoogle hoặc có email_type chưa được đặt sẽ tiếp tục được chấp nhận.
    • Kiểm tra để đảm bảo thông báo xác nhận quyền sở hữu role trong mã thông báo uỷ quyền là "nhà ghi" hay "trình nâng cấp".
    • Kiểm tra để đảm bảo thông báo xác nhận quyền sở hữu kacls_url trong mã thông báo uỷ quyền khớp với URL KACLS hiện tại. Bước kiểm tra này giúp phát hiện các máy chủ trung gian tiềm năng do người trong cuộc hoặc quản trị viên miền giả mạo định cấu hình.
    • Kiểm tra phạm vi bằng cả thông báo xác thực và thông báo uỷ quyền.
  2. Mã hoá các phần sau bằng thuật toán mã hoá đã xác thực:

    • Khoá mã hoá dữ liệu (DEK)
    • Các giá trị resource_nameperimeter_id từ mã thông báo uỷ quyền
    • Mọi dữ liệu nhạy cảm khác
  3. Ghi nhật ký hoạt động, bao gồm cả người dùng bắt đầu hoạt động, resource_name và lý do được chuyển trong yêu cầu.

  4. Trả về một đối tượng nhị phân mờ để Google Workspace lưu trữ cùng với đối tượng đã mã hoá và được gửi nguyên trạng trong mọi thao tác khám phá khoá tiếp theo. Hoặc phân phát phản hồi lỗi có cấu trúc.

    • Đối tượng nhị phân phải chứa bản sao duy nhất của DEK đã mã hoá, dữ liệu cụ thể về việc triển khai có thể được lưu trữ trong đó.

Giải mã dữ liệu

Khi người dùng Google Workspace yêu cầu mở dữ liệu đã mã hoá phía máy khách (CSE), Google Workspace sẽ gửi một yêu cầu unwrap đến URL điểm cuối KACLS để giải mã. Ngoài các bước kiểm tra bảo mật không bắt buộc, chẳng hạn như kiểm tra dựa trên phạm vi và JWT, KACLS của bạn phải thực hiện các bước sau:

  1. Xác thực người dùng yêu cầu.

    • Xác thực cả mã thông báo xác thựcmã thông báo uỷ quyền.
    • Kiểm tra để đảm bảo rằng mã thông báo uỷ quyền và mã xác thực dành cho cùng một người dùng bằng cách thực hiện kiểu khớp không phân biệt chữ hoa chữ thường trên các thông báo xác nhận quyền sở hữu qua email.
    • Khi mã thông báo xác thực chứa thông báo xác nhận quyền sở hữu google_email không bắt buộc, bạn phải so sánh thông báo này với thông báo xác nhận quyền sở hữu qua email trong mã thông báo uỷ quyền bằng phương pháp không phân biệt chữ hoa chữ thường. Đừng sử dụng thông báo xác nhận quyền sở hữu qua email trong mã thông báo xác thực để so sánh này.
    • Trong các trường hợp mã thông báo xác thực thiếu thông báo xác nhận quyền sở hữu google_email (không bắt buộc), thông báo xác nhận quyền sở hữu email trong mã thông báo xác thực phải được so sánh với thông báo xác nhận quyền sở hữu email trong mã thông báo uỷ quyền, bằng cách sử dụng một phương thức không phân biệt chữ hoa chữ thường.
    • Trong các trường hợp Google cấp mã uỷ quyền cho một email không liên kết với Tài khoản Google, thì bạn phải có thông báo xác nhận quyền sở hữu email_type. Điều này đóng vai trò quan trọng trong tính năng Quyền truy cập của chế độ khách, cung cấp thông tin có giá trị để KACLS thực thi các biện pháp bảo mật bổ sung đối với người dùng bên ngoài.
      • Một số ví dụ về cách KACLS có thể sử dụng thông tin này:
      • Để áp dụng các yêu cầu ghi nhật ký bổ sung.
      • Để chỉ cấp phép nhà phát hành mã xác thực cho một IdP khách chuyên biệt.
      • Để yêu cầu xác nhận thêm quyền sở hữu đối với mã thông báo xác thực.
      • Nếu khách hàng chưa định cấu hình Quyền truy cập của khách, thì mọi yêu cầu có đặt email_type thành google-visitor hoặc customer-idp đều có thể bị từ chối. Các yêu cầu có email_typegoogle hoặc có email_type chưa được đặt sẽ tiếp tục được chấp nhận.
    • Kiểm tra để đảm bảo rằng thông báo xác nhận quyền sở hữu role trong mã thông báo uỷ quyền là "độc giả" hoặc "nhà văn".
    • Kiểm tra để đảm bảo thông báo xác nhận quyền sở hữu kacls_url trong mã thông báo uỷ quyền khớp với URL KACLS hiện tại. Điều này cho phép phát hiện các máy chủ trung gian tiềm năng do người trong cuộc hoặc quản trị viên miền giả mạo định cấu hình.
  2. Giải mã các phần sau bằng thuật toán mã hoá đã xác thực:

    • Khoá mã hoá dữ liệu (DEK)
    • Các giá trị resource_nameperimeter_id từ mã thông báo uỷ quyền
    • Mọi dữ liệu nhạy cảm khác
  3. Kiểm tra để đảm bảo resource_name trong mã thông báo uỷ quyền và blob đã giải mã khớp với nhau.

  4. Kiểm tra phạm vi bằng cả xác nhận quyền sở hữu và uỷ quyền.

  5. Ghi nhật ký hoạt động, bao gồm cả người dùng bắt đầu hoạt động, resource_name và lý do được chuyển trong yêu cầu.

  6. Trả về DEK chưa được bao bọc hoặc câu trả lời lỗi có cấu trúc.