不依赖发行方可验证的签名证明
如何在不依赖发行方的情况下验证电子签名?关于Ed25519签名证据文件、PAdES密封和RFC 3161时间戳的说明。
不依赖发行方可验证的签名证明
当企业采用电子签名服务时,它依赖发行方保存证据。一旦发生纠纷,它往往必须要求发行方提供导出文件或证明。这种依赖并不总是令人满意:如果发行方停止运营,或者其服务器被攻破,会怎样?
存在一种替代方案:一份经过加密签名的证据文件,其公钥已公开,允许任何人验证文档的真实性,而无需信任发行方。这正是Sign-Hub所提供的。
什么是可验证的签名证明?
电子签名旨在保证文档的完整性和签名人的同意。但要使该签名具有法律效力,必须能够在事后对其进行验证。传统解决方案提供一个已签名的PDF文件和一个内部审计日志。然而,该日志存储在发行方处:第三方无法直接验证它。
可验证证明是一组数据(指纹、时间戳、标识符),可以使用公钥独立进行核验。这样,法官、专家或客户就能确认文档未被修改,且签名确实在某一日期发生。
Ed25519签名证据文件:Sign-Hub的一项创新
Sign-Hub的独特之处在于在一个专用URL上公开一个Ed25519公钥:https://sign-hub.newvisionofapps.fr/.well-known/sign-hub-keys.json。该密钥用于对每一份证据文件进行签名,该文件称为proof.json。该文件包含签名的元数据:日期、时间、IP地址(已匿名化)、文档标识符等。
借助该公钥,任何人都可以使用标准工具离线验证proof.json,或在https://sign-hub.newvisionofapps.fr/verify在线验证。这种做法很罕见:大多数参与者,如Yousign或DocuSign,并不为其日志提供可验证的公钥。他们仅提供一个PDF导出文件和一个内部日志,第三方无法验证。
验证是如何进行的?
- 客户端应用在每次签名后收到一个HMAC签名的webhook。
- 它下载已签名的PDF和证据文件
proof.json。 - 然后它可以使用已公开的公钥验证该证据文件的签名。
- 它还可以验证PDF,该PDF以PAdES格式密封。
这种验证不需要连接到Sign-Hub服务器:它可以随时进行,即使该服务已不复存在。这是您证据持久性的保证。
PAdES密封:对PDF的强化保护
由Sign-Hub签名的PDF以PAdES(PDF Advanced Electronic Signatures)格式密封。这是一项欧洲标准,定义了如何以安全方式将电子签名集成到PDF中。PAdES密封保证对文档的任何后续修改都将使签名失效。
具体而言,PDF包含一个基于证书的数字签名。该签名覆盖整个文档,包括元数据。因此,如果有人试图修改内容,签名将变为无效。
RFC 3161时间戳:可靠的日期
为了证明签名是在某一确切时刻附加的,Sign-Hub可选提供RFC 3161时间戳。该标准允许从可信第三方机构获取时间戳令牌。该令牌与文档在某一时刻T的指纹相关联,并且本身由该机构签名。
因此,即使您的计算机或Sign-Hub服务器的日期有误,时间戳仍具有效力。在就签名日期发生纠纷时,这是一个重要因素。
与其他参与者的比较
- Yousign:提供高级电子签名,某些套餐附带合格证书。然而,所提供的证明主要是PDF和可在其平台上访问的审计日志。没有公开的公钥用于独立验证。
- DocuSign:全球领导者,提供完整的审计日志,但验证依赖于对DocuSign的信任。没有像Ed25519那样的开放式证明机制。
- Universign:合格签名专家,依托公认的证书。其证明很稳健,但依赖于认证机构。
Sign-Hub的定位不同:它并不声称提供高级或合格签名,但它提供一种所有人都可验证的技术证明。这种透明度对于希望掌控自身证据的企业来说是一项优势。
需要了解的局限
eIDAS法规意义上的简单电子签名,通过电子邮件验证和PAdES密封得到强化。它既非高级,也非合格。对于某些用途(公证文书、公共采购),可能要求合格签名。在这种情况下,需要转向像Universign这样的参与者。
此外,该服务仅面向法国本土和DROM提供。数据托管在欧盟境内,符合RGPD。
为什么这对开发者来说改变了局面?
对于开发者而言,集成电子签名往往意味着信任一个黑盒。使用Sign-Hub,API有文档(OpenAPI 3.1),提供TypeScript SDK,并且有一个专为代码助手阅读而设计的llms.txt文件。但最重要的是,证据验证可以自动化:一个脚本可以无需人工干预地验证proof.json和已签名的PDF。
结论:一份属于您的证明
电子签名不仅仅是一次点击。它必须留下可靠且可验证的痕迹。Sign-Hub让您能够保存独立于发行方的证明,这得益于Ed25519签名和PAdES格式。您不必仅凭Sign-Hub的一面之词:您可以随时自行验证。
亲自尝试验证
请访问验证演示页面:https://sign-hub.newvisionofapps.fr/verify。您可以下载一个proof.json示例,并使用已公开的公钥进行验证。或者,如果您是开发者,请使用TypeScript SDK将这种验证集成到您自己的应用中。Découverte套餐每月免费提供10份文书,无承诺。亲自测试并评判吧。