專利名稱:基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及一種基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法和啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體設(shè)備。
背景技術(shù):
3GPP(The Third Generation Partnership Project,第三代移動(dòng)通信系統(tǒng))中定義的GBA(Generic Bootstrapping Architecture,通用引導(dǎo)架構(gòu))如附圖1所示。
圖1中,通用引導(dǎo)框架通常由IMS用戶即UE、BSF(引導(dǎo)服務(wù)功能實(shí)體)、HSS(用戶歸屬網(wǎng)絡(luò)服務(wù)器)、SLF(用戶定位功能實(shí)體)和NAF(網(wǎng)絡(luò)業(yè)務(wù)應(yīng)用實(shí)體)組成。BSF用于與UE執(zhí)行引導(dǎo)會(huì)話過程(bootstrapping)時(shí)進(jìn)行互驗(yàn)證身份,同時(shí)生成BSF與用戶的共享密鑰Ks。HSS中存儲用于描述用戶信息的簽約文件,同時(shí)HSS還兼有產(chǎn)生鑒權(quán)信息的功能。SLF用于當(dāng)存在多個(gè)HSS時(shí),協(xié)助BSF查找相應(yīng)的HSS。NAF用于為UE提供網(wǎng)絡(luò)業(yè)務(wù)。BSF與HSS、NAF、UE、SLF之間的接口分別為Zh、Zn、Ub、Dz。NAF與UE之間的接口為Ua。
在通常情況下,當(dāng)用戶需要使用某種業(yè)務(wù)時(shí),如果用戶知道該業(yè)務(wù)需要到BSF進(jìn)行互鑒權(quán)過程,則直接到BSF進(jìn)行互鑒權(quán),否則,用戶會(huì)首先和該業(yè)務(wù)對應(yīng)的NAF聯(lián)系,如果該NAF支持使用GBA機(jī)制,并且發(fā)現(xiàn)該用戶還未到BSF進(jìn)行互認(rèn)證過程,NAF則通知該用戶到BSF進(jìn)行互鑒權(quán)以驗(yàn)證身份。
在Ub接口中,UE執(zhí)行引導(dǎo)會(huì)話過程的流程如附圖2所示。
圖2中,在步驟1、UE(用戶)需要使用某種業(yè)務(wù)時(shí),如果UE知道該業(yè)務(wù)需要到BSF進(jìn)行相互鑒權(quán)過程,則直接發(fā)送鑒權(quán)請求到BSF進(jìn)行相互鑒權(quán),否則,UE會(huì)首先和該業(yè)務(wù)對應(yīng)的NAF聯(lián)系,如果該NAF支持使用GBA機(jī)制,并且發(fā)現(xiàn)該UE還未到BSF進(jìn)行互認(rèn)證過程,則NAF通知該UE到BSF進(jìn)行互鑒權(quán)以驗(yàn)證身份,UE接收到NAF的通知后,再直接發(fā)送鑒權(quán)請求到BSF進(jìn)行相互鑒權(quán)。
到步驟2、BSF接到鑒權(quán)請求后,通過Zh接口從HSS處獲取該用戶的鑒權(quán)向量信息五元組,如鑒權(quán)序號AUTN、隨機(jī)數(shù)RAND、完整性密鑰IK、加密密鑰CK、期望結(jié)果XRES。
在步驟3至步驟6、BSF采用HTTP digest AKA協(xié)議與UE進(jìn)行雙向認(rèn)證以及密鑰協(xié)商,完成UE和BSF之間身份的互相認(rèn)證。
到步驟7、BSF生成共享根密鑰Ks。BSF還為共享根密鑰Ks定義了一個(gè)有效期限,以便Ks進(jìn)行定期更新。
到步驟8、BSF為UE分配一個(gè)B-TID(引導(dǎo)事務(wù)標(biāo)識),B-TID用于標(biāo)識BSF和UE之間的本次鑒權(quán)交互事務(wù)。BSF將該B-TID與共享根密鑰Ks、UE的IMPI(IMS私有用戶標(biāo)識)相關(guān)聯(lián),以便以后BSF可以根據(jù)該B-TID查找出相應(yīng)的Ks。然后,BSF將B-TID和Ks的有效期限一起明文發(fā)送給UE。
到步驟9、UE也生成和BSF側(cè)相同的共享根密鑰Ks,并保存BSF發(fā)送來的B-TID和Ks的有效期限。
在上述過程結(jié)束后,UE和BSF之間就共享了一個(gè)根密鑰Ks,并且UE可以利用公式推導(dǎo)出與想要訪問的NAF之間的衍生的共享密鑰Ks_NAF,如利用公式Ks_NAF或者Ks_ext_NAF=KDF來推導(dǎo),這里的KDF即Ks、″gba-me″、RAND、IMPI、NAF_Id;再如利用公式Ks_int_NAF=KDF來推導(dǎo),這里的KDF即Ks、″gba-u″、RAND、IMPI、NAF_Id。上述公式中的Ks_ext_NAF、Ks_int_NAF可以統(tǒng)一簡稱為Ks_NAF。上述公式中的NAF_Id是由要訪問的NAF域名以及Ua接口上的協(xié)議標(biāo)識UaID連接而成,RAND是隨機(jī)數(shù),IMPI是指UE的IMS私有用戶標(biāo)識,″gba-me″或者″gba-u″代表字符串;KDF是密鑰導(dǎo)出函數(shù)的縮寫。
在UE獲取了其與想要訪問的NAF之間的衍生的共享密鑰Ks_NAF后,NAF需要獲取該衍生的共享密鑰Ks_NAF,只有NAF和UE都獲取了Ks_NAF,才能建立雙方通訊的安全通道。
NAF通過Zn接口獲取Ks_NAF的流程圖如附圖3所示。
圖3中,在步驟1、UE在根據(jù)上述公式推導(dǎo)出衍生的共享密鑰Ks_NAF后,以B-TID為用戶名、Ks_NAF為口令向NAF發(fā)送連接請求。
到步驟2、NAF收到UE的連接請求后,向BSF發(fā)送認(rèn)證請求消息。認(rèn)證請求消息中攜帶有B-TID和NAF主機(jī)名。
到步驟3、BSF在接收到認(rèn)證請求消息后,利用請求消息中的B-TID在其保留的引導(dǎo)會(huì)話過程參數(shù)信息中查找相應(yīng)的Ks,這里,BSF保留的引導(dǎo)會(huì)話過程參數(shù)如B-TID、IMPI、Ks、密鑰有效期、引導(dǎo)會(huì)話過程的開始時(shí)間、應(yīng)用相關(guān)的GUSS(GBA用戶安全設(shè)置信息)等。如果BSF能夠根據(jù)B-TID查找到相應(yīng)的Ks,則完成相應(yīng)用戶的認(rèn)證,BSF使用查找到的Ks、與用戶側(cè)相同的上述公式計(jì)算出衍生的共享密鑰Ks_NAF,然后,BSF在認(rèn)證響應(yīng)消息中將其計(jì)算出來的Ks_NAF、Ks_NAF的有效期限、BSF與UE之間相互鑒權(quán)的開始時(shí)間、以及其他應(yīng)用相關(guān)的USS(用戶安全設(shè)置信息)發(fā)給NAF。NAF接收并保存這些信息。
這樣,NAF和UE之間共享了由Ks衍生的密鑰Ks_NAF,從而,在后續(xù)的通信中,NAF和UE之間可以進(jìn)行安全通信。
到步驟4、NAF向UE發(fā)送連接應(yīng)答。
從上述描述可以看出,在GBA過程中,UE總是可以主動(dòng)連接到網(wǎng)絡(luò)側(cè)如BSF或者NAF,即UE總是有到網(wǎng)絡(luò)側(cè)方向的返回通道,也就是說,UE可以向NAF發(fā)送消息,以便通過此通道觸發(fā)GBA過程。
隨著GBA應(yīng)用的更加廣泛,一些由網(wǎng)絡(luò)應(yīng)用實(shí)體如NAF向UE主動(dòng)發(fā)起通信請求的GBA推送push業(yè)務(wù)對GBA產(chǎn)生了新的需求。在這種情況下,UE沒有到網(wǎng)絡(luò)側(cè)方向的返回通道,即UE不能向NAF發(fā)送消息,因此,UE也就不能主動(dòng)連接到網(wǎng)絡(luò)側(cè)。此時(shí),必須由網(wǎng)絡(luò)側(cè)NAF向UE主動(dòng)發(fā)起GBA過程,如網(wǎng)絡(luò)側(cè)經(jīng)常主動(dòng)向UE廣播一些信息。這樣,就需要擴(kuò)展GBA,使其能夠符合GBApush業(yè)務(wù)的需求。
對于UE來說,網(wǎng)絡(luò)側(cè)NAF向UE主動(dòng)發(fā)起GBA過程好象是網(wǎng)絡(luò)側(cè)向自己主動(dòng)推送一些信息一樣,因此,可以將這種GBA過程稱為GBA PUSH(基于GBA的推送功能)。
GBAPUSH的實(shí)現(xiàn)過程流程圖如附圖4所示。
圖4中,在步驟1、NAF需要向UE廣播數(shù)據(jù)。NAF事先知道UE的某種用戶標(biāo)識如IMPI等,如果NAF事先知道UE的IMPI之外的其它標(biāo)識,則BSF或HSS應(yīng)該能夠知道與其他標(biāo)識對應(yīng)的IMPI。此時(shí),UE沒有到NAF的返回通道。
到步驟2、NAF通過Zn接口向BSF發(fā)送密鑰請求消息,以請求Ks_NAF。該請求消息中攜帶有該UE的某種用戶標(biāo)識如IMPI等、NAF_ID參數(shù)、以及可選的Req_KeyLT(請求密鑰有效期)參數(shù)和可選的GSID(GBA業(yè)務(wù)標(biāo)識)參數(shù)。
到步驟3、BSF接收到該請求消息后,首先檢查該NAF是否有權(quán)執(zhí)行GBAPUSH操作,在該檢查通過后,再檢查該UE是否已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,如果檢查出該UE還沒有一個(gè)引導(dǎo)會(huì)話過程,表示NAF首次執(zhí)行GBA PUSH操作,到步驟3a。
步驟3a、BSF啟動(dòng)一個(gè)新的引導(dǎo)會(huì)話過程,具體過程為BSF首先從HSS處獲取鑒權(quán)矢量5元組即AUTN、RAND、XRES、IK、CK,然后,BSF根據(jù)IK和CK計(jì)算出Ks,再利用上述公計(jì)算出Ks_NAF,并生成B-TID。BSF從UE的GUSS中提取出用戶安全設(shè)置USS。最后,BSF保存上述創(chuàng)建的引導(dǎo)會(huì)話過程參數(shù),即B-TID、IMPI、Ks、密鑰有效期、引導(dǎo)會(huì)話過程的的開始時(shí)間、應(yīng)用相關(guān)的GUSS、以及RAND參數(shù)等,以便這些參數(shù)在以后也可以和其他的NAF一起使用。BSF也可以只保存RAND和B-TID兩者中的一個(gè)。
如果BSF檢查出該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則到步驟3b。
在步驟3b、BSF利用上述公計(jì)算出Ks_NAF,并從UE的GUSS中提取出用戶安全設(shè)置USS。
到步驟4、BSF向NAF發(fā)送響應(yīng)消息,以向NAF返回Ks_NAF等信息。該步驟有兩種不同的執(zhí)行方式步驟4a、如果在步驟3中,該UE沒有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回AUTN、RAND、B-TID、Ks_NAF、密鑰有效期、USS。這里,BSF也可能只返回RAND和B-TID中的一個(gè)。
步驟4b、如果在步驟3中,該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回B-TID、Ks_NAF、密鑰有效期、USS。
到步驟5、NAF使用Ks_NAF加密PUSH業(yè)務(wù)數(shù)據(jù),即NAF使用Ks_NAF加密需要發(fā)送到UE的廣播數(shù)據(jù)。這里的Ks_NAF是包括Ks_ext_NAF和Ks_int_NAF的。
到步驟6、NAF向UE發(fā)送PUSH消息,即執(zhí)行GBA PUSH過程。該步驟有兩種不同的執(zhí)行方式步驟6a、如果BSF和UE之間還沒有一個(gè)引導(dǎo)會(huì)話過程,即UE還沒有產(chǎn)生共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有AUTN、RAND、B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。這里,NAF也可能只向UE返回RAND和B-TID中的一個(gè)。
步驟6b、如果BSF和UE之間已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,即雙方都產(chǎn)生了共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。
到步驟7、UE接收到NAF發(fā)送來的PUSH消息后,解密NAF發(fā)送來的數(shù)據(jù)。同樣,該步驟也有兩種不同的執(zhí)行方式步驟7a、如果UE接收到的PUSH消息中存在AUTN和RAND,則表明該NAF首次和UE通訊,UE首先通過AUTN和RAND來認(rèn)證網(wǎng)絡(luò),并在認(rèn)證成功后,先根據(jù)IK和CK計(jì)算出Ks,再利用上述公式計(jì)算出Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。UE也保存引導(dǎo)會(huì)話相關(guān)的信息如B-TID、Ks等以及RAND、AUTN參數(shù),以便以后也可以和其他的NAF一起使用。
步驟7b、如果UE接收到的PUSH消息中不存在AUTN和RAND,則表示UE需要?jiǎng)?chuàng)建Ks_NAF或者UE從其以前保存的數(shù)據(jù)中提取Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。
假設(shè)一個(gè)NAF如NAF1向某UE如通過IMPI來標(biāo)識的用戶發(fā)起一次GBAPUSH過程后已經(jīng)獲取了Ks_NAF。當(dāng)該密鑰過期或者即將過期時(shí),NAF1會(huì)重新發(fā)起GBA PUSH過程。此時(shí),會(huì)存在如下問題當(dāng)NAF1在Ks_NAF密鑰即將過期而重新發(fā)起GBA PUSH過程中,在上述步驟3中,BSF接收到NAF1的請求消息,由于此時(shí)BSF中的Ks_NAF密鑰也是即將過期,因此,BSF檢查出該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,即上次BSF和NAF1之間的引導(dǎo)會(huì)話過程,這樣,BSF會(huì)執(zhí)行步驟3b,即BSF還是會(huì)計(jì)算出和上次NAF1的GBAPUSH過程相同的Ks_NAF。在步驟4中,BSF向NAF返回的參數(shù)還是上次返回的參數(shù),如舊的B-TID、舊的Ks_NAF、舊的密鑰有效期等,而不是新生成引導(dǎo)會(huì)話過程參數(shù),從而沒有達(dá)到NAF重新發(fā)起GBA PUSH過程的目的,導(dǎo)致NAF和UE后續(xù)的通訊過程中存在嚴(yán)重的安全漏洞。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法和設(shè)備,使NAF在由于密鑰即將過期等情況下需要重新執(zhí)行推送功能時(shí),能夠獲得新的引導(dǎo)會(huì)話過程參數(shù),從而實(shí)現(xiàn)了提高NAF和UE之間的通訊安全性、完善基于通用引導(dǎo)構(gòu)架推送功能技術(shù)方案的目的。
為達(dá)到上述目的,本發(fā)明提供的一種基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法,包括a、啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體BSF接收到網(wǎng)絡(luò)應(yīng)用功能實(shí)體NAF傳來的密鑰請求消息后,判斷出所述NAF需要重新執(zhí)行推送功能;b、BSF生成并保存新的引導(dǎo)會(huì)話過程參數(shù),BSF將所述新的引導(dǎo)會(huì)話過程參數(shù)返回給NAF。
所述步驟a具體包括a1、BSF保存執(zhí)行推送功能的NAF的NAF標(biāo)識信息;a2、BSF在確定其接收到的密鑰請求消息中的NAF標(biāo)識信息與其存儲的NAF標(biāo)識信息匹配后,判斷出所述NAF需要重新執(zhí)行推送功能。
所述步驟a1具體包括BSF在接收到NAF傳輸來的密鑰請求消息后,在確定出BSF和用戶設(shè)備UE之間還沒有一個(gè)引導(dǎo)會(huì)話過程時(shí),生成新的引導(dǎo)會(huì)話過程參數(shù)和衍生密鑰Ks_NAF,并保存所述生成引導(dǎo)會(huì)話過程參數(shù)和所述NAF的NAF標(biāo)識信息。
所述步驟a2具體包括BSF在接收到NAF傳輸來的密鑰請求消息后,在確定出BSF和UE之間存在一個(gè)引導(dǎo)會(huì)話過程,且密鑰請求消息中的NAF標(biāo)識信息與其以前存儲的NAF標(biāo)識信息匹配時(shí),判斷出所述NAF需要重新執(zhí)行推送功能。
所述步驟a具體包括a3、NAF將表示NAF重新執(zhí)行推送功能的標(biāo)識參數(shù)通過密鑰請求消息傳輸至BSF;a4、BSF根據(jù)密鑰請求消息中的標(biāo)識參數(shù)判斷出NAF重新執(zhí)行推送功能。
所述步驟a4具體包括BSF確定出其和UE之間存在一個(gè)引導(dǎo)會(huì)話過程后,根據(jù)密鑰請求消息中的標(biāo)識參數(shù),判斷出所述NAF需要重新執(zhí)行推送功能。
所述步驟b還包括BSF刪除其存儲的舊的引導(dǎo)會(huì)話過程參數(shù)。
本發(fā)明還提供一種啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體設(shè)備,所述設(shè)備中設(shè)置有判斷模塊;判斷模塊用于在BSF接收到NAF傳來的密鑰請求消息后,判斷出所述NAF需要重新執(zhí)行推送功能后,觸發(fā)BSF生成新的引導(dǎo)會(huì)話過程參數(shù),BSF保存所述新的引導(dǎo)會(huì)話過程參數(shù),并返回給NAF。
判斷模塊保存執(zhí)行推送功能的NAF的NAF標(biāo)識信息,并在確定BSF接收到的密鑰請求消息中的NAF標(biāo)識信息與其存儲的NAF標(biāo)識信息匹配后,判斷出所述NAF需要重新執(zhí)行推送功能。
判斷模塊根據(jù)NAF傳輸來的密鑰請求消息中攜帶的標(biāo)識參數(shù)判斷出NAF重新執(zhí)行推送功能。
通過上述技術(shù)方案的描述可知,本發(fā)明中的BSF通過為重新執(zhí)行推送功能的NAF生成新的引導(dǎo)會(huì)話過程參數(shù),使NAF在由于密鑰即將過期等情況下,能夠獲得新的引導(dǎo)會(huì)話過程參數(shù)如新的密鑰、新的密鑰有效期等,使NAF和UE之間的密鑰能夠周期性的變化;從而通過本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了提高NAF和UE之間的通訊安全性、完善推送功能技術(shù)方案的目的。
圖1是3GPP中定義的GBA的架構(gòu)示意圖;
圖2是現(xiàn)有技術(shù)的UE執(zhí)行引導(dǎo)會(huì)話過程的流程圖;圖3是現(xiàn)有技術(shù)的NAF通過Zn接口獲取Ks_NAF的流程圖;圖4是現(xiàn)有技術(shù)的GBA PUSH的實(shí)現(xiàn)過程流程圖;圖5是本發(fā)明實(shí)施例的GBA PUSH的實(shí)現(xiàn)過程流程圖一;圖6是本發(fā)明實(shí)施例的GBA PUSH的實(shí)現(xiàn)過程流程圖二。
具體實(shí)施例方式
當(dāng)同一個(gè)NAF由于密碼即將過期等原因而需要重新執(zhí)行推送功能時(shí),本發(fā)明中的BSF應(yīng)該為上述重新執(zhí)行推送功能的NAF生成新的引導(dǎo)會(huì)話過程參數(shù),如為密碼即將過期而發(fā)送密鑰請求消息的NAF生成新的引導(dǎo)會(huì)話過程參數(shù),并將新的引導(dǎo)會(huì)話過程參數(shù)傳輸至NAF。
BSF判斷發(fā)送密鑰請求消息的NAF是否為重新執(zhí)行推送功能的NAF的方法有多種,下面介紹兩種不同的實(shí)現(xiàn)方法一、當(dāng)NAF首次執(zhí)行GBA PUSH操作時(shí),BSF保存該NAF的NAF_ID,如BSF在保存引導(dǎo)會(huì)話過程參數(shù)的同時(shí),保存NAF_ID,即保存一個(gè)對該UE執(zhí)行GBA PUSH的NAF_ID列表。這樣,當(dāng)同一個(gè)NAF重新執(zhí)行GBAPUSH功能時(shí),密鑰請求消息中的NAF_ID一定與以前保存的引導(dǎo)會(huì)話過程參數(shù)中的NAF_ID相匹配,BSF確定出該NAF由于Ks_NAF密鑰即將過期而重新執(zhí)行GBA PUSH過程,此時(shí),BSF應(yīng)該刪除其保存的舊的引導(dǎo)會(huì)話過程參數(shù),然后,生成新的Ks_NAF、B-TID以及其他引導(dǎo)會(huì)話過程參數(shù),并保存,以便以后可以和其他的NAF一起使用,在這個(gè)保存過程中,也需要保存NAF_ID。
方法二、NAF在向BSF發(fā)送密鑰請求消息時(shí),在密鑰請求消息中增加一個(gè)標(biāo)識參數(shù),該標(biāo)識參數(shù)用來表示NAF是否重新執(zhí)行GBA PUSH操作。也就是說,NAF在第一次向BSF發(fā)送密鑰請求消息時(shí)攜帶的標(biāo)識參數(shù)的值,與NAF以后重新向BSF發(fā)送的發(fā)送密鑰請求消息中攜帶的標(biāo)識參數(shù)的值不同。這樣,BSF可以根據(jù)該標(biāo)識參數(shù)數(shù)值的不同來區(qū)分NAF是首次執(zhí)行GBA PUSH過程,還是重新執(zhí)行GBAPUSH過程,BSF根據(jù)其判斷的結(jié)果能夠確定出是否啟動(dòng)一個(gè)新的引導(dǎo)會(huì)話過程。
下面結(jié)合附圖5對包含上述方法一的GBAPUSH的實(shí)現(xiàn)流程進(jìn)行說明。
圖5中,在步驟1,NAF需要向UE廣播數(shù)據(jù)。NAF事先知道UE的某種用戶標(biāo)識如IMPI等,如果NAF事先知道UE的IMPI之外的其它標(biāo)識,則BSF或HSS應(yīng)該能夠知道與其他標(biāo)識對應(yīng)的IMPI。此時(shí),UE沒有到NAF的返回通道。
到步驟2、NAF通過Zn接口向BSF發(fā)送密鑰請求消息,以請求Ks_NAF密鑰。該請求消息中攜帶有該UE的某種用戶標(biāo)識如IMPI等、NAF_ID參數(shù)、以及可選的Req_KeyLT(請求密鑰有效期)參數(shù)和可選的GSID(GBA業(yè)務(wù)標(biāo)識)參數(shù)。
到步驟3、BSF接收到該請求消息后,首先檢查該NAF是否有權(quán)執(zhí)行GBAPUSH操作,在該檢查通過后,再檢查該UE是否已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,如果檢查出該UE還沒有一個(gè)引導(dǎo)會(huì)話過程,表示NAF首次執(zhí)行GBA PUSH操作,到步驟3a。
在步驟3a、BSF啟動(dòng)一個(gè)新的引導(dǎo)會(huì)話過程,具體過程為BSF首先從HSS處獲取鑒權(quán)矢量5元組即AUTN、RAND、XRES、IK、CK,然后,BSF根據(jù)IK和CK計(jì)算出Ks,再利用上述公計(jì)算出Ks_NAF,并生成B-TID。BSF從UE的GUSS中提取出用戶安全設(shè)置USS。最后,BSF保存上述創(chuàng)建的引導(dǎo)會(huì)話過程參數(shù),即B-TID、IMPI、Ks、密鑰有效期、引導(dǎo)會(huì)話過程的開始時(shí)間、應(yīng)用相關(guān)的GUSS、RAND參數(shù)、以及NAF_ID等參數(shù),以便這些參數(shù)在以后也可以和其他的NAF一起使用。BSF也可以只保存RAND和B-TID兩者中的一個(gè)。
如果BSF檢查出該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則到步驟3b。
在步驟3b、BSF首先比較接收到的NAF發(fā)送來的請求消息中的NAF_ID是否能夠與以前保存的引導(dǎo)會(huì)話過程中的NAF_ID列表中的某一個(gè)記錄相匹配,如果可以匹配,則說明該GBA PUSH過程是由于Ks_NAF密鑰即將過期而導(dǎo)致NAF重新執(zhí)行的GBA PUSH過程,此時(shí),BSF刪除舊的引導(dǎo)會(huì)話過程參數(shù),然后,執(zhí)行步驟3a;如果不可以匹配,則BSF利用上述公式計(jì)算出Ks_NAF,然后,BSF保存NAF_ID,并從UE的GUSS中提取出用戶安全設(shè)置USS。
到步驟4、BSF向NAF發(fā)送響應(yīng)消息,以向NAF返回Ks_NAF等信息。該步驟有兩種不同的執(zhí)行方式步驟4a、如果在步驟3中,該UE沒有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回AUTN、RAND、B-TID、Ks_NAF、密鑰有效期、USS。這里,BSF也可能只返回RAND和B-TID中的一個(gè)。
步驟4b、如果在步驟3中,該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回B-TID、Ks_NAF、密鑰有效期、USS。
到步驟5、NAF使用Ks_NAF加密PUSH業(yè)務(wù)數(shù)據(jù),即NAF使用Ks_NAF加密需要發(fā)送到UE的廣播數(shù)據(jù)。這里的Ks_NAF是包括Ks_ext_NAF和Ks_int_NAF的。
到步驟6、NAF向UE發(fā)送PUSH消息,即執(zhí)行GBA PUSH過程。該步驟有兩種不同的執(zhí)行方式步驟6a、如果BSF和UE之間還沒有一個(gè)引導(dǎo)會(huì)話過程,即UE還沒有產(chǎn)生共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有AUTN、RAND、B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。這里,NAF也可能只向UE返回RAND和B-TID中的一個(gè)。
步驟6b、如果BSF和UE之間已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,即雙方都產(chǎn)生了共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。
到步驟7、UE接收到NAF發(fā)送來的PUSH消息后,解密NAF發(fā)送來的數(shù)據(jù)。同樣,該步驟也有兩種不同的執(zhí)行方式步驟7a、如果UE接收到的PUSH消息中存在AUTN和RAND,則表明該NAF首次和UE通訊,UE首先通過AUTN和RAND來認(rèn)證網(wǎng)絡(luò),并在認(rèn)證成功后,先根據(jù)IK和CK計(jì)算出Ks,再利用上述公式計(jì)算出Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。UE也保存引導(dǎo)會(huì)話相關(guān)的信息如B-TID、Ks等以及RAND、AUTN參數(shù),以便以后也可以和其他的NAF一起使用。
步驟7b、如果UE接收到的PUSH消息中不存在AUTN和RAND,則表示UE需要?jiǎng)?chuàng)建Ks_NAF或者UE從其以前保存的數(shù)據(jù)中提取Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。
下面結(jié)合附圖6對包含上述方法二的GBA PUSH的實(shí)現(xiàn)流程進(jìn)行說明。
圖6中,在步驟1,NAF需要向UE廣播數(shù)據(jù)。NAF事先知道UE的某種用戶標(biāo)識如IMPI等,如果NAF事先知道UE的IMPI之外的其它標(biāo)識,則BSF或HSS應(yīng)該能夠知道與其他標(biāo)識對應(yīng)的IMPI。此時(shí),UE沒有到NAF的返回通道。
到步驟2、NAF通過Zn接口向BSF發(fā)送密鑰請求消息,以請求Ks_NAF密鑰。該請求消息中攜帶有該UE的某種用戶標(biāo)識如IMPI等、NAF_ID參數(shù)、以及可選的Req_KeyLT(請求密鑰有效期)參數(shù)和可選的GSID(GBA業(yè)務(wù)標(biāo)識)參數(shù),該請求消息中還攜帶一個(gè)標(biāo)識參數(shù),用于標(biāo)識此NAF是首次執(zhí)行GBA PUSH過程,還是重新執(zhí)行GBA PUSH過程。
到步驟3、BSF接收到該請求消息后,首先檢查該NAF是否有權(quán)執(zhí)行GBAPUSH操作,在該檢查通過后,再檢查該UE是否已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,如果檢查出該UE還沒有一個(gè)引導(dǎo)會(huì)話過程,表示NAF首次執(zhí)行GBA PUSH操作,到步驟3a。
在步驟3a、BSF啟動(dòng)一個(gè)新的引導(dǎo)會(huì)話過程,具體過程為BSF首先從HSS處獲取鑒權(quán)矢量5元組即AUTN、RAND、XRES、IK、CK,然后,BSF根據(jù)IK和CK計(jì)算出Ks,再利用上述公計(jì)算出Ks_NAF,并生成B-TID。BSF從UE的GUSS中提取出用戶安全設(shè)置USS。最后,BSF保存上述創(chuàng)建的引導(dǎo)會(huì)話過程參數(shù),即B-TID、IMPI、Ks、密鑰有效期、引導(dǎo)會(huì)話過程的開始時(shí)間、應(yīng)用相關(guān)的GUSS、RAND參數(shù)等,以便這些參數(shù)在以后也可以和其他的NAF一起使用。BSF也可以只保存RAND和B-TID兩者中的一個(gè)。
如果BSF檢查出該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則到步驟3b。
在步驟3b、BSF首先檢查NAF發(fā)送來的請求消息中的標(biāo)識參數(shù),如果該標(biāo)識參數(shù)表示該GBA PUSH過程是由于Ks_NAF密鑰即將過期而導(dǎo)致NAF重新執(zhí)行的GBA PUSH過程,此時(shí),BSF刪除舊的引導(dǎo)會(huì)話過程參數(shù),然后,執(zhí)行步驟3a,重新啟動(dòng)一個(gè)引導(dǎo)會(huì)話過程;如果該標(biāo)識參數(shù)表示該GBA PUSH過程是NAF首次執(zhí)行GBA PUSH過程,則BSF利用上述公式計(jì)算出Ks_NAF,然后,從UE的GUSS中提取出用戶安全設(shè)置USS。
到步驟4、BSF向NAF發(fā)送響應(yīng)消息,以向NAF返回Ks_NAF等信息。該步驟有兩種不同的執(zhí)行方式步驟4a、如果在步驟3中,該UE沒有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回AUTN、RAND、B-TID、Ks_NAF、密鑰有效期、USS。這里,BSF也可能只返回RAND和B-TID中的一個(gè)。
步驟4b、如果在步驟3中,該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,則BSF向NAF返回B-TID、Ks_NAF、密鑰有效期、USS。
到步驟5、NAF使用Ks_NAF加密PUSH業(yè)務(wù)數(shù)據(jù),即NAF使用Ks_NAF加密需要發(fā)送到UE的廣播數(shù)據(jù)。這里的Ks_NAF是包括Ks_ext_NAF和Ks_int_NAF的。
到步驟6、NAF向UE發(fā)送PUSH消息,即執(zhí)行GBA PUSH過程。該步驟有兩種不同的執(zhí)行方式步驟6a、如果BSF和UE之間還沒有一個(gè)引導(dǎo)會(huì)話過程,即UE還沒有產(chǎn)生共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有AUTN、RAND、B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。這里,NAF也可能只向UE返回RAND和B-TID中的一個(gè)。
步驟6b、如果BSF和UE之間已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程,即雙方都產(chǎn)生了共享密鑰Ks_NAF,則NAF向UE發(fā)送PUSH消息,PUSH消息中攜帶有B-TID、NAF_ID、以及可選的加密的數(shù)據(jù)。
到步驟7、UE接收到NAF發(fā)送來的PUSH消息后,解密NAF發(fā)送來的數(shù)據(jù)。同樣,該步驟也有兩種不同的執(zhí)行方式步驟7a、如果UE接收到的PUSH消息中存在AUTN和RAND,則表明該NAF首次和UE通訊,UE首先通過AUTN和RAND來認(rèn)證網(wǎng)絡(luò),并在認(rèn)證成功后,先根據(jù)IK和CK計(jì)算出Ks,再利用上述公式計(jì)算出Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。UE也保存引導(dǎo)會(huì)話相關(guān)的信息如B-TID、Ks等以及RAND、AUTN參數(shù),以便以后也可以和其他的NAF一起使用。
步驟7b、如果UE接收到的PUSH消息中不存在AUTN和RAND,則表示UE需要?jiǎng)?chuàng)建Ks_NAF或者UE從其以前保存的數(shù)據(jù)中提取Ks_NAF。最后,UE使用Ks_NAF解密獲得NAF發(fā)送來的數(shù)據(jù)。
本發(fā)明提供的啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體設(shè)備中設(shè)置有判斷模塊。
判斷模塊主要用于當(dāng)BSF和該UE已經(jīng)有一個(gè)引導(dǎo)會(huì)話過程時(shí),BSF收到NAF發(fā)來的密鑰請求消息、并在判斷出需要執(zhí)行推送功能的NAF需要重新執(zhí)行推送功能,觸發(fā)BSF,使BSF為該NAF生成新的引導(dǎo)會(huì)話過程參數(shù),BSF保存新的引導(dǎo)會(huì)話過程參數(shù),并將新的引導(dǎo)會(huì)話過程參數(shù)傳輸至NAF。
當(dāng)NAF由于密鑰即將過期等原因,會(huì)向BSF發(fā)送密鑰請求消息,判斷模塊可以采用多種方法來判斷NAF是否重新執(zhí)行推送功能,如BSF在存儲引導(dǎo)會(huì)話過程參數(shù)時(shí),同時(shí)存儲NAF_ID,這樣,判斷模塊可以根據(jù)NAF傳輸來的PUSH消息中的NAF_ID與BSF存儲的信息進(jìn)行匹配,如果匹配,則確定該NAF重新執(zhí)行推送功能,此時(shí),BSF生成新的引導(dǎo)會(huì)話過程參數(shù),并繼續(xù)后續(xù)的處理過程;如果不匹配,則確定該NAF第一次執(zhí)行推送功能,此時(shí)BSF根據(jù)已有的引導(dǎo)會(huì)話參數(shù)計(jì)算Ks_NAF,并繼續(xù)后續(xù)的處理過程。再如,NAF向BSF發(fā)送密鑰請求消息時(shí),在密鑰請求消息中攜帶表示重新執(zhí)行推送功能的標(biāo)識參數(shù),這樣,判斷模塊可以根據(jù)BSF接收到的密鑰請求消息中的標(biāo)識參數(shù)來判斷NAF是否重新執(zhí)行推送功能,如果NAF是重新執(zhí)行推送功能,則觸發(fā)BSF生成新的引導(dǎo)會(huì)話過程參數(shù),并繼續(xù)后續(xù)的處理過程;如果NAF不是重新執(zhí)行推送功能,則觸發(fā)BSF根據(jù)已有的引導(dǎo)會(huì)話參數(shù)計(jì)算Ks,進(jìn)而計(jì)算出衍生密鑰Ks_NAF,并繼續(xù)后續(xù)的處理過程。具體如上述方法中的描述。
本發(fā)明通過在BSF中設(shè)置判斷模塊,使BSF能夠?yàn)橹匦聢?zhí)行GBA PUSH的NAF生成新的引導(dǎo)會(huì)話參數(shù),從而保證了NAF和UE之間的通訊安全。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,本發(fā)明的申請文件的權(quán)利要求包括這些變形和變化。
權(quán)利要求
1.一種基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法,其特征在于,包括步驟a、啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體BSF接收到網(wǎng)絡(luò)應(yīng)用功能實(shí)體NAF傳來的密鑰請求消息后,判斷出所述NAF需要重新執(zhí)行推送功能;b、BSF生成并保存新的引導(dǎo)會(huì)話過程參數(shù),BSF將所述新的引導(dǎo)會(huì)話過程參數(shù)返回給NAF。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟a具體包括a1、BSF保存執(zhí)行推送功能的NAF的NAF標(biāo)識信息;a2、BSF在確定其接收到的密鑰請求消息中的NAF標(biāo)識信息與其存儲的NAF標(biāo)識信息匹配后,判斷出所述NAF需要重新執(zhí)行推送功能。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟a1具體包括BSF在接收到NAF傳輸來的密鑰請求消息后,在確定出BSF和用戶設(shè)備UE之間還沒有一個(gè)引導(dǎo)會(huì)話過程時(shí),生成新的引導(dǎo)會(huì)話過程參數(shù)和衍生密鑰Ks_NAF,并保存所述生成引導(dǎo)會(huì)話過程參數(shù)和所述NAF的NAF標(biāo)識信息。
4.如權(quán)利要求2所述的方法,其特征在于,所述步驟a2具體包括BSF在接收到NAF傳輸來的密鑰請求消息后,在確定出BSF和UE之間存在一個(gè)引導(dǎo)會(huì)話過程,且密鑰請求消息中的NAF標(biāo)識信息與其以前存儲的NAF標(biāo)識信息匹配時(shí),判斷出所述NAF需要重新執(zhí)行推送功能。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟a具體包括a3、NAF將表示NAF重新執(zhí)行推送功能的標(biāo)識參數(shù)通過密鑰請求消息傳輸至BSF;a4、BSF根據(jù)密鑰請求消息中的標(biāo)識參數(shù)判斷出NAF重新執(zhí)行推送功能。
6.如權(quán)利要求5所述的方法,其特征在于,所述步驟a4具體包括BSF確定出其和UE之間存在一個(gè)引導(dǎo)會(huì)話過程后,根據(jù)密鑰請求消息中的標(biāo)識參數(shù),判斷出所述NAF需要重新執(zhí)行推送功能。
7.如權(quán)利要求1至6中任一權(quán)利要求所述的方法,其特征在于,所述步驟b還包括BSF刪除其存儲的舊的引導(dǎo)會(huì)話過程參數(shù)。
8.一種啟動(dòng)引導(dǎo)服務(wù)器功能實(shí)體設(shè)備,其特征在于,所述設(shè)備中設(shè)置有判斷模塊;判斷模塊用于在BSF接收到NAF傳來的密鑰請求消息后,判斷出所述NAF需要重新執(zhí)行推送功能后,觸發(fā)BSF生成新的引導(dǎo)會(huì)話過程參數(shù),BSF保存所述新的引導(dǎo)會(huì)話過程參數(shù),并返回給NAF。
9.如權(quán)利要求8所述的設(shè)備,其特征在于判斷模塊保存執(zhí)行推送功能的NAF的NAF標(biāo)識信息,并在確定BSF接收到的密鑰請求消息中的NAF標(biāo)識信息與其存儲的NAF標(biāo)識信息匹配后,判斷出所述NAF需要重新執(zhí)行推送功能。
10.如權(quán)利要求8所述的設(shè)備,其特征在于判斷模塊根據(jù)NAF傳輸來的密鑰請求消息中攜帶的標(biāo)識參數(shù)判斷出NAF重新執(zhí)行推送功能。
全文摘要
本發(fā)明提供一種基于通用引導(dǎo)構(gòu)架實(shí)現(xiàn)推送功能的方法和設(shè)備,本發(fā)明中的BSF在確定出需要實(shí)現(xiàn)推送功能的NAF為重新執(zhí)行推送功能的NAF時(shí),為該NAF生成新的引導(dǎo)會(huì)話過程參數(shù),并傳輸至該NAF。本發(fā)明中的NAF在由于密鑰即將過期等情況下,能夠獲得新的引導(dǎo)會(huì)話過程參數(shù)如新的密鑰、新的密鑰有效期等,使NAF和UE之間的密鑰能夠周期性的變化;從而實(shí)現(xiàn)了提高NAF和UE之間的通訊安全性、完善推送功能技術(shù)方案的目的。
文檔編號H04Q7/22GK101087260SQ20061008311
公開日2007年12月12日 申請日期2006年6月5日 優(yōu)先權(quán)日2006年6月5日
發(fā)明者何承東, 嚴(yán)軍 申請人:華為技術(shù)有限公司