由WI-FI的不断发展,我们即将都会用上新的802.11ax协议和比较安全稳定的WI-FI安全协议WPA3。在我们到底能弄明白WPA3究竟能带来哪些好处之前,有必要对之前WI-FI无线协议历史有个历史回顾,忆苦思甜才能真正知道有多甜,吃水不忘挖井人,只有知道前辈们为了WI-FI安全所做的那些努力我们才能知道任何一个系统安全保障是多么的不易。本文虫虫就给大家讲讲Wi-Fi协议发展简史以及关键的历史点
在上世纪90年代中后期,互联网伊始,通过任何一个机器都可以"嗅探"任何其他给定机器的流量,即使在有线网络上也是如此。当时的以太网主要是通过集线器而不是交换机相连,任何稍微懂点互联网协议的人都可以随时通过网络抓包浏览网络流量中传输的内容,从底层的网络包到应用层电子邮件的内容都一览无遗。
在世纪交替之际(2000年附近),有线以太网已经从集线器(甚至是旧的同轴电缆网)转到了交换机。集线器会将收到的每个数据包转发给连接到它的每台机器,所以基于此的网络嗅探非常简单。相比之下,交换机只会将数据包转发到它们所指定的MAC地址,因此当计算机B想要将数据包发送到路由器A时,交换机不会向计算机C上的用户提供网络包。这一点点的微妙变化使有线网络比以前更加值得信赖。当1997年发布最初的802.11 Wi-Fi标准时,包括WEP-无线加密协议,它提供了与时下用户期望的有线网络具有相同的安全性期望,所以他的名字也是源于此。
WEP的原始版本需要一个10位数字或者26位的十六进制预共享密钥,比如0A3FBE839A类似的数字。由于十六进制位数可用字符有限制,只能0-9和A-F字母,所以和日常使用的可读字符比较差异很大,非常不易于阅读和使用,很容易出现故障。比如你使用一个个不在0-F范围的字母,就会报错。和大家预期的一样,WEP很快就被抛弃不用。尽管要求用户有效和准确地分享10或26位十六进制数字似乎非常不合理,但是在1997年确实是这样用的。
D-Link的DI-514 802.11b是WEP路由器的一个例子。它是一个非常完美的路由器。
后续版本的WEP提供了对客户端和路由器都一致方式,自动将任意长度的人类可读密码hash散列化到10或26位十六进制代码。因此,尽管WEP的底层仍使用原始的40位或104位数字进行处理,但是至少不用人们使用阅读和分享这些难记的数字串。从数字到密码的转变开始,使得WEP使用量开始攀升。
虽然人们实际使用中WEP还挺好,但这个早期的安全协议仍然有很多问题。一方面,它故意使用了很弱的RC4加密,尽管可以手动设置加强的加密算法,仍然容易被同一网络的其他机器嗅探。由于所有流量都使用相同的PSK进行加密和解密,所以任何人都可以轻松截取你的流量,并且解密。
这还不是最可怕的,可怕的是WAP密码可以很容易被破解,基于Aircrack-Ng 破解套件可以在几分钟内就能破解任何的WEP网络。
WPA的最初实现采用了802.11g WI-FI标准,该标准对WEP做了巨大地改进。 WPA从一开始就被设计为接受人性化的密码,但其改进远远不止于此。
WPA引入了TKIP,即Temporal Key Integrity Protocol临时密钥完整性协议。 TKIP主要两个主要用途。首先,它为每个每个发送的数据包创建一个新的128位密钥。这可以防止WEP网络在几分钟被攻破的窘境。TKIP还提供了比WEP简单循环冗余校验(CRC,Cyclic Redundancy Check)强得多的消息认证码。CRC通常可用于低可信度的数据验证,以减轻网络线路噪声的影响,但它有个天然缺陷,无法有效抵御针对性地攻击。
TKIP还使得不会自动将你的流量暴露给其他新加入Wi-Fi网络的人。WEP的静态预共享密钥意味任何人都可以完全清楚地接收其他人的流量。但是TKIP为每个传输的数据包使用了一个新的短暂密钥,所以其他人并不能使用这个密钥。连接到公共Wi-Fi网络的人,虽然大家都知道密码,但是各自用的数据加密密钥都不一样,你就无法直接浏览别人传输的网络包的内容。
但是TKIP也有其问题,并在2008年首次遭遇了中间人攻击(MITM,Man In The Middle)。安全研人员Martin Beck和Erik Tews发现了一种利用802.11e QoS功能解密WPA/TKIP网络中短数据包的方法,该攻击方法也叫"Beck-Tews攻击"。攻击过程只需要12-15分钟,但这并不是最糟糕的,当时还相对有很少的网络实际上实施了802.11e。
2009年,安全研究人员 Toshihiro Ohigashi和Masakatu Morii表了名为《有关Beck-Tews攻击的新变种》的论文,该论文披露了详细的攻击细节,该攻击可以攻击任何WPA/TKIP网络。
2004年,针对WEP和TKIP的已知的问题,电气和电子工程师协会(IEEE)创建了新的802.11无线网络标准802.11i扩展。拥有Wi-Fi商标的行业监管机构Wi-Fi Alliance则基于802.11i扩展宣实现了WPA2。该版本的改进是用AES-CCMP代替TKIP用于非企业认证(企业通常使用RADIUS来为每个用于单独分配密码,这两个密码,可以避免大多数身份验证攻击问题)。
有一些些802.11g路由器支持AES,但是真正大量的使用是从802.11n路由器开始的,比如上图中的 Linksys WRT310n。
这里的字母汤很厚很热:AES是高级加密标准(the Advanced Encryption Standard),CCMP是计数器模式密码块链接消息认证码协议(the Counter Mode Cipher Block Chaining Message Authentication Code Protocol.)。 AES-CCMP可以避免Beck-Tews及变种的中间人攻击。WPA2虽然支持AES-CCMP,但没有强制启用,为了兼容旧的非WPA2设备,很多用户仍然使用TKIP。
经管WPA2和AES-CCMP可以避免中间人工降,但是也并不是没有永久性地解决安全问题。2017年出现了的KRACK攻击像一般利箭刺穿了AES/CCMP的壁垒。
802.11i预期到偶尔会丢失网络连接,并且为了加速重新连接,它允许断开连接的设备重新使用旧密钥重新连接。因此,精心伪装的侦听器可以捕获数据包并使用重放攻击来强制网络重复发送具有新随机数的相同已知块。这样攻击者可以,通过这些信息重建整个密钥串,从而实现完全网络访问。
KRACK攻击由于利用了802.11i的漏洞,所以WPA2无法修复。虽然可以通过在密钥安装期间禁用EAPOL-Key帧重新传输等设置可以在很大程度上缓解攻击,但是这会导致下线设备回复重连的时间加长。不过,这是唯一可以防止KRACK攻击,提高安全性的方法。
在KRACK攻击公布后不久,Wi-Fi联盟于2018年1月推出了WPA3。WPA3通过将密钥预共享(PSK)替换为同等身份验证(SAE)来避免重放攻击。SAE是一种旨在强大而安全地识别对等设备的协议,它首次提出了适用于Wi-Fi网状网络的802.11s标准。除了解决KRACK攻击之外,Wi-Fi联盟声称,IEEE 802.11-2016中提到的SAE的实施将解决用户由于大意或者设置而导致的安全问题。SAE还解决了针对短密码设置的网络的(非暴力或字典)攻击。
WPA3认证还引入了利用NFC进行身份验证的能力。NFC或近场通信是一种极短距离无线通讯技术,用于通过将设备靠近验证设备而进行认证。如果WPA3路由器或接入点启用了NFC网络加入,你只需拿着支持NFC的手机或者互联网设备靠经路由器/接入点,就能通过认证,加入网络。虽然从某种意义上来说这是一种低安全性,任何可以利用手机轻轻靠就能上网。但是由于NFC会话无法被远程捕获,并且方便好用,无需记忆密码,而且可以基于入网设备进行审计和事后行为追踪,所以这是相对比较方便靠谱的方法,完美的权衡了安全性和易用性的要求。
WPA3还通过添加Perfect Forward Secrecy修补了Wi-Fi实施加密的另一个明显漏洞。对于WEP,WPA或WPA2,不知道Wi-Fi密码的攻击者可以记录他们所在范围内的所有内容,然后获得密钥后再解密。通过Perfect Forward Secrecy杜绝了预先录网络包的可能。即使你以后破解了网络,你先前捕获的包仍然不可解码。使用WPA3,即使较弱的HTTPS连接和未加密的网络包,如DNS解析等都将受到保护。
WPA3上距离上市还有距离,目前市面上还找不到支持它的路由器。但也不要因此而恐慌。大多数现代路由器,也都支持KRACK攻击缓解设置。
如果可能的话,你绝对不应该再使用任何非802.11ac设备;
你应该绝对确定你已经更新了所有路由器上的固件以及最新的可用版本。
如果你的设备的最新可用固件版本早于2017年11月,则毫无疑问会容易受到KRACK攻击。这时候你要做就是换一个更新的路由器。
Windows,Linux或BSD以及Apple个人计算机通常没有什么问题,只要操作系统本身经过修补和更新即可。通用计算机上的WPA2身份验证通常独立于操作系统,通过硬件驱动程序就可以解决。
如果设备本身是最新的,那么Apple IOS设备以及Google Pixel和Nexus设备将会很好。Android设备通常会有很多问题,因为许多Android OEM和运营商都无法及时提供最新的安全补丁。物联网设备同样是安全问题的多发点。如果你有一个非谷歌的Android设备或物联网设备一般,你需要关注安全动态,确保你的设备没有问题。
最后,Wi-Fi安全协议的变化历史告诉我们,没有任何一种设备或者协议是永保安全的,安全是动态的,解决了一个,马上会涌出新的漏洞,只有不断迭代,不断更新才是保证安全的唯一法则。