SSH服务器指纹可以被欺骗吗?

信息安全 SSH 中间人 欺骗 指纹
2021-08-27 18:07:22

如果我只是连接到一个 SSH 服务器,获取它的密钥指纹,然后立即断开连接,那么 SSH 协议是否确保服务器也拥有私钥以便深入握手?

也就是说,这整个连接会不会被冒充服务器的人欺骗,但没有拥有服务器的私钥?

2个回答

不,这是不可能的。根据使用的密钥交换机制,有(稍微)不同的机制来证明服务器的身份。这是在RFC4253中定义的,它需要“显式服务器身份验证”。在 RSA ( RFC 4432 ) 的情况下,服务器使用其私钥对客户端提供的一段数据(实际上是几段的哈希)进行签名并将其发送回客户端。该签名证明服务器拥有私钥。没有这个,SSH 上的 MITM 攻击根本没有任何保护措施。

客户端和服务器进行 Diffie-Hellman 密钥交换(生成临时密钥)。其中一个产品是会话密钥和该会话密钥的散列。ssh 服务器使用其(“长期”)主机密钥的私有部分对会话密钥进行签名。客户端使用公钥对其进行验证。这就是避免 MITM 的方式。请记住,无法使用 DH 强制指定特定值。MITM 需要用它自己的 DH 协议欺骗客户端,并用它自己的 DH 协议欺骗服务器。如果不控制私钥,那是不可能发生的。请记住,这是独立于客户端身份验证的服务器身份验证。