專利名稱:Wapi認證機制中的密鑰協(xié)商方法
技術領域:
本發(fā)明屬于無線通信技術領域,涉及無線局域網(wǎng)的安全技術,具體地說是一種WAPI中認證機制的密鑰協(xié)商方法,以解決移動設備接入無線局域網(wǎng)時的身份認證及密鑰協(xié)商問題。
背景技術:
2003年中國知識產(chǎn)權局公布了《無線局域網(wǎng)移動終端的安全接入與無線鏈路的數(shù)據(jù)保密通信方法》的專利申請書(公開號CN 1426200A)。此申請書所涉及的專利在中國無線局域網(wǎng)國家標準GB15629.11-無線局域網(wǎng)鑒別與保密基礎結構WAPI中應用,其中的無線局域網(wǎng)鑒別基礎結構簡稱為WAI。WAI采用類似于IEEE 802.1X結構的基于端口的認證模型,整個系統(tǒng)由客戶端STA、接入點AP和認證服務單元ASU組成;采用公鑰證書進行認證和密鑰協(xié)商,目標在于實現(xiàn)客戶端STA與接入點AP間的雙向鑒別,對于采用“假”AP的攻擊方式具有很強的抵御能力。不僅可以防止非法客戶端STA接入接入點AP而占用網(wǎng)絡資源,而且還可以防止客戶端STA登錄至非法接入點AP而造成信息泄漏。
國標GB15629.11中WAI的協(xié)議交互過程如圖1所示,它主要由證書鑒別和密鑰協(xié)商兩個部分組成。
所述的證書鑒別部分按如下過程進行協(xié)議交互第一步,客戶端STA將自己的證書和當前時間提交給接入點AP;第二步,接入點AP將客戶端STA的證書、提交時間和自己的證書一起用自己的私鑰進行簽名,并將這個簽名連同這三部分一起發(fā)給認證服務單元ASU;第三步,當認證服務單元ASU收到接入點AP提交來的鑒別請求之后,首先驗證接入點AP的簽名和證書。當鑒別成功之后,進一步驗證客戶端STA的證書;第四步,認證服務單元ASU將客戶端STA和接入點AP的鑒別結果信息用自己的私鑰進行簽名,并將這個簽名連同這兩個結果發(fā)回給接入點AP。
接入點AP對收到的結果進行簽名驗證,并得到對客戶端STA的鑒別結果,根據(jù)這一結果來決定是否允許該客戶端STA接入。同時接入點AP需要將認證服務單元ASU的驗證結果轉發(fā)給客戶端STA,客戶端STA也要對認證服務單元ASU的簽名進行驗證,并得到接入點AP的鑒別結果,根據(jù)這一結果來決定是否接入接入點AP。
所述的密鑰協(xié)商部分按如下過程進行協(xié)議交互第一步,客戶端STA向接入點AP發(fā)送密鑰協(xié)商請求,雙方首先進行密鑰算法協(xié)商,隨后,客戶端STA產(chǎn)生一個隨機數(shù)r0,用接入點AP的公鑰PKAP加密之后傳輸給對方;第二步,接入點AP向客戶端STA發(fā)送密鑰協(xié)商響應,接入點AP用自己的私鑰將對方所產(chǎn)生的隨機數(shù)r0還原,也產(chǎn)生一個隨機數(shù)r1,用客戶端STA的公鑰PKSTA加密后傳輸給對方,并計算會話密鑰K=r0r1;第三步,客戶端STA用自己的私鑰將對方產(chǎn)生的隨機數(shù)r1還原,也計算會話密鑰K=r0r1。
上述國標中WAI存在如下缺陷1.密鑰協(xié)商協(xié)議不安全。由于在WAI的密鑰協(xié)商過程中,一個攻擊者可以首先將接入點AP發(fā)送給客戶端STA的第二條消息給丟棄,然后可以假冒接入點AP給客戶端STA發(fā)送ENC(PKSTA,r),其中r為攻擊者任意選擇的一個隨機數(shù)。這樣當協(xié)議結束的時候,客戶端STA得到的會話密鑰是K1=r0r,而接入點AP得到的會話密鑰是K2=r0r1。也就是說在協(xié)議結束時,接入點AP和客戶端STA得到了不相同的會話密鑰,因此該密鑰協(xié)商協(xié)議是不安全的。
2.密鑰協(xié)商協(xié)議不能夠抵抗未知密鑰共享攻擊。如果一個攻擊者E向證書權威CA申請的公鑰與接入點AP或者是客戶端STA的公鑰相同,則攻擊者E就可以發(fā)起未知密鑰共享攻擊。假設攻擊者E申請到了同客戶端STA一樣的公鑰,那么在客戶端STA發(fā)送給接入點AP的第一條消息ENC(PKAP,r0)時,攻擊者E將其截獲,轉發(fā)給接入點AP,并聲稱該消息的發(fā)送者是E,則接入點AP就會根據(jù)攻擊者E的公鑰PKE給攻擊者E發(fā)送應答消息ENC(PKE,r1)。攻擊者E再將此消息轉發(fā)送給客戶端STA,并聲稱該消息來自接入點AP。由于客戶端STA和攻擊者E具有相同的公鑰,因而當協(xié)議執(zhí)行完后,客戶端STA就會以為自己與接入點AP協(xié)商了一個會話密鑰,而接入點AP卻會認為自己與攻擊者E協(xié)商了一個會話密鑰,這樣就造成了密鑰協(xié)商協(xié)議不能夠抵抗未知密鑰共享攻擊的后果。
3.沒有實現(xiàn)接入點AP對客戶端STA的身份認證功能。在WAPI中,只有當接入點AP確認客戶端STA擁有與其自身出示的公鑰證書相對應的私鑰時,才能夠實現(xiàn)對客戶端STA的身份認證。但從WAI的執(zhí)行過程看出,一個攻擊者只要知道一個合法用戶的證書,就可以順利的通過證書鑒別;而且該WAI的密鑰協(xié)商過程是隱式的密鑰認證,接入點AP不能夠確認客戶端STA擁有與其自身出示的公鑰證書相對應的私鑰,這樣就可使該攻擊者不被發(fā)現(xiàn)地完成密鑰協(xié)商協(xié)議,所以WAI沒有實現(xiàn)對客戶端STA的身份認證功能。
4.客戶端STA在沒完成身份認證的情況下就被允許訪問網(wǎng)絡。由于在該WAI中,一個攻擊者只要提交一個合法用戶的證書就可以假冒該用戶接入網(wǎng)絡,因此在網(wǎng)絡是計時收費的情況下,就可能導致誤收費。同時攻擊者一旦接入網(wǎng)絡就有可能發(fā)動許多的攻擊,對網(wǎng)絡的安全造成嚴重的威脅。
為了克服上述的缺陷,2004年全國信息技術標準化技術委員會寬帶無線IP標準工作組頒布了WAPI的實施指南。該實施指南中WAI的交互過程同國標中WAI的的交互過程基本一樣,都是由證書鑒別和密鑰協(xié)商兩部分組成。這兩者中的證書鑒別過程完全一樣,而且實施指南中的單波密鑰協(xié)商同國標中的密鑰協(xié)商過程大體相同,都是由客戶端STA和接入點AP分別產(chǎn)生隨機數(shù)后用對方的公鑰加密后傳送給對方,并通過這兩個隨機數(shù)計算得到會話密鑰。不同的是(1)實施指南中的密鑰協(xié)商請求是由接入點AP發(fā)出,而且在協(xié)商請求中增加了接入點AP對加密后的隨機數(shù)、鑒別請求時間、客戶端STA和接入點AP的身份標示等數(shù)據(jù)的一個數(shù)字簽名;(2)密鑰協(xié)商應答是由客戶端STA發(fā)出,而且在該協(xié)商應答中,增加了客戶端STA對加密后的隨機數(shù)、鑒別請求時間、客戶端STA和接入點AP的身份標示等數(shù)據(jù)計算出的一個消息認證碼。
WAPI實施指南中單波密鑰協(xié)商交互過程的安全性相對于國標中方案的安全性有一定的提高,但沒有達到通用可組合的安全強度。而無線局域網(wǎng)是一個復雜的網(wǎng)絡環(huán)境,其中存在著大量分布式并發(fā)執(zhí)行的協(xié)議,如果一個協(xié)議未達到通用可組合的安全強度,就可能在并發(fā)執(zhí)行或者是在同別的協(xié)議組合時出現(xiàn)安全問題,所以實施指南中單波密鑰協(xié)商協(xié)議沒有達到足夠的安全強度。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服WAI上述的缺點,提供一種在不改變原WAI基本框架下WAPI認證機制中的密鑰協(xié)商方法,以解決WAPI中密鑰協(xié)商和身份認證問題,進一步提高WAPI認證機制的安全強度。
實現(xiàn)本發(fā)明目的的技術方案是保持WAI的證書鑒別部分不變,只對密鑰協(xié)商部分進行改進。具體來說,本發(fā)明首先在原密鑰協(xié)商應答中添加一個消息認證碼來使密鑰協(xié)商協(xié)議達到Canetti-Krawczyk模型下的可證安全,然后添加一條客戶端STA發(fā)送給接入點AP的應答消息來使密鑰協(xié)商協(xié)議達到通用可組合的安全強度,并且實現(xiàn)身份認證和密鑰協(xié)商有機的結合,構成一個新的WAI密鑰協(xié)商協(xié)議,該協(xié)議的具體過程如下1.在接入點AP與客戶端STA進行密鑰算法協(xié)商之后,由客戶端STA產(chǎn)生一個隨機數(shù)r0,通過接入點AP的公鑰加密后連同會話標示符傳送給接入點AP;2.接入點AP對接收到的客戶端STA發(fā)送過來的加密隨機數(shù)解密得到r0,并選擇另外一個隨機數(shù)r1,將這兩個隨機數(shù)作為輸入,通過計算得到接入點AP的會話密鑰和消息認證碼的密鑰,用該消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到接入點AP的消息認證碼;然后,對所選擇的另外一個隨機數(shù)r1通過客戶端STA的公鑰加密后,再與會話標示符以及所述的消息認證碼由接入點AP一并發(fā)送給客戶端STA;3.客戶端STA對接收到的接入點AP發(fā)送過來的加密隨機數(shù)進行解密,得到接入點AP選擇的隨機數(shù)r1,將該隨機數(shù)r1與客戶端STA產(chǎn)生的隨機數(shù)r0作為輸入,通過計算得到客戶端STA的會話密鑰和消息認證碼的密鑰,用該消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到客戶端STA的消息認證碼;然后,客戶端STA將該消息認證碼與從AP接收到的消息認證碼進行校驗,如果一致,則由客戶端STA輸出會話密鑰,并決定接入網(wǎng)絡;最后,由客戶端STA用自身計算出的消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到客戶端STA的另外一個消息認證碼,并將它連同會話標示符發(fā)送給接入點AP;4.接入點AP驗證客戶端STA發(fā)送過來的消息認證碼,如果正確,則輸出會話密鑰,并允許客戶端STA接入網(wǎng)絡。
上述接入點AP計算得到其會話密鑰、消息認證碼密鑰、消息認證碼的過程如下首先,由接入點AP對客戶端STA產(chǎn)生的隨機數(shù)r0和接入點AP選擇的另外一個隨機數(shù)r1進行計算,即k=r0r1,
然后,根據(jù)參數(shù)k分別計算消息認證碼密鑰、會話密鑰、消息認證碼,即Ka=fk(0),Kd=fk(1),MACka(″0″,STA,AP,s)其中,f為偽隨機函數(shù),s為會話標示符,它由調(diào)用密鑰協(xié)商協(xié)議的上層協(xié)議來確定,Ka是消息認證碼密鑰,Kd是會話密鑰,MACka(″0″,STA,AP,s)是接入點AP計算得到得消息認證碼。
上述客戶端STA計算得到其會話密鑰、消息認證碼的密鑰、消息認證碼過程如下首先,由客戶端STA對其產(chǎn)生的隨機數(shù)r0和接入點AP選擇的隨機數(shù)r1進行計算,即k=r0r1,然后,根據(jù)參數(shù)k分別計算消息認證碼密鑰、會話密鑰、消息認證碼,即Ka=fk(0),Kd=fk(1),MACka(″0″,STA,AP,s),MACka(″1″,STA,AP,s)其中,f為偽隨機函數(shù),s是會話標示符,它由調(diào)用密鑰協(xié)商協(xié)議的上層協(xié)議來確定,Ka是消息認證碼密鑰,Kd是會話密鑰,MACka(″0″,STA,AP,s)是客戶端STA計算得到的消息認證碼,客戶端STA利用該消息認證碼對接入點AP發(fā)送過來的消息認證碼進行比較驗證,MACka(″1″,STA,AP,s)為客戶端STA發(fā)送給接入點AP的另一個消息認證碼。
本發(fā)明與國標中的WAI相比,具有以下優(yōu)點1.改進的方案保持了國標中的WAI的框架。
由于本發(fā)明只對WAI密鑰協(xié)商部分進行了修改,其密鑰協(xié)商思想并沒改變,都是客戶端STA和接入點AP各自產(chǎn)生隨機數(shù),用對方的公鑰加密傳送給對方,所以原方案不需要做大的改動就可以達到安全的目的。
2.密鑰協(xié)商協(xié)議不僅在Canetti-Krawczyk模型下是可證安全的,而且密鑰協(xié)商協(xié)議也達到了更高的安全級別,即通用可組合的安全強度。
由于本發(fā)明改進的密鑰協(xié)商協(xié)議首先在Canetti-Krawczyk模型下是可證安全的,所以它能夠提供未知密鑰共享(unknown key-share)、丟失信息(loss of information)、密鑰泄漏偽裝(key-compromise impersonation)、已知密鑰安全(known-key security)等安全屬性,進而達到通用可組合的安全強度,該安全強度能夠保證該密鑰協(xié)商協(xié)議在WLAN這個復雜的網(wǎng)絡環(huán)境中并發(fā)執(zhí)行時的安全,同時也能夠確保該協(xié)議具有可組合性。
3.密鑰協(xié)商和實體認證實現(xiàn)了有機的結合,達到了客戶端STA和接入點AP雙向認證和密鑰協(xié)商的目的。
由于本發(fā)明采用的密鑰協(xié)商過程安全地實現(xiàn)了客戶端STA和接入點AP雙向顯式的密鑰認證,只有擁有與經(jīng)過合法檢驗過的證書相對應私鑰的實體才能夠計算出對應的消息認證碼,因而防止了國標中WAI方案中可能出現(xiàn)的攻擊一個合法的實體通過了證書鑒別,但攻擊者卻在密鑰協(xié)商過程中取代該合法實體來完成密鑰協(xié)商的問題,安全地實現(xiàn)了客戶端STA和接入點AP在密鑰協(xié)商過程中的身份認證目的。
4.客戶端STA只有通過了證書鑒別和密鑰協(xié)商之后才能夠被允許接入網(wǎng)絡。
由于本發(fā)明采用客戶端STA只有通過了證書鑒別和密鑰協(xié)商之后才能夠被允許接入網(wǎng)絡的方案,因此避免了國標中WAI中一些攻擊者利用合法用戶的證書來通過證書鑒別接入網(wǎng)絡,而導致誤收費以及對網(wǎng)絡造成安全威脅的弊端。
5.改進的方案相對于國標中的WAI效率損失小。
由于本發(fā)明改進的方案相對于國標中WAI的密鑰協(xié)商協(xié)議只增加了一條消息的傳輸,客戶端STA和接入點AP各增加了三次消息認證碼的計算,而消息認證碼運算相對于公鑰計算來說其消耗的計算資源是很少的,所以改進的方案相對于國標中WAI方案其效率損失不大。
本發(fā)明與WAPI實施指南中的WAI相比,具有以下優(yōu)點1.本發(fā)明的方案達到了通用可組合的安全強度,但實施指南中的方案未達到此安全強度,而該安全強度對保證密鑰協(xié)商協(xié)議在WLAN這個復雜的網(wǎng)絡環(huán)境中安全運行是十分有必要的。
2.相對于WAPI實施指南中的方案,本發(fā)明的方案增加了一條消息的傳輸,但接入點AP不需要進行簽名運算、客戶端STA不需要做對簽名的驗證運算,而這兩種運算都是公鑰計算,需要的運算量大。所以從計算量上本發(fā)明方案的效率比實施指南中單波密鑰協(xié)商的效率要高。
圖1為國標中WAI的交互過程2為國標中WAI的密鑰協(xié)商協(xié)議3為本發(fā)明的密鑰協(xié)商協(xié)議交互過程4為本發(fā)明客戶端STA密鑰協(xié)商請求分組5為本發(fā)明接入點AP密鑰協(xié)商響應分組6為本發(fā)明客戶端STA應答消息分組圖具體實施方式
在執(zhí)行無線局域網(wǎng)鑒別與保密基礎結構WAPI時,首先由客戶端STA和接入點AP通過密鑰生成算法得到各自的公私鑰對,再從認證服務單元ASU申請到各自的公鑰證書,公鑰證書可以采用無線局域網(wǎng)國家標準GB15629.11中規(guī)定的格式。然后,開始無線局域網(wǎng)鑒別基礎結構WAI的協(xié)議交互,該協(xié)議交互包括證書鑒別和密鑰協(xié)商兩部分。其中,證書鑒別過程采用國家標準GB15629.11中規(guī)定的步驟進行,密鑰協(xié)商的具體交互過程按圖3所示的三條消息進行。
1.第一條消息為客戶端STA向接入點AP發(fā)送密鑰協(xié)商請求。該請求內(nèi)容包括會話標示符s和用接入點AP的公鑰PKAP對隨機數(shù)r0加密后的結果ENC(PKAP,r0)。產(chǎn)生該請求內(nèi)容的過程是首先由客戶端STA采用國家密碼管理委員會辦公室批準的WLAN隨機數(shù)產(chǎn)生算法產(chǎn)生一個隨機數(shù)r0;其次,用接入點AP的公鑰PKAP對該隨機數(shù)r0進行公鑰加密,得到結果ENC(PKAP,r0);然后,將加密后的數(shù)據(jù)置于密鑰協(xié)商請求分組中的“密鑰協(xié)商數(shù)據(jù)”字段,同時傳送會話標示符s。該會話標示符s是由上層協(xié)議,即調(diào)用密鑰協(xié)商協(xié)議的協(xié)議來提供的,該標示符具有唯一性。由于國家標準中密鑰協(xié)商請求分組中只有密鑰協(xié)商數(shù)據(jù)、備選會話算法個數(shù)、備選算法標示三個數(shù)據(jù)段,而沒有考慮到傳送會話標示符,所以需要在其密鑰協(xié)商請求分組中添加一個“會話標示符”數(shù)據(jù)段,該“會話標示符”字段添加在原密鑰協(xié)商請求分組的“備選算法標示”之后,其余的數(shù)據(jù)段同國標中規(guī)定的一樣,其具體格式見圖4。圖4中密鑰協(xié)商數(shù)據(jù)段的長度為17到256個字符,備選會話算法個數(shù)數(shù)據(jù)段的長度為1個字符,備選算法標示數(shù)據(jù)段長度為1到255個字符,“會話標示符”數(shù)據(jù)段的長度為16個字符。
2.第二條消息為接入點AP向客戶端STA發(fā)送密鑰協(xié)商響應應答。其具體過程是接入點AP在收到客戶端STA發(fā)送過來的密鑰協(xié)商請求后,首先按照該請求進行會話算法的協(xié)商,在客戶端STA提供的備選算法中選擇一種自己支持的算法;其次,利用自己的私鑰SKAP對密鑰協(xié)商數(shù)據(jù)ENC(PKAP,r0)進行解密得到r0然后,接入點AP也利用隨機數(shù)產(chǎn)生算法來產(chǎn)生一個隨機數(shù)r1,并用客戶端STA的公鑰PKSTA對其進行公鑰加密得到結果ENC(PKSTA,r1),同時接入點AP要計算出一個消息認證碼MACka(″0″,STA,AP,s)其計算過程如下接入點AP首先計算k=r0r1,然后計算Ka=fk(0),Kd=fk(1),MACka(″0″,STA,P,s)其中f為偽隨機函數(shù);Ka是消息認證碼的密鑰;Kd是會話密鑰,為以后的消息傳送提供加密保護。接入點AP在得到Ka,Kd后,擦除其內(nèi)部的中間狀態(tài),如k和r0和r1等,只保留狀態(tài)(STA,AP,Kd,Ka,s)。最后將ENC(PKSTA,r1)、MACka(″0″,STA,AP,s)以及會話標示符s發(fā)送給客戶端STA。
由于國標中的密鑰協(xié)商響應分組中只有“會話算法協(xié)商響應標示”和“密鑰協(xié)商數(shù)據(jù)”這兩個部分,沒有“消息認證碼”和“會話標示符”字段,所以需要在原分組的基礎上添加這兩個字段,該“消息認證碼”和“會話標示符”字段添加在原密鑰協(xié)商響應分組的最后,其余的數(shù)據(jù)段同國標中規(guī)定的一樣,具體格式見圖5。圖5中“會話算法協(xié)商響應標示”為1個字符長度,“密鑰協(xié)商數(shù)據(jù)”為17到256個字符長度,“消息認證碼”字段為20個字符長度,“會話標示符”為16個字符的長度。
3.第三條消息是客戶端STA給接入點AP發(fā)送應答消息。其具體過程是客戶端STA在收到ENC(PKSTA,r1)之后,對其進行解密得到隨機數(shù)r1,客戶端STA計算k=r0r1,Ka=fk(0),Kd=fk(1),MACka(″0″,STA,AP,s)然后將其計算出的消息認證碼同接入點AP發(fā)送過來的消息認證碼進行比較。如果一致,則輸出會話密鑰kd,并計算MACka(″1″,STA,AP,s)之后將其連同會話標示符S一同發(fā)送給接入點AP,并決定接入網(wǎng)絡??蛻舳薙TA在輸出Kd前也將其中間狀態(tài)擦除,如k和r0和r1等,只保留狀態(tài)(STA,AP,Kd,Ka,s)。
客戶端STA應答消息分組格式為新添加的數(shù)據(jù)分組,其格式如圖6所示。其中“消息認證碼”字段長度為20個字符,而“會話標示符”字段長度為16個字符。
4.接入點AP驗證應答消息。其具體過程是接入點AP在收到客戶端STA發(fā)送過來的應答消息后,對該消息中的消息認證碼MACka(″1″,STA,AP,s)進行驗證,如果正確,則輸出會話密鑰kd,并允許客戶端STA訪問網(wǎng)絡,否則就拒絕客戶端STA對網(wǎng)絡的訪問。
本發(fā)明效果安全的證明Canetti-Krawczyk模型是目前流行的一種形式化分析密鑰協(xié)商協(xié)議的方法,該模型給出了一個密鑰協(xié)商協(xié)議安全的定義,即會話密鑰安全。如果一個密鑰協(xié)商協(xié)議滿足以下兩個條件則它就是會話密鑰安全的。
1.如果兩個未被攻陷的參與者完成了匹配的會話,它們將輸出相同的會話密鑰;2.攻擊者區(qū)分會話密鑰和隨機數(shù)的概率不超過0.5+ε,其中ε為一個在安全參數(shù)下可忽略的概率,稱之為“優(yōu)勢”。
將圖3中整個協(xié)議記為π′,而將前兩條消息完成的協(xié)議記為π,可以通過如下方法證明π是會話密鑰安全的,π′是通用可組合的安全。
A.對π是會話密鑰安全的證明假定G、ENC、DEC分別是CCA2安全的公鑰加密方案中的密鑰生成算法、加密算法和解密算法,該CCA2是指適應性的選擇密文攻擊,而且客戶端STA和接入點AP已經(jīng)調(diào)用了算法G來分別得到了它們的公私鑰對;另外假定{fk}k∈{0,1}l是一個偽隨機函數(shù),其中l(wèi)為安全參數(shù)。
根據(jù)上述這兩個假定條件,設計如下加密游戲過程步驟0 為解密Oracle,它向協(xié)議π中的攻擊者 提供挑戰(zhàn)秘文c*=ENC(PKAP,r0),其中r0←R{0,1}l.]]>步驟1 向 發(fā)送三元組(c,rb,t),其中c為 選擇的一秘文,rb為 選擇的一個隨機數(shù),t為 選擇的一個字符串。 用MACka′(t)作出應答,其中ka′=fk′(0),k′=rbr′,r′=DEC(SKAP,c)。 可以多次地重復該過程,其中每一個三元組都由它適應性的選擇。也就是說,根據(jù) 對以前三元組的應答, 來選擇下一個三元組。為了降低攻擊難度, 可以使每個三元組中的rb保持不變。
步驟2 發(fā)送一個測試串t*=(“0”,STA,AP,s)給 選擇一個比特b←R{0,1}l.]]>如果b=0,那么它就給 發(fā)送應答MACka″(t*),其中ka″=fk″(0),k″=r0rb,r0是階段0中的被加密的隨機數(shù)。如果b=1, 返回一個隨機串s*,其長度和MACka″(t*)一樣。
步驟3與階段1相同。
步驟4 輸出一個比特b’,作為對b的猜測。
當且僅當b=b’時,則 贏得了游戲。這種情況下說明加密方案不是CCA2安全的。對該游戲需要進行如下說明。
(1) 通過密鑰生成算法G獲得了公私鑰對PKAP和SKAP。 知道PKAP但不知道SKAP。
(2) 是協(xié)議π中的攻擊者,它利用從協(xié)議攻擊中獲得的能力來參與游戲的執(zhí)行。
(3)步驟0中的挑戰(zhàn)密文c*是協(xié)議π中客戶端STA發(fā)送給接入點AP第一條消息中的密文。步驟1中 隨意地挑選測試密文c,隨機數(shù)rb以及字符串t,交給 處理。需要注意的是 不能夠同時選擇c*和t*=(“0”,STA,AP,s)作為輸入,為了降低攻擊難度,攻擊者可以保持每次選擇的三元組中的rb不變。
根據(jù)會話密鑰安全的定義,為了證明π是會話密鑰安全的,需要證明它滿足兩個條件。第一,在客戶端STA和接入點AP完成了匹配的會話的情況下,它們將得到相同的會話密鑰。具體來說,就是攻擊者在協(xié)議的執(zhí)行過程中不能偽造一個接入點AP發(fā)送給客戶端STA的消息認證碼,否則就會導致這兩者得到不相同的會話密鑰。第二,攻擊者不能夠以不可忽略的優(yōu)勢來區(qū)分會話密鑰kd和一個隨機數(shù)。下面分別證明π能夠滿足這兩個條件。
引理1 攻擊者在π的執(zhí)行過程中不能夠以不可忽略的概率來偽造消息認證碼,在協(xié)議結束時客戶端STA和接入點AP會得到相同的會話密鑰。
證明如果攻擊者 在π的執(zhí)行過程中能夠以不可忽略的概率來偽造一個消息認證碼的話,那么它在游戲的第2步中肯定能夠以不可忽略的概率計算出MACka″(t*) ,這樣一來它自然能夠以不可忽略的優(yōu)勢來區(qū)分MACka″(t*)和s*,從而能夠以不可忽略的優(yōu)勢來猜對b。那么攻擊者就贏得了上面的游戲,則加密方案就不是CCA2安全的了,而這與前提假設相矛盾。所以攻擊者在π的執(zhí)行過程中不能夠以不可忽略的概率來偽造消息認證碼。那么在STA和AP完成了匹配的會話的情況下,它們會得到相同的會話密鑰。
引理2 攻擊者在協(xié)議π的執(zhí)行過程中不能夠以不可忽略的優(yōu)勢來區(qū)分會話密鑰kd和一個隨機數(shù)。
證明假設攻擊者 在協(xié)議π的執(zhí)行過程中能夠以不可忽略的優(yōu)勢來區(qū)分會話密鑰kd和一個隨機數(shù)。在Canetti-Krawczyk模型中,攻擊者是不能夠直接得到會話密鑰kd的。而ka=fk(1),根據(jù)f的性質(zhì),它只有以不可忽略的概率得到k才能夠獲得以不可忽略的優(yōu)勢區(qū)分kd和一個隨機數(shù)的能力。也就是說攻擊者在只知道ENC(PKAP,r0)和ENC(PKSTA,r1)以及一些公共信息的的情況下,能夠以一個不可忽略的優(yōu)勢來區(qū)分k=r0r1和一個隨機數(shù)。那么攻擊者就能夠以不可忽略的優(yōu)勢來區(qū)分k”=r0rb和隨機數(shù),因為k”中的rb是攻擊者自己選定的,所以它區(qū)分k”和隨機數(shù)的難度要小于區(qū)分k和隨機數(shù)的難度。假設攻擊者區(qū)分k和隨機數(shù)的優(yōu)勢為η1,那么攻擊者區(qū)分k”和隨機數(shù)的優(yōu)勢為η2≥η1,而ka″=fk″(0),從而攻擊者能夠以不可忽略的概率得到ka″,之后攻擊者就可以通過不可忽略的概率計算出MACka″(t*),那么攻擊者就能夠以不可忽略的優(yōu)勢來區(qū)分開MACka″(t*)和s*。這樣攻擊者就可以贏得上面的游戲了,那么加密方案就不是CCA2安全的,這與前提假設相矛盾,所以攻擊者在協(xié)議π的執(zhí)行過程中不能夠以不可忽略的優(yōu)勢來區(qū)分會話密鑰kd和隨機數(shù)的。
定理1 如果所采用的加密方案是CCA2安全的,{fk}k∈{0,1}l是偽隨機函數(shù),那么π就是會話密鑰安全的。
證明根據(jù)引理1和引理2可知,在協(xié)議π結束時客戶端STA和接入點AP得到了相同的會話密鑰,且攻擊者不能夠以不可忽略的優(yōu)勢來區(qū)分會話密鑰和一個隨機數(shù)。那么由會話密鑰安全的定義可知,協(xié)議π是會話密鑰安全的。
同時從設計的游戲中可以看出,在協(xié)議的執(zhí)行中,接入點AP和客戶端STA內(nèi)部應該有一個獨立的模塊來實現(xiàn)游戲中 的功能—解密功能。而且,對于接入點AP來說和客戶端STA來說,k,r0,r1在使用完后應該立即擦除。
無線局域網(wǎng)是一個復雜的網(wǎng)絡環(huán)境,其中存在著大量并發(fā)執(zhí)行的協(xié)議和許多的不可預測性,而通用可組合的安全能夠保證協(xié)議在這樣的環(huán)境中運行時的安全。改進的密鑰協(xié)商協(xié)議能夠達到通用可組合的安全強度。
從上面的分析知道π是會話密鑰安全的,并且由美國《Universally ComposableNotions of Key Exchanges and Secure Channels》文獻可知,只要改進協(xié)議中的第3條消息能夠給協(xié)議提供應答屬性,那么改進的協(xié)議就是通用可組合的安全。
B.π′是通用可組合安全的證明引理3 如果所采用的加密方案是CCA2安全的,{fk}k∈{0,1}l是偽隨機函數(shù),那么該密鑰交換協(xié)議具有應答屬性。
證明為了證明π′具有應答屬性,需要構造一個內(nèi)部狀態(tài)仿真器I,在π′中,第一個輸出會話密鑰的實體是客戶端STA,在輸出會話密鑰kd之前它的內(nèi)部狀態(tài)是(kd,ka,s,STA,AP)。此時,接入點AP的內(nèi)部狀態(tài)也是完全一樣的(其中間的內(nèi)部狀態(tài)如k,r0,r1都已經(jīng)被擦除了)。從會話密鑰kd和一些公開信息中I可以得到客戶端STA和接入點AP被模擬的狀態(tài)lSTA=lAP=(kd,rI,s,STA,AP),其中rI是一個隨機數(shù),它和ka具有相同的長度,I不能夠從會話密鑰kd和從別的公開信息中計算出ka來??蛻舳薙TA和接入點AP的內(nèi)部狀態(tài)分別由lSTA和lAP來取代,那么在協(xié)議中最后一條消息中的消息認證碼為MACrI(“1”,STA,AP,s),而不是MACKa(“1”,STA,AP,s)。下面證明I是一個好的內(nèi)部狀態(tài)仿真器。
假設 是一個攻擊者。如果I不是一個好的內(nèi)部狀態(tài)仿真器,那么環(huán)境機 就能夠以不可忽略的優(yōu)勢來區(qū)分它是與π′以及攻擊者 的交互還是在同理想處理后的協(xié)議(I分別用lSTA和lAP取代了客戶端STA和接入點AP內(nèi)部狀態(tài)后的協(xié)議)以及攻擊者 的交互。而改造后的協(xié)議與π′唯一不同的地方是用隨機數(shù)rI取代了ka。因此如果I不是一個好的內(nèi)部狀態(tài)仿真器,那么環(huán)境機 就能以一個不可忽略的優(yōu)勢來區(qū)分rI和ka。而kd=fk(1),如果攻擊者能夠區(qū)分k和隨機數(shù)的話,那么它就能夠區(qū)分kd和隨機數(shù),而從引理2可知攻擊者不能夠區(qū)分kd和隨機數(shù),那么攻擊者肯定也不能區(qū)分k和隨機數(shù)。也就是說,攻擊者在不能夠區(qū)分k和隨機數(shù)的情況下,卻能夠以不可忽略的優(yōu)勢來區(qū)分ka和隨機數(shù)。而ka=fk(0),這與{fk}k∈{0,1}l是偽隨機函數(shù)的假設相矛盾。所以 不能夠以不可忽略的優(yōu)勢來區(qū)分它是與π′和 的交互還是同理想處理后的協(xié)議和 的交互,那么對π′來說I是一個好的內(nèi)部狀態(tài)仿真器,π′具有應答屬性。
結合定理1和引理3,可以得到定理2。
定理2 如果協(xié)議所采用的加密方案是CCA2安全的,{fk}k∈{0,1}l是偽隨機函數(shù),那么改進的密鑰交換協(xié)議是通用可組合的安全。
由于WAI中的證書鑒別過程已經(jīng)實現(xiàn)了認證服務單元ASU對客戶端STA和接入點AP擁有證書合法性的檢測,而改進的密鑰協(xié)商協(xié)議又是顯式的密鑰認證,所以新的方案就實現(xiàn)了密鑰協(xié)商和實體認證的有機結合,達到了客戶端STA和接入點AP雙向認證和密鑰協(xié)商的目的。
符號解釋WAPI—無線局域網(wǎng)鑒別與保密基礎結構;WAI—無線局域網(wǎng)鑒別基礎結構;PKA—實體A的公鑰;ENC(PKA,m)—用實體A的公鑰對消息m進行公鑰加密;fk()—密鑰為k的偽隨機函數(shù);MACK(m)—采用密鑰K對消息m做消息認證碼計算
權利要求
1.一種WAPI認證機制中的密鑰協(xié)商方法,設置密鑰協(xié)商請求、密鑰協(xié)商響應、密鑰協(xié)商應答三條消息,并按如下過程進行交互(1)在接入點AP與客戶端STA進行密鑰算法協(xié)商之后,由客戶端STA產(chǎn)生一個隨機數(shù)r0,通過接入點AP的公鑰加密后連同會話標示符s一并傳送給接入點AP;(2)接入點AP對接收到的客戶端STA發(fā)送過來的加密隨機數(shù)解密得到r0,并選擇另外一個隨機數(shù)r1,將這兩個隨機數(shù)作為輸入,通過計算得到接入點AP的會話密鑰和消息認證碼的密鑰,用該消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到接入點AP的消息認證碼;然后,對所選擇的另外一個隨機數(shù)r1通過客戶端STA的公鑰加密后,再與會話標示符s以及所述的消息認證碼由接入點AP一并發(fā)送給客戶端STA;(3)客戶端STA對接收到的接入點AP發(fā)送過來的加密隨機數(shù)進行解密,得到接入點AP選擇的隨機數(shù)r1,將該隨機數(shù)r1與客戶端STA產(chǎn)生的隨機數(shù)r0作為輸入,通過計算得到客戶端STA的會話密鑰和消息認證碼的密鑰,用該消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到客戶端STA的消息認證碼;然后,客戶端STA將該消息認證碼與從AP接受到的消息認證碼進行比較驗證,如果一致,則由客戶端STA輸出會話密鑰,并決定接入網(wǎng)絡;最后,由客戶端STA用自身計算出的消息認證碼的密鑰對客戶端STA以及接入點AP的身份等數(shù)據(jù)進行計算,得到客戶端STA的另外一個消息認證碼,并將它連同會話標示符s一并發(fā)送給接入點AP;(4)接入點AP驗證客戶端STA發(fā)送過來的消息認證碼,如果正確,則輸出會話密鑰,并允許客戶端STA接入網(wǎng)絡。
2.根據(jù)權利要求1的密鑰協(xié)商協(xié)議方法,其特征在于所述接入點AP計算會話密鑰、消息認證碼、消息認證碼密鑰的過程如下首先,由接入點AP對客戶端STA產(chǎn)生的隨機數(shù)r0和接入點AP選擇的另外一個隨機數(shù)r1進行計算,即k=r0r1;然后,根據(jù)參數(shù)k分別計算消息認證碼密鑰、會話密鑰、消息認證碼,即Ka=fk(0),Kd=fk(1),MACka(″0″,STA,AP,s)。其中f為偽隨機函數(shù),s是會話標示符,Ka是接入點AP的消息認證碼密鑰,Kd是會話密鑰,MACka(″0″,STA,AP,s)是接入點AP計算得到的消息認證碼。
3.根據(jù)權利要求1的密鑰協(xié)商方法,其特征在于所述客戶端STA計算會話密鑰、消息認證碼的密鑰、消息認證碼的過程如下首先,由客戶端STA對客戶端STA產(chǎn)生的隨機數(shù)r0和接入點AP選擇的隨機數(shù)r1進行計算,即k=r0r1;然后,根據(jù)參數(shù)k分別計算消息認證碼密鑰、會話密鑰、消息認證碼,即Ka=fk(0),Kd=fk(1),MACka(″0″,STA,AP,s),MACka(″1″,STA,AP,s);其中,f為偽隨機函數(shù),s是會話標示符,Ka是消息認證碼密鑰,Kd是會話密鑰,MACka(″0″,STA,AP,s)是客戶端STA的消息認證碼,客戶端STA利用該消息認證碼對接入點AP發(fā)送過來的消息認證碼進行比較驗證,MACka(″1″,STA,AP,s)為客戶端STA發(fā)送給接入點AP的消息認證碼。
全文摘要
本發(fā)明公開了一種WAPI中認證機制的密鑰協(xié)商方法,以解決移動設備接入無線局域網(wǎng)時身份認證及密鑰協(xié)商的問題。本方法設置密鑰協(xié)商請求、響應、應答三條消息,其交互過程是客戶端STA產(chǎn)生一個隨機數(shù)r
文檔編號H04L12/28GK1665183SQ20051004182
公開日2005年9月7日 申請日期2005年3月23日 優(yōu)先權日2005年3月23日
發(fā)明者李興華, 馬建峰, 張帆, 曹春杰 申請人:西安電子科技大學