数字签名简介
应用对象
本文内容
什么是数字签名?
使用数字签名的原因与签署书面文档的原因有很多相同。 数字签名用于使用计算机加密对数字信息(如表单模板、电子邮件和文档)进行身份验证。 数字签名有助于建立以下保证:
- 真实性 数字签名有助于确保签名者是他或她所声称的。
- 诚信 数字签名有助于确保内容在经过数字签名后未被更改或篡改。
- 不可否认性 数字签名有助于向各方证明已签名内容的来源。 “否认”是指签名者拒绝与已签名内容有任何关联的行为。
若要对表单模板做出这些保证,必须对表单模板进行数字签名。 还可以为表单模板启用数字签名,以便用户能够对所填写的表单做出相同的保证。在任一情况下,必须满足以下要求才能对表单或表单模板进行数字签名:
- 该数字签名有效。
- 与数字签名关联的证书是当前证书, (尚未) 过期。
- 签名人或组织(即发布者)受信任。
- 与数字签名关联的证书由受信任的证书颁发机构 (CA) 颁发给发布者。
兼容性注意事项
创建表单模板时,可以启用数字签名,以便用户可以将它们添加到整个表单或表单的特定部分。 在 Microsoft Office InfoPath 2007 中,还可以选择设计与浏览器兼容的表单模板。 与浏览器兼容的表单模板是在 InfoPath 中使用特定兼容模式设计的表单模板。 将浏览器兼容的表单模板发布到运行InfoPath Forms Services的服务器时,可以启用浏览器。 在启用浏览器的表单模板中,只能将数字签名添加到用户填写的表单的特定部分。为表单的某些部分启用数字签名时,签名仅适用于表单的这些特定部分中的数据。
如何在 InfoPath 中使用数字签名
设计表单模板时,可以指定用户在根据表单模板填写表单时是否可以添加数字签名。 还可以指定用户是否可以对整个表单进行签名,也可以仅对表单的一部分进行签名。 如果启用数字签名以便可以将其添加到表单的一部分,则必须确定表单中的哪些数据可以签名。 此外,还可以将该数据与添加到表单模板的节相关联。 签名后,如果不使签名无效,则无法更改已签名的表单或表单的一部分。
设计表单模板时,还可以指定是否允许用户向表单添加多个数字签名,以及是否应 (这些签名应共同签名 (在这种情况下,每个签名独立于其他签名) 或反签名 (在这种情况下,每个签名对表单进行签名,以及其前面的签名) 。
注意
如果表单模板是基于 XML 架构设计的,则仅当 XML 架构具有位于万维网联盟 (W3C) XML 数字签名命名空间中的节点时,才能为该表单模板启用数字签名。
除了启用数字签名以便用户可以对基于表单模板的表单进行签名外,还可以对你设计的表单模板进行数字签名。 对表单模板进行数字签名会像表单上的数字签名对填写表单的用户进行身份验证一样,对表单模板的设计人员进行身份验证。 向表单模板添加数字签名还使表单模板能够在“完全信任”级别运行。 例如,包含使用“完全信任”安全级别的托管代码的表单模板必须安装在用户的计算机上,或者由表单模板设计器进行数字签名才能使用它。
注意
当Microsoft Office Outlook 2007 用户将 InfoPath 表单的副本作为电子邮件发送给其他 Office Outlook 2007 用户,并且该表单设置为在完全信任安全级别运行时,必须使用数字签名对关联的表单模板进行签名才能正常工作。
若要向表单或表单模板添加数字签名,需要数字证书。 可以通过商业证书颁发机构或内部安全管理员获取数字证书。 购买数字证书的决定取决于组织计划部署表单模板的广泛程度。
数字证书
对表单模板进行数字签名时,InfoPath 仅使用具有私钥和数字签名的证书,或 Key Usage 属性的“两者”值。 此外,证书的用途必须是 代码签名 证书。
由于 InfoPath 使用 XML 签名对表单进行数字签名,因此当用户使用数字证书对表单进行签名时,以下准则适用于用户的证书:
- 证书必须包含颁发证书的日期和时间的有效值,以及证书过期的日期和时间。
- 证书必须安装在用户的计算机上并与私钥相关联。
- 证书中包含的密钥用法属性必须包含 digitalSignature 或 nonRedpudiation 值。 密钥用法定义了证书密钥的用途。
注意
由于您创建的数字证书不是由正式证书颁发机构颁发的,因此使用创建的证书签名的表单模板称为自签名表单模板。 这些自签名证书被视为未经身份验证,如果表单模板的安全级别设置为“完全信任”,则会生成安全警告。 InfoPath 仅在有权访问该证书的私钥的计算机上信任自签名证书。 在大多数情况下,这意味着 InfoPath 仅在创建证书的计算机上信任自签名证书,除非私钥与其他计算机共享。
有两种类型的证书颁发机构:商业证书颁发机构和内部证书颁发机构。
商业证书颁发机构
如果你是开发人员,并且想要从商业证书颁发机构(如 VeriSign, Inc.)获取数字证书,你或你的组织必须向该证书颁发机构提交申请。
根据你作为开发人员的身份,应为软件发布者申请第 2 类或类 3 数字证书:
- 2 类数字证书 一种数字证书,专为以个人身份发布软件的人员设计。 此类数字证书有助于确保各个发布者的身份。
- 第 3 类数字证书 为发布软件的公司和其他组织设计的数字证书。 此类数字证书有助于更好地保证发布组织的标识。 第 3 类数字证书旨在表示软件零售渠道提供的保证级别。 第 3 类数字证书的申请人还必须满足基于 Dun & Bradstreet 金融服务的评级的最低财务稳定性水平。
收到数字证书时,系统会提供有关如何在用于对 InfoPath 表单模板进行签名的计算机上安装数字证书的说明。
内部证书颁发机构
某些组织和公司可能有一个安全管理员或组充当其自己的证书颁发机构。 此管理员或组可以使用证书颁发机构工具(如 Microsoft 证书服务器)生成或分发数字证书。 根据组织中如何使用 Microsoft Office 数字签名功能,你可能能够使用来自组织内部证书颁发机构的数字证书对表单模板进行签名。 或者,你可能需要让管理员使用已批准的证书为你对表单模板进行签名。 有关组织策略的信息,请与网络管理员或 IT 部门联系。