您说得对,它们不是同一个问题:密码身份验证和对称加密是完全独立的概念,可以相互独立地实现。但是,密码是生成操作加密所需的密钥的几种方法之一。
您的计算机和 AP 之间的加密连接是使用对称加密实现的。为了使对称加密起作用,双方(计算机和 AP)都必须共享一个密钥(少量机密数据),用于加密流并随后对其进行解密。
这样做的一种常见方法是使用预共享密钥 (PSK),其中双方在尝试建立连接之前都知道密钥。这就是您在设置 Wi-Fi 密码时所做的事情:当您在路由器上输入密码时,然后在计算机上再次输入密码时,它们现在都拥有此信息。密钥的共享不是通过可能被窃听的网络进行,而是通过键盘手动进行,这通常更安全。
(从技术上讲,关键不是密码本身,而是从中派生的一些数据。)
加密需要密钥。这就是为什么要求您输入密码,以及为什么没有密码您无法获得加密的原因。除了密码短语之外,还有其他方法可以生成密钥,但您不会在 AP 上找到它们。
考虑这种情况:如果没有密码,AP 可能会生成密钥(例如使用强 PRNG)。密钥需要以某种方式传递给计算机。直接的方法是通过无线连接本身(假设 AP 没有其他方法可以将数据发送到计算机)。收到此信息后,可以对连接上的剩余流量进行加密。
问题是在发送密钥时连接没有加密(如果是,接收方将无法读取密钥)。窃听者可以轻松检索未加密的密钥并监控会话的其余部分,就好像它没有加密一样。
理论家会说,既然这是可能的,那么你的连接已经和未加密的一样好,你最好不要浪费 CPU 周期来加扰它。我说,除非攻击者在连接开始时就在附近,否则这种攻击不会有效,但您不能安全地假设情况并非如此(所有时间)。
有一些方法可以使用非对称(基于公钥)加密和身份验证来解决这个特定问题,其中通过一些数学魔法,您可以加密除接收者(甚至您!)之外的任何人都无法解密的数据,但它可以是设置起来很复杂,而且,截至我上次购买的时候,它不太可能是您的 AP 的内置功能。
更新:Diffie-Hellman
即使使用 Diffie-Hellman 密钥交换,仍然存在信任问题。
以下是原因的简要说明:
- 如果没有事先在各方之间建立信任,认证是没有意义的。
- 如果没有有意义的身份验证,DH 就没有意义。(它容易受到中间人攻击。)
- 没有有意义的 DH,基于 DH 交换的加密就没有意义。
- 没有有意义加密的通信(大致)等同于没有任何加密的通信。
- 因此,除非首先建立信任,否则基于 DH 的默认加密方案并不比不加密更安全。
- 如果没有第三方的信任机制(例如 PKI 或信任网络),建立信任需要直接交换信息(亲自、通过电话等,具体取决于偏执程度)。
- 任何用于直接交换的有用机制都可以(至少同样容易地)用于共享 PSK。
建立信任是陌生人之间没有直接交换很难解决的问题,而这样的直接交换已经足以共享一个 PSK。
理论上,避免直接交换的一种方法是从公共 CA 为您的 AP 购买 SSL 证书。这可能会有点贵,而且我认为 AP 所有者不太可能支付额外费用来为陌生人提供安全的 Wi-Fi。可以使用自签名证书代替,但这将要求客人要么盲目信任自签名,这使其对 MITM 开放,要么在检查其签名与原始证书后获取并安装证书——这将一次再次需要直接交换。