可以通过 Wi-Fi 嗅探 SSH 密码吗?

可以通过 Wi-Fi 嗅探 SSH 密码吗?

ssh您使用不受信任的公共 Wi-Fi(咖啡厅、图书馆、机场等)时,您输入的连接密码是否会被拦截。

答案1

您当然可以在公共 Wi-Fi 网络上捕获数据包,但如果您使用 SSH 并且您的密码没有以明文形式发送,则需要相当多的时间才能解密您将捕获的内容。

答案2

SSH 被设计为可在不受信任的网络上使用。 Wifi、有线,都没关系:SSH 假设所有流量都可以被攻击者监控,甚至攻击者会尝试拦截数据包并用不同的数据包替换它们。

第一次从特定客户端运行 ssh 到特定服务器时,ssh 会询问您

The authenticity of host 'example.com (192.0.2.42)' can't be established.
RSA key fingerprint is 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef.
Are you sure you want to continue connecting (yes/no)? 

此时,您需要检查远程服务器的身份(由密钥指纹给出)是否是您期望的身份;攻击者可能试图冒充服务器。一旦进行了此验证,并且对于从该客户端到该服务器的每个后续连接,您可以相信该通信不会被窃听者监视并且可靠(因为您键入的命令确实会发送到服务器,并且响应实际上是服务器发送的那些)。

窃听者无法获取 ssh 会话中的数据,但他们可以观察流量及其时间。这可能会泄露机密数据;以交互方式输入的密码尤其面临风险:它们在连接开始时很容易识别,并且它们是逐个字符发送的,因此窃听者可以测量击键之间的时间,并且每种测量都使她更容易一些猜测密码(更轻松并不意味着简单的!)。此弱点不会影响公钥身份验证,出于安全性和可用性的考虑,建议使用公钥身份验证而不是密码。

答案3

SSH 是加密的。但经验法则是,即使很困难,您也不应该假设通过公共渠道发送的任何内容都不会被窃听。

我曾经走进过关于 SSH 密码如何容易受到统计分析的文章——这是破解凭证的一种方法。

密码被嗅探,只是不容易得到对应的明文。

您还可以探索其他身份验证策略,例如公钥-私钥对,它可能不像密码那么容易破解(只要您无法快速分解质数)。

相关内容