專利名稱:鑒權(quán)和密鑰協(xié)商方法、認(rèn)證方法、系統(tǒng)及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及認(rèn)證技術(shù)。
技術(shù)背景隨著技術(shù)的進(jìn)步,傳統(tǒng)核心網(wǎng)向全I(xiàn)P網(wǎng)絡(luò)演進(jìn)成為網(wǎng)絡(luò)發(fā)展的趨勢(shì)。第三代移動(dòng)通信合作伙伴項(xiàng)目(3rd Generation Partnership Project,簡(jiǎn)稱"3GPP,,) 在R5/R6標(biāo)準(zhǔn)提出的基于IP的多媒體子系統(tǒng)(IP based Multimedia Subsystem, 簡(jiǎn)稱"IMS")即專門(mén)為下一代全I(xiàn)P的多媒體移動(dòng)網(wǎng)絡(luò)設(shè)計(jì)的系統(tǒng),著眼于 用IP網(wǎng)絡(luò)承載移動(dòng)多媒體業(yè)務(wù),使運(yùn)營(yíng)商和終端用戶從多媒體服務(wù)的革新中 獲取更快速、更靈活的應(yīng)用,從而為運(yùn)營(yíng)商增加收入、創(chuàng)造利潤(rùn)。第三代合作伙伴項(xiàng)目2 (3rd Generation Partnership Project 2,簡(jiǎn)稱 "3GPP2")已經(jīng)制定了相應(yīng)的IMS規(guī)范,即多媒體域(Multimedia Domain, 簡(jiǎn)稱"MMD")標(biāo)準(zhǔn)。MMD與3GPP中IMS對(duì)應(yīng)的實(shí)體和接口是基本—— 對(duì)應(yīng)的。IMS是基于會(huì)話初始化協(xié)議(Session Initiation Protocol,簡(jiǎn)稱"SIP") 的體系,SIP是按客戶端/服務(wù)器方式工作的基于文本的信息協(xié)議,IMS使用 SIP呼叫控制機(jī)制來(lái)創(chuàng)建、管理和終結(jié)各種類型的多媒體業(yè)務(wù)。3GPP定義的IMS的框架結(jié)構(gòu)包括呼叫會(huì)話控制功能(Call Session Control Function,簡(jiǎn)稱"CSCF")、媒體網(wǎng)關(guān)控制功能(Media Gateway Control Function,簡(jiǎn)稱"MGCF")、多媒體資源功能(Multimedia Resource Function, 簡(jiǎn)稱"MRF")、和歸屬用戶服務(wù)器(Home Subscriber Server,簡(jiǎn)稱"HSS") 等功能實(shí)體。其中,CSCF又可以分成服務(wù)CSCF( Serving CSCF,簡(jiǎn)稱"S-CSCF,,)、 代理CSCF( Proxy CSCF,簡(jiǎn)稱"P畫(huà)CSCF")和查詢CSCF( Interrogating CSCF, 簡(jiǎn)稱"I-CSCF")三個(gè)邏輯實(shí)體。S-CSCF是IMS的業(yè)務(wù)交換中心,執(zhí)行會(huì) 話控制,負(fù)責(zé)管理用戶信息,產(chǎn)生計(jì)費(fèi)信息等;P-CSCF是終端用戶接入IMS 的接入點(diǎn),完成用戶注冊(cè),負(fù)責(zé)服務(wù)質(zhì)量控制和安全管理等;I-CSCF負(fù)責(zé)IMS 域之間的互通,管理S-CSCF的分配,對(duì)外隱藏網(wǎng)絡(luò)拓樸和配置,產(chǎn)生計(jì)費(fèi) 數(shù)據(jù)等。在終端發(fā)起呼叫前,需要在IMS核心網(wǎng)實(shí)體進(jìn)行注冊(cè)。注冊(cè)過(guò)程使得終 端可以使用IMS服務(wù)。IMS注冊(cè)使用的是基于鑒權(quán)和密鑰協(xié)商(Authentication and Key Agreement,簡(jiǎn)稱"AKA")的流程。在AKA流程中,首先由終端向網(wǎng)絡(luò)側(cè)發(fā)送認(rèn)證請(qǐng)求,在請(qǐng)求中包含用 戶身份。網(wǎng)絡(luò)側(cè)根據(jù)該請(qǐng)求中的用戶身份獲取該終端的根密鑰,并根據(jù)該根 密鑰計(jì)算用于認(rèn)證的認(rèn)證向量(AV) , AV包括五個(gè)參數(shù)隨機(jī)數(shù)RAND, AUTN,期待的響應(yīng)XRES以及完整性密鑰IK和加密密鑰CK;其中,AUTN 又包含有序列號(hào)SQN和MAC兩個(gè)參數(shù),MAC值是根據(jù)隨機(jī)數(shù)RAND、 SQN 以及終端根密鑰計(jì)算得到的,用來(lái)讓終端認(rèn)證網(wǎng)絡(luò)側(cè)。之后,網(wǎng)絡(luò)側(cè)將RAND 和AUTN通過(guò)認(rèn)iia兆戰(zhàn)消息Auth一Challenge發(fā)送給終端。終端收到該挑戰(zhàn)消 息后,根據(jù)其中的RAND、 SQN以及該終端的根密鑰計(jì)算相應(yīng)的XMAC,并 將XMAC和消息中的MAC做比較,如果相同,則接著校驗(yàn)收到的SQN是 否大于本地保存的SQN,并且其差值在有效范圍內(nèi),以防止重放攻擊。如果 是,則該終端成功地認(rèn)證了網(wǎng)絡(luò)。終端接著根據(jù)該RAND計(jì)算RES、完整性 密鑰IK和加密密鑰CK,其中RES是用來(lái)讓網(wǎng)絡(luò)認(rèn)證終端的參數(shù)。之后終端 向網(wǎng)絡(luò)側(cè)發(fā)送認(rèn)i正響應(yīng)SIP Register,在響應(yīng)消息中包含用戶身份,將RES 作為該響應(yīng)消息的密鑰。網(wǎng)絡(luò)側(cè)根據(jù)該響應(yīng)消息中的用戶身份找到對(duì)應(yīng)的 XRES,檢驗(yàn)該RES,判斷該響應(yīng)消息是否合法,如果合法則認(rèn)證成功??梢?jiàn),在該AKA流程中,只有在終端側(cè)驗(yàn)證網(wǎng)絡(luò)合法、且網(wǎng)絡(luò)側(cè)驗(yàn)證 終端合法,才均使得認(rèn)證成功。為了確保終端能夠有效驗(yàn)證網(wǎng)絡(luò)側(cè),實(shí)現(xiàn)AKA過(guò)程,終端必須在本地 保存有SQN,網(wǎng)絡(luò)側(cè)同樣為每個(gè)終端也保存有對(duì)應(yīng)的SQN,終端與網(wǎng)絡(luò)側(cè)保 存的SQN同步。在每次網(wǎng)絡(luò)側(cè)發(fā)送挑戰(zhàn)消息和終端檢驗(yàn)SQN后,兩側(cè)的SQN 均會(huì)改變且單調(diào)遞增。因此,終端在收到網(wǎng)絡(luò)側(cè)發(fā)送的認(rèn)證挑戰(zhàn)消息后,可 以根據(jù)消息包含的AV中的SQN是否大于本終端保存的SQN,或兩者的差 值是否在一個(gè)限定的范圍內(nèi),來(lái)判斷該認(rèn)證挑戰(zhàn)消息是否新鮮。如果收到的 認(rèn)證挑戰(zhàn)消息中的SQN大于終端本地的SQN,則說(shuō)明該認(rèn)證挑戰(zhàn)消息中的 SQN是有效的,否則認(rèn)為是重放攻擊,也就是說(shuō),該消息是被非法網(wǎng)絡(luò)截獲 后重發(fā)的,不具備安全性。這種情況下,終端發(fā)起與網(wǎng)絡(luò)側(cè)的重同步過(guò)程, 使得網(wǎng)絡(luò)側(cè)的SQN (序列號(hào))與終端保存的SQN重新同步。由于在認(rèn)證的過(guò)程中,終端和網(wǎng)絡(luò)側(cè)均需要使用到用戶身份、SQN、根 密鑰,這些信息保存在ISIM (即IMS的用戶身份模塊)上,因此通常而言, 支持IMS的終端需要具有ISIM模塊。這個(gè)模塊是3G用戶卡UICC或者R-UIM 的一部分,對(duì)于沒(méi)有ISIM的2G用戶卡而言,無(wú)法實(shí)現(xiàn)IMS業(yè)務(wù)的注冊(cè)。終端側(cè)的用戶標(biāo)識(shí)、SQN和IMS的根密鑰都保存在卡上,因此能保證 這些參數(shù)的安全性。如果終端為機(jī)卡一體,也就是沒(méi)有UICC或者R-UIM時(shí), 這些參數(shù)保存在終端的安全內(nèi)存中。這樣的終端只為 一個(gè)用戶服務(wù)。目前,有些運(yùn)營(yíng)商希望為使用2G卡的用戶提供IMS的業(yè)務(wù),因此需要 考慮如何為這些用戶保存以上參數(shù),即IMS密鑰、SQN等。有方法提出動(dòng)態(tài) 生成IMS密鑰,并且在這些用戶使用的終端,也就是除去用戶卡的用戶設(shè)備 上維護(hù)和保存SQN。然而本發(fā)明的發(fā)明人發(fā)現(xiàn),該方法中,由于SQN保存在終端上,用戶 更換終端時(shí),終端需要產(chǎn)生新的SQN,這個(gè)SQN與之前所使用的無(wú)法關(guān)聯(lián),從而無(wú)法保證SQN的單調(diào)遞增性,這樣可能導(dǎo)致非法網(wǎng)絡(luò)的重放攻擊。比如 說(shuō),用戶通過(guò)2G卡先在終端1上進(jìn)行IMS注冊(cè)認(rèn)證,在AKA過(guò)程中使用 終端1中保存的SQN進(jìn)行網(wǎng)絡(luò)驗(yàn)證,在該次網(wǎng)絡(luò)驗(yàn)證之后,終端1上保存的 SQN會(huì)發(fā)生變化,單調(diào)遞增;之后該用戶通過(guò)該2G卡在終端2上再次進(jìn)行 認(rèn)證,此時(shí),該終端2上為此用戶重新生成的SQN可能會(huì)比之前的小(未確 保單調(diào)遞增性)。此時(shí),如果非法網(wǎng)絡(luò)截獲用戶上次認(rèn)證時(shí)的認(rèn)證挑戰(zhàn)消息 進(jìn)行重放攻擊,終端將誤認(rèn)該非法消息為合法認(rèn)證挑戰(zhàn)消息,即無(wú)法抵抗該 重放攻擊。發(fā)明內(nèi)容本發(fā)明實(shí)施方式要解決的主要技術(shù)問(wèn)題是提供一種鑒權(quán)和密鑰協(xié)商方 法、認(rèn)證方法、系統(tǒng)及設(shè)備,使得在用戶卡不支持SQN的保存的情況下,能 夠抵抗AKA過(guò)程中的重放攻擊。為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施方式提供了 一種鑒權(quán)和密鑰協(xié)商方 法> 包含以下步驟網(wǎng)絡(luò)側(cè)收到終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、 和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)生成第一認(rèn)證碼,將該隨機(jī)數(shù)、第 一序列號(hào)和第 一認(rèn)證碼發(fā)送給終端;終端對(duì)收到的隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼進(jìn)行驗(yàn)證,如滿足以下 條件則認(rèn)定網(wǎng)絡(luò)側(cè)合法根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰、隨機(jī)數(shù)和第 一序列號(hào)生成的第二認(rèn)證碼與第 一認(rèn)證碼相同;代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)與第 一序列號(hào)的差值滿足預(yù)定 條件;終端認(rèn)定網(wǎng)絡(luò)側(cè)合法后,根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和隨機(jī)數(shù)生成響應(yīng)值,發(fā)送給網(wǎng)絡(luò)側(cè);如果網(wǎng)絡(luò)側(cè)對(duì)響應(yīng)值驗(yàn)證成功,則認(rèn)定終端合法。本發(fā)明的實(shí)施方式還提供了 一種鑒權(quán)和密鑰協(xié)商系統(tǒng),包含網(wǎng)絡(luò)側(cè)和終 端,網(wǎng)絡(luò)側(cè)包含第一生成單元,用于在收到終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該 終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)生 成第一認(rèn)證碼;發(fā)送單元,用于將隨機(jī)數(shù)、第一序列號(hào)和第一生成單元生成的第一認(rèn)證 碼發(fā)送給終端;終端包含接收單元,用于從網(wǎng)絡(luò)側(cè)接收隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn) 證碼;第二生成單元,用于根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和接收單元收到的隨機(jī) 數(shù),生成第二認(rèn)證碼和響應(yīng)值;發(fā)送單元,用于將響應(yīng)值發(fā)送給網(wǎng)絡(luò)側(cè);驗(yàn)證單元,用于對(duì)接收單元收到的隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼進(jìn) 行驗(yàn)證,在第二生成單元生成的第二認(rèn)證碼與第一認(rèn)證碼相同,且代表終端 側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)與第一序列號(hào)的差值滿足預(yù)定條件時(shí),認(rèn)定網(wǎng) 絡(luò)側(cè)合法;第二生成單元在驗(yàn)證單元認(rèn)定網(wǎng)絡(luò)側(cè)合法后,根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰 和隨枳4史生成響應(yīng){直。本發(fā)明的實(shí)施方式還提供了一種終端設(shè)備,包含接收單元,用于從網(wǎng)絡(luò)側(cè)接收隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼;生成單元,用于根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和接收單元收到的隨機(jī)數(shù),生 成第二認(rèn)證碼和響應(yīng)值;發(fā)送單元,用于將響應(yīng)值發(fā)送給網(wǎng)絡(luò)側(cè);驗(yàn)證單元,用于對(duì)接收單元收到的隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼進(jìn) 行驗(yàn)證,在生成單元生成的第二認(rèn)證碼與第一認(rèn)證碼相同,且代表終端側(cè)當(dāng) 前系統(tǒng)時(shí)間的第二序列號(hào)與第 一序列號(hào)的差值滿足預(yù)定條件時(shí),認(rèn)定網(wǎng)絡(luò)側(cè) 合法;生成單元在驗(yàn)證單元認(rèn)定網(wǎng)絡(luò)側(cè)合法后,根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和隨 才幾數(shù)生成響應(yīng)值。本發(fā)明的實(shí)施方式還提供了一種認(rèn)證方法,包含以下步驟 如果第二設(shè)備確定本設(shè)備沒(méi)有保存待認(rèn)證的用戶的第四序列號(hào),則根據(jù) 該第二設(shè)備的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并通過(guò)與第 一設(shè)備的交互 將由第一設(shè)備保存的該用戶的第三序列號(hào)與該第四序列號(hào)同步;第二設(shè)備和第 一設(shè)備使用同步后的第三、第四序列號(hào)進(jìn)行交互消息的抗 重放認(rèn)證。本發(fā)明的實(shí)施方式還提供了一種通信設(shè)備,包含 第一存儲(chǔ)單元,用于保存用戶的第四序列號(hào);生成單元,用于在確定該第一存儲(chǔ)單元沒(méi)有保存待認(rèn)證的用戶的第四序 列號(hào)時(shí),根據(jù)該通信設(shè)備的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并指示該第 一存儲(chǔ)單元保存該第四序列號(hào);第一同步單元,用于通過(guò)與通信設(shè)備的對(duì)端設(shè)備的交互將由對(duì)端設(shè)備保 存的用戶的第三序列號(hào)與第四序列號(hào)同步;第 一認(rèn)證單元,用于使用同步后的第四序列號(hào)與對(duì)端設(shè)備進(jìn)行交互消息 的抗重iii人iiE。本發(fā)明的實(shí)施方式還提供了一種通信設(shè)備,包含第二存儲(chǔ)單元,用于保存用戶的第三序列號(hào);接收單元,用于從通信設(shè)備的對(duì)端設(shè)備接收待認(rèn)證的用戶的第四序列號(hào);第二同步單元,用于將第二存儲(chǔ)單元保存的第三序列號(hào)與接收單元收到的第四序列號(hào)同步;第二認(rèn)證單元,用于使用更新后的第三序列號(hào)與對(duì)端設(shè)備進(jìn)行交互消息 的抗重》文iUiE。本發(fā)明的實(shí)施方式還提供了一種認(rèn)證系統(tǒng),包含至少一個(gè)如上文所述的 第一種通信設(shè)備和至少一個(gè)如上文所述的第二種通信設(shè)備,該第一種通信設(shè) 備和該第二種通信設(shè)備互為進(jìn)行認(rèn)證的對(duì)端設(shè)備。本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于網(wǎng)絡(luò)側(cè)收到終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、 和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)SQN1生成第一認(rèn)證碼MAC,將該 隨機(jī)數(shù)、第一序列號(hào)SQN1和第一認(rèn)證碼MAC發(fā)送給該終端;終端根據(jù)與 網(wǎng)絡(luò)側(cè)的共享密鑰、收到的隨機(jī)數(shù)和第一序列號(hào)SQN1生成第二認(rèn)證碼 XMAC,如果該第二認(rèn)證碼XMAC與第一認(rèn)證碼MAC相同,且代表終端側(cè) 當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)SQN2與第 一序列號(hào)SQN1的差值滿足預(yù)定條件, 則該終端認(rèn)定網(wǎng)絡(luò)側(cè)合法;如果,XMAC與MAC相同,但終端側(cè)的SQN2 與網(wǎng)絡(luò)側(cè)的SQN1的差值不滿足預(yù)定條件,則認(rèn)定用于發(fā)送該隨機(jī)數(shù)、第一 序列號(hào)SQN1和第一認(rèn)證碼MAC的消息是網(wǎng)絡(luò)側(cè)在之前發(fā)送的,可能被非 法網(wǎng)絡(luò)復(fù)制后重放,不具備安全性,認(rèn)證失敗。由于系統(tǒng)時(shí)間是每個(gè)終端均 能夠自動(dòng)且唯一確定的,因此終端無(wú)需根據(jù)上次認(rèn)證后的SQN2來(lái)生成本次 認(rèn)證過(guò)程中的SQN2,即使用戶卡無(wú)法保存其上次認(rèn)證后的SQN2,或在上次 認(rèn)證之后用戶卡更換到了其它終端,均能唯一且準(zhǔn)確地生成本次認(rèn)證的SQN2,不會(huì)因?yàn)镾QN2的無(wú)法確認(rèn)或錯(cuò)誤而將非法網(wǎng)絡(luò)重放的隨機(jī)數(shù)、第一 序列號(hào)和認(rèn)證碼誤認(rèn)為合法,從而能夠有效抵抗重放攻擊。如果第二設(shè)備確定本設(shè)備沒(méi)有保存待認(rèn)證的用戶的第四序列號(hào),則根據(jù) 該第二設(shè)備的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并通過(guò)與第 一設(shè)備的交互 將由第一設(shè)備保存的該用戶的第三序列號(hào)與該第四序列號(hào)同步;第二設(shè)備和 第一設(shè)備使用同步后的第三、第四序列號(hào)進(jìn)行交互消息的抗重放認(rèn)證。由于 在第一設(shè)備保存的用戶的第三序列號(hào)是根據(jù)認(rèn)證的次數(shù)遞增的,而系統(tǒng)時(shí)間 是自動(dòng)遞增的,且能夠很容易地保證系統(tǒng)時(shí)間自動(dòng)遞增的頻率大于第二設(shè)備 認(rèn)證的頻率,因此根據(jù)系統(tǒng)時(shí)間生成的第四序列號(hào)比第 一設(shè)備和用戶側(cè)原先 保存的第三第四序列號(hào)大,如第二設(shè)備認(rèn)證頻率為十秒一次,則可以根據(jù)系 統(tǒng)時(shí)間的總秒數(shù)生成第四序列號(hào),如第二設(shè)備認(rèn)證頻率為十毫秒一次,則可 以根據(jù)系統(tǒng)時(shí)間的總毫秒數(shù)生成第四序列號(hào),從而可以保證根據(jù)系統(tǒng)時(shí)間生 成的第四序列號(hào)一定大于根據(jù)認(rèn)證次數(shù)遞增得到序列號(hào)。因此采用該系統(tǒng)時(shí) 間生成的第四序列號(hào)為第 一設(shè)備和第二設(shè)備側(cè)進(jìn)行序列號(hào)的重同步,在不知 道當(dāng)前保存和使用的第三序列號(hào)和第四序列號(hào)的情況下,依然能夠確保重同 步后的序列號(hào)是遞增的,從而能夠有效防止重放攻擊,特別適合無(wú)法保存序:終端設(shè)備時(shí)與網(wǎng)絡(luò)側(cè)設(shè)備之間進(jìn)行的重同步。
圖1是根據(jù)本發(fā)明第一實(shí)施方式的鑒權(quán)和密鑰協(xié)商方法流程圖; 圖2是根據(jù)本發(fā)明第二實(shí)施方式的鑒權(quán)和密鑰協(xié)商方法流程圖; 圖3是根據(jù)本發(fā)明第三實(shí)施方式的鑒權(quán)和密鑰協(xié)商方法流程圖; 圖4是^f艮據(jù)本發(fā)明第五實(shí)施方式的認(rèn)證方法流程圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā) 明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明第一實(shí)施方式涉及一種鑒權(quán)和密鑰協(xié)商AKA方法。與現(xiàn)有的 AKA相比,兩者最大的區(qū)別在于SQN參數(shù)設(shè)置方法的不同。在現(xiàn)有的AKA 中,SQN是一個(gè)計(jì)數(shù)器的概念,用戶側(cè)和網(wǎng)絡(luò)側(cè)都維護(hù)一個(gè)計(jì)數(shù)器,并保證 同步,用戶的終端可以根據(jù)網(wǎng)絡(luò)側(cè)發(fā)送的計(jì)數(shù)器值(即SQN)和本地維護(hù)的 計(jì)數(shù)器值(SQN)是否一致來(lái)判斷發(fā)送SQN的網(wǎng)絡(luò)設(shè)備是否合法。該方法要 求一個(gè)用戶必須統(tǒng)一維護(hù)一個(gè)SQN,在SQN保存在用戶卡上的情況下,無(wú) 論用戶更換多少終端,都能統(tǒng)一維護(hù)一個(gè)SQN,而對(duì)于無(wú)法保存SQN的用 戶卡,由于只能將SQN保存在用戶卡插入的終端上,在用戶將同一張用戶卡 插入不同的終端的情況下,無(wú)法統(tǒng)一不同終端中保存的SQN,從而在認(rèn)證時(shí) 可能受到重放攻擊。本實(shí)施方式繼續(xù)使用SQN這個(gè)參數(shù),但它不再是計(jì)數(shù)器 的值,而是系統(tǒng)的時(shí)鐘值,也就是時(shí)間戳(time stamp )。由于終端和網(wǎng)絡(luò)側(cè) 都有時(shí)鐘,不同的終端維護(hù)的時(shí)鐘永遠(yuǎn)是一致的,即使用戶的用戶卡無(wú)法保 存SQN,且需要插入不同的終端,只要各終端與網(wǎng)絡(luò)側(cè)在時(shí)間上是同步的, 不同終端的SQN就一定是一致的,從而可以有效4氐抗重^:攻擊。在本實(shí)施方 式中終端對(duì)應(yīng)的用戶卡不支持SQN保存能力。具體的認(rèn)證過(guò)程如圖1所示,在步驟101中,終端向網(wǎng)絡(luò)側(cè)發(fā)起注冊(cè)或 者認(rèn)證請(qǐng)求,請(qǐng)求中包含用戶的身份。接著進(jìn)入步驟102,網(wǎng)絡(luò)側(cè)收到該注冊(cè)或者認(rèn)證請(qǐng)求后,根據(jù)其中用戶 的身份,找到對(duì)應(yīng)的用戶信息,獲取該用戶的共享密鑰K,作為認(rèn)證密鑰。 如果用戶信息中沒(méi)有共享密鑰,網(wǎng)絡(luò)側(cè)也可以通過(guò)其他方式生成認(rèn)證密鑰。接著進(jìn)入步驟103,網(wǎng)絡(luò)側(cè)產(chǎn)生隨機(jī)數(shù)RAND,并獲得系統(tǒng)時(shí)間,將時(shí) 間值變換為48比特的SQN值。將系統(tǒng)時(shí)間轉(zhuǎn)換成SQN值的方法有很多,根據(jù)所需要的精度,可以有不同的轉(zhuǎn)換。如果精度不需要很高,可以將時(shí)間的總秒數(shù)轉(zhuǎn)換成SQN值;如果精度要求高一些,可以將秒和毫秒數(shù)轉(zhuǎn)換成SQN 值。另外,在本實(shí)施方式中,該SQN是48比特的數(shù)值,在實(shí)際應(yīng)用中,該 SQN也可以是小于或大于48比特的數(shù)值,本實(shí)施方式不在此進(jìn)行限制。接著進(jìn)入步驟104,網(wǎng)絡(luò)側(cè)根據(jù)共享密鑰K、隨機(jī)數(shù)RAND和SQN值 計(jì)算認(rèn)證向量AV的其他參數(shù)。該AV包括RAND、 AUTN、 XREX、 IK和 CK, AUTN又包含序列號(hào)SQN和MAC。也就是說(shuō),該網(wǎng)絡(luò)側(cè)根據(jù)共享密鑰 K、 RAND和SQN計(jì)算MAC、 XRES、 IK和CK。其中MAC和SQN用于供 終端認(rèn)證網(wǎng)絡(luò)側(cè),XRES用于供網(wǎng)絡(luò)側(cè)在之后對(duì)終端進(jìn)行認(rèn)證。接著進(jìn)入步驟105,網(wǎng)絡(luò)側(cè)將RAND、 AUTN (包括SQN和MAC值)作為認(rèn)證挑戰(zhàn)消息的參數(shù)發(fā)給終端側(cè)。接著進(jìn)入步驟106,終端側(cè)收到該認(rèn)證挑戰(zhàn)消息后,根據(jù)消息中的RAND 和SQN、以及終端本身的共享密鑰K,采用與網(wǎng)絡(luò)側(cè)相同的方法計(jì)算XMAC。 并將該XMAC與收到的認(rèn)證挑戰(zhàn)消息中的MAC值做比較,如果不正確,則 判定當(dāng)前收到的認(rèn)證挑戰(zhàn)消息是非法的,則終止認(rèn)證流程,認(rèn)證失敗。如果 正確則進(jìn)入步驟107。在步驟107中,終端繼續(xù)檢查SQN的值。SQN是否有效的判斷方法與 現(xiàn)有的AKA流程不同,終端首先獲得當(dāng)前的系統(tǒng)時(shí)間,并將其轉(zhuǎn)換成48比 特的SQN值,將本終端轉(zhuǎn)換得到的SQN與接收到的認(rèn)證挑戰(zhàn)消息中的SQN 進(jìn)行比較,如果滿足預(yù)定條件,則SQN校驗(yàn)成功,表明兩邊是同步的,該認(rèn) 證挑戰(zhàn)消息是新鮮的,終端對(duì)網(wǎng)絡(luò)的認(rèn)證成功,進(jìn)入步驟108;如果不滿足 預(yù)定條件,則說(shuō)明消息是重放的,認(rèn)證失敗,結(jié)束本流程。其中,該預(yù)定條 件可以是收到的認(rèn)證挑戰(zhàn)消息中的SQN與終端計(jì)算得到的SQN的差值的 絕對(duì)值小于預(yù)定門(mén)限;或者,收到的認(rèn)證挑戰(zhàn)消息中的SQN與終端計(jì)算得到 的S Q N的差值在預(yù)定范圍內(nèi)等等,可以根據(jù)實(shí)際需要以及認(rèn)證的精度來(lái)確定預(yù)定條件,應(yīng)用十分靈活。在步驟108中,在終端對(duì)網(wǎng)絡(luò)側(cè)認(rèn)證成功后,根據(jù)收到的認(rèn)證挑戰(zhàn)消息 中的隨機(jī)數(shù)RAND和終端的共享密鑰K計(jì)算RES、 IK和CK,將RES隨響應(yīng)消息發(fā)給網(wǎng)絡(luò)側(cè)。在步驟109中,網(wǎng)絡(luò)側(cè)收到該響應(yīng)消息后,利用之前計(jì)算的XRES校驗(yàn) 該響應(yīng)消息中的RES,如果校驗(yàn)成功,則完成了對(duì)終端的iU正,否則認(rèn)證失 敗。在步驟110中,網(wǎng)絡(luò)側(cè)根據(jù)認(rèn)證結(jié)果發(fā)送認(rèn)證成功(或者認(rèn)證失敗)的 消息給終端側(cè),認(rèn)證結(jié)束。在認(rèn)證結(jié)束后,網(wǎng)絡(luò)側(cè)和終端可以根據(jù)雙方計(jì)算 得到的IK和CK進(jìn)行數(shù)據(jù)傳輸。另外,在本實(shí)施方式中,進(jìn)行認(rèn)證之前,需要保證終端側(cè)和網(wǎng)絡(luò)側(cè)系統(tǒng) 時(shí)鐘的同步。可以是終端在發(fā)送認(rèn)證請(qǐng)求之前,或網(wǎng)絡(luò)側(cè)在將認(rèn)證挑戰(zhàn)消息 發(fā)送給終端之前,發(fā)起一次時(shí)鐘同步過(guò)程,從而確保終端和網(wǎng)絡(luò)側(cè)的系統(tǒng)時(shí) 間的差值在無(wú)影響的范圍內(nèi),以確保終端能夠準(zhǔn)確判斷其收到的認(rèn)證挑戰(zhàn)消 息的合法性。需要說(shuō)明的是,在現(xiàn)有的AKA中,網(wǎng)絡(luò)側(cè)AV的產(chǎn)生可以是成批的, 每個(gè)AV所對(duì)應(yīng)的隨才幾數(shù)和SQN值不同,每次認(rèn)證使用 一個(gè)AV。而在本實(shí) 施方式中,由于AV中的SQN必須是實(shí)時(shí)的,而網(wǎng)絡(luò)側(cè)不能估計(jì)到下一次認(rèn) 證的時(shí)間,因此需要在每次執(zhí)行認(rèn)證時(shí),才產(chǎn)生所需要的AV。另外,在本實(shí)施方式中,如果終端檢測(cè)到SQN不同步,可以把自己這 一端的SQN值發(fā)給網(wǎng)絡(luò)側(cè),讓網(wǎng)絡(luò)側(cè)重新與它同步。或者,對(duì)于時(shí)鐘嚴(yán)格同 步的網(wǎng)絡(luò),終端也可以不發(fā)起重同步過(guò)程,而只是重新進(jìn)行認(rèn)證或注冊(cè)。本發(fā)明第二實(shí)施方式涉及一種鑒權(quán)和密鑰協(xié)商方法。本實(shí)施方式以碼分 多址2000 ( Code Division Multiple Access 2000,簡(jiǎn)稱"CDMA2000")網(wǎng)絡(luò) 為例對(duì)終端的認(rèn)i正過(guò)程進(jìn)行詳細(xì)說(shuō)明。本實(shí)施方式也是利用時(shí)間的單向性來(lái)判斷是否受到重放攻擊。網(wǎng)絡(luò)側(cè)將其系統(tǒng)時(shí)間表示為48比特的SQN,將該SQN包含在認(rèn)證4兆戰(zhàn)消息中發(fā)送給 終端,在終端收到網(wǎng)絡(luò)側(cè)發(fā)送的認(rèn)證挑戰(zhàn)消息后,根據(jù)本終端當(dāng)前的系統(tǒng)時(shí) 間進(jìn)行判斷,如果網(wǎng)絡(luò)側(cè)發(fā)來(lái)的SQN所表示的時(shí)間值與終端側(cè)當(dāng)前的時(shí)間值 相比不滿足預(yù)定條件,如兩個(gè)時(shí)間值差值的絕對(duì)值大于預(yù)定門(mén)限,就認(rèn)為 SQN不同步,表示這個(gè)消息是某個(gè)攻擊者發(fā)送的重放消息,終端將終止這次 認(rèn)證。與現(xiàn)有的AKA不同,另外,在本實(shí)施方式中,如果終端;險(xiǎn)測(cè)到SQN 不同步,可以把自己這一端的SQN值發(fā)給網(wǎng)絡(luò)側(cè),讓網(wǎng)絡(luò)側(cè)重新與它同步。 或者,對(duì)于時(shí)鐘嚴(yán)格同步的網(wǎng)絡(luò),終端也可以不發(fā)起重同步過(guò)程,而只是重 新進(jìn)行認(rèn)證或注冊(cè)。下面對(duì)CDMA2000網(wǎng)絡(luò)中,使用2G用戶卡的終端需要接入IMS時(shí)進(jìn)行 的認(rèn)證過(guò)程進(jìn)行說(shuō)明。對(duì)于CDMA2000網(wǎng)絡(luò)來(lái)說(shuō),由于其物理層的設(shè)計(jì)需要 保證時(shí)鐘與網(wǎng)絡(luò)側(cè)嚴(yán)格同步,因此CDMA2000中的終端有著非常精確的時(shí) 鐘,可以直接進(jìn)入認(rèn)證過(guò)程。具體如圖2所示,在步驟201中,終端向P-CSCF發(fā)起標(biāo)準(zhǔn)的MMD注 冊(cè)請(qǐng)求,在注冊(cè)請(qǐng)求中攜帶私有用戶身份IMPI, P-CSCF將該注冊(cè)請(qǐng)求轉(zhuǎn)發(fā) 給S-CSCF。接著進(jìn)入步驟202, S-CSCF向HSS發(fā)送認(rèn)證請(qǐng)求Cx AuthR叫,來(lái)請(qǐng)求 終端的認(rèn)i正數(shù)據(jù)。在該認(rèn)證請(qǐng)求中攜帶該終端的IMPI。接著進(jìn)入步驟203, HSS發(fā)現(xiàn)該終端使用的是2G用戶卡,從該終端的 IMPI中恢復(fù)國(guó)際移動(dòng)用戶識(shí)別碼(International Mobile Subscriber Identity, 簡(jiǎn)稱"IMSr )。然后向歸屬位置寄存器(Home Location Register,簡(jiǎn)稱"HLR") 發(fā)送認(rèn)證請(qǐng)求AUTHREQ,來(lái)請(qǐng)求該終端的認(rèn)證數(shù)據(jù)。接著進(jìn)入步驟204, HLR執(zhí)行2G的認(rèn)證過(guò)程,生成隨機(jī)數(shù)RandU,并 對(duì)該RandU采用CAVE算法生成認(rèn)證數(shù)據(jù)AuthU,將RandU和AuthU通過(guò)認(rèn)證響應(yīng)消息authr叫反饋給HSS。接著進(jìn)入步驟205, HSS根據(jù)收到的RandU和該終端IMSI中的MIN2 合成Rand參數(shù)。接著進(jìn)入步驟206, HSS將AuthU作為AuthR,與Rand —起再次向HLR 發(fā)送2G的統(tǒng)一認(rèn)證請(qǐng)求AUTHREQ,在認(rèn)證請(qǐng)求消息中標(biāo)識(shí)需要HLR返回 加密密鑰。接著進(jìn)入步驟207, HLR收到該認(rèn)證請(qǐng)求后,使用其中的Rand參數(shù)進(jìn) 行CAVE認(rèn)證運(yùn)算得到AuthR,并將計(jì)算得到的AuthR與HSS上報(bào)的認(rèn)證 請(qǐng)求中的AuthR值比較,如果一致則使用AuthR進(jìn)行CAVE運(yùn)算得到加密密 鑰Keys。該加密密鑰Keys在CAVE機(jī)制中是由信令加密密鑰(Signaling Message Encryption Key,簡(jiǎn)稱"SMEKEY,,)和CDMA私有長(zhǎng)碼掩碼(CDMA Private Long Code Mask,簡(jiǎn)稱"CDMAPLCM")組成的。接著進(jìn)入步驟208, HLR向HSS發(fā)送authr叫響應(yīng)消息,在響應(yīng)消息中 將Keys值返回給HSS。接著進(jìn)入步驟209, HSS以AuthR和Keys合成AKA算法的認(rèn)證數(shù)據(jù)5 元組(包括AUTN, XRES, IK, CK, Rand2,其中AUTN又包括MAC和 SQN),該認(rèn)證數(shù)據(jù)5元組相當(dāng)于認(rèn)證向量AV。具體地說(shuō),HSS使用AuthR 和Keys生成AKA算法的認(rèn)證密鑰(SMEKEY||CDMAPLCM||AuthR)。并且 生成AKA算法的128比特隨機(jī)數(shù)Rand2 (HSS可以先生成96位的隨機(jī)數(shù) RandT, Rand2= RandT||Rand)。之后,HSS獲得系統(tǒng)時(shí)間,將其轉(zhuǎn)換成48 比特的數(shù)值,作為SQN。 HSS根據(jù)該認(rèn)證密鑰、Rand2和SQN執(zhí)行AKA算 法,計(jì)算認(rèn)證數(shù)據(jù)5元組剩余的參數(shù)MAC、 XRES、 IK和CK。接著進(jìn)入步驟210, HSS向S-CSCF返回認(rèn)證響應(yīng)Cx AuthRsp,通過(guò)該 認(rèn)證響應(yīng)4巴認(rèn)證數(shù)據(jù)5元組發(fā)送給S-CSCF。接著進(jìn)入步驟211, S-CSCF通過(guò)認(rèn)證挑戰(zhàn)消息把Rand2, AUTN, IK和CK發(fā)送給P-CSCF。接著進(jìn)入步驟212, P-CSCF通過(guò)認(rèn)證挑戰(zhàn)消息把Rand2和AUTN發(fā)送 給終端。接著進(jìn)入步驟213,終端從Rand2分離出Rand參數(shù),把Rand發(fā)給用戶 卡Card,即2G R-UIM。接著進(jìn)入步驟214,用戶卡R-UIM根據(jù)Rand用CAVE算法計(jì)算認(rèn)證數(shù) 據(jù)AuthR和Keys值,這里的Keys和步驟207中的相同,均由SMEKEY和 CDMAPLCM組成。用戶卡R-UIM把AuthR和Keys值反饋給終端。接著進(jìn)入步驟215,終端根據(jù)AuthR和Keys合成AKA算法的認(rèn)證密鑰, 再根據(jù)P-CSCF發(fā)送的Rand2和AUTN中的SQN,用AKA算法計(jì)算認(rèn)證結(jié) 果XMAC,如果XMAC和P-CSCF發(fā)送的AUTN中的MAC相同,則終端繼 續(xù)檢查SQN。具體地說(shuō),終端獲取自己的系統(tǒng)時(shí)間,將其轉(zhuǎn)換為48比特的 SQN,將自身轉(zhuǎn)換得到的SQN與P-CSCF發(fā)送的AUTN中的SQN做比較, 如果相同或者差值滿足預(yù)定條件,則SQN校驗(yàn)成功,說(shuō)明終端和網(wǎng)絡(luò)側(cè)是同 步的,表示消息具有新鮮性,終端對(duì)網(wǎng)絡(luò)的認(rèn)證成功。其中,預(yù)定條件可以 是收到的認(rèn)證挑戰(zhàn)消息中的SQN與終端轉(zhuǎn)換得到的SQN的差值的絕對(duì)值 小于預(yù)定門(mén)限;或者,收到的認(rèn)證挑戰(zhàn)消息中的SQN與終端轉(zhuǎn)換得到的SQN 的差值在預(yù)定范圍內(nèi)等等,具體可以根據(jù)實(shí)際需要以及認(rèn)證的精度來(lái)確定預(yù) 定條件,使得應(yīng)用十分靈活。在終端對(duì)網(wǎng)絡(luò)的認(rèn)證成功后,終端繼續(xù)計(jì)算RES、 IK和CK。接著進(jìn)入步驟216,終端用RES計(jì)算注冊(cè)響應(yīng)消息的摘要,通過(guò)注冊(cè)響 應(yīng)消息Register發(fā)送給P-CSCF, P-CSCF再將該消息轉(zhuǎn)發(fā)給S-CSCF,該注 冊(cè)響應(yīng)消息攜帶終端計(jì)算得到的RES。接著進(jìn)入步驟217, S-CSCF利用XRES校驗(yàn)該Register注冊(cè)響應(yīng)消息中 的RES是否正確,如果正確,表示對(duì)終端的認(rèn)證成功。接著進(jìn)入步驟218, S-CSCF通過(guò)P-CSCF向終端發(fā)送注冊(cè)成功的消息。 在注冊(cè)成功后,網(wǎng)絡(luò)側(cè)和終端可以根據(jù)雙方計(jì)算得到的IK和CK進(jìn)行數(shù)據(jù)傳 輸。在本實(shí)施方式中,由于系統(tǒng)時(shí)間是每個(gè)終端均能夠自動(dòng)且唯一確定的, 因此終端無(wú)需根據(jù)上次認(rèn)證后的SQN來(lái)生成本次認(rèn)證過(guò)程中的SQN,即使 用戶卡無(wú)法保存其上次認(rèn)證后的SQN,或在上次認(rèn)證之后用戶卡更換到了其 它終端,均能唯一且準(zhǔn)確地生成本次認(rèn)證的SQN,不會(huì)因?yàn)镾QN的無(wú)法確 認(rèn)或錯(cuò)誤而將非法網(wǎng)絡(luò)重放的認(rèn)證挑戰(zhàn)消息誤認(rèn)為合法,能夠有效抵抗重放 攻擊。本發(fā)明第三實(shí)施方式涉及一種鑒權(quán)和密鑰協(xié)商方法,本實(shí)施方式以可擴(kuò) 展認(rèn)證協(xié)議(Extensible Authentication Protocol,簡(jiǎn)稱"EAP")中的AKA 為基礎(chǔ),對(duì)本實(shí)施方式的鑒權(quán)和密鑰協(xié)商方法進(jìn)行具體說(shuō)明。如圖3所示,在步驟301中,Authenticator (進(jìn)行認(rèn)證的設(shè)備)向Peer (終端)發(fā)送EAP請(qǐng)求EAP-R叫uest消息,該消息用于向Peer請(qǐng)求待認(rèn)證 的終端的身份。接著進(jìn)入步驟302 , Peer通過(guò)EAP響應(yīng)EAP-Response消息向 Authenticator發(fā)送自己的身份。接著進(jìn)入步驟303, Authenticator根據(jù)Peer發(fā)送的身份,查找到對(duì)應(yīng)的 用戶信息,主要獲取該P(yáng)eer的預(yù)共享密鑰,作為認(rèn)證密鑰。如果沒(méi)有預(yù)共享 密鑰,也可通過(guò)其他方式產(chǎn)生認(rèn)證密鑰。Authenticator根據(jù)系統(tǒng)時(shí)間生成 SQN,通過(guò)預(yù)共享密鑰(即認(rèn)證密鑰)、系統(tǒng)生成的隨機(jī)數(shù)RAND、時(shí)間戳 方式的SQN計(jì)算AV (包括AUTN, XRES, IK, CK, Rand2,其中AUTN 又包括MAC和SQN)的其他參數(shù)XRES, IK, CK, MAC。由于需要對(duì)EAP AKA數(shù)據(jù)包進(jìn)行完整性保護(hù),在本步驟中,Authenticator還需要計(jì)算臨時(shí) EAP密鑰(Transient EAP Key,簡(jiǎn)稱"TEK"),用TEK計(jì)算EAP AKA消息完整性值MAC2。接著進(jìn)入步驟304, Authenticator通過(guò)EPA請(qǐng)求EAP-R叫uest消息(或 者是AKA挑戰(zhàn)消息)將RAND、 AUTN,以及用TEK計(jì)算的EAP AKA消 息完整性值MAC2發(fā)給Peer。接著進(jìn)入步驟305, Peer根據(jù)收到的RAND、 AUTN中的SQN以及自身 的預(yù)共享密鑰計(jì)算XMAC。 Peer將計(jì)算得到的XMAC值與收到的AUTN中 的MAC值進(jìn)行比較,如果相同,則接著校驗(yàn)收到的AUTN中的SQN的值是 否與本地時(shí)鐘同步,如果同步,則成功認(rèn)證網(wǎng)絡(luò)。這里的同步可以是收到 的EAP-Request消息(或者是AKA挑戰(zhàn)消息)中的SQN與Peer本地時(shí)鐘對(duì) 應(yīng)的SQN的差值的絕對(duì)值小于預(yù)定門(mén)限;或者,收到的EAP-Request消息(或 者是AKA挑戰(zhàn)消息)中的SQN與終端Peer本地時(shí)鐘對(duì)應(yīng)的SQN的差值在 預(yù)定范圍內(nèi)等等,可以根據(jù)實(shí)際需要以及認(rèn)證的精度來(lái)確定該同步條件,使 得應(yīng)用十分靈活。另外,Peer同樣也會(huì)計(jì)算TEK,并校驗(yàn)收到的MAC2。在 上述校驗(yàn)都成功后,Peer可以根據(jù)收到的RAND、 AUTN中的SQN以及自 身的預(yù)共享密鑰計(jì)算IK和CK,用于在AKA過(guò)程成功結(jié)束后,可以根據(jù)該 IK和CK與Authenticator進(jìn)行數(shù)據(jù)傳輸。接著進(jìn)入步驟306,為了保證消息的完整性,peer也會(huì)用TEK計(jì)算EAP AKA消息的完整性值MAC3,并根據(jù)收到的EAP-Request消息(或者是AKA 挑戰(zhàn)消息)中的隨機(jī)數(shù)RAND、以及Peer的共享密鑰計(jì)算RES,將計(jì)算得到 的RES和MAC3通過(guò)EAP響應(yīng)EAP-Response消息(或者AKA挑戰(zhàn)消息) 發(fā)送給Authenticates接著進(jìn)入步驟307 , Authenticator校驗(yàn)MAC3是否正確,并比較RES是 否與原來(lái)計(jì)算的AV中的XRES相同,如果相同,說(shuō)明peer是合法用戶,接 著進(jìn)入步驟308。在步驟308中,Authenticator將認(rèn)證成功EAP Success消息發(fā)給Peer,表示成功的認(rèn)證了該P(yáng)eer, EAP AKA過(guò)程結(jié)束。在成功完成認(rèn)證后, Authenticator和Peer可以根據(jù)雙方計(jì)算得到的IK和CK進(jìn)行數(shù)據(jù)傳輸。在本實(shí)施方式中,由于系統(tǒng)時(shí)間是每個(gè)Peer均能夠自動(dòng)且唯一確定的, 因此Peer無(wú)需根據(jù)上次認(rèn)證后的SQN來(lái)生成本次認(rèn)證過(guò)程中的SQN,即使 用戶卡無(wú)法保存其上次認(rèn)證后的SQN,或在上次認(rèn)證之后用戶卡更換到了其 它Peer,均能唯一且準(zhǔn)確地生成本次認(rèn)證的SQN,不會(huì)因?yàn)镾QN的無(wú)法確 認(rèn)或錯(cuò)誤而將非法網(wǎng)絡(luò)重放的挑戰(zhàn)消息誤認(rèn)為合法,能夠有效抵抗重放攻擊。另外,需要說(shuō)明的是,在以上各實(shí)施方式中,除了將系統(tǒng)時(shí)間轉(zhuǎn)換為48 比特的值全部填入SQN外,還可以將系統(tǒng)時(shí)間轉(zhuǎn)換為64比特的值,其中48bit 填入SQN,余下的16bit填入AKA中另一個(gè)參數(shù)AMF,從而提高系統(tǒng)時(shí)間 的精度,使得驗(yàn)證時(shí)的準(zhǔn)確性更高。本發(fā)明第四實(shí)施方式涉及 一 種鑒權(quán)和密鑰協(xié)商系統(tǒng),包含網(wǎng)絡(luò)側(cè)和終 端,其中,網(wǎng)絡(luò)側(cè)包含第一生成單元,用于在收到終端的認(rèn)證請(qǐng)求時(shí),根 據(jù)與該終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序 列號(hào)生成第一認(rèn)證碼;發(fā)送單元,用于將隨機(jī)數(shù)、第一序列號(hào)和第一生成單 元生成的第一認(rèn)證碼發(fā)送給終端。終端包含接收單元,用于從網(wǎng)絡(luò)側(cè)接收隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn) 證碼;第二生成單元,用于根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和接收單元收到的隨機(jī) 數(shù),生成第二認(rèn)證碼和響應(yīng)值;發(fā)送單元,用于將響應(yīng)值發(fā)送給網(wǎng)絡(luò)側(cè);驗(yàn) 證單元,用于對(duì)接收單元收到的隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼進(jìn)行驗(yàn)證, 在第二生成單元生成的第二認(rèn)證碼與第一認(rèn)證碼相同,且代表終端側(cè)當(dāng)前系 統(tǒng)時(shí)間的第二序列號(hào)與第 一序列號(hào)的差值滿足預(yù)定條件時(shí),認(rèn)定網(wǎng)絡(luò)側(cè)合法; 第二生成單元在驗(yàn)證單元認(rèn)定網(wǎng)絡(luò)側(cè)合法后,根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰和隨 機(jī)數(shù)生成響應(yīng)值。其中,上述的第一序列號(hào)和第二序列號(hào)的長(zhǎng)度小于或等于48比特;或,第一序列號(hào)和第二序列號(hào)均包含兩部分,第一部分的長(zhǎng)度小于或等于48比 特,第二部分的長(zhǎng)度小于或等于16比特。檢驗(yàn)第 一序列號(hào)的預(yù)定條件為第二序列號(hào)與第 一序列號(hào)的差值的絕對(duì) 值小于預(yù)定門(mén)限;或第二序列號(hào)與第 一序列號(hào)的差值在預(yù)定范圍內(nèi)。由于本實(shí)施方式中使用的系統(tǒng)時(shí)間是每個(gè)終端均能夠自動(dòng)遞增且唯一 確定的,因此終端無(wú)需根據(jù)上次認(rèn)證后的第二序列號(hào)來(lái)生成本次認(rèn)證過(guò)程中 的第二序列號(hào),即使用戶卡無(wú)法保存其上次認(rèn)證后的第二序列號(hào),或在上次認(rèn)證之后用戶卡更換到了其它終端,均能唯一且準(zhǔn)確地生成本次認(rèn)證的第二 序列號(hào),不會(huì)因?yàn)榈诙蛄刑?hào)的無(wú)法確認(rèn)或錯(cuò)誤而將非法網(wǎng)絡(luò)重放的隨機(jī)數(shù)、 第一序列號(hào)和認(rèn)證碼誤認(rèn)為合法,能夠有效抵抗重放攻擊。本發(fā)明第五實(shí)施方式涉及一種認(rèn)證方法,該認(rèn)證方法可以是AKA方法, 但與第一至第三實(shí)施方式不同,主要在于,在第一至第三實(shí)施方式的整個(gè) AKA過(guò)程中均采用系統(tǒng)時(shí)間作為SQN,而在本實(shí)施方式中,僅在終端側(cè)無(wú) 對(duì)應(yīng)的SQN值時(shí),采用系統(tǒng)時(shí)間作為SQN來(lái)同步網(wǎng)絡(luò)側(cè)和終端側(cè)的SQN, 在其余的AKA過(guò)程中,仍采用與現(xiàn)有的AKA技術(shù)相同的序列號(hào)方式使用 SQN。這里終端側(cè)無(wú)對(duì)應(yīng)的SQN值的時(shí)機(jī)可以是SQN需要在終端上而不是用 戶卡上維護(hù),但終端某時(shí)刻無(wú)對(duì)應(yīng)用戶的SQN,例如終端檢測(cè)到被插入新的 用戶卡時(shí)。此時(shí),終端將當(dāng)前自身的系統(tǒng)時(shí)間作為新的SQN,發(fā)起AKA中 的重同步流程,將這個(gè)SQN通知給網(wǎng)絡(luò)側(cè)。網(wǎng)絡(luò)側(cè)收到該SQN后對(duì)其進(jìn)行 保存,在隨后的認(rèn)證過(guò)程中(即隨后的AKA過(guò)程中),網(wǎng)絡(luò)側(cè)以新保存的 SQN為基礎(chǔ),使用現(xiàn)有AKA技術(shù)維護(hù)和使用SQN,也就是說(shuō)網(wǎng)絡(luò)側(cè)之后發(fā) 送的SQN是在新保存的SQN基礎(chǔ)上進(jìn)行遞增。由于現(xiàn)有的AKA技術(shù)中保 存的SQN是根據(jù)認(rèn)證次數(shù)的增加而增加的,因此只要確保代表系統(tǒng)時(shí)間的 SQN遞增的頻率比該終端認(rèn)證的頻率快,就能在不知道上次認(rèn)證后的SQN的情況下,仍然確保該代表系統(tǒng)時(shí)間的SQN大于根據(jù)AKA技術(shù)保存的SQN。 比如說(shuō),只要用戶認(rèn)證的頻率小于每秒一次,那么根據(jù)系統(tǒng)時(shí)間總秒數(shù)生成 的SQN就一定比根據(jù)現(xiàn)有的AKA技術(shù)保存的SQN大。從而能夠嚴(yán)格確保 重同步的SQN比同步前的SQN大,滿足SQN的嚴(yán)格單調(diào)遞增性,在最大程 度上避免重方欠攻擊。具體流程如圖4所示,在步驟401中,終端設(shè)備檢測(cè)到當(dāng)前插入的用戶 卡發(fā)生了改變,即本終端更換了用戶卡,因此刪除本終端之前為上一個(gè)用戶 卡保存的SQN值。接著進(jìn)入步驟402,終端發(fā)起AKA認(rèn)證流程。接著進(jìn)入步驟403,網(wǎng)絡(luò)側(cè)計(jì)算計(jì)算認(rèn)證向量AV,并向終端發(fā)送認(rèn)證挑 戰(zhàn)消息,該認(rèn)證挑戰(zhàn)消息中同樣包含RAND、 AUTN(包括SQN和MAC值)。 其中SQN是網(wǎng)絡(luò)側(cè)為當(dāng)前用戶維護(hù)的SQN值,如果該用戶是第一次注冊(cè)的 用戶,則該SQN可能為0。接著進(jìn)入步驟404,終端收到該認(rèn)證挑戰(zhàn)消息后,根據(jù)消息中的RAND 和SQN、以及當(dāng)前用戶的共享密鑰,采用與網(wǎng)絡(luò)側(cè)相同的方法計(jì)算XMAC。 并將該XMAC與收到的認(rèn)證挑戰(zhàn)消息中的MAC值做比較,如果不正確,則 判定當(dāng)前收到的認(rèn)證挑戰(zhàn)消息是非法的,則終止認(rèn)證流程,認(rèn)證失敗。如果 正確則進(jìn)一步判斷本終端是否保存有該用戶的SQN,由于終端當(dāng)前插入的用 戶卡發(fā)生了改變,因此終端未保存有該用戶的SQN,從而終端根據(jù)自己的系 統(tǒng)時(shí)間生成SQN,接著進(jìn)入步驟405。在步驟405中,終端根據(jù)新生成的SQN發(fā)起重同步請(qǐng)求,該重同步請(qǐng) 求消息中包含參數(shù)AUTS,該AUTS中包括了該根據(jù)系統(tǒng)時(shí)間生成的SQN和 MAC-S。接著進(jìn)入步驟406,網(wǎng)絡(luò)側(cè)收到該重同步請(qǐng)求消息后,校驗(yàn)該AUTS中 的MAC-S是否正確,如果正確,則檢查該AUTS中包含的SQN是否比網(wǎng)絡(luò)側(cè)當(dāng)前為該用戶保存的SQN值大,如果收到的AUTS中的SQN比本地保存 的SQN值大,則說(shuō)明該重同步請(qǐng)求消息有效,網(wǎng)絡(luò)側(cè)將收到的認(rèn)證請(qǐng)求中的 SQN替代之前保存的SQN。接著進(jìn)入步驟407,網(wǎng)絡(luò)側(cè)重新發(fā)送認(rèn)證挑戰(zhàn)消息,在該認(rèn)證挑戰(zhàn)消息 中包含AV,該AV中的SQN是該網(wǎng)絡(luò)側(cè)在步驟406中收到的SQN的基礎(chǔ) 上按照現(xiàn)有的AKA的技術(shù)形成的,即在該更新后的SQN的基礎(chǔ)上加上一個(gè) 預(yù)定步長(zhǎng),例如加1。接著進(jìn)入步驟408,終端接收到新的挑戰(zhàn)消息后,校驗(yàn)MAC,在MAC 校驗(yàn)成功后根據(jù)步驟404中生成的本地SQN檢查網(wǎng)絡(luò)側(cè)發(fā)來(lái)的SQN,檢查 的方式與現(xiàn)有的AKA流程相同。如果檢查成功,則表示對(duì)網(wǎng)絡(luò)側(cè)的認(rèn)證成 功。接著進(jìn)入步驟409。在步驟409中,終端發(fā)送響應(yīng)值RES給網(wǎng)絡(luò)側(cè)。接著進(jìn)入步驟410,網(wǎng)絡(luò)側(cè)對(duì)該響應(yīng)值進(jìn)行校驗(yàn),如果網(wǎng)絡(luò)側(cè)校驗(yàn)RES 成功,則進(jìn)入步驟411向該終端發(fā)送認(rèn)證成功的消息。在隨后的AKA認(rèn)證流程中,終端和網(wǎng)絡(luò)側(cè)都繼續(xù)使用上述流程中同步 的SQN,具體的認(rèn)證步驟與現(xiàn)有的AKA流程相同。如果終端再次發(fā)現(xiàn)用戶 卡被更換,則重新執(zhí)行步驟401,通過(guò)系統(tǒng)時(shí)間重同步網(wǎng)絡(luò)側(cè)和終端的SQN。由于現(xiàn)有的AKA流程抗重放的效果主要取決于終端側(cè)和網(wǎng)絡(luò)側(cè)的SQN 是否能夠同步且保持單調(diào)遞增,而采用本實(shí)施方式進(jìn)行認(rèn)證和重同步可以很 好地保證SQN的單調(diào)遞增性,因此其抗重放性能較好。具體地說(shuō),由于在本 實(shí)施方式中,當(dāng)終端某時(shí)刻檢查到新用戶卡被插入后,將根據(jù)系統(tǒng)的時(shí)間生 成SQN,根據(jù)該生成的SQN與網(wǎng)絡(luò)側(cè)進(jìn)行SQN的同步,即網(wǎng)絡(luò)側(cè)和終端均 將保存的SQN更新為代表該終端當(dāng)時(shí)的系統(tǒng)時(shí)間的SQN。如果終端是根據(jù) 系統(tǒng)時(shí)間的總秒數(shù)生成SQN,則只要該終端新對(duì)應(yīng)的用戶的認(rèn)證的頻率低于 每秒一次,那么該用戶在使用該終端之前的SQN的值是小于當(dāng)前的時(shí)間值的。從而,采用本實(shí)施方式,在用戶卡插入新終端再次執(zhí)行重同步時(shí),無(wú)需知道該用戶上一次認(rèn)證時(shí)的SQN,也能確保終端發(fā)給網(wǎng)絡(luò)側(cè)的新的SQN — 定大于上一次認(rèn)證時(shí)網(wǎng)絡(luò)側(cè)為該用戶保存的SQN,嚴(yán)格保證了該用戶的SQN 在網(wǎng)絡(luò)側(cè)和終端側(cè)的單調(diào)遞增。這里說(shuō)的用戶認(rèn)證頻率低于每秒一次,只是 給出的一個(gè)例子,并不是限定條件,既便該用戶認(rèn)證的頻率很高,也可以通 過(guò)其他方法保證代表終端系統(tǒng)時(shí)間的SQN大于最近一次認(rèn)證時(shí)保存的SQN, 如終端在重同步時(shí),可以根據(jù)系統(tǒng)時(shí)間的總毫秒數(shù)生成SQN。在本實(shí)施方式 中,在SQN同步后,網(wǎng)絡(luò)側(cè)和終端側(cè)保存的SQN值仍然會(huì)隨認(rèn)證的次數(shù)遞 增,但不會(huì)超過(guò)系統(tǒng)時(shí)間,從而在下一次需要重新同步SQN時(shí),仍然可以采 用當(dāng)前的系統(tǒng)時(shí)間來(lái)進(jìn)行。另外,由于本實(shí)施方式與第一至第三實(shí)施方式相比,無(wú)需每次認(rèn)證時(shí)均 確保網(wǎng)絡(luò)側(cè)和終端側(cè)的時(shí)鐘同步,只需在進(jìn)行SQN重同步之前確保即可,降 低了對(duì)網(wǎng)絡(luò)側(cè)時(shí)間同步特性的要求,這對(duì)于CDMA2000網(wǎng)絡(luò)的特性更吻合 (因?yàn)榻K端和基站具有很好的時(shí)間同步特性,但核心網(wǎng)的進(jìn)行認(rèn)證的設(shè)備反 而不容易與基站嚴(yán)格同步),實(shí)用性較好。需要說(shuō)明的是,本實(shí)施方式中,是以終端根據(jù)終端側(cè)的系統(tǒng)時(shí)間進(jìn)行 SQN重同步為例進(jìn)行說(shuō)明的,除了該方式外,也可以由網(wǎng)絡(luò)側(cè)根據(jù)網(wǎng)絡(luò)側(cè)的 系統(tǒng)時(shí)間進(jìn)行雙方SQN的重同步,如由網(wǎng)絡(luò)側(cè)根據(jù)其系統(tǒng)時(shí)間為用戶生成一 個(gè)SQN,并發(fā)送給終端,終端根據(jù)收到的SQN進(jìn)行判斷,如果該終端本地 已保存有該用戶的SQN則將本地保存的SQN與收到的SQN進(jìn)行比較,如果 收到的SQN大,則將本地保存的SQN更新為與收到的SQN相同;如果該終 端本地未保存該用戶的SQN,則可以直接保存。另外,在本實(shí)施方式中,終端在收到網(wǎng)絡(luò)側(cè)發(fā)送的認(rèn)證挑戰(zhàn)消息后判斷 本終端是否保存有該用戶的SQN,除此之外,終端也可以在需要為該用戶發(fā) 起認(rèn)證請(qǐng)求時(shí),直接判斷本終端是否保存有該用戶的SQN,如果沒(méi)有,則直接根據(jù)終端系統(tǒng)時(shí)間為該用戶生成一個(gè)SQN,觸發(fā)重同步過(guò)程。本發(fā)明第六實(shí)施方式涉及一種認(rèn)證系統(tǒng),包含第 一通信設(shè)備和第二通信 設(shè)備,該第一、第二通信設(shè)備可以是終端設(shè)備或網(wǎng)絡(luò)側(cè)。以第一設(shè)備是網(wǎng)絡(luò) 側(cè),第二設(shè)備是終端為例進(jìn)行具體說(shuō)明。該終端設(shè)備包含第一存儲(chǔ)單元, 用于保存用戶的第四序列號(hào);生成單元,用于在確定該第一存儲(chǔ)單元沒(méi)有保 存待認(rèn)證的用戶的第四序列號(hào)時(shí),根據(jù)該終端設(shè)備的系統(tǒng)時(shí)間為該用戶生成 第四序列號(hào),并指示該第一存儲(chǔ)單元保存該第四序列號(hào);第一同步單元,用 于通過(guò)與網(wǎng)絡(luò)側(cè)的交互將由網(wǎng)絡(luò)側(cè)保存的該用戶的第三序列號(hào)與該第四序列 號(hào)同步;第一認(rèn)證單元,用于使用同步后的第四序列號(hào)與網(wǎng)絡(luò)側(cè)進(jìn)行交互消 息 的抗重itiU正。該網(wǎng)絡(luò)側(cè)包含第二存儲(chǔ)單元,用于保存用戶的第三序列號(hào);接收單元, 用于從終端設(shè)備接收待認(rèn)證的用戶的第四序列號(hào);第二同步單元,用于將第 二存儲(chǔ)單元保存的第三序列號(hào)與接收單元收到的第四序列號(hào)同步;第二認(rèn)證 單元,用于使用更新后的第三序列號(hào)與對(duì)端設(shè)備進(jìn)行交互消息的抗重放認(rèn)證。由于在網(wǎng)絡(luò)側(cè)保存的用戶的第三序列號(hào)是根據(jù)認(rèn)證的次數(shù)遞增的,而系 統(tǒng)時(shí)間是自動(dòng)遞增的,且能夠很容易地保證系統(tǒng)時(shí)間自動(dòng)遞增的頻率大于終 端認(rèn)證的頻率,因此才艮據(jù)系統(tǒng)時(shí)間生成的第四序列號(hào)比網(wǎng)絡(luò)側(cè)和用戶側(cè)原先 保存的第三第四序列號(hào)大,如終端認(rèn)證頻率為十秒一次,則可以根據(jù)系統(tǒng)時(shí) 間的總秒數(shù)生成第四序列號(hào),如終端認(rèn)證頻率為十毫秒一次,則可以根據(jù)系 統(tǒng)時(shí)間的總毫秒數(shù)生成第四序列號(hào),從而可以保證根據(jù)系統(tǒng)時(shí)間生成的第四 序列號(hào)一定大于根據(jù)認(rèn)證次數(shù)遞增得到序列號(hào)。因此采用該系統(tǒng)時(shí)間生成的 第四序列號(hào)為網(wǎng)絡(luò)側(cè)和終端側(cè)進(jìn)行序列號(hào)的重同步,在不知道當(dāng)前保存的第 三序列號(hào)和第四序列號(hào)的情況下,依然能夠確保重同步后的序列號(hào)是遞增的, 從而能夠有效防止重放攻擊,特別適合無(wú)法保存第四序列的用戶卡更換終端 時(shí)進(jìn)行的重同步。該終端的第一同步單元還包含發(fā)送子單元,用于將生成單元生成的第 四序列號(hào)發(fā)送給對(duì)端設(shè)備;指示子單元,用于指示對(duì)端設(shè)備將該對(duì)端設(shè)備保 存的用戶的第三序列號(hào)更新為與該第四序列號(hào)相同。該網(wǎng)絡(luò)側(cè)的第二同步單元過(guò)以下方式進(jìn)行同步如果第二存儲(chǔ)單元已保 存有用戶的第三序列號(hào),將接收單元收到的第四序列號(hào)與該第三序列號(hào)比較, 如果該第四序列號(hào)大于該第三序列號(hào),則指示第二存儲(chǔ)單元將所保存的第三 序列號(hào)更新為與該第四序列號(hào)相同;如果第二存儲(chǔ)單元未保存有用戶的第三 序列號(hào),則指示該第二存儲(chǔ)單元保存從接收單元收到的第四序列號(hào),將該第 四序列號(hào)作為該第三序列號(hào)。需要說(shuō)明的是,上述的第一通信設(shè)備也可以是終端設(shè)備,第二通信設(shè)備 也可以是網(wǎng)絡(luò)側(cè)設(shè)備,也就是說(shuō),在網(wǎng)絡(luò)側(cè)設(shè)備中包含第一存儲(chǔ)單元、生成 單元、第一同步單元、第一認(rèn)證單元;在終端設(shè)備中包含第二存儲(chǔ)單元、接 收單元、第二同步單元、第二認(rèn)證單元。綜上所述,在本發(fā)明的實(shí)施方式中,網(wǎng)絡(luò)側(cè)收到終端的認(rèn)證請(qǐng)求時(shí),根 據(jù)與該終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序 列號(hào)SQN1生成第一認(rèn)證碼MAC,將該隨機(jī)數(shù)、第一序列號(hào)SQN1和第一認(rèn) 證碼MAC發(fā)送給該終端;終端根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰、收到的隨機(jī)數(shù)和 第一序列號(hào)SQN1生成第二認(rèn)證碼XMAC,如果該第二認(rèn)證碼XMAC與第 一認(rèn)證碼MAC相同,且代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)SQN2與第 一序列號(hào)SQN1的差值滿足預(yù)定條件,則該終端認(rèn)定網(wǎng)絡(luò)側(cè)合法;如果, XMAC與MAC相同,但終端側(cè)的SQN2與網(wǎng)絡(luò)側(cè)的SQN1的差值不滿足預(yù) 定條件,則認(rèn)定用于發(fā)送該隨機(jī)數(shù)、第一序列號(hào)SQN1和第一認(rèn)證碼MAC 的消息是網(wǎng)絡(luò)側(cè)在之前發(fā)送的,可能被非法網(wǎng)絡(luò)復(fù)制后重放,不具備安全性, 認(rèn)證失敗。由于系統(tǒng)時(shí)間是每個(gè)終端均能夠自動(dòng)且唯一確定的,因此終端無(wú) 需根據(jù)上次認(rèn)證后的SQN2來(lái)生成本次認(rèn)證過(guò)程中的SQN2,即使用戶卡無(wú)法保存其上次認(rèn)證后的SQN2,或在上次認(rèn)證之后用戶卡更換到了其它終端, 均能唯一且準(zhǔn)確地生成本次認(rèn)證的SQN2,不會(huì)因?yàn)镾QN2的無(wú)法確認(rèn)或錯(cuò) 誤而將非法網(wǎng)絡(luò)重放的隨機(jī)數(shù)、第一序列號(hào)和認(rèn)證碼誤認(rèn)為合法,從而能夠 有效抵抗重放攻擊。進(jìn)行判斷的預(yù)定條件可以是第二序列號(hào)與第 一序列號(hào)的差值的絕對(duì)值 小于預(yù)定門(mén)限、或第二序列號(hào)與第一序列號(hào)的差值在預(yù)定范圍內(nèi)等等,設(shè)置 較靈活。通過(guò)該預(yù)定條件,可以將網(wǎng)絡(luò)側(cè)發(fā)送的包含隨機(jī)數(shù)、第一序列號(hào)和 認(rèn)證碼的認(rèn)證挑戰(zhàn)消息是否合法的判斷控制在合理的范圍內(nèi),滿足不同業(yè)務(wù) 的需求。終端和/或網(wǎng)絡(luò)側(cè)在開(kāi)始認(rèn)證之前,需確保雙方系統(tǒng)時(shí)鐘的同步,如終端 在發(fā)送認(rèn)證請(qǐng)求之前,或網(wǎng)絡(luò)側(cè)在生成第一認(rèn)證碼之前,可以發(fā)起一次時(shí)鐘 同步過(guò)程,從而確保終端和網(wǎng)絡(luò)側(cè)的系統(tǒng)時(shí)間的差值在無(wú)影響的范圍內(nèi),以 確保終端能夠準(zhǔn)確判斷其收到的認(rèn)證挑戰(zhàn)消息的合法性。如果第二設(shè)備(如終端)確定本終端沒(méi)有保存待認(rèn)證的用戶的第四序列 號(hào),則根據(jù)該終端的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并通過(guò)與第一設(shè)備 (如網(wǎng)絡(luò)側(cè))的交互將由網(wǎng)絡(luò)側(cè)保存的該用戶的第三序列號(hào)與該第四序列號(hào) 同步;該終端和網(wǎng)絡(luò)側(cè)使用同步后的第三、第四序列號(hào)進(jìn)行交互消息的抗重 放認(rèn)證。由于在網(wǎng)絡(luò)側(cè)保存的用戶的第三序列號(hào)是根據(jù)認(rèn)證的次數(shù)遞增的, 而系統(tǒng)時(shí)間是自動(dòng)遞增的,且能夠很容易地保證系統(tǒng)時(shí)間自動(dòng)遞增的頻率大 于終端認(rèn)證的頻率,因此根據(jù)系統(tǒng)時(shí)間生成的第四序列號(hào)比網(wǎng)絡(luò)側(cè)和用戶側(cè) 原先保存的第三第四序列號(hào)大,如終端認(rèn)證頻率為十秒一次,則可以根據(jù)系 統(tǒng)時(shí)間的總秒數(shù)生成第四序列號(hào),如終端認(rèn)證頻率為十毫秒一次,則可以根 據(jù)系統(tǒng)時(shí)間的總毫秒數(shù)生成第四序列號(hào),從而可以保證根據(jù)系統(tǒng)時(shí)間生成的 第四序列號(hào)一定大于根據(jù)認(rèn)證次數(shù)遞增得到序列號(hào)。因此采用該系統(tǒng)時(shí)間生 成的第四序列號(hào)為網(wǎng)絡(luò)側(cè)和終端側(cè)進(jìn)行序列號(hào)的重同步,在不知道當(dāng)前保存的第三序列號(hào)和第四序列號(hào)的情況下,依然能夠確保重同步后的序列號(hào)是遞 增的,從而能夠有效防止重放攻擊,特別適合無(wú)法保存第四序列的用戶卡更 換終端時(shí)進(jìn)行的重同步。雖然通過(guò)參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和 描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各 種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1. 一種鑒權(quán)和密鑰協(xié)商方法,其特征在于,包含以下步驟網(wǎng)絡(luò)側(cè)收到終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該終端的共享密鑰、一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)生成第一認(rèn)證碼,將該隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼發(fā)送給所述終端;所述終端對(duì)收到的隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼進(jìn)行驗(yàn)證,如滿足以下條件則認(rèn)定所述網(wǎng)絡(luò)側(cè)合法根據(jù)與所述網(wǎng)絡(luò)側(cè)的共享密鑰、所述隨機(jī)數(shù)和第一序列號(hào)生成的第二認(rèn)證碼與所述第一認(rèn)證碼相同;代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)與所述第一序列號(hào)的差值滿足預(yù)定條件;所述終端認(rèn)定所述網(wǎng)絡(luò)側(cè)合法后,根據(jù)與所述網(wǎng)絡(luò)側(cè)的共享密鑰和隨機(jī)數(shù)生成響應(yīng)值,發(fā)送給所述網(wǎng)絡(luò)側(cè);如果所述網(wǎng)絡(luò)側(cè)對(duì)所述響應(yīng)值驗(yàn)證成功,則認(rèn)定所述終端合法。
2. 根據(jù)權(quán)利要求1所述的鑒權(quán)和密鑰協(xié)商方法,其特征在于,所述第 一序列號(hào)和第二序列號(hào)的長(zhǎng)度小于或等于48比特;或所述第一序列號(hào)和第二序列號(hào)均包含兩部分,第一部分的長(zhǎng)度小于或等 于48比特,第二部分的長(zhǎng)度小于或等于16比特。
3. 根據(jù)權(quán)利要求1所述的鑒權(quán)和密鑰協(xié)商方法,其特征在于,所述預(yù) 定條件為所述第二序列號(hào)與所述第 一 序列號(hào)的差值的絕對(duì)值小于預(yù)定門(mén)限;或 所述第二序列號(hào)與所述第 一序列號(hào)的差值在預(yù)定范圍內(nèi)。
4. 根據(jù)權(quán)利要求1所述的鑒權(quán)和密鑰協(xié)商方法,其特征在于,所述終端在發(fā)送所述認(rèn)證請(qǐng)求之前,或所述網(wǎng)絡(luò)側(cè)在生成所述第一認(rèn)證碼之前,確 保所述終端和所述網(wǎng)絡(luò)側(cè)的系統(tǒng)時(shí)鐘同步。
5. 根據(jù)權(quán)利要求1所述的鑒權(quán)和密鑰協(xié)商方法,其特征在于,所述網(wǎng) 絡(luò)側(cè)通過(guò)以下方式—瞼ii所述響應(yīng)值所述網(wǎng)絡(luò)側(cè)根據(jù)與所述終端的共享密鑰和所述隨機(jī)數(shù)生成響應(yīng)驗(yàn)證值, 如果該響應(yīng)驗(yàn)4正<直與所述響應(yīng)值相同,則所述—瞼i正成功。
6. 根據(jù)權(quán)利要求1所述的鑒權(quán)和密鑰協(xié)商方法,其特征在于,還包含 以下步驟所述網(wǎng)絡(luò)側(cè)在生成所述第一認(rèn)證碼時(shí),還根據(jù)與所述終端的共享密鑰和 所述隨機(jī)數(shù)生成完整性密鑰和加密密鑰;所述終端認(rèn)定所述網(wǎng)絡(luò)側(cè)合法后,還根據(jù)與所述網(wǎng)絡(luò)側(cè)的共享密鑰和所 述隨機(jī)數(shù)生成所述完整性密鑰和加密密鑰;如果所述網(wǎng)絡(luò)側(cè)認(rèn)定所述終端合法,則該網(wǎng)絡(luò)側(cè)和該終端通過(guò)所述完整 性密鑰和加密密鑰進(jìn)行數(shù)據(jù)傳輸。
7. 根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的鑒權(quán)和密鑰協(xié)商方法,其特征 在于,如果所述終端驗(yàn)證得到所述第二序列號(hào)與所述第 一序列號(hào)的差值不滿 足預(yù)定條件,則還包含以下步驟所述終端將所述第二序列號(hào)發(fā)送給所述網(wǎng)絡(luò)側(cè);所述網(wǎng)絡(luò)側(cè)根據(jù)所述第二序列號(hào)代表的系統(tǒng)時(shí)間進(jìn)行所述終端與該網(wǎng) 絡(luò)側(cè)的時(shí)鐘同步過(guò)程。
8. —種鑒權(quán)和密鑰協(xié)商系統(tǒng),包含網(wǎng)絡(luò)側(cè)和終端,其特征在于,所述 網(wǎng)絡(luò)側(cè)包含第一生成單元,用于在收到所述終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該 終端的共享密鑰、 一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)生成第一認(rèn)證碼;發(fā)送單元,用于將所述隨機(jī)數(shù)、第一序列號(hào)和所述第一生成單元生成的第一認(rèn)證碼發(fā)送給所述終端;所述終端包含接收單元,用于從所述網(wǎng)絡(luò)側(cè)接收所述隨機(jī)數(shù)、第一序 列號(hào)和第一認(rèn)證碼;第二生成單元,用于根據(jù)與所迷網(wǎng)絡(luò)側(cè)的共享密鑰和所述接收單元收到 的隨機(jī)數(shù),生成第二認(rèn)證碼和響應(yīng)值;發(fā)送單元,用于將所述響應(yīng)值發(fā)送給所述網(wǎng)絡(luò)側(cè);驗(yàn)證單元,用于對(duì)所述接收單元收到的所述隨機(jī)數(shù)、第一序列號(hào)和第一 認(rèn)證碼進(jìn)行驗(yàn)證,在所述第二生成單元生成的第二認(rèn)證碼與所述第一認(rèn)證碼 相同,且代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)與所述第 一序列號(hào)的差值滿 足預(yù)定條件時(shí),認(rèn)定所述網(wǎng)絡(luò)側(cè)合法;所述第二生成單元在所述驗(yàn)證單元認(rèn)定所述網(wǎng)絡(luò)側(cè)合法后,根據(jù)與所述 網(wǎng)絡(luò)側(cè)的共享密鑰和所述隨機(jī)數(shù)生成所述響應(yīng)值。
9. 根據(jù)權(quán)利要求8所述的鑒權(quán)和密鑰協(xié)商系統(tǒng),其特征在于,所述第 一序列號(hào)和第二序列號(hào)的長(zhǎng)度小于或等于48比特;或所述第一序列號(hào)和第二序列號(hào)均包含兩部分,第一部分的長(zhǎng)度小于或等 于48比特,第二部分的長(zhǎng)度小于或等于16比特。
10. 根據(jù)權(quán)利要求8所述的鑒權(quán)和密鑰協(xié)商系統(tǒng),其特征在于,所述預(yù) 定條件為所述第二序列號(hào)與所述第 一序列號(hào)的差值的絕對(duì)值小于預(yù)定門(mén)限;或 所述第二序列號(hào)與所述第一序列號(hào)的差值在預(yù)定范圍內(nèi)。
11. 一種終端設(shè)備,其特征在于,包含接收單元,用于從網(wǎng)絡(luò)側(cè)接收隨機(jī)數(shù)、第一序列號(hào)和第一認(rèn)證碼;生成單元,用于根據(jù)與所述網(wǎng)絡(luò)側(cè)的共享密鑰和所述接收單元收到的隨機(jī)數(shù),生成第二認(rèn)證碼和響應(yīng)值;發(fā)送單元,用于將所述響應(yīng)值發(fā)送給所述網(wǎng)絡(luò)側(cè);驗(yàn)證單元,用于對(duì)所述接收單元收到的所述隨機(jī)數(shù)、第一序列號(hào)和第一 認(rèn)證碼進(jìn)行驗(yàn)證,在所述生成單元生成的第二認(rèn)證碼與所述第一認(rèn)證碼相 同,且代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)與所述第 一序列號(hào)的差值滿足 預(yù)定條件時(shí),認(rèn)定所述網(wǎng)絡(luò)側(cè)合法;所述生成單元在所述驗(yàn)證單元認(rèn)定所述網(wǎng)絡(luò)側(cè)合法后,根據(jù)與所述網(wǎng)絡(luò) 側(cè)的共享密鑰和所述隨^/L數(shù)生成所述響應(yīng)值。
12. 根據(jù)權(quán)利要求11所述的終端設(shè)備,其特征在于,所述第二序列號(hào) 的長(zhǎng)度小于或等于48比特;或,所述第二序列號(hào)包含兩部分,第一部分的 長(zhǎng)度小于或等于48比特,第二部分的長(zhǎng)度小于或等于16比特;所述預(yù)定條件為所述第二序列號(hào)與所述第一序列號(hào)的差值的絕對(duì)值小 于預(yù)定門(mén)限;或,所迷第二序列號(hào)與所述第一序列號(hào)的差值在預(yù)定范圍內(nèi)。
13. —種認(rèn)證方法,其特征在于,包含以下步驟如果第二設(shè)備確定本設(shè)備沒(méi)有保存待認(rèn)證的用戶的第四序列號(hào),則根據(jù) 該第二設(shè)備的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并通過(guò)與第 一設(shè)備的交互 將由第一設(shè)備保存的該用戶的第三序列號(hào)與該第四序列號(hào)同步;所述第二設(shè)備和所述第一設(shè)備使用同步后的第三、第四序列號(hào)進(jìn)行交互 消息的抗重放認(rèn)i正。
14. 根據(jù)權(quán)利要求13所迷的認(rèn)證方法,其特征在于,所述第二設(shè)備通 過(guò)與第一設(shè)備的交互將第三序列號(hào)與所述第四序列號(hào)重同步的步驟還包含 以下子步驟所述第二設(shè)備將所述第四序列號(hào)發(fā)送給所述第一設(shè)備;如果所述第 一設(shè)備已保存有所述用戶的第三序列號(hào),則該第 一設(shè)備將所 述第四序列號(hào)與該第 一設(shè)備保存的所述用戶的第三序列號(hào)比較,如果該第四 序列號(hào)大于所保存的第三序列號(hào),則將所保存的第三序列號(hào)更新為與該第四序列號(hào)相同;如果所述第一設(shè)備未保存有所述用戶的第三序列號(hào),則該第一設(shè)備保存 從所述第二設(shè)備收到的第四序列號(hào),將該第四序列號(hào)作為該第三序列號(hào)。
15. 根據(jù)權(quán)利要求13所述的認(rèn)證方法,其特征在于,所述第二設(shè)備和 所述第 一設(shè)備使用同步后的第三、第四序列號(hào)進(jìn)行交互消息的抗重放認(rèn)證的 步驟還包含以下步驟所述第一設(shè)備將同步后的第三序列號(hào)增加一個(gè)預(yù)定步長(zhǎng),并將增加步長(zhǎng) 后的第三序列號(hào)攜帶在待認(rèn)證的消息中發(fā)送給所述第二設(shè)備;所述第二設(shè)備 將同步后的第四序列號(hào)和所述待認(rèn)證的消息中攜帶的第三序列號(hào)進(jìn)行比較, 如果比較的結(jié)果滿足第一預(yù)定條件,則該消息的抗重放認(rèn)證成功,該第二設(shè) 備將該第四序列號(hào)更新為與該第三序列號(hào)相同;如果比較的結(jié)果不滿足該第 一預(yù)定條件,則消息的抗重放認(rèn)證失敗。
16. 根據(jù)權(quán)利要求15所述的認(rèn)證方法,其特征在于,所述第一預(yù)定條 件為所述待認(rèn)證的消息中攜帶的第三序列號(hào)大于所述第二設(shè)備同步后的第 四序列號(hào);或者,所述待認(rèn)證的消息中攜帶的第三序列號(hào)大于所述第二設(shè)備 同步后的第四序列號(hào),且兩者的差值在預(yù)定范圍內(nèi)。
17.根據(jù)權(quán)利要求13至16中任一項(xiàng)所述的認(rèn)證方法,其特征在于,所 述第二設(shè)備在收到來(lái)自所述第一設(shè)備的屬于所述用戶的待認(rèn)證的消息時(shí),或 所述第二設(shè)備需要為所述用戶發(fā)起認(rèn)證時(shí),判斷該第二設(shè)備是否保存該用戶的第四序列號(hào)。
18. —種通信設(shè)備,其特征在于,包含 第一存儲(chǔ)單元,用于保存用戶的第四序列號(hào);生成單元,用于在確定該第一存儲(chǔ)單元沒(méi)有保存待認(rèn)證的用戶的第四序 列號(hào)時(shí),根據(jù)該通信設(shè)備的系統(tǒng)時(shí)間為該用戶生成第四序列號(hào),并指示該第一存儲(chǔ)單元保存該第四序列號(hào);第一同步單元,用于通過(guò)與所述通信設(shè)備的對(duì)端設(shè)備的交互將由對(duì)端設(shè) 備保存的所述用戶的第三序列號(hào)與所述第四序列號(hào)同步;第 一認(rèn)證單元,用于使用同步后的第四序列號(hào)與所述對(duì)端設(shè)備進(jìn)行交互 消息的抗重》文認(rèn)證。
19. 根據(jù)權(quán)利要求18所述的通信設(shè)備,其特征在于,所述第一同步單 元還包含發(fā)送子單元,用于將所述生成單元生成的第四序列號(hào)發(fā)送給所述對(duì)端設(shè)備;指示子單元,用于指示所述對(duì)端設(shè)備將該對(duì)端設(shè)備保存的所述用戶的第 三序列號(hào)更新為與該第四序列號(hào)相同。
20. —種通信設(shè)備,其特征在于,包含 第二存儲(chǔ)單元,用于保存用戶的第三序列號(hào);接收單元,用于從所述通信設(shè)備的對(duì)端設(shè)備接收待認(rèn)證的用戶的第四序列號(hào);第二同步單元,用于將所述第二存儲(chǔ)單元保存的第三序列號(hào)與所述接收單元收到的第四序列號(hào)同步;第二認(rèn)證單元,用于使用更新后的第三序列號(hào)與所述對(duì)端設(shè)備進(jìn)行交互 消息的抗重放認(rèn)證。
21. 根據(jù)權(quán)利要求20所述的通信設(shè)備,其特征在于,所述第二同步單 元通過(guò)以下方式將所述第二存儲(chǔ)單元保存的第三序列號(hào)與所迷接收單元收 到的第四序列號(hào)同步如果所述第二存儲(chǔ)單元已保存有所述用戶的第三序列號(hào),將所述接收單 元收到的第四序列號(hào)與該第三序列號(hào)比較,如果該第四序列號(hào)大于該第三序 列號(hào),則指示所述第二存儲(chǔ)單元將所保存的第三序列號(hào)更新為與該第四序列號(hào)相同;如果所述第二存儲(chǔ)單元未保存有所述用戶的第三序列號(hào),則指示該第二 存儲(chǔ)單元保存從所述接收單元收到的第四序列號(hào),將該第四序列號(hào)作為該第 三序列號(hào)。
22. —種認(rèn)證系統(tǒng),其特征在于,包含至少一個(gè)根據(jù)權(quán)利要求18或19 所述的第一類通信設(shè)備,和至少一個(gè)權(quán)利要求20或21所述的第二類通信設(shè) 備,所述第 一類通信設(shè)備和所述第二類通信設(shè)備互為進(jìn)行認(rèn)證的對(duì)端設(shè)備。
全文摘要
本發(fā)明涉及通信領(lǐng)域,公開(kāi)了一種鑒權(quán)和密鑰協(xié)商方法、認(rèn)證方法、系統(tǒng)及設(shè)備,使得在用戶卡不支持SQN的保存的情況下,能夠抵抗AKA過(guò)程中的重放攻擊。本發(fā)明中,網(wǎng)絡(luò)側(cè)收到終端的認(rèn)證請(qǐng)求時(shí),根據(jù)與該終端的共享密鑰、一個(gè)隨機(jī)數(shù)、和代表網(wǎng)絡(luò)側(cè)當(dāng)前系統(tǒng)時(shí)間的第一序列號(hào)SQN1生成第一認(rèn)證碼MAC,將該隨機(jī)數(shù)、第一序列號(hào)SQN1和第一認(rèn)證碼MAC發(fā)送給該終端;終端根據(jù)與網(wǎng)絡(luò)側(cè)的共享密鑰、收到的隨機(jī)數(shù)和第一序列號(hào)SQN1生成第二認(rèn)證碼XMAC,如果該第二認(rèn)證碼XMAC與所述第一認(rèn)證碼MAC相同,且代表終端側(cè)當(dāng)前系統(tǒng)時(shí)間的第二序列號(hào)SQN2與所述第一序列號(hào)SQN1的差值滿足預(yù)定條件,則該終端認(rèn)定網(wǎng)絡(luò)側(cè)合法。
文檔編號(hào)H04L9/32GK101272251SQ20071008994
公開(kāi)日2008年9月24日 申請(qǐng)日期2007年3月22日 優(yōu)先權(quán)日2007年3月22日
發(fā)明者劉文宇, 昉 尤, 潔 趙 申請(qǐng)人:華為技術(shù)有限公司