0

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

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

但是,由于这些远程PC从未连接到互联网,我不能保证远程PC具有最新版本的公钥,甚至不知道给定的CA.有没有一种安全的方式来分发证书密钥或我可以使用的另一种身份验证方法来完成此操作?

Diagram for Clarification

回答

2

你并不需要有互联网连接才能使用公钥加密,这是究竟我怎么会解决这个问题。

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

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

+0

谢谢。这对我来说更有意义。 –