将数字签名与 Office 2016 结合使用

总结:说明如何在 Excel、PowerPoint 和 Word 文档中支持 XML 高级电子签名 (XAdES) 。 此外,确定如何为部署选择适当的证书。

许多情况下,用户对 Excel、PowerPoint或 Word 文档进行数字签名的原因与他们在纸质文档上填写手写签名的原因相同。 数字签名有助于对创建者的身份进行身份验证。 它验证数字信息的作者,包括文档、电子邮件和宏。 此过程使用加密算法。

证书颁发机构 (CA) 颁发数字证书,这些证书充当标识的验证者。 这些证书构成了数字签名的基础。 这与打印身份文档的使用非常类似。 例如,政府实体或雇主颁发驾驶执照、护照和员工身份证等标识文件。 其他人依靠这些文档来验证某人是否是他们声称的人。

本文包括 Office 2016 中新增的数字签名注册表项。

提示

是否在桌面版 Office 2016 中寻求数字签名设置方面的帮助? 你可能正在查找以下文章之一,这些文章将帮助你在桌面上保护 Office 2016: 数字签名和证书在 Office 文件中添加或删除数字签名以及 获取数字 ID

数字签名简介及其在 Office 中的使用方式

数字签名有助于建立下列身份验证方法:

  • 真实性 数字签名及其基础数字证书有助于确保签名者是他们声称的人。 这有助于防止他人冒充特定文档建立者(相当于打印文档中的伪造)。

  • 诚信 数字签名可确保内容在经过数字签名后不会更改或被篡改。 此数字签名可防止在文档发起人不知情的情况下截获和更改文档。

  • 不可否认性 数字签名帮助向各方证实已签名内容的来源。 "否认性"指的是签名者否认与已签名内容有任何关联。 数字签名帮助证实文档建立者是真正的建立者而不是他人,无论签名者自称是谁。 签名者如果不否认其数字密钥,则无法在该文档上否认其签名,这会影响使用该密钥签名的其他文档。

Office 2016 中数字签名的要求

要建立这些条件,内容创建者必须通过创建满足下列条件的签名来对内容进行数字签名:

  • 数字签名有效。 操作系统必须信任证书颁发机构 (CA) ,该证书颁发机构对支持数字签名的数字证书进行签名。

  • 与数字签名关联的证书未过期,或者包含指示证书在签名时有效的时间戳。

  • 不会吊销与数字签名关联的证书。

  • 收件人信任签名人员或组织 (称为发布者) 。

Word 2016、Excel 2016和PowerPoint 2016检测到这些条件,并在数字签名出现问题时警告用户。 可以在 Office 2016 应用程序的证书任务窗格中轻松查看出现问题的证书的相关信息。 通过 Office 2016 应用程序,可以向同一文档中添加多个数字签名。

Office 2016 企业环境中的数字签名

以下场景演示如何在企业环境中在文档上使用数字签名:

  1. 某个员工使用 Excel 2016 创建了一个费用报表。 然后,员工创建三个签名行:一个用于自己,一个用于经理,一个用于会计部门。 签名的作用是:

    • 标识该员工是文档的建立者

    • 指示文档在移动到经理和会计部门时未发生任何更改

    • 证明经理和会计部门都收到并审阅了文档

  2. 经理接收文档并将其数字签名添加到文档中,确认他们审阅并批准了文档。 然后,它被转发到会计部门进行付款。

  3. 会计部门代表收到文档,对其签名以确认收到文档。

此示例演示了向单个 Office 2016 文档添加多个签名的功能。 除了数字签名,文档的签名者还可以添加其实际签名的图形,或使用平板电脑将签名实际写入文档中的签名行。

与 Office 2016 之前的 Office 文档的兼容性问题

