PDF 签名与防篡改:电子合同背后的逻辑
文章摘要
这篇文章用通俗语言解释电子签名的底层原理,为什么 PDF 能防止篡改,数字证书是怎么验证的,以及签名显示“无效”的几种常见原因。
PDF 签名与防篡改:电子合同背后的逻辑
现在越来越多的公司使用电子签名,合同、协议、发票都通过 PDF 形式传递。你可能注意过,有的 PDF 打开后顶部会显示“签名有效”,而有的则提示“文档已被修改”。这背后,其实是一整套数字签名与防篡改机制。
一、签名 ≠ 图片签名
很多人误以为 PDF 的签名只是贴上一张签名字体或图片,其实那只是视觉层面的“签章”。真正的 PDF 数字签名是文件内部的一段加密数据。
数字签名包含三部分:
- 签名者身份:通过数字证书(Certificate)证明。
- 签名哈希:由文件内容计算出的唯一指纹。
- 加密签名块:用签名者私钥加密的哈希值。
PDF 阅读器会用签名者的公钥解密签名块,再与当前文件重新计算出的哈希比对,若一致则说明未被改动。
二、证书:身份的凭证
电子签名的核心是证书(Certificate)。它由权威机构(CA)签发,内容包括签名者姓名、机构、有效期、公钥等。
常见的机构有 CFCA、Adobe、GlobalSign 等。PDF 中的证书可以是:
- 自签名(Self-signed)——自己生成,不被浏览器信任。
- 受信任机构签发——自动验证身份。
在 Acrobat 中打开签名详情,可以看到完整的证书链。
三、防篡改的关键:文件哈希
PDF 在签名前,会先计算文件哈希(SHA-256 等)。这相当于给文件做“指纹”。任何一个字节被改动,指纹都会变。
所以,一旦有人在签名后改动了文件内容,签名验证就会失败,阅读器提示“文档已被修改”。
四、常见的“签名无效”原因
- 使用了未受信任的证书:阅读器无法验证颁发机构。
- 签名后修改了文件:哪怕只是加了个注释,也会导致失效。
- 文件损坏或二次压缩:导出或编辑时破坏了签名结构。
如果只是添加了注释,Acrobat 可能提示“签名有效但文件已修改”,说明签名本身没问题,只是外层多了一层批注。
五、签名的时间戳
电子签名不仅验证“是谁签的”,还要证明“何时签的”。时间戳服务器(TSA)会为签名加盖时间,避免“倒签”或“篡改签名时间”。
这一步尤其关键,在电子合同、法院证据、发票认证中都有法律效力。
六、实用建议
- 保存签名前的原文件,便于二次签章。
- 签完后不要再用 PDF 编辑器修改内容。
- 企业合同建议使用受信任 CA 签发的证书。
- 多方签署时,按照顺序签章,避免覆盖前一方签名。
七、结语
PDF 数字签名看似复杂,其实逻辑很简单:用数学手段保证“身份可验证、内容不可改”。下次当你看到“签名有效”时,不妨想一想,那不仅仅是一张图片,而是加密与信任体系的结合。