6

我找不到任何理由说明为什么有人更愿意实施面向 CAdES 的电子签名软件解决方案而不是面向 XAdES 的电子签名软件解决方案。

互联网上有很多 XAdES 的开放库和实施案例和示例,但我仍然认为这不是人们决定使用 XAdES 而不是 CAdES 的原因。

是因为 XAdES 是面向 XML 的,而软件开发人员往往喜欢任何与 XML 相关的东西吗?在任何情况下,CAdES 是完全优于 XAdES 的最佳选择吗?

以供参考:

  • CAdES 是高级形式的 CMS/PKCS#7(支持时间戳)
  • XAdES 是高级形式的 XML-DSig(支持时间戳)
4

2 回答 2

8

CAdES 的一个优点是它通常会导致较少的互操作性问题,因为 XML-DSig 标准允许许多选项,包括 XSLT、XPointer 框架、XML 规范化等等。如果只处理严格的 DER 编码签名(一旦需要处理 BER 编码,图片就会改变),那么 CAdES 的要求会更低。

在需要在大数据块上生成“附加”签名的情况下,CAdES 的性能优于 XAdES(您希望结果是包含原始数据和签名的单个数据块)。附加的 CAdES 签名(原始输入数据存储在 CMS 结构的 EncapContentInfo 元素中)的等价物是 Enveloping Signature。如果您需要生成这种签名,那么如果您的 XAdES 实现是基于 DOM 的(我所知道的是),那么在处理大量输入数据时您很可能会遇到问题 - 您的机器最终会用完的记忆。

性能将是 CAdES 受青睐的另一个论点。CAdES 的消息摘要计算通常直接在输入数据的原始字节上完成,在 XML 文档上计算的 XML 签名涉及很多开销,例如 XPath 表达式的评估、XSLT 转换、Base64 编码/解码和规范化,可能还有几个 Transform 元素。

如果您正在构建用于长期验证存储大量签名的签名的归档系统,则 CAdES 是首选格式,因为它与文本 XAdES 格式相比更紧凑。

于 2011-07-04T23:55:22.360 回答
5

CAdES 优于 XAdES:

  • 实施的选项更少
  • (方式)更容易验证
  • 适用于任何类型的数据,包括 XML
  • ASiC 更容易
  • 构建它的 Windows API 更加健壮
  • 无需复杂的规范化
  • 可与 S/MIME 一起使用
  • 允许多个签名
  • 它用于 PAdES
  • 快点

XAdES 优于 CADES:

  • 签名的 XML 文件仍然可以被不知道加密的应用程序读取
  • 一次可以对多个元素进行签名
  • 您不需要 ASN.1 编译器

我会使用 XAdES 的唯一原因是第一个,个人意见。但随后,不知情的应用程序可能会修改文件,导致签名无效。此外,使用 *AdES 类型意味着您希望与欧盟法规兼容,这通常意味着使用 PAdES 签名的 PDF 文档。当您只想签署电子邮件时,CAdES 并不是很有用,因为大多数 S/MIME 客户端都没有对其进行验证。AdES 的东西是欧洲法律,所以没有多少美国应用程序知道它。

此外,这些表格不仅仅是带有时间戳的旧表格,还有很多插件。请参阅https://www.w3.org/TR/XAdES/https://www.secureblackbox.com/kb/articles/8-CAdES.rst

我还在 C++ for Windows 中实现了它们,请在此处此处查看我的完整工具集。

于 2018-09-09T20:47:07.123 回答