周一晚些时候,包括苹果、思科、英特尔、高通和微软等科技巨头在内的 Wi-Fi 联盟正式推出了新的 Wi-Fi 安全标准 WPA3。这个标准将解决所有已知的、会影响重要标准的安全问题,同时还针对 KRACK 和 DEAUTH 等无线攻击给出缓解措施。WPA3 为支持 Wi-Fi 的设备带来重要改进,旨在增强配置、加强身份验证和加密等问题。重要改进主要包括:防范暴力攻击、WAP3 正向保密、加强公共和开放 Wi-Fi 网络中的用户隐私、增强对关键网络的保护。据了解,这项新协议可以在个人、企业和物联网无线网络模式下运行。

1.更安全的握手协议

即使用户的密码复杂度没有达到推荐的复杂性,WPA3也可以给予用户鲁棒的保护。也就是说,对于只使用密码来保护的个人网络和普通家庭网络,需要使用SAE(Simultaneous Authentication of Equals)握手。值得注意的是SAE握手可以抵御非在线的词典攻击。相比之下,使用弱密码的个人WPA2网络易受非在线的词典攻击。因为实践中许多网络使用的都是弱密码,所以WPA3在抵御此类攻击上做了很大的改善。

论文中已经证明了这种新的SAE握手协议的设计是安全的。证明还确认了握手能够提供前向保密,如果攻击者知道了网络中的密码,也不能解密获取到流量。在WPA2网络中,在得到密码后就可以解密之前获取的流量。所以,WPA3的SAE握手协议在这方面做出了很大的改进。

如果握手协议实现的过程中不够仔细,也是会受到侧信道攻击。另外,因为握手是为平衡的PAKE设计的,AP(Access point,访问点)必须以明文的形式保存密码。也就是说,AP只能存储明文密码而不是密码的其他形式,所以有人一旦得到了AP的访问权限,就可以读取明文密码了。

因为SAE握手协议的证明是理论上的,所以不能保证在实践过程中的安全性。而且WPA2也是经过安全证明的,同样受到了安全攻击。因此,要确认安全证明的正确性,做出合理的假设、证明正确的特性、对真实的应用进行建模等。

从技术的角度去看,SAE握手是RFC 7664中定义的Dragonfly握手的一个变种,背后的期初数SPEKE握手。在Wi-Fi网络中,SAE握手要协商新的PMK(Pairwise Master Key)。而生成的PMK会被用于传统的4次握手来生成session key。也就是说,SAE握手之后是一个4次握手的过程。可能有人很奇怪为什么会使用4次握手,因为4次握手的安全性比较弱。但在4次握手中,SAE握手协商产生的32字节PMK是不能用词典攻击进行猜测的。而且SAE握手保证了在知道密码的情况下不能恢复PMK,所以前向保密事实上是得到保证了。

2.DPP替换WPS

WPA3带来的第二个改善是对没有或只有有限的显示接口的设备提供简化的、安全的配置。也就是说替换了WPS,因为WPS本身是不安全的,所以WPA3中使用了Wi-Fi Device Provisioning Protocol (DPP)协议替换了WPS。通过DPP协议,用户可以用QR码或密码的方式向网络中安全的添加新的设备。DPP协议还定义了使用NFC和蓝牙协议添加设备的方法。从本质上讲,DPP是依靠公钥来识别和认证设备的。

DPP协议本身含有3个主要阶段。第1阶段叫做bootstrapping,在这一阶段会获取新设备的公钥。这是通过扫描编码公钥的QR码或者使用PKEX协议通过无线的方式交换和加密公钥完成的。同样地,使用NFC和蓝牙也可以完成公钥传输。每种方法都提供了不同等级的确认方式来确保获取的公钥确实是属于新设备的。

第2阶段叫做认证和供应。可信的公钥会被用来建立一个(临时的)认证连接,在该连接之上可以交换凭证。交换的凭证还不是连接网络的最终凭证,事实上,交换的凭证只是一个connector(连接器)。Connector会在DPP协议的最后一阶段中确定真实的网络密钥。也就是说连接器会被用来执行Diffe-Hellman交换来建立PMK,然后PMK会被用来访问网络。

3.非认证加密

WPA3的第3个特征是通过单独数据加密的方式来开放网络中增强了用户隐私,这就是开放网络的非认证加密。WPA3应该是支持OWE(Opportunistic Wireless Encryption )。在实践中,被动攻击者只能嗅探、监控流量,而不能读取客户端的流量。但主动攻击者仍然可以通过创建虚假AP的方式,诱骗受害者连接到虚假AP上,然后读取连接的客户端的所有流量。

值得注意的是搭建一个WPA2网络,然后共享密码给用户并不能阻止被动攻击者解密所有流量。这是因为只要攻击者获取了客户端连接到WPA2网络的握手,就可以将握手融合到公共密码中来解密客户端和AP之间的所有帧。对于主动攻击者可以搭建一个有相同名称和密码是WPA2网络,然后连接到AP,这样攻击者就可以拦截和读取所有的流量了。

OWE的好处就是可以防止被动攻击,但攻击者可以发起主动攻击来拦截流量。OWE的一个缺点是目前没有一个机制在第一次使用的时候就信任AP。相比而言,第一次连接到SSH服务器时,是可以信任服务器的公钥的,这就可以防止攻击者未来拦截流量。因为OWE没有第一次使用就信任某个特定AP的选项。所以即使之前就连接过某个特定AP,攻击者仍然可以搭建虚假AP然后诱骗用户连接。

从技术的角度讲,OWE握手用Diffe-Hellman密钥交换协商了一个新的PMK。握手被封装在(re)association请求和相应帧中的Information Elements (IEs)中。最后生成的PMK被用于4次握手中,用来协商和安装帧加密密钥。

4.增加Session Key大小

WPA3提供的第4个改进就是增加的session key大小,准确的说,参考了Commercial National Security Algorithms (CNSA) suite。也就是说WPA3支持256位密钥的AES-GCM和384位曲线的椭圆曲线加密。SHA2家族的SHA384也可以使用,任何应用的RSA密钥必须至少是3072位。总的来说,结果是保证了192位的安全性,因为这是384位椭圆曲线和SHA384的有效强度。