开发 TKIP 的主要动机,是为了升级旧式 WEP 硬件的安全性。
上一篇文章主要介绍了关于WPA2-PSK加密方式的密钥生成和交换过程,本文,介绍一下WPA2-PSK加密方式使用的其中一种算法TKIP加密协议对数据的加密流程。如果细究算法本身,可能需要一些密码学的知识,我们只是简单介绍流程,并不对算法本身做深究。
如上图所示,使用TKIP加密协议生成加密帧之前,主要分为3个步骤:
- 生成PTK
- 生成数据加密所需密钥的配钥过程
- 生成带有校验码MIC的数据
生成PTK
这个步骤在上一篇文章中介绍的比较详细,这里不做阐述了,需要的可以查看上一篇。
配钥过程
由上图可以看到,配钥分为两个阶段,这里分为两个阶段介绍:
- 第一阶段
需要第一步生成PTK之后,获取到的128bits临时密钥TK、发送方的MAC、还有计数器的前32bit作为输入项,经过配钥程序生成80bits的TTAK。
- 第二阶段
第一阶段生成的TTAK、以及计数器的后18bits作为输入项,生成104bits的secrets。然后由计数器的后16bit加上dummy byte,组成128bit的RC4密钥。从这里可以看出,TKIP只是对WEP的改进,还是使用RC4密钥进行加密。
生成带有校验码MIC的数据
除了加密之外,还需要有一个校验码去确认数据是否完整,这就是MIC的作用,而TKIP加密协议区别于WEP的其中一个不同点就是开发了Michael作为新的生成校验码的算法,代替CRC。生成MIC需要PTK中的MIC key、Frame data作为输入项,经过Michael算法生成MIC。
最后,在完成生成密钥、生成带有MIC的帧数据之后,通过WEP加密程序生成加密的帧数据。这就是TKIP的全部流程。