Office 2016 与 Office 2013、Office 2010 和 Office 2007 一样,都将 XML-DSig 格式用于数字签名。 此外,Office 2016 还支持 XAdES(XML 高级电子签名)。 XAdES 是一组 XML-DSig 分层扩展,其级别构建于以前的级别之上,可提供更可靠的数字签名。 有关 Office 2016 中支持的 XAdES 级别的详细信息,请参阅本文后面的规划 Office 2016 文档中的数字签名级别。 有关 XAdES 的详细信息,请参阅 XML 高级电子签名规范 (XAdES)

在 Office 2016 中创建的数字签名与早于 2007 Office 系统的 Office 版本不兼容。 例如,考虑使用 Office 2016、Office 2013、Office 2010 或 Office 2007 中的应用程序进行签名的文档。 当用户使用 Office 兼容包在 Office 2003 中打开此文档时,系统会通知他们。 它通知文档是在较新版本的 Office 中签名的。 因此,数字签名丢失。

下图显示了在使用 Office 2007 之前的 Office 版本打开文档后用户看到的警告。

最初在 Office 2003 或更早版本中签名的文档的数字签名警告。

Microsoft Office Word错误消息的屏幕截图,指示文件是在较新版本中创建和数字签名的,导致数字签名丢失。

如果在 Office 2016 中将 XAdES 用于数字签名,则数字签名与 Office 2010 或 2007 Office 系统不兼容,除非你配置了组策略设置“不要在清单中包含 XAdES 引用对象”并将其设置为“已启用”。 For more information about the digital signature Group Policy settings, see Plan signature settings for Office 2016 later in this article.

If you want digital signatures that you create in Office 2016 to be compatible with Office 2003 and earlier versions, you can configure the Group Policy setting, Legacy format signatures, and set it to Enabled. 此组策略设置位于“用户配置\策略\管理模板\Microsoft Office 2016\签名”下。 After you change this setting to Enabled, the Office 2016 applications use the Office 2003 binary format to apply digital signatures to Office 97-2003 binary documents that you created in Office 2016.

选择 Office 2016 的数字证书类型

证书颁发机构 (CA) 可以颁发数字证书,也可以自签名。 在组织中,此过程可能涉及运行 Active Directory 证书服务的Windows Server 2012计算机。 或者,公共 CA(如 VeriSign 或 Thawte)可以颁发它们。 自签名证书通常由个人和小型企业使用。 如果不希望为其组织建立公钥基础结构 (PKI) 或购买商业证书,则选择此选项。

自签名证书的主要缺点在于其效用有限。 仅当与个人认识你的人交换文档时,它们才有效。 个人还必须确信你是文档的实际发起人。 使用自签名证书时,证书没有外部验证真实性。 接收已签名文档的每个人都必须手动决定是否信任你的证书。

对于大型组织,有两种获取数字证书的主要方法:使用组织或公司 PKI 创建的证书以及商业证书。 只想将已签名文档在组织中的其他员工中共享的组织首选公司 PKI,这样可降低成本。 想要将已签名文档与组织外的人员共享的组织可能偏好使用商业证书。

使用组织或公司 PKI 创建的证书

组织可以创建自己的 PKI。 在这种情况下,公司设置一个或多个证书颁发机构 (CA),用来为整个公司中的计算机和用户创建数字证书。 当公司将 Active Directory Directory Services (AD DS) 与其系统相结合时,他们可以建立完整的 PKI 解决方案。 此集成可确保所有组织或公司管理的计算机都安装了必要的 CA 链。 此外,系统还支持自动将数字证书分配给用户和计算机。 这些证书对于文档签名和加密至关重要。 此过程允许公司中的所有员工自动信任数字证书 (因此信任同一公司中其他员工) 的有效数字签名。

商业证书

您可以从主营数字证书销售的公司购买商业证书。 使用商业证书的主要优点是,商业证书供应商的根 CA 证书自动安装在组织的 Windows 操作系统中。 这使这些计算机能够自动相信 CA。 与组织或公司 PKI 解决方案不同,商业证书使你能够与不属于你的组织的用户共享已签名的文档。

