1.数据的完整性(Integrity):用于检查数据在传输过程中是否被修改。
2.数据的机密性(Confidentiality):用于确保数据不会被泄露。
3.身份验证和访问控制(Authentication and Access Control):用于检查受访者的身份
数据加解密由硬件完成
数据加密:使用流密码对数据加密,所有数据使用同一个wep key加密,采用CRC完整性校验。
身份认证:支持open和share key两种。
open可以在后续使用安全性更高的RSNA
share key即AP发送challenge text,但不能在后续使用安全性更高的RSNA
支持两种TKIP和CCMP数据加密及完整性校验算法
TKIP加密:每一帧使用不同key(流密码),采用MIC完整性校验。使用MAC地址等的信息进行加密,更加安全
CCMP加密:采用AES安全块协议,使用PN和keyid的CCMP头信息加密,更加安全。
定义在协议RFC3748
组件:
架构
802.1X讨论了EAP在Wired LAN上的实现
定义了受控端口和非受控端口。非受控端口只允许少量类型的数据流通,如EAPOL认证帧;受控端口认证通过前不允许传输任何数据。
EAPOL数据格式:
0x888e代表EAPOL在802.11帧中的类型。
Key Descriptor Type值为2,表示EAPOL RSN Key。
Descriptor Body的内容就是大括号中所包含的信息。
流程
数据加密和完整形校验:采用TKIP和CCMP
密钥派生和缓存:4-Way Handshake和Group Key Handshake
目的:RSNA中要求不同的STA和AP关联后使用不同的Key进行数据加密
PMK(Pairwise Master Key,成对主密钥):在STA中设置的密码。
PMK来源:
PTK(Pairwise Transient Key,成对临时Key):PMK密匙派生以得到PTK,安装到硬件中加密数据。PTK利用EAPOL Key帧即4-Way Handshake过程进行信息交换生成。每次关联PTK均重新生成。
输入PMK长256位(如果用户设置的密钥过短,规范要求STA或AP将其扩展到256位),通过PRF(Pseudo RandomFunction,伪随机数函数)并结合S/A(Supplicant/Authenticator)生成的Nonce(这两个Nonce将通过4-Way Handshake协议进行交换)以及S/A MAC地址进行扩展,从而派生出TKIP和CCMP用的PTK。
KCK(Key Confirmation Key)用于计算密钥生成消息的完整性校验值
KEK(Key Encryption Key)用来加密密钥生成消息
四次握手流程
1.AP生成Anonce,并发送给STA
2.STA生成Snonce,结合PMK、Anonce和MAC地址生成ptk。
STA发送Snonce和KCK计算出的MIC给AP。
AP接收Snonce,并派生出PTK计算MIC校验。
3.AP发送install、GTK、MIC
4.STA发送MIC
4-Way Handshake完成后,STA和AP安装PTK
目的:由于802.1X协商步骤涉及多次帧交换,故其所花费时间往往较长。在这种情况下,STA缓存这个得来不易的PMK信息就可消除以后再次进行802.1X协商步骤的必要,从而大大提升认证速度。
PMKSA(PMK Security Association):PMK缓存信息。包括AP的MAC地址、PMK的生命周期(lifetime),以及PMKID。
其中PMKID包含(PMK IDentifier,用于标示这个PMKSA,其值由PMK、AP的MAC地址、STA的MAC地址等信息用Hash计算得来)。
STA首先根据APMAC地址判断自己是否有缓存了的PMKSA,如果有则把PMKID放在RSNE中然后通过Association/Reassociation Request发送给AP。
AP根据这个PMKID再判断自己是否也保持了对应的PMKSA。如果是,双方立即进入4-Way Handshake过程,从而避免802.1X协商步骤