WIFI基础入门--802.11--TKIP/CCMP/RSN--8
1.临时密钥完整性协议(TKIP)
第一种广为使用的新式链路层加密协议是临时密钥完整性协议(Temporal Key Integrity Protocol,简称TKIP)。开发TKIP的主要动机是为了升级旧式基于WEP硬件的安全性。通常,具备WEP功能的芯片组都支持RC4加密机制。既然加密的重责任由硬件负责,那么只要通过软件或固件,就可以达到升级的目的。TKIP保留了WEP的基本结构与操作方式,因为它原本就是一个设计来升级基于WEP的解放方案的软件。
1.1 TKIP与WEP的差异
为了克服WEP易遭受攻击的弱点,TCIP整合了许多新协议的功能。尽管保留了WEP的基于架构与操作方式,不过TKIP为WEP最易遭受功能的弱点另外绑定了"安全带"。
1.2 密钥层次结构与自动密钥管理
不同于WEP直接使用单一主密钥的做法,TKIP使用到了多个主密钥。最后用来加密帧的密钥是从这些主密钥派生而来。另外,TKIP也提供密钥管理操作,使得主密钥的更新可以在安全的情况下进行。
1.3 每帧生成密钥
虽然TKIP保留WEP所使用的RC4帧加密机制,不过为了防范针对弱WEP密钥的攻击,它会为每个帧(从主密钥)派生出特有的RC4密钥。为每个帧准备独特密钥的过程称为密钥混合。
1.4 序列号计数器
为每个帧编序列号即可识别出次序错乱的帧,如此便能防范所谓的重放攻击,亦即攻击者先拦截有效封包,等候一段时间再予以重传的攻击。
1.5 新的消息完整性校验
TKIP以一种比较牢靠的称为Michael的完整性校验散列算法,取代WEP所使用的线性散列算法。Michael较为牢靠,探测伪造帧也更加容易。此外,源地址受到完整性校验的保护,就可以探测出称来自特定来源的伪造帧。
1.6 消息完整性校验失败的对策
设计时,TKIP是为了实现到现有的硬件,因此不免有所限制。Michael可能遭受主动式攻击而被攻陷,因此TKIP包含了一些对策以控制主动式攻击可能造成的损害。
1.7 初始向量的使用与密钥混合
WEP的主要破绽在于WEP的随机种子是由初始向量(initialization vector,简称IV)以及WEP密钥所构成。既然随机数种子是由IV与密钥串联而成,IV本身就泄漏了大部分的密钥结构。如此一来,攻击者就可以观察IV的重复使用情况,进一步挖掘出用以加密帧的相同密钥流。以24-bit的IV而言,大约可以容纳1600万个帧。在比较繁忙的网络上,这个数目并不算多。更糟的是,此IV空间受限于当时所使用的密钥。如果使用静态WEP,则IV空间是由网络上所有工作站所共享。为了防范针对初始向量的攻击,TKIP将IV的长度从24位倍增为48位。如此一来,初始向量空间即由1600万增加为281万亿,可以有效防止IV空间在密钥的使用期限内耗尽。TKIP同时以密钥混合的方式来防范针对WEP的攻击。通过密钥混合,用来加密个别帧的RC4密钥就会各自不同。在TKIP中,各个帧均会被特有的RC4密钥加密。换句话说,密钥混合进一步扩展了初始向量空间。
1.8 序列号计数器与重放攻击保护
除了空间变大之外,TKIP初始向量本身也扮演着序列号计数器的角色。每次安装新的主密钥,初始向量/序列号计数器就会被重设为1。每传一个帧,序列号计数器就会随之累加1。
为了防范重放攻击,TKIP会保留来自各工作组的最近序列号。一旦成功接收到某个帧,就会以它与最近接收到的帧序列号进行对比,如果大于前值就予以接受,否则就予以拒绝。
服务质量扩展功能由任务组E负责开发。目前802.11e草案中有一项块确认协议功能,它以单一帧确认多次传送。2005年1月所出版的802.11e草案中规定,检测重放攻击之前,必须先完成因块确认所导致的重新排序操作。
802.11单播帧必须被确认。如果原始帧或其确认已经遗失,则该帧必须重传。在接收端可能重复接收到相同的序列号。序列号重复有可能只是因为连接出错,不一定就是有人正在进行主动式攻击。
2.TKIP的数据处理与操作
和WEP一样,TKIP也支持加密与完整性保护过程,可以说是围绕着WEP而设计的一套安全功能。
TKIP帧会以下列项目作为输入项:
a.帧
b.用来加密帧的临时密钥
c.Michael用来保护帧内容的MIC密钥。TKIP会派生出一对密钥,使得工作站至接入点的MIC密钥不同于接入点至工作站的MIC密钥。TKIP与WEP的不同之处在于MIC使用了密钥。
d.发送端地址也会被当成TKIP的输入项,因为必须用它来进行来源身份验证。发送端地址可以由帧提供,不必来自上层软件。
e.由驱动程序或固件所维护的序列号计数器。
2.1 TKIP的密钥混合过程与密钥的构造
TKIP会为所传送的每个帧构造一把独特的密钥。此密钥派生自初始向量/序列号计数器、帧的发送端地址(未必是帧来源)以及临时密钥。密钥混合可以确保各个帧所使用的密钥彼此间存在显著的差异,以及防范任何假设WEP密钥的秘钥成分维持不变的攻击。将发送端地址纳入密钥混合的计算,这样不同的工作站就算使用相同的初始向量,也会派生出不同的RC4密钥。密钥混合功能的设计受限于802.11控制器的处理能力,TKIP将混合密钥的计算过程分为两阶段。
第一阶段以发送端地址、序列号的前32位以及128位的临时密钥作为输入项,输出项则是一个长度为80位的值。虽然有点复杂,不过所有计算都是由一些简单的运算(如