有三种类型的商业证书:

  • 1 类 1 类证书颁发给具有有效电子邮件地址的人员。 第 1 类证书适用于不需要身份证明的非商业交易的数字签名、加密和电子访问控制。

  • 2 类2 类证书颁发给人员和设备。 第 2 类个人证书适用于基于验证数据库中信息的身份验证证明已足够事务中的数字签名、加密和电子访问控制。 2 类设备证书适用于设备身份验证;消息、软件和内容完整性;以及机密加密。

  • 3 类3 类证书颁发给人员、组织、服务器、设备、CA 管理员和根机构 (RA)。 第三类个人证书适用于必须保证身份证明的事务中的数字签名、加密和访问控制。 3 类服务器证书适用于服务器身份验证;消息、软件和内容完整性;以及机密加密。

有关商业证书的详细信息,请参阅 查找数字 ID 或数字签名服务

规划 Office 2016 文档中的数字签名级别

用户可以使用 Excel 2016、PowerPoint 2016 和 Word 2016 对文档进行数字签名。 他们还可以使用 Excel 2016、InfoPath 2016 或 Word 2016 添加签名行或签名戳。 对具有数字证书但没有签名行或标记的文档进行数字签名称为创建不可见的数字签名。 可见和不可见的数字签名都使用数字证书对文档进行签名。 其区别在于使用可见签名行时文档中的图形表示。 有关如何添加数字签名的详细信息,请参阅在 Office 文件中添加或删除数字签名

如果在创建数字签名期间使用自签名证书或由 CA 签名的证书,则默认情况下 Office 2016 将创建 XAdES-EPES 数字证书。

下表列出了基于 XML-DSig 数字签名标准且在 Office 2016 中可用的 XAdES 数字签名级别。 每个级别都在前一级别的基础上构建,且包含之前级别的所有功能。 例如,除了 XAdES-X 中引入的新功能,XAdES-X 还包含 XAdES-EPES、XAdES-T 和 XAdES-C 的所有功能。

Office 2016 中的 XAdES 数字签名级别

签名级别 说明
XAdES-EPES(基本)
将有关签名证书的信息添加到 XML-DSig 签名。 此设置是 Office 2016 签名的默认设置。
XAdES-T(时间戳)
将时间戳添加到签名的 XML-DSig 和 XAdES-EPES 部分,这有助于防止证书过期。
XAdES-C(完整)
添加对证书链和吊销状态信息的引用。
XAdES-X(扩展)
将时间戳添加到 XML-DSig SignatureValue 元素以及签名的 -T 和 -C 部分。 额外的时间戳可防止数据被否认。
XAdES-X-L(扩展长期)
除了签名,还存储实际证书和证书吊销信息。 此方法允许证书验证,即使证书服务器不再可用。

规划 Office 2016 中的时间戳数字签名

用户将时间戳添加到数字签名后,它们可延长该数字签名的寿命。 例如,假设有一个用于创建数字签名的已吊销证书的方案。 在这种情况下,从受信任的时间戳服务器包含时间戳至关重要。 关键因素是时间戳的时间:如果在吊销证书之前应用时间戳,则数字签名仍可被视为有效。 要将时间戳功能与数字签名一同使用,必须完成下列任务:

  • 设置符合 RFC 3161 的时间戳服务器。

  • 使用组策略设置"指定服务器名称"输入时间戳服务器在网络中的位置。

还可以通过配置以下一个或多个组策略设置来配置其他时间戳参数:

  • 配置时间戳哈希算法

  • 设置时间戳服务器超时

如果未配置和启用 “配置时间戳哈希算法”,则使用默认值 SHA1。 如果未配置并启用 “设置时间戳服务器超时”,Office 2016 将等待 5 秒,让时间戳服务器响应请求。

规划 Office 2016 的签名设置

组策略提供用于配置时间戳相关设置的设置。 此外,它还提供用于管理和控制组织内的数字签名的设置。 下表中列出了设置名称和说明。

数字签名组策略配置设置

