0

我正在寻找一种以实现以下目标的方式转换 xml 文档的方法:

  • 它可以通过 Internet 分发到已知的应用程序并由它们管理,而无需任何特殊的存储要求
  • 应用程序可以确定文档的来源
  • 应用程序可以确定它自生成以来是否已被篡改或更改
  • 该文档已加密,但出于混淆目的而不是因为它包含敏感信息
  • 应用程序可以通过编程方式读取 xml 的内容

这听起来像是一个经典的数字签名场景。但是,我不希望源和接收应用程序必须处理与管理公钥和私钥相关的后勤问题。

所以,我的问题是:有没有办法在不使用数字证书的情况下可靠地满足这些要求?

4

3 回答 3

3

如果您并不真正寻求安全性 - 特别是在伪造/更改方面,嵌入在应用程序中的秘密对称密钥足以满足更改检测和加密方面的要求。只需使用标准分组密码和 MAC(消息验证码(维基百科))。当然,提取密钥并更改这些文档会相对简单。

不幸的是,识别来源有点棘手。当您使用 PKI 时,身份隐含地出现,因为每个私钥都隐含地标识一个实体。由于您没有这样的自然标识符,您现在需要定义自己的标识方案:可能是您在运行它的机器上看到的第一个网络适配器的 MAC 地址,或者可能是您显式分配标识的更复杂的方案个人应用程序或使用该应用程序的个人。一旦您有了某种身份定义,在加密/签名操作之前在文档开头添加此标识字符串作为单独的 XML 字段将是一件简单的事情。

于 2013-04-30T20:41:28.403 回答
1

[披露:我为 ARX 的 CoSign 工作]

但是,我不希望源和接收应用程序必须处理与管理公钥和私钥相关的后勤问题。

另一种放牧猫的方法是使用 PKI,但通过使用集中式SSCD(安全签名创建设备)最大限度地减少常见的 PKI 后勤问题。

将它与自动生成已经在收件人机器的信任链中的证书的能力相结合。CoSign 和其他人这样做。

生成的数字签名 XML 文件可以很容易地被接收者验证身份/真实性和完整性,同时最大限度地减少签署 XML 文件的管理负担。

于 2013-05-02T07:44:48.873 回答
1

对于身份验证,您需要有一些密钥方案来确保此身份验证。如果您特别不喜欢证书,另一种方法是使用 XML 的 OpenPGP 密钥(XMLDSig 支持 OpenPGP 密钥)。

于 2013-05-01T06:20:19.457 回答