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

您可以使用自己的加密密钥来加密组织的数据,而不是使用 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 签发的不记名令牌 (JWT:RFC 7516),用于验证调用者是否已获得加密或解密资源的授权。
JSON Web 密钥集 (JWKS)
指向用于验证 JSON Web 令牌 (JWT) 的公钥列表的只读端点网址。
Perimeter
在 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 会将混淆处理后的加密数据存储在云端。只有有权访问您的 KACLS 的用户才能访问相应数据。

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

后续步骤