对导出的客户端加密文件和电子邮件进行解密

如果贵组织使用 Google Workspace 客户端加密功能 (CSE),您就可以使用解密工具实用程序来解密通过数据导出工具Google 保险柜导出的客户端加密文件和电子邮件。您可以通过命令行运行解密工具。

运行解密工具时,您可以使用命令行 flag 指定身份提供方 (IdP) 身份验证信息、加密文件的位置、解密文件的输出位置以及其他选项。您还可以创建一个配置 (config) 文件来保存您常用的解密工具 flag。

准备工作

  • 当您解密 Google 文档、表格或幻灯片文件时,文件名会以 .gdoczip 或类似扩展名结尾。解密后,您可以使用文件转换器工具将这些文件转换为 Microsoft Office 格式。如需了解详情,请参阅将导出并解密的 Google 文件转换为 Microsoft Office 文件
  • 如果您从 Google 保险柜中导出 Gmail 客户端加密邮件,则需要以 MBOX 格式导出。解密工具无法处理 PST 格式的导出文件。
  • 解密工具实用程序可以解密任何使用 S/MIME 证书加密的邮件。它还可以解密不使用 S/MIME 证书加密而是采用 Gmail 端到端加密 (E2EE) 的邮件,前提是相应邮件或会话串中的原始邮件是由贵组织的用户进行加密的。
  • 解密工具实用程序无法解密在其他组织中不使用 S/MIME 证书加密而是采用 Gmail E2EE 的邮件(包括会话串中的所有邮件)。

系统要求

  • Microsoft Windows 10 或 11(64 位)
  • macOS 12 (Monterey) 或更高版本。支持 Apple 和 Intel 处理器。
  • Linux x86_64。

下载解密工具

打开归档文件或卷,然后将解密工具的可执行文件提取到本地目录或文件夹中。

配置密钥服务访问权限

解密工具会向您的加密密钥服务(也称为密钥访问控制列表服务 [KACLS])发送查询,该服务用于保护您导出内容中的每个加密文件或邮件。请向您的身份提供方 (IdP) 管理员和加密密钥服务管理员索取 KACLS 能够接受的凭证;否则,KACLS 将拒绝解密工具解密导出内容的尝试。

所需条件

如要配置 KACLS 访问权限,请确保您拥有:

  • 一个可供所安装应用使用的 OAuth 客户端 ID。解密工具的客户端 ID 必须是已安装的桌面软件可用的客户端 ID,并且专用于解密工具实用程序。此客户端 ID 必须与 Google 管理控制台中为 CSE Web 应用、桌面应用和移动应用设置的客户端 ID 不同
  • 与客户端 ID 关联的 OAuth 客户端密钥(如果您的 IdP 是 Google)。如果您使用的是第三方 IdP,则无需客户端密钥。
  • 用于向 KACLS 进行身份验证以执行导出解密操作的用户账号的电子邮件地址。可以是您自己的账号,也可以是您的管理员配置的专用账号。运行解密工具实用程序时,您需要以该用户身份登录,因此很可能还需要拥有该账号的密码。

KACLS 端点

KACLS 配置必须允许用户账号和客户端 ID 调用用于执行导出解密操作的端点。您的 KACLS 管理员通常可以为您进行此设置。解密工具调用的 KACLS 端点取决于加密内容的类型:

  • 日历 CSE:privilegedunwrap
  • 文档 CSE、表格 CSE、幻灯片 CSE:privilegedunwrap
  • 云端硬盘 CSE:privilegedunwrap
  • Gmail CSE(使用 S/MIME 证书):privilegedprivatekeydecrypt
  • Gmail CSE(不使用 S/MIME 证书):privilegedunwrap

配置 Gmail S/MIME 访问权限(可选)

如果您要解密 Google 保险柜中通过 S/MIME 加密的客户端加密 Gmail 邮件,解密工具需要调用 Gmail 的公共 API 来下载额外的数据。Google 保险柜导出内容不包含每位用户的 S/MIME 证书,因此解密工具会根据需要自动从 Gmail 中提取这些证书。

