我经常建议人们使用 SSH 隧道来确保在开放 WIFI 或其他不安全情况下的浏览安全。
最近,在我建议使用 SSH 隧道后,一位朋友问我 SSH 隧道有多安全。我犹豫了一下,重申“它很安全”。
尽管他对这个答案很满意,但我还是有点烦恼,因为我无法完全回答。
所以这个问题是留给你们的:
“SSH 隧道有多安全?”
答案1
我只想在这里引用维基百科的一点内容:
即使对称密码目前无法通过利用其算法中的结构弱点来破解,但仍有可能通过所谓的暴力攻击遍历整个密钥空间。由于较长的对称密钥需要进行指数级的暴力搜索,因此足够长的对称密钥会使这种攻击变得不切实际。
对于长度为 n 位的密钥,可能存在 2 n 个密钥。随着 n 的增加,这个数字会迅速增长。摩尔定律表明,计算能力大约每 18 到 24 个月就会翻一番,但即使这种翻倍效应也让目前被认为可以接受的较大对称密钥长度远远超出了范围。人们普遍认为,在可预见的未来,尝试所有可能的 128 位密钥所需的大量操作 (2 128 ) 是传统数字计算技术无法实现的。但是,预计替代形式的计算技术可能具有比传统计算机更强大的处理能力。如果能够可靠地运行 Grover 算法的合适大小的量子计算机问世,它将把 128 位密钥的安全性降低到 64 位,大致相当于 DES。这是 AES 支持 256 位密钥长度的原因之一。有关更多信息,请参阅本页底部有关密钥长度与量子计算攻击之间关系的讨论。
因此,128 位密钥将有 340,282,366,920,938,463,463,374,607,431,768,211,456 种可能的排列。想象一下要尝试所有这些排列。即使是功能强大的台式计算机每秒也只能尝试几次。
因此,尽管理论上可以强行解密 SSH 流,但是当密钥被最强大的计算机解密时,会发生两件事:
- 密钥将被 SSH 更改
- 我们都会死,太阳爆炸并毁灭地球。
答案2
<免责声明:不是密码学专家>
SSHv2 使用与 TLS/SSL 大致相同的算法:
- DH, 最近体外循环氢可酮代谢或 RSA 进行密钥交换;
- RSA,数字减影动脉造影或者椭圆曲线数字图像分析用于服务器身份验证(通常也是客户端身份验证)。
- 高级加密标准 (AES)用于对称加密(使用随机生成的密钥对整个数据流进行加密)。
它们都被广泛使用并且被证明对于日常使用是安全的。
但是,对于任何协议,安全性都取决于您是否知道正在与正确的服务器通信。对于 SSH(标准配置),第一次连接到服务器时,您必须验证其指纹(不要像许多人那样,不进行实际检查就直接确认。)下一次,服务器的密钥将与缓存的副本进行核对,以防止中间人攻击– 但前提是首先缓存了正确的密钥。
(相比之下,TLS/SSL 通过使用知名机构颁发的 X.509 证书来处理上述问题,这些机构值得信赖不会签署虚假证书。)
答案3
SSH 安全的真正问题是证书。许多公司会为 SSH 连接提供安全密钥,而包含这些密钥的数据库被黑客入侵并非第一次。因此,确保安全的最佳解决方案是生成自己的密钥对,但这很麻烦,这就是我们依赖这些公司的原因……直到他们被黑客入侵,我们不必检查 340,282,366,920,938,463,463,374,607,431,768,211,456 个密钥,而只需检查数据库中的密钥。