通知

Duet AI 现已更名为 Google Workspace 专用 Gemini。了解详情

仅限 Gmail:上传加密密钥以启用客户端加密功能

支持此功能的版本:企业 Plus 版;教育标准版和教育 Plus 版。  比较您的版本

如要为 Gmail 使用 Google Workspace 客户端加密功能 (CSE),您需要启用 Gmail API 并向其提供对整个组织的访问权限。然后,对于每个用户,您需要使用 Gmail API 将 S/MIME(安全/多用途网际邮件扩充协议)证书(公钥)和私钥元数据上传到 Gmail。如果您使用了加密密钥服务,则还需要使用密钥服务加密(或“封装”)用户的私钥元数据。

您可以随时改用其他密钥服务,只需上传新 S/MIME 证书和新服务加密的私钥元数据即可。

S/MIME 简介

S/MIME 是广泛接受的业界标准协议,用于对电子邮件进行数字签名和加密,以确保邮件的完整性和安全性。Gmail CSE 依赖 S/MIME 3.2 IETF 标准来发送和接收安全的 MIME 数据。如要使用 S/MIME,电子邮件发件人和收件人的 X.509 证书都必须受 Gmail 信任。

注意:您也可以在没有 CSE 提供的额外加密和隐私保护措施的情况下使用 S/MIME。仅当不需要防止 Google 服务器使用 CSE 解密您的数据时,才应使用此替代方案。有关详情,请参阅为邮件加密启用托管 S/MIME

准备工作

确保您已完成以下步骤:

  1. 选择密钥服务
  2. 连接到您的身份提供方 (IdP)
  3. 设置外部密钥服务硬件密钥加密
  4. 向组织部门或群组分配密钥服务或硬件密钥加密

    如果您要使用多项密钥服务,请确保已将这些服务分配给相应的组织部门或配置群组。

设置 Gmail API

注意:使用 API 需要具备编程知识。

打开此部分  |  全部收起

第 1 步:启用 Gmail API
  1. 创建一个新的 GCP 项目。有关详情,请参阅创建和管理项目

    注意项目 ID:您需要使用此 ID 向 API 授予全网域访问权限。

  2. 进入 Google API 控制台,为新项目启用 Gmail API。如要了解详情,请参阅在 Google Cloud 项目中启用 API
第 2 步:创建全网域服务账号
  1. 在 Google Cloud 控制台中,前往服务账号页面,然后创建全网域服务账号。有关详情,请参阅创建和管理服务账号
  2. 创建服务账号私钥,并将该私钥保存到本地系统上的 JSON 文件(如 svc_acct_creds.json)中。此文件包含您为用户设置 Gmail 时要使用的凭据。有关详情,请参阅创建和管理服务账号密钥
第 3 步:向 Gmail API 授予全网域访问权限

在此步骤中,您将使用自己创建的服务账号,向 Gmail API 授予对您所有用户的编辑权限。

  1. 请按照使用全网域授权功能控制 API 访问权限中的说明操作。
  2. 出现提示时,输入以下内容:

    客户端 ID:在上文第 2 步中创建的服务账号的客户端 ID。

    OAuth 范围gmail.settings.basic

为用户启用 Gmail CSE

为组织部门或群组启用 Gmail 的 CSE。有关详情,请参阅启用或停用客户端加密功能

注意:对于组织部门,您可以将所有电子邮件(撰写、回复和转发)默认设置为加密。用户仍然可以根据需要关闭加密功能。Requires having the Assured Controls add-on. 

为用户设置 CSE S/MIME 证书

在管理控制台中为用户设置 Gmail API 并开启 Gmail CSE 后,您就可以为用户设置 CSE S/MIME 证书和私钥元数据。

打开此部分  |  全部收起

第 1 步:准备 S/MIME 证书和私钥元数据

对于要使用 Gmail CSE 发送或接收电子邮件的每位用户,请执行以下操作:

使用证书授权机构 (CA) 通过证书链生成 S/MIME 公钥/私钥对。S/MIME 叶证书必须包含用户的主 Gmail 地址作为主题名称或 SAN 扩展主题。

您可以通过以下任一方式设置密钥服务:

  • 使用 Google 信任的 CA 根证书:如要查看根证书列表,请参阅受 Gmail 信任而可用于 S/MIME 的 CA 证书
  • 使用 Google 不信任的 CA:例如,如要使用您自己的 CA,您可以在管理控制台中添加其根证书。有关详情,请参阅管理用于 S/MIME 的受信证书

    注意:如果您使用的是 Google 不信任的 CA,且用户会向贵组织外部人员发送客户端加密电子邮件,则收件人也必须信任该 CA。

第 2 步:封装证书和私钥元数据

使用您的密钥服务加密或“封装”S/MIME 私钥的元数据。请与您的密钥服务提供商联系,或按照所提供的说明操作。

如果您使用的是硬件加密密钥 - 对于将使用硬件加密密钥的任何用户,请务必跳过此步骤,并且不要封装私钥元数据。在这种情况下,无需封装元数据,因为用户的 Gmail 私钥位于智能卡上。   Requires having the Assured Controls add-on.

