我正在寻找一种以实现以下目标的方式转换xml文档的方法:
这听起来像是一个经典的数字签名场景。但是,我不希望源和收件人应用程序必须处理与管理公钥和私钥相关的后勤问题。
所以,我的问题是:有没有办法在不使用数字证书的情况下可靠地满足这些要求?
答案 0 :(得分:3)
如果您不真正寻求安全性 - 特别是在伪造/更改方面,嵌入在应用程序中的秘密对称密钥将足以满足更改检测和加密方面。只需使用标准分组密码和MAC(Message Authentication Code (wikipedia))。当然,提取密钥并更改这些文档会相对简单。
不幸的是,确定来源有点棘手。使用PKI时会隐式识别身份,因为每个私钥都隐式标识实体。由于您没有这样的自然标识符,您现在需要定义自己的标识方案:可能是您在运行它的计算机上看到的第一个网络适配器的MAC地址,或者可能是更明确的方案,您明确指定标识个人应用程序或使用该应用程序的个人。一旦你有了某种身份定义,在加密/签名操作作为单独的XML字段之前,在文档的开头添加这个标识字符串是一件简单的事情。
答案 1 :(得分:1)
对于身份验证,您需要一些确保此身份验证的密钥方案。如果您不特别喜欢证书,则替代方法是使用OpenPGP密钥用于XML(XMLDSig支持OpenPGP密钥)。
答案 2 :(得分:1)
[披露:我为ARX的CoSign工作]
但是,我不希望源和收件人应用程序必须处理与管理公钥和私钥相关的后勤问题。
使用PKI的另一种方法是使用PKI,但通过使用集中式SSCD (Secure Signature Creation Device)来最小化通常的PKI后勤问题。
将其与自动生成已存在于收件人计算机信任链中的证书的能力结合起来。 CoSign和其他人这样做。
收件人可以轻松验证生成的数字签名XML文件的身份/真实性和完整性,同时最大限度地减少签署XML文件的管理负担。