程文婷,呂欣美
(1.四川電力試驗(yàn)研究院,四川成都610072;2.中州大學(xué)就業(yè)指導(dǎo)中心,河南鄭州450044)
基于共享密鑰的EAP認(rèn)證和密鑰建立協(xié)議
程文婷1,呂欣美2
(1.四川電力試驗(yàn)研究院,四川成都610072;2.中州大學(xué)就業(yè)指導(dǎo)中心,河南鄭州450044)
分析了一種基于共享密鑰的EAP認(rèn)證和密鑰建立協(xié)議——EAP-SAKE。首先,介紹了該協(xié)議的報(bào)文交換流程,并詳細(xì)分析了其中每一種報(bào)文的結(jié)構(gòu)。接下來分析了該協(xié)議中的不同密鑰之間的關(guān)系以及整體的密鑰體系結(jié)構(gòu)。最后指出該協(xié)議具有在通信節(jié)點(diǎn)和服務(wù)器之間不需要進(jìn)行同步、通信量小、能提供雙向認(rèn)證和密鑰協(xié)商功能等優(yōu)點(diǎn)。
EAP;共享密鑰;認(rèn)證;密鑰建立
EAP[1]是一個(gè)用于PPP[2]認(rèn)證的通用協(xié)議,它不在鏈路建立階段指定認(rèn)證方法,而是把這個(gè)過程推遲到認(rèn)證階段,這樣認(rèn)證者就可以在得到更多的信息以后再?zèng)Q定使用什么認(rèn)證方法。EAP支持多種認(rèn)證機(jī)制,并允許使用一個(gè)后端(backend)服務(wù)器(如RAD IUS等)來實(shí)現(xiàn)各種認(rèn)證機(jī)制,認(rèn)證者只需要傳送認(rèn)證信息即可。
EAP可以支持多種認(rèn)證機(jī)制,包括EAPPOTP[3]、EAP-MD5和EAP-TLS[4]等。2007年1月,IETF公布了一種新的EAP認(rèn)證機(jī)制:EAPSAKE[5]。該機(jī)制具有在通信節(jié)點(diǎn)和服務(wù)器之間不需要進(jìn)行同步、通信量小、能提供雙向認(rèn)證和密鑰協(xié)商功能等優(yōu)點(diǎn)。
在進(jìn)行報(bào)文交換前,通信節(jié)點(diǎn)和服務(wù)器首先要共享一個(gè)Root-Secret,并將其分成兩個(gè)密鑰,分別是16字節(jié)的Root-Secret-A和16字節(jié)的Root-Secret-B。Root-Secret-A主要用于進(jìn)行認(rèn)證和生成TEK(Transient EAP Keys),Root-Secret-B主要用來計(jì)算MSK(Master Session Key)和EMSK(Extended Master Session Key)。Root-Secret-A和Root-Secret-B必須是相互獨(dú)立的。報(bào)文交換過程如圖1所示。
圖1 EAP-SAKE的報(bào)文交換機(jī)制
首先,服務(wù)器發(fā)送EAP.Request_Challenge報(bào)文,該報(bào)文結(jié)構(gòu)如圖2所示。
圖2 EAP.Request_Challenge報(bào)文結(jié)構(gòu)
其中,identifier為一表示身份的隨機(jī)數(shù);length為整個(gè)EAP分組的以字節(jié)為單位的長(zhǎng)度值;session-ID為由服務(wù)器生成的隨機(jī)數(shù),用于標(biāo)識(shí)此次會(huì)話; RAND_S的值是服務(wù)器生成的現(xiàn)時(shí)值;SERVER ID是服務(wù)器的身份標(biāo)識(shí)符。AT_XX表示接下來的是屬性名為XX的屬性值。
通信節(jié)點(diǎn)收到服務(wù)器發(fā)送的EAP.Request_ Challenge報(bào)文后發(fā)送EAP.Response_Challenge報(bào)文,該報(bào)文結(jié)構(gòu)如圖3所示。其中包括RAND_P、PeerNA I、SPIP和M IC_P。其中,RAND_P的值是通信節(jié)點(diǎn)生成的現(xiàn)時(shí)值,Peer NA I是通信節(jié)點(diǎn)的網(wǎng)絡(luò)訪問標(biāo)識(shí)符,SPIP是通信節(jié)點(diǎn)所支持的密文族中的安全參數(shù)索引值,M IC_P是完整性校驗(yàn)碼。然后通信節(jié)點(diǎn)使用RAND_S、RAND_P和Root-Secret-A計(jì)算出S MS(SAKEMaster Secret)和TEK(Temporary EAP Keys),并利用RAND_S、RAND_P和整個(gè)EAP報(bào)文計(jì)算完整性校驗(yàn)碼M I C_P。
圖3 EAP.Request_Challenge報(bào)文結(jié)構(gòu)
服務(wù)器收到通信節(jié)點(diǎn)發(fā)送來的EAP.Response_ Challenge報(bào)文后,用同樣的辦法計(jì)算出S MS和TEK,以及完整性校驗(yàn)碼,并將計(jì)算結(jié)果與收到的M I C_P進(jìn)行比較,如果相同,就認(rèn)為通信節(jié)點(diǎn)通過了認(rèn)證。服務(wù)器從通信節(jié)點(diǎn)發(fā)送的SPI_P中選擇適當(dāng)?shù)募用芩惴ê蛥?shù),對(duì)通信數(shù)據(jù)進(jìn)行加密。服務(wù)器發(fā)送的EAP.Request_Confirm報(bào)文包括SPI_S、Initialization Vector、Encrypted Data、MSK Lifet ime和M I C_S,該報(bào)文結(jié)構(gòu)如圖4所示。其中,SPI_S包含服務(wù)器選擇的密文族參數(shù),Initialization Vector為服務(wù)器選擇的初始向量,Encrypted Data包含的是加密后的信息,MSKLifetime為以秒為單位的MSK的生存時(shí)間,M IC_S是服務(wù)器計(jì)算的完整性校驗(yàn)碼。
圖4 EAP.Request_Confir m報(bào)文結(jié)構(gòu)
通信節(jié)點(diǎn)收到服務(wù)器發(fā)送的EAP.Request_Confir m報(bào)文后認(rèn)為服務(wù)器已經(jīng)通過了對(duì)它的認(rèn)證。通信節(jié)點(diǎn)采用同樣的方法計(jì)算完整性校驗(yàn)碼,將計(jì)算結(jié)果與EAP.Request_Confir m報(bào)文中的M I C_S進(jìn)行比較,如果相同,就認(rèn)為服務(wù)器通過了認(rèn)證。然后發(fā)送EAP. Response_Confir m報(bào)文,該報(bào)文結(jié)構(gòu)如圖5所示。
圖5 EAP.Response_Confirm報(bào)文結(jié)構(gòu)
服務(wù)器收到EAP.Request_Confirm報(bào)文后,發(fā)送EAP.Success報(bào)文給通信節(jié)點(diǎn),結(jié)束EAP會(huì)話。
在報(bào)文交互過程中,M I C_S和M IC_P的計(jì)算需要用到預(yù)先生成的服務(wù)器標(biāo)識(shí)符和現(xiàn)時(shí)值、通信節(jié)點(diǎn)標(biāo)識(shí)符和現(xiàn)時(shí)值,這樣可以防止重放攻擊和中間人攻擊;還需要用到TEK-Auth和整個(gè)EAP分組,具體生成過程為:
其中KDF是一個(gè)帶有密鑰的Hash函數(shù),KDF -16表示使用KDF函數(shù)的輸出是16字節(jié)。
EAP-S AKE中的密鑰共分為3個(gè)等級(jí),第一等級(jí)是Root Secret,包括Root-Secret-A和Root-Secret-B part;第二等級(jí)是包含從Root Secret中生成的密鑰S AKEMaster Secret(S MS),其中,S MS-A和S MS-B均使用EAP-S AKE密鑰生成函數(shù)生成。第三等級(jí)是會(huì)話密鑰,包括TEK、MSK(Master Session Key)和E MSK(ExtendedMSK)。TEK又分為用于計(jì)算MI C值的16字節(jié)的TEK-Auth和用于進(jìn)行加密的16字節(jié)的TEK-Cipher。S MS-B使用EAP-S AKE密鑰生成函數(shù)生成64字節(jié)的MSK和E MSK。其中MSK將轉(zhuǎn)發(fā)給其他參與通信的實(shí)體,以便進(jìn)行保密通信;E MSK為特定應(yīng)用而生成的密鑰,不與其他通信實(shí)體共享。EAPS AKE中的密鑰體系如圖6所示。
圖6 EAP-SAKE中的密鑰體系
每個(gè)密鑰的生成過程為:
該協(xié)議的優(yōu)點(diǎn)包括:
只需要2輪的請(qǐng)求/響應(yīng)消息交換即可實(shí)現(xiàn)雙向認(rèn)證和密鑰協(xié)商等功能。
用于認(rèn)證的密鑰和用于加密的密鑰在密碼學(xué)上是相互獨(dú)立的。
在通信節(jié)點(diǎn)和服務(wù)器之間不需要進(jìn)行同步。
采用IEEE 802.11i的通信節(jié)點(diǎn)不需要添加新的密碼學(xué)代碼就可以使用EAP-SAKE。
EAP是一個(gè)用于PPP認(rèn)證的通用協(xié)議,可以支持多種認(rèn)證機(jī)制,包括EAP-TLS等。2007年1月,IETF公布了一種新的EAP認(rèn)證機(jī)制:EAPSAKE。該機(jī)制具有通信量小、能提供雙向認(rèn)證和密鑰協(xié)商功能等優(yōu)點(diǎn)。如何對(duì)該協(xié)議進(jìn)行進(jìn)一步的優(yōu)化,是我們下一步要研究的內(nèi)容。
REFERENCES
[1] B.Aboba,L.Blunk,J.Vollbrecht,J.Carlson,H.Levkowetz, Ed.Extensible Authentication Protocol(EAP).RFC3748,2004, 6.
[2] W.Simpson.The Point-to-Point Protocol(PPP),RFC1661, 1994,7.
[3] M.Nystroem.The EAP Protected One-Time Password Protocol (EAP-POTP).RFC4793,2007,2.
[4] D.Simon,B.Aboba,R.Hurst.The EAP-TLS Authentication Protocol,RFC 5216.2008,3.
[5] M.Vanderveen,H.Soliman.Extensible Authentication Protocol Method for Shared-secret Authentication and Key Establishment (EAP-SAKE).RFC4763,2006.11.
[6]B.Aboba.D.Simon.P.Eronen.Extensible Authentication Protocol(EAP)KeyManagement Framework.RFC5247,2008,8.
EAP Authentication Based on Sharing Secret Key and Secret Key Negotian Protocol
CHENGWen-ting1,LV Xin-mei2
(1.Sichuan Electric Power Test&Research Institute,Chengdu 610072,Sichuan,China; 2.Occupation-directing Center,Zhongzhou University,Zhengzhou 450044,He’nan,China)
In this paperwe introduce an authentication and key negotiation protocol based on shared key,EAP-SAKE.Firstly, the article introduces the message exchange procedure and analyzes the message strcuture in details.Afterwards,it analyzes the relationship among different keys and overall key architecture.Finally,it points out that this protocol hasmany advantages,for example, it does not need to synchronize between the node and server.Moreover,it has low communication load and provides two-way authentication and key negotiation.
EAP;shared key;authentication;key negotiation
TP31
:A
:1009-3842(2010)01-0093-03
2009-12-15
程文婷(1977-),女,漢族,四川成都人,翻譯,研究方向?yàn)榍閳?bào)知識(shí)服務(wù)。