这篇文章是关于无线局域网加密的第一篇文章,所以先对无线局域网的加密做一个简单的概述。
其实我们平常在使用wifi的时候,往往会用到的加密方式主要有WEP(pre-RSNA), WPA(TKIP), WPA2(CCMP-AES), 如果有个别对安全要求比较高的也会使用企业级加密(802.1x). 在最新的802.11-2010标准中,有明确的支持新的无线设备应该抛弃WEP和WPA加密方式,而且必须支持WPA2加密方式,但是不得不接受的是,现在我们是有的大多数设备并没有更新的这么快,广泛的WEP和WPA仍然在使用者,而且新开发的设备也应该保持对他们的兼容,所以即使在最新开发的产品中也并没有完全按照802.11-2010的要求,直接放弃对WEP和WPA的支持。
个人觉得,即使刚开始了解无线加密,也有必要从WEP加密开始掌握WEP-WPA-WPA2-802.1x等相关知识,一是这些东西至少在当前阶段还用的上,二是后面那些更高级的加密方法其实根本上还是基于WEP加密思想改进而来的。
其实无线加密主要是对数据在链路层进行加密,如下图,802.11主要是对physical和Data-link层进行了定义,而数据链路层又分成两个部分,媒介访问控制(MAC)和逻辑链路控制(LLC),无线数据的加密处理就是在MAC和LLC两个阶段中间做的事情,加密的对象就是MSDU。
所以对于没有MSDP的无线帧是不用加密的,比如管理帧只携带layer 2的信息,不需要加密;控制帧只有头部和尾部,不需要加密;空帧没有数据域(但有特定的功能),也不需要加密; 总之,需要加密的帧,往往是数据帧。
加密的分类主要包括共享秘钥认证和开放系统认证,WEP加密是共享秘钥式,而TKIP、CCMP和802.1x则是开放系统,这两种分类个人觉得主要区别是先完成秘钥认证再进行关联,还是先完成关联再进行秘钥认证。比如,它要求无线客户端发送的authentication报文中指定加密方式,如果是共享秘钥就会进行秘钥的确认,如果是开放系统,则会留到后面关联成功后进行秘钥的确认。
开放系统认证:这种认证方式不需要确认STA的任何信息,它只是和AP进行一个招呼式的交互,这个过程中并没有交互身份信息,所以也可以认为是一个空加密。这样做的目的是,双方都认为应