0

Alice 想从 Bob 那里知道敏感资源的位置。Bob 好心地告诉 Alice 位置,但是 Alice 怎么能确定 Bob 的身份呢?

Bob 是一个 OpenBSD 服务器,数据源是一个 Python/C++ App。

我的想法是:

Alice 知道 Bob 的公钥。

Alice 用 Bob 的公钥加密一个随机字符串,并将其发送给 Bob。

Bob 恢复随机字符串,并对其进行哈希处理。Bob 将敏感资源连同哈希一起发回。

这种方法的问题是:我可以安全地将私钥存储在 Bob(服务器)上吗?如何?有更好的解决方案吗?

4

2 回答 2

1

如果 Bob 没有私钥,那么 Bob 唯一知道的还有什么可以用来标识自己的呢?如果你不能信任 Bob 来保证其私钥的安全,那么无论你做什么,你都会陷入困境。

如果花额外的钱是值得的,你可以做的一件事是拥有另一台不在线的机器(称为 Cipherclerk),它只能与 Bob 通信,并且只会进行某些类型的通信。Cipherclerk 持有私钥,并使用它为 Bob 解密。那么,即使 Bob 被远程破解,至少私钥不会被泄露。

对您的想法的改进是让 Bob 使用 Alice 的随机字符串作为对称密钥来加密资源。

于 2011-10-03T00:33:21.630 回答
0

如果有人可以在中间攻击中安装一个人,这种方法是完全不安全的。攻击者马洛里可以简单地将敏感信息剥离出来,用她的信息代替,然后转发给爱丽丝。

解决方案是使用 TLS 或 SSH。无论哪种情况,请确保 Alice 拥有 bob 的公钥或密钥指纹。这是一种广泛使用的解决方案,并且是安全的,前提是没有人可以更改 Alice 存储的数据或读取 bob 存储的数据。

于 2011-10-10T01:04:57.060 回答