我的情况是我的应用程序必须读取XML文件,而另一个应用程序将放在文件系统上的特定位置(在多个平台上)。我控制着这份文件的内容。另一个应用程序只是提供运输。
我想确保文件在运输过程中未经过修改或以任何方式伪造。目前,我们只是将文档字符串的盐渍哈希写入XML文档本身之前的文件的开头。当我们解析文档时,我们只是删除哈希值,将其与文档其余部分的哈希值进行比较,然后将其发送给解析器。
有没有人有这种他们想分享的场景的经验?我缺少任何缺陷或更简单的方法吗?
答案 0 :(得分:3)
签署xml文档有一个标准:http://www.w3.org/TR/xmldsig-core/
如果您不想自己实施所有内容,建议您使用XML security library。
答案 1 :(得分:0)
我们加密整个xml文件并解密使用。这样我们就可以确定它是否已被修改;)
答案 2 :(得分:0)
您可以做的最安全的事情是加密两个应用程序之间的网络流量。你可以肯定地对文件进行散列,但像MD5 hash这样的东西应该可以做到这一点。
答案 3 :(得分:0)
您应该通过使用非对称加密算法加密salted哈希来签署邮件,然后沿文档发送。仅使用哈希不会强制执行安全性,因为某些入侵者可能会使用相同的哈希生成不同的消息。
答案 4 :(得分:0)
根据这些文档的重要程度,哈希可能就足够了。然而,如果你在两端都有PGP支持,那么更多防弹机制就是使用不对称的东西,如PGP签名。