如何正确保护 ssh 会话免受 MITM 攻击?

信息安全 SSH 硬化 中间人
2021-09-10 03:14:59

如何提高 ssh 会话对中间人攻击的安全性?

3个回答

确保您注意有关更改服务器公钥的警告。如果您收到这样的警告,请说“不”并通过带外方式检查公钥指纹;除非您以某种方式验证了公钥指纹,否则不要说“是”。

如果您从不连接到新主机,则可以设置

StrictHostKeyChecking yes

在您的~/.ssh/config配置文件中(或在 中/etc/ssh/ssh_config)。但是,如果您经常连接到新机器,这可能会很烦人。

阅读ssh 手册页的验证主机密钥部分。

阅读RSA 指纹如何防止 MITM 攻击?在这个网站上。

使用 SSH 私钥而不是密码进行身份验证。

如果您可以控制自己的基础架构,则可以考虑为主机和用户设置ssh 证书。这允许 ssh 客户端验证 ssh 服务器的身份。这可能是对抗中间人攻击的最佳解决方案,因为它消除了用户仔细检查指纹的需要。实际上,许多用户可能不会费心去检查,因此 ssh 证书可能是一种更有用、更可靠的防御措施。

始终使用公钥进行身份验证(更好的是,在 中完全关闭密码身份验证/etc/ssh/sshd_config),这应该可以阻止任何针对 OpenSSH 的 MITM 攻击。

这是一个更详细的简短解释:http: //www.gremwell.com/ssh-mitm-public-key-authentication

在 MITM 中,攻击者通常伪装成真正的服务器。攻击者不会传递真实服务器的公钥,因为它没有相应的私钥;因此,假设“我们假设 MITM 攻击者已经设法绕过服务器主机密钥验证并欺骗对等方建立连接”意味着客户端已经建立了一个在攻击者处终止的 SSH 连接。反过来,攻击者正在建立与真实服务器的连接并提供自己的公钥。

会话 ID 是一个完全的红鲱鱼,因为攻击者根本不会传递它;它将建立一个合法的客户端连接并终止客户端的连接,并在两个连接之间代理输入/输出。