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ụ Nhà cung cấp danh tính (IdP) mà người dùng sử dụng vào danh sách cho phép đang chia sẻ tệp đã mã hoá. Thường thì bạn có thể tìm thấy các thông tin chi tiết cần thiết cho nhà cung cấp danh tính (IdP) trong tệp .well-known sẵn có công khai; nếu không, hãy liên hệ Quản trị viên Google Workspace để xem thông tin chi tiết về IdP của họ.

Mã hoá dữ liệu

Khi một người dùng Google Workspace yêu cầu lưu hoặc lưu trữ tệp đã mã hoá phía máy khách (CSE), Google Workspace gửi một wrap yêu cầu URL điểm cuối KACLS của bạn để mã hoá. Ngoài thông tin không bắt buộc các quy trình kiểm tra bảo mật (chẳng hạn như kiểm tra theo phạm vi và kiểm tra dựa trên tuyên bố 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 mã thông báo uỷ quyền và xác thực là của cùng một người dùng bằng cách thực hiện một kiểu khớp không phân biệt chữ hoa chữ thường trên các khiếu nại 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 tin đó 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 phương pháp không phân biệt chữ hoa chữ thường. Không sử dụng xác nhận quyền sở hữu qua email trong mã xác thực cho phép so sánh này.
    • Trong các trường hợp mã thông báo xác thực thiếu tuỳ chọn google_email xác nhận quyền sở hữu, email xác nhận quyền sở hữu 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 phương thức không phân biệt chữ hoa chữ thường.
    • Trong các trường hợp mà Google cấp mã thông báo uỷ quyền cho một email không được liên kết với Tài khoản Google thì thông báo xác nhận quyền sở hữu email_type phải có. Điều này tạo nên một phần quan trọng của tính năng Quyền truy cập của khách, mang lại thông tin về KACLS để thực thi các biện pháp bảo mật bổ sung trên người dùng.
      • Sau đây là một số ví dụ về cách một KACLS có thể sử dụng thông tin này:
      • Để áp dụng thêm các yêu cầu ghi nhật ký.
      • Để chỉ cho phép nhà phát hành mã xác thực của một nhà cung cấp danh tính (IdP) khách chuyên biệt.
      • Để yêu cầu xác nhận thêm về 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ì tất cả các yêu cầu trong đó email_type được đặt thành google-visitor hoặc customer-idp có thể được đặt bị từ chối. Yêu cầu có email_typegoogle hoặc chưa đặt email_type cần 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à "writer" hoặc "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 của KACLS hiện tại. Bước kiểm tra này cho phép phát hiện máy chủ trung gian do người trong cuộc định cấu hình hoặc miền lừa đảo Google Workspace.
    • Thực hiện kiểm tra ngoại vi bằng cả phương thức xác thực và uỷ quyền xác nhận quyền sở hữu.
  2. Mã hoá các phần sau đây 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 trong mã thông báo uỷ quyền
    • Mọi dữ liệu nhạy cảm khác
  3. Ghi lại hoạt động, bao gồm cả người dùng thực hiện hành động, resource_name và lý do được chuyển vào yêu cầu.

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

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

Giải mã dữ liệu

Khi một người dùng Google Workspace yêu cầu mở dữ liệu được mã hoá phía máy khách (CSE), Google Workspace gửi yêu cầu unwrap vào URL điểm cuối KACLS để giải mã. Ngoài biện pháp bảo mật bổ sung Các quy trình kiểm tra (chẳng hạn như kiểm tra theo phạm vi và kiểm tra dựa trên tuyên bố 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 mã thông báo uỷ quyền và xác thực là của cùng một người dùng bằng cách thực hiện một kiểu khớp không phân biệt chữ hoa chữ thường trên các khiếu nại 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 tin đó 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 phương pháp không phân biệt chữ hoa chữ thường. Không sử dụng xác nhận quyền sở hữu qua email trong mã xác thực cho phép so sánh này.
    • Trong các trường hợp mã thông báo xác thực thiếu tuỳ chọn google_email xác nhận quyền sở hữu, email xác nhận quyền sở hữu 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 phương thức không phân biệt chữ hoa chữ thường.
    • Trong các trường hợp mà Google cấp mã thông báo uỷ quyền cho một email không được liên kết với Tài khoản Google thì thông báo xác nhận quyền sở hữu email_type phải có. Điều này tạo nên một phần quan trọng của tính năng Quyền truy cập của khách, mang lại thông tin về KACLS để thực thi các biện pháp bảo mật bổ sung trên người dùng.
      • Sau đây là một số ví dụ về cách một KACLS có thể sử dụng thông tin này:
      • Để áp dụng thêm các yêu cầu ghi nhật ký.
      • Để chỉ cho phép nhà phát hành mã xác thực của một nhà cung cấp danh tính (IdP) khách chuyên biệt.
      • Để yêu cầu xác nhận thêm về 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ì tất cả các yêu cầu trong đó email_type được đặt thành google-visitor hoặc customer-idp có thể được đặt bị từ chối. Yêu cầu có email_typegoogle hoặc chưa đặt email_type cần 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à "trình đọc" 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 của KACLS hiện tại. Điều này cho phép phát hiện kẻ trung gian tiềm ẩn máy chủ do người trong cuộc định cấu hình hoặc quản trị viên miền giả mạo.
  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 trong 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.

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

  5. Ghi lại hoạt động, bao gồm cả người dùng thực hiện hành động, resource_name và lý do được chuyển vào 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.