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 vào danh sách cho phép mọi dịch vụ Nhà cung cấp danh tính (IdP) mà người dùng sử dụng để chia sẻ tệp đã mã hoá. Thông thường, bạn có thể tìm thấy thông tin chi tiết bắt buộc về IdP 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 được 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 chu 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:
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ực và mã thông báo uỷ quyền.
- Kiểm tra để đảm bảo mã uỷ quyền và mã xác thực là dành cho cùng một người dùng bằng cách so 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 qua email.
- Khi mã 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 xác nhận quyền sở hữu đó với thông báo xác nhận quyền sở hữu email trong mã 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. Đừng sử dụng thông tin xác nhận quyền sở hữu email trong mã thông báo xác thực để so sánh. - Trong trường hợp mã thông báo xác thực thiếu thông báo xác nhận
google_email
không bắt buộc, bạn nên so sánh thông báo xác nhận email trong mã thông báo xác thực với thông báo xác nhận email trong mã thông báo uỷ quyền bằng một phương thức không phân biệt chữ hoa chữ thường. - Trong trường hợp Google phát hành mã thông báo 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
email_type
. Đây là một phần quan trọng của tính năng Quyền truy cập của khách, cung cấp thông tin có giá trị cho 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.- Sau đây là 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.
- Để hạn chế nhà phát hành mã xác thực ở một Nhà cung cấp danh tính khách chuyên dụng.
- Để yêu cầu thêm thông báo xác nhận trên mã thông báo xác thực.
- Nếu khách hàng chưa định cấu hình tính năng Quyền truy cập của khách, thì tất cả các yêu cầu mà
email_type
được đặt thànhgoogle-visitor
hoặccustomer-idp
đều có thể bị từ chối. Các yêu cầu cóemail_type
làgoogle
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
role
trong mã thông báo uỷ quyền là "writer" (người ghi) hoặc "upgrader" (trình nâng cấp). - Kiểm tra để đảm bảo rằng 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 cho phép phát hiện các máy chủ trung gian tiềm ẩn do người trong cuộc hoặc quản trị viên miền độc hại định cấu hình. - Kiểm tra chu vi bằng cách sử dụng cả thông báo xác thực và uỷ quyền.
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)
- Giá trị
resource_name
vàperimeter_id
từ mã thông báo uỷ quyền - Mọi dữ liệu nhạy cảm khác
Ghi lại thao tác, bao gồm cả người dùng tạo ra thao tác đó,
resource_name
và lý do được truyền trong yêu cầu.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à gửi nguyên trạng trong mọi thao tác mở khoá khoá tiếp theo. Hoặc phân phát câu trả lờ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 triển khai cụ thể 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 được mã hoá phía máy khách (CSE), Google Workspace sẽ gửi 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 chu vi và kiểm tra dựa trên xác nhận JWT, KACLS của bạn phải thực hiện các bước sau:
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ực và mã thông báo uỷ quyền.
- Kiểm tra để đảm bảo mã uỷ quyền và mã xác thực là dành cho cùng một người dùng bằng cách so 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 qua email.
- Khi mã 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 xác nhận quyền sở hữu đó với thông báo xác nhận quyền sở hữu email trong mã 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. Đừng sử dụng thông tin xác nhận quyền sở hữu email trong mã thông báo xác thực để so sánh. - Trong trường hợp mã thông báo xác thực thiếu thông báo xác nhận
google_email
không bắt buộc, bạn nên so sánh thông báo xác nhận email trong mã thông báo xác thực với thông báo xác nhận email trong mã thông báo uỷ quyền bằng một phương thức không phân biệt chữ hoa chữ thường. - Trong trường hợp Google phát hành mã thông báo 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
email_type
. Đây là một phần quan trọng của tính năng Quyền truy cập của khách, cung cấp thông tin có giá trị cho 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.- Sau đây là 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.
- Để hạn chế nhà phát hành mã xác thực ở một Nhà cung cấp danh tính khách chuyên dụng.
- Để yêu cầu thêm thông báo xác nhận trên mã thông báo xác thực.
- Nếu khách hàng chưa định cấu hình tính năng Quyền truy cập của khách, thì tất cả các yêu cầu mà
email_type
được đặt thànhgoogle-visitor
hoặccustomer-idp
đều có thể bị từ chối. Các yêu cầu cóemail_type
làgoogle
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
role
trong mã thông báo uỷ quyền là "reader" (người đọc) hoặc "writer" (người viết). - Kiểm tra để đảm bảo rằng 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 do người trong cuộc hoặc quản trị viên miền độc hại thiết lập.
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)
- Giá trị
resource_name
vàperimeter_id
từ mã thông báo uỷ quyền - Mọi dữ liệu nhạy cảm khác
Kiểm tra để đảm bảo
resource_name
trong mã thông báo uỷ quyền và blob đã giải mã khớp nhau.Kiểm tra chu vi bằng cả thông báo xác thực và thông báo uỷ quyền.
Ghi lại thao tác, bao gồm cả người dùng khởi tạo thao tác,
resource_name
và lý do được truyền trong yêu cầu.Trả về DEK đã mở gói hoặc phản hồi lỗi có cấu trúc.