安全外壳的漏洞

信息安全 已知漏洞 SSH
2021-08-16 06:40:30

我通过 ssh 登录学校的工程计算机,定期提交大型程序项目。如此频繁地使用此频道是否有任何漏洞或担忧?是什么让安全外壳如此安全?我要连接的计算机在我的计算机上可以访问什么?

2个回答

远程服务器无法访问您的机器;SSH 会话本质上是通往远程机器上 shell 帐户的隧道。

SSH 之所以安全,是因为它使用与TLS类似的机制,强制机密性和真实性。本质上,SSH 服务器有一个公钥,它会传输给您并存储在您的机器上。然后,您相信该密钥可用于所有未来的通信。只要 SSH 公钥的原始传输没有被篡改,就可以维护以后的通信安全。

当您连接时,您的客户端使用服务器的公钥加密随机生成的会话密钥,并将该加密密钥发送到服务器,服务器使用私钥(这是秘密的,只有服务器知道)来解密消息。那时,只有您和服务器知道会话密钥,并且可以使用它使用对称密码来加密消息。会话密钥还用于通过消息验证码来强制消息的真实性和完整性,这允许对话双方确保传输的任何部分都不会被第三方更改。

握手的简化版本如下:

  1. 服务器为非对称密码生成一个密钥对,例如 RSA。私钥是保密的。该密钥对用作服务器的身份,通常只生成一次,然后不经常更新。
  2. 服务器向客户端发送其公钥。这只需发生一次,即客户端第一次与服务器通信,或者服务器更改其公钥时。之后,客户端保留公钥的本地副本。
  3. 客户端和服务器就要使用的密码套件达成一致,例如 AES-128 和 SHA256。这个过程相当复杂,有点超出了这个答案的范围。
  4. 客户端为选择的对称密码生成一个随机会话密钥(例如 AES-128 的 128 位密钥)并使用服务器的公钥对其进行加密。
  5. 客户端将消息发送到服务器。
  6. 服务器使用私钥解密消息,并使用解密的会话密钥作为所选对称密码的密钥。
  7. 每条消息都使用对称密码进行加密,并根据密码套件协议中选择的哈希算法通过 HMAC 进行身份验证。双方现在可以安全地交换消息。

显然,这掩盖了一些细节,但它是对所发生事情的合理表示。

多项式的答案涵盖了您问题的难点。对于其余的:

“是什么让安全外壳如此安全?”

“安全外壳”是之前存在的替代方案。Telnet、FTP、rcp 和 rsh。

这些协议都在明文中运行,任何可以嗅探流量的人都可以轻松拦截。他们还受到假冒攻击和中间人攻击,假冒者或 MITM 可以收集您的凭据或观看您的会话。

“如此频繁地使用这个频道有什么漏洞或担忧吗?”

频繁使用 SSH 并没有什么特别的问题。技术界的常见做法是对所有事情都使用 SSH。SSH 的安全风险通常与在面向 Internet 的服务器上使用弱密码的用户,或未能使 ssh 保持最新状态的管理员、在多次失败尝试后不锁定帐户或使用速率限制来减轻暴力破解有关。

最好禁用基于密码的身份验证并完全依赖公私钥对。密钥对实际上不能被暴力破解。

密钥对和非集中式信任的使用使得 SSH 的实现比 SSL 更值得信赖。但它需要更多技术用户来了解如何正确使用 SSH。