如要让解密工具能够请求组织中任何用户的 S/MIME 证书,您需要向解密工具传递网域范围的服务账号凭证。如需详细了解如何设置此服务账号并创建包含该服务账号私密凭证的 JSON 文件,请参阅仅限 Gmail:为客户端加密功能配置 S/MIME

注意:如果您要解密数据导出工具中的客户端加密邮件,或者解密保险柜中没有使用 S/MIME 证书的加密邮件,则无需进行此设置。

如果出现以下任一情况,解密工具将无法获取用户的 S/MIME 证书,继而无法解密使用 S/MIME 的客户端加密邮件:

为确保成功解密使用 S/MIME 证书的客户端加密邮件,您可以:

  • 在证书仍然可用时,立即解密从保险柜导出的邮件。
  • 使用数据导出工具导出邮件,这些导出内容会包含每位用户的证书。

先创建配置文件

解密工具会使用 OAuth 和您的 IdP 来获取身份验证凭证,并将其包含在每个 KACLS privilegedunwrapprivilegedprivatekeydecrypt 请求中。您的 OAuth 配置不会经常更改,因此您可以创建一个包含 OAuth 设置的配置 (config) 文件,以免每次运行解密工具时都必须进行设置。如要详细了解配置文件 flag,请参阅下文中的创建配置文件 flag更新配置文件 flag

注意:虽然此设置步骤是可选的,但建议执行此步骤,以简化解密工具实用程序的使用。如果您不想创建配置文件,则可以在每次执行解密工具时,通过命令行传递 OAuth 标志。如果您同时执行这两项操作,则通过命令行传递的标志值会覆盖从配置文件中读取的值。

示例:为 Google IdP 创建配置文件

在 Windows 上

在 macOS 或 Linux 上

现在,您可以更新配置文件,将 OAuth 客户端密钥添加到授权代码授予流程中。

在 Windows 上

在 macOS 或 Linux 上

如果您的 IdP 不是 Google:请勿添加客户端密钥,因为只有 Google IdP 需要该密钥。许多其他 IdP 会在存在客户端密钥时拒绝身份验证请求。

解密 CSE 文件和邮件

解密工具实用程序可处理未压缩的导出文件。

  1. 在数据导出工具或 Google 保险柜中创建导出内容后,将 ZIP 文件下载到本地计算机。
  2. 将这些文件解压缩到本地目录或文件夹中。
  3. 对解压缩的文件运行解密工具,并将解密后的明文文件保存到其他目录中。

示例:使用预先准备的配置文件,但不使用服务账号凭证

在 Windows 上

在 macOS 或 Linux 上

示例:使用预先准备的配置文件,并使用服务账号凭证

在 Windows 上

在 macOS 或 Linux 上

示例:既不使用配置文件,也不使用服务账号凭证

在 Windows 上

在 macOS 或 Linux 上

解密工具标志

解密工具 flag 可以包含 1 个或 2 个前导连字符,例如,用于显示帮助信息的 flag 可以是以下任何一种:

-help

--help

注意:flag 中只能出现连字符,而不能存在斜杠 (/)。

字符串参数的标志可以包含等号或空格,用于指定参数。例如,以下标志的效果相同:

-action=decrypt

-action decrypt

帮助标志

标志 说明
-version 输出版本字符串。如要与支持团队联系,请务必提供您所使用的解密工具的版本。
-help 在屏幕上输出所有标志以供参考。
-logfile 指定输出文件,在其中写入执行日志。系统会将文件名中的文本 [TIMESTAMP] 替换为执行的开始时间。

解密标志

标志 说明
-action decrypt 可选。将实用程序的模式指定为解密 CSE 文件模式。这是默认模式。
-email <email_address> 可选。当在浏览器中打开 IdP 身份验证页面时,已在其中预填充的电子邮件地址。
-issuer <uri> 必需(除非配置文件中已包含)。IdP 的 OAuth 颁发者发现服务 URI,例如 https://accounts.google.com。有关详情,请参阅连接到身份提供方以使用客户端加密功能
-client_id <oauth_client_id> 必需(除非配置文件中已包含)。由 -issuer flag 中指定的 IdP 提供的 OAuth 客户端 ID。有关详情,请参阅连接到身份提供方以使用客户端加密功能
-client_secret <oauth_client_secret> 可选,但某些 IdP 可能需要此 flag。与 -client_id flag 中指定的客户端 ID 对应的 OAuth 客户端密钥部分。
-pkce
-nopkce
在授权代码授予流程中启用或停用 PKCE(用于代码交换的证明密钥)。如果这两个标志均未指定,则解密工具默认启用 PKCE。
-input <directory_or_file>

