郭旭東, 劉建偉
(北京航空航天大學 電子信息工程學院,北京100191)
當前使用的基于口令的認證協議大部分基于這樣的機制[1]:認證服務器隨機生成一個挑戰值發送給客戶端,客戶端將口令與挑戰值進行 HASH運算,并將運算結果作為響應值回發給認證服務器,認證服務器從數據庫中取出該用戶的口令,隨后進行相同的 HASH運算,將運算結果與客戶端回傳的響應值進行比對,來驗證客戶端身份的真實性。以上這一流程基本描述了 CHAP, MS-CHAP, MS-CHAP-V2, EAP/MD5-Challenge和EAP/One-Time Password等認證協議的工作機制。挑戰應答機制的缺點是:如果竊聽者竊取到挑戰-響應值,就可以發起字典攻擊。竊聽者將口令字典中的口令與獲得的挑戰值進行 HASH來猜測用戶口令。由于用戶口令一般較短且具有一定特征,例如:生日,電話號碼,車牌號等。所以字典攻擊對于挑戰應答機制是一種非常有效的攻擊手段。在有線網絡通信中,攻擊者成功竊取挑戰-響應值實際上是一件比較困難的事情。但是在無線網絡中,由于其通信鏈路的天然開放性,并且無線網絡通常作為接入網,處于邊緣網絡,所以非常容易遭受竊聽攻擊,中間人攻擊等。EAP-TTLS協議可以將傳統的基于挑戰應答機制的認證方法應用于無線網絡,并有效保護無線鏈路,防止竊聽攻擊。
圖1描述了EAP-TTLS通用的網絡拓撲圖。在網絡邏輯結構中,一般包含4個實體,各個實體間的安全關系為:①客戶端與接入點AP/NAS之間在通信前不存在任何安全關聯;② 網絡接入點,TTLS服務器,AAA服務器在通信前與相連接的實體已存在安全關聯。例如,無線接入點與 TTLS服務器之間,TTLS服務器與AAA服務器之間,事先存在一個共享的密鑰。EAP-TTLS是 EAP-TLS認證方法的擴展。EAP-TTLS通信過程如圖1所示,可以劃分為兩個階段:第一階段,TLS握手過程。該階段實現客戶端對服務器的單向認證(服務器同時也可以認證客戶端,但一般放在第二階段),同時在客戶端與 TTLS服務器之間進行密碼組件協商協商與密鑰材料交換,建立一個安全隧道;第二階段,隧道階段。在安全隧道的保護下,服務器對客戶端進行認證,認證成功后,進一步協商客戶端與 AP之間進行安全的數據通信所使用的密碼組件與密鑰材料。最終實現在客戶端與無線接入點 AP之間進行安全通信。

筆者在研究EAP-TTLS協議時,查閱了國內相關的研究文獻,發現有一個共同問題:即關于 EAP-TTLS的兩次密碼組件協商,密鑰材料交換以及各級密鑰的產生過程分析不明確,所以筆者在此主要對上述幾個問題作了詳細論述,關于EAP-TTLS認證流程的其他問題可參閱文獻[2-4]或國內相關文獻。圖2是基于EAP-TTLS的CHAP的認證流程圖。
①在客戶端與訪問節點AP之間使用鏈路層協議,如PPP,EAPOL等協議來承載EAP協議。在訪問節點AP與TTLS服務器之間使用Radius協議或Diameter協議來封裝EAP協議;
②存在兩次密碼組件協商與密鑰材料交換。如圖2中虛線方框所示,在第一階段和第二階段都存在密碼組件協商與密鑰材料交換過程,但兩者目的不同。第一階段的密碼組件協商與密鑰材料交換是為了在客戶端與 EAP-TTLS服務器之間建立安全隧道。第二階段的密碼組件協商與密鑰材料交換是為了在客戶端與無線節點之間建立安全的通信鏈路。值得注意的是客戶端與無線節點 AP之間所需的密碼組件和密鑰材料是由客戶端與TTLS服務器之間進行協商,最后由TTLS服務器將協商結果轉發給無線節點AP。目的是為了防止假冒節點攻擊;