第 3 步:将用户的 S/MIME 证书和私钥元数据上传到 Gmail

使用 Gmail API 将每个用户的公钥 S/MIME 证书链和私钥元数据上传到 Gmail,并通过创建身份将它们设置为用户的首选密钥。

使用您在为身份验证创建全网域服务账号时下载的私钥文件,针对每位用户完成以下步骤:

  1. 使用 Gmail AP 调用 keypairs.create 上传证书链和私钥元数据
  2. 使用 Gmail API 调用 identities.create 为用户的主电子邮件地址启用密钥对

    identities.create 调用需要 keypairs.create 调用的响应正文中返回的密钥对 ID。

    注意:如果为用户的电子邮件地址启用密钥对,则系统会:

    • 创建一个有权从用户账号发送电子邮件的 CSE 身份。
    • 配置 Gmail 以使用私钥元数据签署外发 CSE 邮件。
    • 将证书发布到共享全网域仓库,以便您组织中的其他 CSE 用户可以加密发送给此用户的邮件。

要完成这些步骤,请使用与 Gmail API 对接的脚本。您可以通过以下任一方式设置密钥服务:

  • 编写自己的脚本。
  • 使用 Google 提供的 Python 示例脚本。有关说明,请参阅下文中的使用 Google 的 Python 脚本将用户的证书和封装密钥上传到 Gmail

    注意:此脚本仅适用于将使用密钥服务加密 Gmail 内容的用户。对于将使用硬件密钥加密的所有用户,您需要创建不同的脚本来上传其未封装的私钥元数据。

您上传证书后,最长可能需要 24 小时(通常不需要这么长时间)才能在 Gmail 中看到相应证书。

(可选)使用 Google 的 Python 示例脚本将用户的证书和已封装的私钥上传到 Gmail

要完成上述第 3 步,您可以使用 Google 提供的 Python 脚本,而无需编写自己的脚本。

下载脚本

Python 脚本软件包 (.zip) 下载到计算机(Mac、Linux 或 Windows),然后将文件解压缩到工作目录中。

创建虚拟环境并安装模块

从工作目录使用命令行,输入以下命令:

python3 -m venv cli_env
source cli_env/bin/activate
pip install -r requirements.txt

调用脚本

python cse_cmd.py -h

上传用户的证书和密钥

第 1 步:创建一个用于存储所有封装私钥的目录

  • 例如,您可以创建目录 $root/wrapped_keys
  • 每个封装的私钥的文件名都必须是用户的完整电子邮件地址(扩展名为 .wrap)。例如:$root/wrapped_keys/user1@example.com.wrap
  • 确保封装的私钥文件有一个包含两个必需字段的 JSON 对象:
{
      'kacls_url': 'url of the key service configured in the Admin console',
      'wrapped_private_key': 'wrapped private key bytes'
    }

第 2 步:创建用于存储所有证书的目录

  • 证书必须为 P7 PEM 格式,因此您可能会创建 $root/p7pem_certs 目录。
  • 请确保证书文件包含指向根证书授权机构 (CA) 的完整链。
  • 每份证书的文件名必须是用户的完整电子邮件地址,并且扩展名为 .p7pem。例如:$root/p7pem_certs/user1@example.com.p7pem

如果您使用的是 P7B 文件:您可以使用以下 openssl 注释将其转换为 P7 PEM 格式:

openssl pkcs7 -inform DER -in {old_name.p7b} -outform PEM -out {new_name.p7pem}

第 3 步:上传用户的密钥对和身份

对于此步骤,您需要包含服务账号凭据的 JSON 文件,该文件已在上面的“第 2 步:创建服务账号”中保存到您的计算机中。

要上传用户的密钥对和身份,最简单的方法是运行 insert 命令。请注意,每条命令都必须有参数,例如:

python cse_cmd.py insert
      --creds $root/svc_acct_creds.json
      --inkeydir $root/wrapped_keys
      --incertdir $root/p7pem_certs

您也可以为每位用户执行以下操作:

  1. 运行 insert_keypair,并记下密钥对 ID。
  2. 使用该密钥对 ID 运行 insert_identity

您还可以通过运行 list_keypair 命令获取密钥对 ID。

第 4 步:验证用户是否拥有 CSE 密钥对和身份

请为每位用户运行以下命令,以确保用户在 Gmail 中拥有有效的密钥对和身份:

list_keypair

list_identity

为 Gmail CSE 改用其他密钥服务

如果您想为 Gmail CSE 改用其他密钥服务,请重复上文为用户设置 Gmail CSE 下的第 2 步和第 3 步,使用您的新的密钥服务封装私钥。

注意:为用户上传新证书不会将内容迁移到新的密钥服务。不过,用户可以继续访问那些使用旧证书加密的电子邮件和由旧密钥服务封装的私钥元数据。

将邮件作为客户端加密电子邮件迁移到 Gmail

现在 Gmail CSE 已设置完毕,您可以选择导入邮件。有关详情,请参阅将邮件作为客户端加密电子邮件迁移到 Gmail

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
4585584680811703514
true
搜索支持中心
true
true
true
true
true
73010
false
false