验证远程客户端上的XML签名

时间:2016-07-07 14:17:11

标签: xml cryptography digital-signature public-key-encryption pki

假设我有一个场景,我有几百台远程PC。这些PC 从不连接到互联网。至少每月一次,某人的任务是使用我控制的实用程序将更新的数据加载到USB驱动器上,将其传送到远程PC并将其插入.PC上有软件,知道如何从USB驱动器导入和安装数据。我也可以更新和控制这个软件。我想开始验证加载到这些PC的数据的完整性和来源,以确保没有人篡改加载到USB驱动器的数据。我的想法是散列USB驱动器中包含的所有文件,将与每个文件对应的哈希值存储在XML文档中,并对XML文档进行数字签名。数据未加密;我不在乎别人是否看到了这些数据,我只是不想让任何人篡改它。

我遇到的问题是如何验证XML文档的签名者。典型的PKI实践会让我使用远程PC信任的证书颁发机构(CA)签署我的公钥,以验证我的身份。

然而,由于这些远程PC从不连接到互联网,我无法保证远程PC具有最新版本的公钥,甚至不知道给定的CA.我是否有安全的方式来分发证书密钥或我可以用来实现此目的的其他身份验证方法?

Diagram for Clarification

1 个答案:

答案 0 :(得分:2)

您无需使用Internet连接即可使用公钥加密,而 正是我将如何解决此问题。

我不认为你需要一个" CA."您只需要在应用程序中嵌入已知的公钥例如,该公钥可用于解密XML内容并验证其加密签名。这将同时处理知道XML来自可靠来源(你......),以及它没有被更改的问题。

XML文件可以以加密形式存储在目标系统上,并在每次使用时进行解密。如果隐藏XML内容并不重要,可以通过加密方式签名。