必需。输入目录或导出文件。

如果您指定一个目录,解密工具会以递归方式遍历整个目录树,以便找到所有导出的 CSE 文件。使用此选项可对已展开的导出归档中的所有导出文件执行批量解密。

如果您指定了 1 个已导出的 CSE 文件,解密工具只会解密这一个文件。如果该文件不是 CSE 文件,解密工具会要求您通过 IdP 的身份验证,并且不会解密任何文件。

-output <directory> 必需。保存解密文件的目录。
-overwrite
-nooverwrite
选择是否要覆盖现有的已解密明文输出文件。选择不覆盖(默认设置)时,如果明文文件已存在,解密工具将不再对相应的密文文件进行解密。
-workers <integer>

可选。并行解密工作器的数量。如果不指定此标志,则解密工具默认会将此数量设为操作系统报告的处理器核心和超线程的数量。

如果计算机出现性能问题,或者在解密文件时收到多线程处理错误,您可将此 flag 设为 1,以停用并行处理。

-config <file>

可选。包含存储的 flag 值的配置文件。使用配置文件可避免每次解密文件时粘贴相同的命令行 flag。如需了解详情,请参阅下文中的配置文件创建 flag配置文件更新 flag

您在命令行中设置的标志值优先于配置文件中的值。

注意:如果您在配置文件中指定了某个文件,但系统找不到该文件,则会发生错误。

-credential <file> 可选。指定包含全网域服务账号私钥的 JSON 文件。指定后,对 Gmail CSE 邮件进行解密时,会查询 Gmail API 以获取每位用户的 S/MIME 证书和密钥访问控制列表服务 (KACLS) 元数据。

配置创建标志

使用以下 flag 将常用的解密命令行 flag 保存到配置文件中,以供重复使用。配置文件采用 JSON 格式,其中包含用户可理解的文本。

标志 说明
-action createconfig 必需。覆盖默认的执行模式,以运行配置文件创建模式。
-config file 必需。指定您要用于保存配置文件的输出文件名。如果该文件已存在,系统将在不作出警告的情况下覆盖该文件。
-email <email_address>
-discovery_uri <uri>
-client_id <oauth_client_id>
-client_secret <oauth_client_secret>
-pkce
-nopkce
可选。系统会将所有指定的 flag 值保存到配置文件中,以供重复使用。

配置更新标志

使用以下标志来更新配置文件中的任何标志值。

标志 说明
-action updateconfig 必需。覆盖默认的执行模式,以运行配置文件更新模式。
-config file 必需。要更新的配置文件。如果文件不存在,则会发生错误。
-email <email_address>
-discovery_uri <uri>
-client_id <oauth_client_id>
-client_secret <oauth_client_secret>
-pkce
-nopkce

全部为可选。系统会覆盖您在命令行中指定的 flag 值;配置文件中的任何其他 flag 值将保留不变。如要取消设置已存储的 flag,请指定空白值。

注意:如果某项修改破坏了 JSON 格式,那么当您在解密工具中使用该配置文件时很可能会出现错误。

信息标志

使用以下标志可以输出关于 CSE 文件的易读信息。

标志 说明
-action info (必需)覆盖默认执行模式,以信息模式运行
-input directory_or_file

(必需)指定输入目录或导出文件

如果您指定一个目录,该实用程序会以递归方式扫描整个目录树,以查找所有 CSE 导出文件。如果您指定了某个文件,该实用程序只会提供该文件的相关信息。

您可以重复使用此标志来指定其他输入目录或文件。示例:

$ decrypter -action=info -input=file1.gcse -input=file2.gcse -input=file3.gcse