【发布时间】:2012-03-01 16:34:00
【问题描述】:
我有一个 Java 应用程序,它收集数据,将其写入 XML 文件并通过邮件发送此 XML 文件。此应用程序在许多不同的计算机上运行(不在我的范围内)。然后有另一个应用程序接收接收到的 XML 文件并将数据插入数据库(这个应用程序在我自己的服务器上运行)。到现在为止,我必须相信,数据没有被更改,并且 XML 文件确实来自受信任的来源。
现在我想到了使用 Java-Keystore 对 XML 进行签名。到目前为止有效的是:
- 我可以使用 keytool 创建密钥对。
- 然后我使用创建的私钥使用 Java 的 XML 数字签名 API (http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/) 对 XML 文件进行签名。
- 我还能够验证签名文件。
我现在的问题是,如何确保数据确实来自受信任的系统。我的意思是,到目前为止,我所做的只是确保数据在签名和验证之间没有被修改。我想要的是为每个向我发送数据的系统颁发证书,并且只信任我自己颁发的证书。但这怎么能做到呢?
【问题讨论】: