關於PEAP認證的過程說明

1 證書獲取

證書主要用來進行終端和網絡的相互認證。 Radius服務器首先向CA證書頒發機構申請服務器證書,用來代表Radius服務器的合法性。 客戶端向CA證書頒發機構下載CA 根證書,用來驗證Radius服務器下發的證書是否合法(一般情況下,如果終端不需要對網絡進行認證的情況下,根證書可以不用下載和安裝)。

2 無線接入

客戶端通過開放系統接入的方法(OPEN SYSTEM)和AP之間建立好物理連接。

 

3 認證初始化

1)  ClientAP設備發送一個EAPoL-Start報文,開始802.1x接入的開始。

2)  AP向客戶端發送EAP-Request/Identity報文,要求客戶端將用戶信息送上來。

3)  Client迴應一個EAP-Response/IdentityAP的請求,其中包括用戶的網絡標識。用戶ID,對於EAP-mschchap v2認證方式的用戶ID是由用戶在客戶端手動輸入或者配置的。用戶ID通常的格式是username@domain,其中username是運營商提供給用戶的身份IDdomain是運營商的域名(如“cmcc.com”)。

4)APEAP Over RADIUS的報文格式將EAP-Response/Identity發送給認證服務器Radius,並且帶上相關的RADIUS的屬性。

5)Radius收到客戶端發來的EAP-Response/Identity,根據配置確定使用EAP-PEAP認證,並向AP發送RADIUS-Access-Challenge報文,裏面含有Radius發送給客戶端的EAP-Request/Peap/Start的報文,表示希望開始進行EAP-PEAP的認證。

6)  AP設備將EAP-Request/PEAP/Start發送給認證客戶端。

4          建立TLS通道

7)  Client收到EAP-Request/Peap/Start報文後,產生一個隨機數、客戶端支持的加密算法列表、TLS協議版本、會話ID、以及壓縮方法(目前均爲NULL),封裝在EAP-Response/Client Hello報文中發送給AP設備。

8):APEAP Over RADIUS的報文格式將EAP-Response/Client Hello發送給認證服務器Radius Server,並且帶上相關的RADIUS的屬性。

9):Radius收到Client發來的Client Hello報文後,會從Client Hello報文的加密算法列表中選擇自己支持的一組加密算法+Server產生的隨機數+Server 證書(包含服務器的名稱和公鑰)+證書請求+Server_Hello_Done屬性形成一個Server Hello報文封裝在AccessChallenge報文中,發送給Client.

10) APRadius報文中的EAP域提取,封裝成EAP-request報文發送給Client.

注:由於證書比較大,一個報文是無法承載的,所以在實際流程中第1011完成後,後面還有3個續傳的IP分片報文,目的是把Server證書發送到客戶端.

11) Client收到報文後,進行驗證Server的證書是否合法(使用從CA證書頒發機構獲取的根證書進行驗證,主要驗證證書時間是否合法,名稱是否合法),即對網絡進行認證,從而可以保證Server的合法。如果合法則提取Server證書中的公鑰,同時產生一個隨機密碼串pre-master-secret,並使用服務器的公鑰對其進行加密,最後將加密的信息ClientKeyExchange+客戶端的證書(如果沒有證書,可以把屬性置爲0)+TLS finished屬性封裝成EAP-Rsponse/TLS OK報文發送給認證點AP.如果client沒有安裝證書,則不會對Server證書的合法性進行認證,即不能對網絡進行認證。

12) APEAP Over RADIUS的報文格式將EAP-Response/TLS OK發送給認證服務器Radius Server,並且帶上相關的RADIUS的屬性

13) Radius收到客戶端發了的報文後,用自己的證書對應的私鑰對ClientKeyExchange進行解密,從而獲取到pre-master-secret,然後將pre-master-secret進行運算處理,加上ClientServer產生的隨機數,生成加密密鑰、加密初始化向量和hmac的密鑰,這時雙方已經安全的協商出一套加密辦法了,至此TLS通道已經建立成功,以後的認證過程將使用協商出的密鑰進行加密和校驗。Radius Server藉助hmac的密鑰,對要在TLS通道內進行認證的消息做安全的摘要處理,然後和認證消息放到一起。藉助加密密鑰,加密初始化向量加密上面的消息,封裝在AccessChallenge報文中,發送給Client.

 5  認證過程

14)APRadius報文中的EAP域提取,封裝成EAP-request報文發送給Client.

15)客戶端收到Radius server發來報文後,用服務器相同的方法生成加密密鑰,加密初始化向量和hmac的密鑰,並用相應的密鑰及其方法對報文進行解密和校驗,然後產生認證迴應報文,用密鑰進行加密和校驗,最後封裝成EAPresponse報文發送給APAPEAP Over RADIUS的報文格式將EAP-Response發送給認證服務器Radius Server,並且帶上相關的RADIUS的屬性,這樣反覆進行交互,直到認證完成(注:對於不同的認證方法交互流程不一致,通常的認證方法爲:PEAP-MSCHAPV2或者GTC(IBM LDAP支持的,有關於PEAP-GTC的過程就是在認證的時候按照GTC/OTP的過程在PEAP添加的一個過程罷了,再注:在傳送完密碼後要傳一個長度爲1的數據爲0的包過去後纔會得到SUCESS連通網絡),下面由單獨認證流程,如果是SIM認證,還需要跟HLR/AUC設備進行數據交互,並且使用AS作爲認證服務器),在認證過程中,Radius Server會下發認證後用於生成空口數據加密密鑰(包括單播、組播密鑰)的PMKClient.

16) 服務器認證客戶端成功,會發送AccessAccept報文給AP,報文中包含了認證服務器所提供的MPPE屬性。

17) AP收到RADIUS-Access-Accept報文,會提取MPPE屬性中的密鑰做爲WPA加密用的PMK,並且會發送EAPsuccess報文給客戶端.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章