公钥和主机密钥的区别和主机密钥的安全性

信息安全 密码学 SSH 协议 不对称 ssh 主机密钥
2021-08-19 17:14:59

在 SSH 中,主机密钥和公钥有什么区别。

公钥我相信它是私钥/公钥对的一部分,因此,服务器发送的任何内容(使用私钥加密)都可以由客户端使用公钥解密,而使用公钥加密后发送的任何内容只能由服务器的私钥解密.

在 SSH 中,服务器发送一个 Host 密钥,客户端应该事先知道主机密钥的 Hash,或者在客户端第一次收到密钥后将其缓存在本地存储中,这样可以保证主机的真实性。

我的问题是:我对两者区别的理解是否正确?如果是,那么一旦机器在连接到它时获得服务器的主机密钥,它能否不复制主机密钥并伪造其身份作为它复制的主机密钥的服务器,或者私钥和主机密钥之间存在某种关系它在公钥和私钥之间?

1个回答

主机有一个密钥对,由一个公钥和一个私钥组成。(它可以有多个不同格式的密钥对;在连接开始时,客户端和服务器协商确定它们都支持的格式。)有一个主机公钥和一个主机私钥;还有其他不是主机密钥对的密钥对(公钥和私钥)(在 SSH 中,用户也有密钥对,私钥位于客户端上)。

在连接开始时,双方通过Diffie-Hellman 密钥交换建立安全通道,让他们建立窃听者无法发现的共享密钥。此时,客户端和服务器有一个安全通道(不能被中间人篡改而不被发现),但他们还不知道通道的另一端是谁。

然后客户端向服务器发送一个随机值,一个挑战服务器通过发送其公钥以及挑战值的签名来回复。通过计算挑战值的签名,服务器证明它知道与它刚刚发送的公钥对应的私钥。如果客户端已将主机的公钥存储在一个文件中,那么它从那一刻起就知道服务器是它之前与之通信的同一台主机。

在这种机制中,每个人都可能知道公钥,一方发送质询,另一方以证明其知道私钥的方式响应质询(称为拥有证明),是公共密钥的常见用法。密钥密码学。它完全依赖于公钥加密是非对称的这一事实:知道公钥并不能提供足够的信息来进行涉及私钥的计算。