组策略设置 说明
签名生成时要求 OCSP
可以在 Office 2016 中设置策略,确保它检查 OCSP (联机证书状态协议) 吊销数据。 生成数字签名时,此检查对于链中的所有数字证书是必需的。
指定数字签名生成的最低 XAdES 级别
通过此策略设置,您可以指定 Office 2016 应用程序必须达到的最低 XAdES 级别,以创建 XAdES 数字签名。 如果 Office 2016 应用程序无法达到最低 XAdES 级别,则 Office 应用程序不会创建签名。
检查数字签名的 XAdES 部分
通过此策略设置,当验证文档的数字签名时,您可以指定 Office 2016 是否检查数字签名的 XAdES 部分。
验证签名时不允许过期的证书
通过此策略设置,您可以配置 Office 2016 应用程序验证数字签名时是否接受过期的数字证书。
不将 XAdES 引用对象包含在指令清单中
通过此策略设置,可以确定是否在清单中显示 XAdES 引用对象。 如果希望 2007 Office system 能够读取包含 XAdES 内容的 Office 2016 签名,则必须将此设置配置为"已启用"。 否则,2007 Office 系统将包含 XAdES 内容的签名视为无效。
选择数字签名哈希算法
通过此策略设置,您可以配置 Office 2016 应用程序用于确定数字签名的哈希算法。
设置签名验证级别
通过此策略设置,您可以设置 Office 2016 应用程序验证数字签名时使用的验证级别。
签名生成的请求的 XAdES 级别
通过此策略设置,您可以指定创建数字签名请求的或所需的 XAdES 级别。

以下组策略设置与数字签名相关:

  • 设置默认图像目录

  • 增强型密钥用法筛选

  • 旧式格式签名

  • 禁止 Office 签名提供程序

  • 禁用外部签名服务命令

适用于数字签名的注册表设置

下表显示特定于数字签名的 Windows 注册表设置和用于对它们进行加密的证书。 这些注册表设置位于 HKEY_CURRENT_USER\software\policies\Microsoft\Office\16.0\common\signatures 中。 没有相应的组策略。

数字签名注册表设置

注册表项 类型 说明
FilterIssuer
WZ

将可用证书集缩小为名称中具有 FilterIssuer 值的证书
MinSigningDSABits
DWORD

指定允许在 Office 中创建 DSA 数字签名的最少位数。
InvalidDSABits
DWORD
Empty
指定在 DSA 数字签名中读取的最大位数。 忽略 InvalidDSABits 值之上的任何位。
InvalidHashAlg
WZ

指定您的组织以前在 Office 早期版本(例如 Office 2007、Office 2010)中用来创建数字签名且您现在希望其无效的哈希算法。 如果在此处指定了哈希,则使用该哈希验证数字签名的任何文档或电子邮件的验证都失败。
InvalidRSABits
DWORD
Empty
指定 RSA 数字签名中读取的最大位数。 忽略 InvalidRSABits 值之上的任何位。
LegacyDSABits
DWORD
Empty
指定在旧版 DSA 数字签名中处理的最小位数,其中旧版是指使用 Office 2007 或 Office 2010 为文档或电子邮件创建的数字签名,并在 LegacyHashAlg 注册表项设置中指定哈希算法。
LegacyHashAlg
WZ
MD5
定义组织用于在以前的 Office 版本(如 Office 2007 和 Office 2010)中创建数字签名的哈希算法。 此步骤可确保验证已数字签名的旧文档和电子邮件。
LegacyRSABits
DWORD
Empty
指定在旧版 RSA 数字签名中处理的最小位数。 使用 Office 2007 或 Office 2010 为文档或电子邮件创建的数字签名称为“旧版”。 在此上下文中,哈希算法是通过 LegacyHashAlg 注册表项设置指定的。
MinSigningRSABits
DWORD
Empty
指定用于在 Office 2016 中创建数字签名的最小位数。

XML 高级电子签名 (XAdES)

组策略 office (ADMX/ADML) 的管理模板文件

查找数字 ID 或数字签名服务

在 Office 文件中添加或删除数字签名