WPA2-PSK是一种Wi-Fi连接的加密方式,它使用预共享密钥(Wi-Fi Protected Access II)(Pre-Shared Key,PSK)来保护通信的安全性。如下是WPA2-PSK密钥交互过程。
-
认证阶段:
- Station Auth Request:连接设备(通常是移动设备)向AP发送认证请求。
- Station Auth Response:AP向连接设备发送认证响应,包含一个随机数Nonce1。
- Station Auth Confirm:连接设备向AP发送确认消息,包含另一个随机数Nonce2。
- Station Auth Request/Respose完成后,连接设备和AP都具有了相同的Nonce1和Nonce2。
-
密钥派生阶段:
- PTK生成:连接设备和AP使用PBKDF2函数,根据PSK、SSID、MAC地址和Nonce1和Nonce2生成一个独一无二的预主密钥(Pairwise Transient Key,PTK)。
- PTK分解:PTK会独立分解为四个子密钥:用于数据加密的Temporal Key(TK)、用于广播加密的Group Key(GTK)、用于消息完整性检查的Michael MIC Key(MIC Key)和用于防止重放攻击的Counter Key(Counter Key)。
-
密钥确认阶段:
- Station Association Request:连接设备向AP发送关联请求,包含连接设备的身份验证和加密能力信息。
- Station Association Response:AP向连接设备发送关联响应,确认关联请求,包含GTK(用于广播加密)。
- AP和连接设备使用GTK进行广播加密,确保广播数据的隐私和安全。
-
数据传输阶段:
- Station EAPOL-Key Frame:连接设备与AP之间的每个数据包中都使用EAPOL(Extensible Authentication Protocol over LAN)-Key帧进行加密。
- EAPOL 4-Way Handshake:连接设备和AP建立一个4次握手的过程,用于验证连接设备和AP之间的密钥。这些握手消息中使用了PTK。
通过上述步骤,WPA2-PSK密钥交换过程确保了连接设备和AP之间的通信的安全性。PSK密钥仅在连接设备和AP之间共享,因此密钥不会被非授权的第三方获取。这种安全性使得WPA2-PSK成为Wi-Fi连接中常用且安全的加密方式。
关于EAPOL四次握手还可以这样看:
-
第一次握手:认证开始
- 客户端向接入点(AP)发送一个EAPOL-Start消息,表示要连接到该AP。
- AP收到消息后,向客户端发送一个EAP Request Identity消息,要求客户端发送身份认证请求。
-
第二次握手:身份认证
- 客户端向AP发送一个EAP Response Identity消息,携带客户端的身份信息。
- AP收到消息后,生成一个随机数Nonce值,使用PSK和Nonce值计算一个消息完整性验证编码(Message Integrity Code,MIC),然后将随机数Nonce值、MIC和一个EAP Request消息一起发送给客户端。
-
第三次握手:密钥生成
- 客户端收到AP发送的EAP Request消息后,生成一个随机数Nonce值,使用PSK和Nonce值计算一个MIC。
- 客户端将随机数Nonce值、MIC和一个EAP Response消息一起发送给AP。
- AP收到消息后,验证MIC的正确性,然后生成一个Pairwise Master Key(PMK),将持续滚动的两个Nonce值、MIC和一个EAP Request消息一起发送给客户端。
-
第四次握手:会话建立
- 客户端收到AP发送的EAP Request消息后,生成一个MIC,然后将MIC和一个EAP Response消息一起发送给AP。
- AP验证MIC的正确性后,生成一个Pairwise Transient Key(PTK),然后将会话建立成功的消息发送给客户端。
- 客户端收到会话建立成功的消息后,生成一个PTK,然后将会话建立成功的消息发送给AP。
在EAPOL四次握手完成后,客户端和AP会共享一个PTK,该PTK将用于加密和解密数据传输过程中的数据包。这样,双方之间建立了安全的连接,可以进行数据的加密和保护。