在 Word 或 Excel 中看到“签名”按钮,很多人以为签了名就同时解决了文档防篡改和宏信任问题。实际上,Office 中存在两类不同的签名:文档内容签名和 VBA 宏签名。它们保护的对象、验证方式和信任提示都不一样。混用会让企业以为文件已经受保护,实际风险仍在。
本文说明两类签名的区别与落地要点,不涉及绕过宏安全策略。更多文档签名内容可参考本站文档签名证书栏目,产品信息见文档签名证书页面。
一、文档内容签名保护什么
Office 的文档签名功能会对文件内容生成密码学签名,签署后如果内容被修改,签名状态会变化。它适合合同、报价单、审批表、财务报表等需要确认版本完整性的文件。收件方可以在文件信息或签名面板中查看签名者和证书状态。
文档内容签名不等同于 PDF 的数字签名。Office 文件的签名验证依赖 Office 客户端和证书信任链,跨平台、在线预览或第三方工具可能无法完整显示签名状态。对外发送前,应确认收件方使用的软件环境。
二、宏签名保护什么
VBA 宏签名针对的是宏工程代码。企业常通过宏签名让受信任的宏在 Office 中运行,减少安全警告。签名绑定的是宏代码,不是文档正文。若只签宏,文档内容仍可被修改而不影响宏签名状态;若只签文档,宏代码的信任策略也不会自动改变。
宏签名的证书可以是组织代码签名证书或自签名证书。自签名证书只适合内部测试,公开分发应使用受信任 CA 签发的证书。宏签名后修改代码,签名会失效,需要重新签署并重新分发。
三、企业常见的四种误用
- 把宏签名当成文档签名,认为文件内容已被锁定。
- 把文档签名当成宏信任,导致用户打开文件仍被宏安全栏拦截。
- 签名后继续编辑文档,保存时破坏签名。
- 使用个人自签名证书对外发送,收件方无法验证。
这些问题的根源是把“代码信任”和“内容完整性”混为一谈。企业应在内部说明中明确两类签名的用途,避免员工在同一个文件上重复操作却得不到预期效果。
四、部署与操作建议
先确认业务目标:如果目的是确保合同或报表内容不被修改,使用文档内容签名;如果目的是让内部宏在受控环境中运行,使用宏签名。两者都需要时,分别签署,并在文件说明中写清各自作用。
签名前完成文档定稿、宏代码测试和版本号写入。签名后设置文件为只读,避免误编辑。对外发送时保留原始文件,不要用在线转换、截图或压缩工具二次处理。对批量报表,建议使用支持自动化的签名工具,并记录每个文件的签名结果。
五、验证与排查
文档签名异常时,先查看签名面板中的证书链、时间戳和内容修改提示。宏签名异常时,查看宏安全设置、受信任发布者列表和证书状态。不要通过降低宏安全级别来“解决问题”,这会扩大攻击面。
如果收件方看不到签名,确认对方 Office 版本、操作系统和证书信任列表。跨平台场景可以先发送测试文件,确认显示效果后再发正式文件。重要文件可同时提供 PDF 版本,减少环境差异。
六、审计与留存
企业应保存签名文件的版本、签署人、证书主体、签名时间和文件哈希。对财务报表、合同附件等长期保存文件,定期抽查签名是否仍可验证。证书到期或人员离职时,确认历史文件是否仍能打开和验证。
宏文件还应保存代码版本和审批记录。签名只证明代码由某个主体签署,不证明代码逻辑安全。宏的权限、联网行为和数据访问范围仍需按企业安全规范审查。
七、版本与模板管理
企业使用文档签名的另一项基础工作是模板管理。合同、报价单、审批表应建立受控模板,模板中包含固定的签署域、版本号和责任部门。员工从模板生成文件,而不是复制旧文件后删改内容,可以减少隐藏修订、旧签名域和失效证书残留。
模板更新应走版本审批,发布后旧模板归档。每次更新记录变更内容、适用日期和负责人。对已经签署的历史文件,不要用新模板覆盖;对需要重新签署的文件,生成新版本并注明替代关系,避免同一合同编号出现多个互相矛盾的版本。
八、常见问题
问:Word 文档签名后还能编辑吗?
答:可以编辑,但编辑会破坏签名。正式文件应设为只读,修改后重新签署。
问:宏签名能防止文档内容被改吗?
答:不能。宏签名保护宏代码,文档正文需要单独的内容签名或其他完整性措施。
问:内部使用的宏一定要买证书吗?
答:内部测试可用自签名,但跨部门分发或对外发布建议使用受信任证书,并进行安全审查。
九、结语
SSLDUN 自 2017 年起通过合同方式获得 Certum 相关产品授权,可协助企业了解文档签名与代码签名证书的差异、准备材料并沟通审核问题。证书签发由 CA 按其规则执行。把两类签名放在正确的场景里,才能既保护文件内容,又管理宏信任。