,以及根據所述第三認證信息對無線接入端進行認證。
[0096]圖5是本發(fā)明實施例提供的認證的雙向挑戰(zhàn)握手和下線認證的示意圖,如圖5所示,PW是客戶端和服務器共享的預置密鑰(用戶密碼),Na、Nb、Ns分別是A (客戶端標識)、B (認證者標識)、S (認證服務器標識)生成的一次性隨機數,Flag為下線標識,客戶端主動下線則Flag置為TRUE,認證者強制要求其下線則Flag置為FALSE。虛線箭頭表示只有在客戶端主動要求下線時才發(fā)送EAPOL-Logof幀,此時認證者將回應EAP-Failure消息,并在隨后發(fā)起一次下線確認的會活過程,如果是認證失敗或者認證者強制客戶端下線,也會在發(fā)送EAP-Failure消息后發(fā)起下線確認??紤]到ΕΑΡ協議的可擴展性,將確認消息封裝到EAP-Request/Response消息中進行傳遞。
[0097]序號為⑴、⑵、(3)、(4)、(5)、⑶、(9)、(10)、(11)、(12)的消息報文同時存在于現有IEEE802.1X認證機制以及本發(fā)明實施例提供的IEEE802.1X認證機制改進的安全認證機制中。序號為(6)、(7)、(13)、(14)的消息報文與現有技術不同,消息報文(6)和消息報文(7)用于實現在認證階段進行雙向認證和密鑰協商,消息報文(13)和消息報文(14)用于實現下線階段的身份認證。具體實現方法表現為:
[0098]第一步,認證階段進行雙向認證和密鑰協商。
[0099]為了實現對客戶端和認證系統(tǒng)(認證者和認證服務器)的雙向認證,并由認證服務器分配共享密鑰Key。首先是對認證者和認證服務器的認證,由消息報文(6)完成。由于只有客戶端和認證服務器持有PW,故而客戶端收到消息報文(6)以后,經過解密并核對其真實性即可完成對認證服務器的認證。同時,認證服務器是可信第三方,它可以鑒定認證者的身份,故而在消息報文(6)中包含的信息實現了對認證者身份的鑒定。其次是對客戶端的認證,消息報文(7)完成這一過程,這與標準的挑戰(zhàn)握手認證類似。另外,在消息報文
(5)和消息報文(6)中實現了客戶端與認證者的共享密鑰Key的分配。
[0100]第二步,下線階段的身份認證。
[0101]當客戶端主動要求下線而發(fā)送EAPOL-Logoff幀時,認證者收到后返回EAPOL-Failure消息。接下來認證者發(fā)送消息報文(13),其中用Flag置為TRUE。客戶端收到后用Key解密,檢查B、Na是否有效,并認證Flag是否為TRUE,如果這三者中任一有誤,則丟棄該消息報文,保持當前端口狀態(tài)。如果認證無誤則返回消息報文(14),其中的Flag同樣必須為TRUE,客戶端接收到消息報文(14)并認證A、Flag、Nb無誤后,將端口斷開。如果認證有誤則丟棄該消息報文,保持當前端口狀態(tài)。當客戶端沒有發(fā)送EAPOL-Logoff幀,而認證者發(fā)送EAP-Failure強制客戶端下線,或者客戶端認證失敗,認證者在消息報文(10)中發(fā)送EAP-Failure時,認證者同樣發(fā)送消息報文(13),其中Flag置為FALSE,客戶端認證B、Flag和Na的值并返回消息報文(14),認證者收到消息報文(14)后,同樣對A、Flag、Nb進行認證,若認證A、Flag、Nb無誤后,將端口斷開。如果認證有誤則丟棄該消息報文,保持當前端口狀態(tài)。
[0102]如圖3所示,PW是客戶端A和服務器S共同持有的共享密鑰(密碼),PW2是認證者B和服務器S共同持有的共享密鑰(密碼);ID是客戶端A的身份標識(可理解為賬戶名),該標識在服務器S中有記錄;ID2是認證者B的身份標識(可理解為賬戶名),該標識在服務器S中有記錄。具體步驟如下:
[0103](1)客戶端向認證者發(fā)送一個EAPOL-Start報文,開始802.1X認證。
[0104](2)認證者向客戶端應答一個EAPOL-Req-1dentity報文,要求客戶端將用戶名等信息發(fā)送上來。
[0105](3)客戶端向認證者發(fā)送EAP0L-Resp/ID,Pff(A, PW, Na)應答報文,該報文包含客戶端在服務器中用戶標識ID,以及使用PW加密后的信息。此處,Pff(A, PW, Na)表示客戶端A使用PW加密PW和Na后的信息。
[0106](4)認證者向服務器發(fā)送請求報文 EAPOL-Req/ID,ID2,Pff(A, PW, Na),PW2 (B, PW2,Nb),其中,PW2 (B, PW2,Nb)表示認證者B使用PW2加密PW2和Nb后的信息。通過該報文,服務器可以同時認證客戶端和認證者的合法性,比如:服務器對客戶端的認證是這樣的,將Pff(A, PW, Na)使用服務器通過客戶端ID找到的密碼解密,如果解密出來的密碼PW與服務器保存的密碼一致,說明該客戶端合法;同樣,服務器對認證者的認證也是如此。
[0107](5)如果第(4)步認證成功,服務器向認證者發(fā)送RA_Challenge/PW(S, Na, Key,Nb, Ns),PW2(S,Na, Key, Nb, Ns)報文,該報文包含服務器分配給認證者和客戶端的共享密鑰Key,使用PW加密Na,Key,Nb,Ns后的信息,以及使用PW2加密Na,Key,Nb,Ns后的信息。當認證者接收到該報文后,使用PW2解密PW2(S,Na, Key, Nb, Ns),得到Na, Key, Nb, Ns,認證者認證Nb的真實性,從而完成對服務器的認證。
[0108](6)認證者向客戶端發(fā)送 EAP-Req/Key (Nb),Pff(S, Na, Key, Nb, Ns)報文,該報文包含認證者使用Key加密Nb后的信息,以及使用PW加密Na,Key, Nb, Ns后的信息。當客戶端接收到該報文后,使用PW解密出他,1(^,他,他,并認證他的真實性,完成對服務器的認證。然后使用剛解密出的Key解密Key (Nb)來認證Nb的真實性,完成對認證者的認證。
[0109](7)客戶端向認證者發(fā)送RA_Resp/PW(A,Pff, Ns),Key (Na)報文,其中包含客戶端使用PW加密PW,Ns后的信息,以及使用Key加密Na后的信息。當認證者接收到該報文后,使用Key解密出Key (Na),認證Na的真實性,完成對客戶端的認證。
[0110](8)認證者向服務器發(fā)送認證報文RA_Req/PW(A,Pff, Ns),PW2 (B, Pff2, Ns),其中包含客戶端使用PW加密PW,Ns后的信息,以及認證者使用PW2加密PW2,Ns后的信息。當服務器接收到該報文后,分別使用PW和PW2解密PW(A,Pff, Ns)和PW2 (B, Pff2, Ns),從而認證Ns的真實性,完成對客戶端以及認證者的認證。
[0111](9)服務器向認證者發(fā)送RA-Accept/Reject報文,告訴認證者802.1X認證成功與否。
[0112](10)認證者向客戶端發(fā)送報文EAP-Success/Failure。
[0113](11)客戶端主動要求下線,發(fā)送EAPOL-Logoff巾貞給認證者。
[0114](12)認證者收到后返回EAPOL-Failure消息。
[0115](13)認證者隨后發(fā)送消息報文EAP-Req/Key(B,Flag,Na),其中用Flag置為TRUE。當客戶端沒有發(fā)送EAPOL-Logoff幀,而認證者發(fā)送EAP-Failure強制客戶端下線,或者客戶端認證失敗,認證者在(10)中發(fā)送EAP-Failure,認證者同樣發(fā)送消息報文EAP-Req/Key(B, Flag, Na)給客戶端,其中 Flag 置為 FALSE。
[0116](14)客戶端收到后用Key解密,檢查B、Na是否有效,并認證Flag是否為TRUE,如果這三者中任一有誤,則丟棄該消息報文,端口保持當前狀態(tài)。如果認證無誤則返回消息報文EAP-Resp/Key (A,Flag, Nb),其中的Flag同樣必須為TRUE,認證者接收到該消息報文并認證A、Flag、Nb無誤后,將端口斷開。如果認證有誤則丟棄該消息報文,保持當前端口狀
ο
[0117]其應用價值具體表現為以下三個方面:
[0118]第一,當攻擊者偽造EAPOL-Logoff巾貞發(fā)送給認證者時,截獲到認證者發(fā)來的EAP-Failure和EAP-Request認證消息。然而攻擊者沒有共享密鑰,也沒有消息認證隨機數,無法偽造隨后的認證消息,所以無法通過下線認證,也就