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

您可以使用自己的加密密钥来加密组织的数据,而不是使用 Google Workspace 提供的加密方式。使用 Google Workspace 客户端加密功能 (CSE) 时,系统会先在客户端浏览器中处理文件加密,然后再将其存储在云端硬盘的云端存储空间中。使用这种方式时,Google 服务器无法访问您的加密密钥,因此无法解密您的数据。如需了解详情,请参阅客户端加密功能简介

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

重要术语

下面列出了 Google Workspace Client-side Encryption API 中使用的常用术语:

客户端加密功能 (CSE)
在将客户端存储在云端存储空间之前,在客户端浏览器中处理的加密。这样可以防止存储提供程序读取该文件。了解详情
密钥访问控制列表服务 (KACLS)
使用此 API 来控制对存储在外部系统中的加密密钥的访问权限的外部密钥服务。
身份提供方 (IdP)
用于在用户加密文件或访问加密文件之前对用户进行身份验证的服务。

加密和解密

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

访问权限控制机制

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

客户端加密流程

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

用户加密文档或文件后:

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

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

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

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

有关详情,请参阅加密和解密文件

后续步骤