在IEEE802.11i规范中,TKIP: Temporal Key Integrity Protocol(暂时密钥集成协议)负责处理无线安全问题的加密部分。TKIP在设计时考虑了当时非常苛刻的限制因素:必须在现有硬件上运行,因此不能使用计算先进的加密算法。
TKIP是包裹在已有WEP密码外围的一层“外壳”。TKIP由WEP使用的同样的加密引擎和RC4算法组成。不过,TKIP中密码使用的密钥长度为128位。这解决了WEP的第一个问题:过短的密钥长度。
TKIP的一个重要特性,是它变化每个数据包所使用的密钥。这就是它名称中“动态”的出处。密钥通过将多种因素混合在一起生成,包括基本密钥(即TKIP中所谓的成对瞬时密钥)、发射站的MAC地址以及数据包的序列号。混合操作在设计上将对无线站和接入点的要求减少到最低程度,但仍具有足够的密码强度,使它不能被轻易破译。
利用TKIP传送的每一个数据包都具有独有的48位序列号,这个序列号在每次传送新数据包时递增,并被用作初始化向量和密钥的一部分。将序列号加到密钥中,确保了每个数据包使用不同的密钥。这解决了WEP的另一个问题,即所谓的“碰撞攻击”。这种攻击发生在两个不同数据包使用同样的密钥时。在使用不同的密钥时,不会出现碰撞。
以数据包序列号作为初始化向量,还解决了另一个WEP问题,即所谓的“重放攻击(replay attacks)”。由于48位序列号需要数千年时间才会出现重复,因此没有人可以重放来自无线连接的老数据包:由于序列号不正确,这些数据包将作为失序包被检测出来。
被混合到TKIP密钥中的最重要因素是基本密钥。如果没有一种生成独特的基本密钥的方法,TKIP尽管可以解决许多WEP存在的问题,但却不能解决最糟糕的问题:所有人都在无线局域网上不断重复使用一个众所周知的密钥。为了解决这个问题,TKIP生成混合到每个包密钥中的基本密钥。无线站每次与接入点建立联系时,就生成一个新基本密钥。这个基本密钥通过将特定的会话内容与用接入点和无线站生成的一些随机数以及接入点和无线站的MAC地址进行散列处理来产生。由于采用802.1x认证,这个会话内容是特定的,而且由认证服务器安全地传送给无线站。