当您通过 SSH 连接到另一台计算机时,两台计算机之间传输的所有数据都加密了吗?或者是否以明文或任何其他“易于拦截”的格式发送任何数据?
所有通过 SSH 发送的数据都加密了吗?
信息安全
加密
SSH
2021-08-19 18:05:18
1个回答
对于任何协议,您都可以提出“所有数据”的定义,这必然意味着某些内容未加密发送。
例如,在初始化和密钥交换期间,算法选择是公开的。如果你抱怨这个事实,你的普通密码学家只会给你挑眉,因为显然它不能被加密,因为你还没有选择算法。
显然,如果仅出于设置加密的目的,则必须以未加密的方式发送某些内容。但是一旦连接安全,一切都是安全的。一旦你有了一个加密通道,从那一刻起,就不会在该通道之外发送任何内容。此外,该协议非常谨慎,以避免在加密可用之前发送任何敏感数据。没有用户名,没有密码,没有任何类型的标识,没有目的的指示,或任何类似的。
使用常见的免费工具(例如wireshark)可以轻松解码几乎没有解码的内容。启动数据包捕获,启动 SSH 会话,然后自己检查交换。你会立即看到什么可以看到,什么不能。Wireshark 在解码协议方面做得很好,让您可以查看其工作原理的内部结构......在观看网络流量的人可以看到的范围内。
典型的流程如下所示:
- SSH 版本/软件识别
- 密钥交换初始化(算法选择)
- Diffie-Helman 密钥交换(使用 SSH 主机密钥来防止 MITM)
这之后的所有内容都是加密的 - 用户认证(包括基于用户密钥的认证)
- SSH 会话现在激活
其它你可能感兴趣的问题