③相對于無線節點AP,TTLS優先考慮客戶端的密碼組件。TTLS隧道階段結束后,將在客戶端與無線節點AP之間建立起一個安全的通信鏈路。該通信鏈路所需的密碼組件是由TTLS服務器在優先考慮客戶端支持的密碼組件的情況下,對客戶端與無線節點提供的密碼組件進行折中的一個結果。如圖 2所示,無線節點通過虛線橢圓框所標注的 RADIUS Access-Request消息,將自己所支持的密碼組件發送給TTLS服務器??蛻舳嗽谒淼离A段,將密碼組件與認證消息一同發送給TTLS服務器。EAP-TTLS協議要求,通信雙方必須支持的密碼組件為:TLS_RSA_WITH_3DES_EDE_CBC_SHA,可選擇支持的有[5-6]:TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DH_DSS_WITH_DES_CBC_SHA,TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA等。每一組密碼組件包括四個部分:密鑰交換算法,加密算法,密鑰長度,MAC算法;
④TTLS密鑰體系。一個完整的TTLS會話會建立兩套密鑰材料:一套用于隧道通信;另一套用于客戶端與無線節點AP之間安全的數據通信。兩套密鑰材料都是基于同一個 Master Secret。如圖3所示,Master_Secret的產生過程如下:
Master_Secret=TLS-PRF-48(pre_master_secret,"master secret", client.random || server.random)TLS- PRF-X是TLS協議用于產生X bit的偽隨機函數。client. random,server.random是分別在Client Hello消息和Server Hello消息中的 28 Bytes的隨機數。Pre_master_ secret是 TTLS的預主密鑰,在TLS握手階段中產生。根據密碼組件中指定的密鑰交換算法不同,預主密鑰的產生機制也不完全相同。當密鑰交換算法為RSA時,則由客戶端產生一個48Bytes的偽隨機數作為Pre_master_secret,使用服務器證書中的RSA公鑰加密,通過Client_Key_Exchange消息傳遞給TTLS服務器;當密鑰交換算法為DH_DSS時,則客戶端將自己的DH公鑰傳遞給TTLS服務器,雙方根據DH算法產生Pre_master_secret。

(1) 隧道通信所需要的密鑰材料
MSK,EMSK,IV由Master_Secret導出,具體導出過程如下[3]:

(2)客戶端與無線節點之間所需的密鑰材料
MSK,EMSK也由Master_Secret導出,具體導出過程如下[2]:

MSK與EMSK在客戶端與TTLS服務器端單獨生成,當客戶端認證通過后,由TTLS將MSK,EMSK等密鑰材料傳遞給無線節點AP。
EAP是一個普遍使用的認證框架,而不是一個特殊的認證機制,經常被用于點到點的連接中。EAP提供一些公共的功能,并且允許協商所希望的認證機制。這些機制被叫做EAP方法。EAP作為一種認證框架,本身并不提供安全保證。例如EAP-CHAP,EAP-MD5等以明文的方式傳遞信任狀等認證信息。對認證消息的保護完全依賴于EAP方法,例如EAP-TLS則提供了對認證消息的保護。
EAP-TTLS與EAP的功能非常相似,只是對認證消息作了更加完善的保護。EAP_TTLS的設計初衷就是將傳統的認證方法應用于容易遭受竊聽攻擊的無線網絡。EAP-TTLS協議分為兩個階段:①客戶端認證 TTLS服務器,并在兩者間建立一條安全隧道;②隧道認證,雙方協商認證機制,如CHAP,MD5等,實現服務器對客戶端的認證,在此基礎上,進一步協商隨后數據通信所需的密碼組件和密鑰材料。
WiMAX是繼WCDMA、CDMA2000和TD-SCDMA之后被國際電信聯盟承認的第四個3 G標準。它通過安全子層對身份認證、密鑰管理,數據安全傳輸進行管理。安全子層的具體實現協議為密鑰管理協議(PKM)。PKMv1是密鑰管理協議的第一個版本。該版本規定基站BS采用數字證書的形式對移動結點MS進行認證,其缺點在于僅支持單向認證,無法防止假冒基站攻擊。關于WiMAX網絡存在的安全漏洞,文獻[9]作了較詳細的討論,在此不再贅述。PKMv2[7]針對PKMv1的單向認證漏洞作了修訂,該版本要求移動節點與基站采用雙向認證。具體有兩種實現方案:①基于RSA的數字證書;②采用EAP協議。文獻[8]中也闡述了PKMv2引入EAP協議的思想,但并未對EAP所采用的方法做規定,只是要求經過EAP認證后,在BS與MS之間建立一個64Bytes共享主密鑰MSK。由MSK結合密鑰導出算法逐級導出PMK/EIK、AK、KEK,CMAC/HMAC等密鑰。由此可見,MSK的保密性是整個PKMv2協議安全的關鍵。
①由2.1節分析可知,EAP所支持的大多數方法EAP- TTLS都支持。例如,EAP-PAP,EAP-CHAP等。并且在客戶端與服務器之間建立了安全的隧道,可以保證EAP認證在客戶端與服務器之間產生的MSK的保密性。所以,在正真意義上體現了EAP可擴展性的優點,使傳統的認證方法應用于無線網絡認證;
②EAP-TTLS支持雙向認證,滿足WiMAX對安全性的要求。同時與PKMv2建議的基于RSA的數字證書的雙向認證相比具有更大的靈活性,不僅減少了對 MS同時存儲大量客戶數字證書的要求,而且也增加了BS對MS認證方法的靈活性;
③由圖1可知EAP-TTLS網絡架構與WiMAX網絡架構非常相似。AP相對于MS,TTLS與AAA服務器結合相對于WiMAX的后臺服務器,不僅可以完成認證,授權,計費功能,而且可以實現漫游功能。
從網絡架構,認證流程等方面對EAP-TTLS協議進行了分析,特別是針對國內相關方面文獻沒有明確指出EAP-TTLS協議兩次密碼組件協商與密鑰材料交換;或雖然指出TTLS兩次密碼組件協商、密鑰材料交換,但是僅分析了其中用于建立隧道的密碼組件協商、密鑰材料交換的過程等情況,明確指出了TTLS兩次密碼組件協商、密鑰材料交換過程,并從目的性及具體實現流程作了詳細的論述。WiMAX網絡的PKMv2協議提出了在其認證過程采用EAP方法的建議。通過對EAP與EAP-TTLS的比較,發現EAP-TTLS協議更加適用于WiMAX網絡的認證過程,而且在真正意義上符合了EAP協議可擴展性的設計初衷,將傳統的基于挑戰應答機制的認證方法應用于無線網絡認證。
[1] MADJID Nakhjiri, MASHA Nakhjiri. AAA and Network Security for Mobile Access[M].UK: John Wiley & Sons Ltd, 2005.
[2] FUNK P, BLALE W S. Extensible Authentication Protocol Tunneled Transport Layer Security Authenticated Protocol Version 0(EAP-TTLSv0)[S].[s.l.]:RFC,2008.
[3] Simon D, Aboba B, Hurst R. The EAP-TLS Authentication Protocol[S].[s.l.]:RFC,2008.
[4] IEEE Std. 802.16-2004. IEEE Standard for Local and Metropolitan Area Networks, part 16: Air Interface for Fixed Broadband Wireless Access Systems[S].USA:IEEE Press,2004.
[5] DIERKS T,RESCORLA E. The Transport Layer Security (TLS)Protocol Version 1.1[S].[s.l.]:RFC,2006.
[6] ABOBA B, BLUNK L, VOLLBRECHT J, et al. Extensible Authentication Protocol (EAP)[S].[s.l.]: RFC,2004.
[7] IEEE Std. 802.16e/D12. IEEE Standard for Local and Metropolitan Area Networks, part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems[S].USA:IEEE Press,2005.
[8] 胡濤,薛質,李建華.WiMAX安全機制分析與研究[J].信息安全與通信保密,2008(06):75-77.
[9] 謝蕾.移動 WiMAX的安全性分析與改進[J].通信技術,2009,42(02):264-269.