我正在寻找一种发布数据以及数字签名(理想情况下是时间戳)的好方法,这种方法可以通过在公共数据上本地运行的软件尽可能容易地进行验证。
例如,假设一位选举管理员想要发布要审计的选举数据(按选区按候选人统计的总数)。理想情况下,我们不希望公众必须购买很多特殊或专有软件。符合开放标准、可在 PC、Mac、Linux 上验证并可由开源软件生成的签名是首选。
数据必须保持机器可读,因此不适合使用 pdf ,因此如果使用 pdf,则数据将在 pdf 的附件中。
例如,如果我们生成 XML 签名(例如,用于选举的IEEE 1622-2011选举标记语言 (EML) 文件),是否有任何常见浏览器或操作系统中的标准功能来验证签名?用户界面是否足够清晰,可以让用户清楚地了解数据什么时候看起来不错,什么时候可疑,以及如何处理常见问题?
替代方案(和担忧):
- RFC 3161 - Internet X.509 公钥基础设施时间戳协议 (TSP) - 哪些跨平台客户端是友好的?
- OriginStamp,由比特币区块链支持(快速周转收费)
- 带有附加数据文件的签名 PDF 概述:时间戳是否可以验证和信任?用户是否可以通过伪造的证书被欺骗进入
- 通过各种带时间戳的社交网络发布指向数据及其哈希的链接:Keybase(由良好的加密规范支持),Twitter(流行),...
- XML 签名
- 在报纸上发布 SHA-256 哈希(如何向用户描述验证步骤?)
- 使用 jar(签名的 zip)和 jarsigner(是否有一个很好的 GUI 来验证 jar 签名?X.509 PATH 验证?)
- 使用 OpenOffice(安装麻烦)
- CMS或 S-MIME(我们如何发布带有附件的 S-MIME 消息 - 公共 IMAP?)
- 使用 gpg(但管理员需要进入 PGP 信任网络,用户需要学习理解它)
- 使用 s-http(可惜https://www.rfc-editor.org/rfc/rfc2660一直没有起飞......)
- 使用 Excel(是否有可以检查签名的免费客户端?开源软件通过脚本生成它?)
- “仅从安全网站提供服务”(不处理各种攻击)
2019 年更新:
- 用一些较新的选项更新了选项列表,并阐明了我的目标(在云时代),即可以通过本地运行的软件验证的方法。我们越来越多地了解到 Web 服务器容易受到攻击,而分发签名数据也有优势。
- 请注意,如今 EML 甚至 XML 正在失去青睐