构建自定义密钥服务以启用客户端加密功能

您可以使用自己的加密密钥来加密贵组织的数据,而不是使用 Google Workspace 提供的加密密钥。借助 Google Workspace 客户端加密功能 (CSE),系统会先在客户端的浏览器中对文件进行加密,然后再将其存储到云端硬盘的云存储空间。这样一来,Google 服务器就无法访问您的加密密钥,也无法解密您的数据。如需了解详情,请参阅客户端加密功能简介

借助此 API,您可以使用自定义外部密钥服务控制可保护数据的顶级加密密钥。使用此 API 创建外部密钥服务后,Google Workspace 管理员可以连接到该服务,并为其用户启用 CSE。

重要术语

以下是 Google Workspace Client-side Encryption API 中使用的常用术语列表:

客户端加密功能 (CSE)
在存储到云端存储空间之前,先在客户端浏览器中进行加密。这样可以防止存储空间提供程序读取文件。了解详情
Key Access Control List Service (KACLS)
您的外部密钥服务,该服务使用此 API 控制对存储在外部系统中的加密密钥的访问权限。
身份提供方 (IdP)
需要先验证用户身份,然后用户才能对文件进行加密或访问已加密的文件的服务。

加密和解密

数据加密密钥 (DEK)
Google Workspace 在浏览器客户端中用于加密数据本身的密钥。
密钥加密密钥 (KEK)
您的服务中的密钥,用于加密数据加密密钥 (DEK)。

访问权限控制机制

访问控制列表 (ACL)
可以打开或读取文件的用户或群组的列表。
身份验证 JSON Web 令牌 (JWT)
身份合作伙伴 (IdP) 发出的不记名令牌 (JWT:RFC 7516),用于证明用户的身份。
授权 JSON Web 令牌 (JWT)
由 Google 签发的 Bearer 令牌 (JWT:RFC 7516),用于验证调用者是否有权对资源进行加密或解密。
JSON Web 密钥集 (JWKS)
一个只读端点网址,指向用于验证 JSON Web 令牌 (JWT) 的公钥列表。
边界
对 KACLS 中的身份验证和授权令牌执行的额外检查,以进行访问权限控制。

客户端加密流程

管理员为组织启用 CSE 后,启用了 CSE 的用户可以选择使用 Google Workspace 协作内容创建工具(例如文档和表格)创建加密文档,或对其上传到 Google 云端硬盘的文件(例如 PDF)进行加密。

用户加密文档或文件后:

  1. Google Workspace 会在客户端浏览器中生成 DEK 来加密内容。

  2. Google Workspace 会使用您提供给 Google Workspace 组织管理员的网址,将 DEK 和身份验证令牌发送到您的第三方 KACLS 进行加密。

  3. 您的 KACLS 会使用此 API 加密 DEK,然后将经过混淆处理且加密的 DEK 发送回 Google Workspace。

  4. Google Workspace 会将经过混淆处理且加密的数据存储在云端。只有有权访问您的 KACLS 的用户才能访问这些数据。

如需了解详情,请参阅加密和解密文件

后续步骤