问题
我正在尝试确定是否有任何标准(欧盟接受)关于客户端在提交表单数据之前对其进行数字签名。
所以约束是:
- 知道标准
- 欧盟接受
- 客户端(我们需要原产地证明而不是防篡改)
- 基于 javascript 和/或基于浏览器插件(任何语言)
- 可以处理网络表单相关内容(k/v 数据对)
- 该过程的输出应该是机器可读的(例如:form-urlenc、JSON、bson、msgpack)
- 输出格式不应该有歧义问题(意味着不是血腥的 XML*,也可能不是 form-urlenc)
到目前为止我对这个主题的阅读
XMLDSIG 很糟糕,因为 XML 可以通过无数种不同的方式进行规范化,从而使签名无效或更糟糕的是,附加的 XSD 或 XSLT(甚至 CSS)可以改变数据内容的可见呈现(取决于可视化工具),这意味着它可以改变其含义使用户面临可能的骗局。
PAdES 已经在我们的公共管理中使用,我们的项目范围可能包括必须构建带有嵌入式表单和数字签名的 PDF 文件。
PGP/GPG 或 S/MIME 可能是该角色的有效竞争者,但如果它们被欧盟法律正式认可或标准化,则不适用。另一方面,这两个都带有附加到数据的签名。
背景:
我正在为一个政府项目(在罗马尼亚)进行研究,该项目试图通过简单的网络表单实现数字签名。
我知道爱沙尼亚、比利时、法国和德国已经为电子身份证和文件的硬件数字签名以及他们使用的一些框架/工具(例如:hwcrypto.js)建立了类似的系统。
但我想了解他们的整个过程,例如他们是否对整个文档进行数字签名,或者只是机器可读格式的一些原始数据(如上所述)。
他们需要电子身份证还是可以与磁盘上的证书文件一起使用。