專利名稱:Ip多媒體子系統(tǒng)中實現(xiàn)安全分叉呼叫會話的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信安全技術(shù),尤指一種IP多媒體子系統(tǒng)(IMS)中,基于 Otway-Rees密鑰協(xié)商協(xié)議實現(xiàn)安全分叉呼叫會話的方法及系統(tǒng)。
背景技術(shù):
在會話發(fā)起協(xié)議(SIP)系統(tǒng)中,分叉呼叫會話(Forking call)是一項非常有用 的服務(wù),這項服務(wù)使得被呼叫方的多個終端可以同時被呼叫,從而提高了呼叫接通的概率。 MS使用SIP協(xié)議作為各種IP多媒體業(yè)務(wù)的控制協(xié)議,在MS媒體安全的技術(shù)規(guī)范中,分叉 呼叫會話已被列為一個非常重要的用戶場景,相應(yīng)的安全需求也被提出。
圖la和圖lb分別為現(xiàn)有分叉呼叫會話的兩種場景示意圖。其中,圖la是被叫方 為同一個用戶注冊了多個終端的情況,即多個終端擁有相同的公共用戶身份。這里以一簡 單的例子來說明分叉呼叫會話的實現(xiàn),如圖la所示,假設(shè)被叫方Bob有一臺座機(UE B3), 一部移動電話(UE B2)和一臺PC(UE B》,用戶Bob將這三個終端都注冊到一個共同的公共 用戶身份。當呼叫方Alice (UEA)呼叫被叫方Bob時,其三個終端被同時呼叫,被叫方Bob 可以通過自由選擇一個終端來應(yīng)答呼叫方Alice的呼叫,并使用該選出的終端與呼叫方之 間的媒體密鑰(如Ka—bl,或Ka—b2,或Ka—b3)進行媒體會話。 圖lb為被叫方為多個用戶的情況,即每個被叫用戶有各自唯一的公共用戶身份。 如圖lb所示,假設(shè)呼叫方(UE A)呼叫某個區(qū)域內(nèi)的任何用戶,比如呼叫SIP :棉D(zhuǎn)omainA. com(包括UE B、UE C和UE D)。這里,呼叫方可能并不知道該呼叫被分叉,且當一個終端已 經(jīng)進行了應(yīng)答,其他終端則不能再對呼叫進行應(yīng)答。這就要求呼叫方與被呼叫方的任一終 端都有唯一的媒體密鑰(如對應(yīng)用戶B、C和D分別為&、&和K3),并且除應(yīng)答終端之外的 所有終端都不能獲悉已經(jīng)在使用的會話密鑰,以此來保證會話內(nèi)容不會從其他終端被監(jiān)聽 或泄露出去。 在IMS的媒體安全的技術(shù)規(guī)范TR33. 828中,TBS被提出作為用來解決IMS媒體流 安全問題的一個候選方案。TBS方案需要一個可信的第三方即密鑰管理服務(wù)器(KMS)。圖 2為現(xiàn)有基于TBS技術(shù)的密鑰管理系統(tǒng)的組成結(jié)構(gòu)示意圖如圖2所示,用戶設(shè)備(UE)通過 Bootstrapping服務(wù)功能(BSF)與KMS通過通用認證機制(GBA)認證過程建立可信通道,代 理呼叫會話控制功能(P-CSCF)及服務(wù)呼叫會話控制功能(S-CSCF)為IMS核心網(wǎng)的網(wǎng)元。 在圖2所示結(jié)構(gòu)中,為了實現(xiàn)分叉呼叫會話,需要進行TBS認證。圖3為現(xiàn)有TBS實現(xiàn)分叉 呼叫會話的流程示意圖,如圖3所示,假設(shè)用戶A和用戶B已分別用GBA方式和KMS建立安 全連接,這里,如果無法使用GBA方式,可以使用其他現(xiàn)有認證方式和KMS建立安全連接。為 了在用戶A和用戶B之間建立安全的媒體通道,包括以下步驟
步驟301 :用戶A向KMS發(fā)出申請媒體密鑰的票據(jù)(Ticket)的票據(jù)請求。
步驟302 :KMS生成用戶A的媒體密鑰和Ticket,并將用戶A的媒體密鑰(KT_A)和 Ticket返回用戶A。 步驟303 步驟304 :用戶A生成一個隨機數(shù)Mod_A,并將隨機數(shù)Mod_A和Ticket
5攜帶在INVITE消息中,并通過IMS網(wǎng)絡(luò)發(fā)送給用戶B。 步驟305 步驟306 :用戶B的終端收到INVITE消息,存儲隨機數(shù)Mod_A,并將 Ticket攜帶在分叉媒體密鑰(KF_AB)請求中發(fā)送給KMS。 步驟307 :KMS收到Ticket,檢查與返回給用戶A的Ticket —致后,產(chǎn)生一個隨機 數(shù)MocLB ;并基于用戶A的媒體密鑰K乙A和隨機數(shù)MocLB生成一個分叉媒體密鑰(KF_AB)。
步驟308 :KMS將得到的KF_AB和隨機數(shù)Mod_B發(fā)送給用戶B的終端。
步驟309 :用戶B的終端將隨機數(shù)Mod_B發(fā)送給用戶A。 步驟310 :用戶A基于隨機數(shù)Mod_B和KT_A生成一個分叉媒體密鑰KF_AB。之后, 用戶A和用戶B之間利用各自生成的相同的KA_AB進行安全的媒體會話。
從圖3所示的流程容易看出,基于TBS技術(shù)可以實現(xiàn)分叉呼叫會話的媒體安全。但 是, 一方面,TBS的解決方案中,需要用戶向KMS請求Ticket,從而增加了額外的信令交互過 程。另一方面,KMS需要為每一個被叫終端生成隨機數(shù)和不同的分叉媒體密鑰,大大加重了 KMS的存儲量和計算量。 在MS的媒體安全的技術(shù)規(guī)范中,除了 TBS技術(shù)外,Otway-Rees密鑰協(xié)商協(xié)議是 與TBS方案并列被提出的、解決IMS媒體流安全問題的另一個候選方案。Otway-Rees密鑰 協(xié)商協(xié)議是一種認證和密碼交換協(xié)議。基于Otway-Rees密鑰協(xié)商協(xié)議的方案可以進行密 鑰協(xié)商,但是,對于分叉呼叫會話,基于Otway-Rees密鑰協(xié)商協(xié)議的方案還沒有給出一個 可行的解決辦法。結(jié)合圖la,假設(shè)呼叫方Alice呼叫被叫方Bob,以下對Otway-Rees密鑰 協(xié)商協(xié)議作簡單介紹如下 首先,呼叫方Alice產(chǎn)生一報文E^(I,A,B,R》,該報文包括一個索引號1、呼叫方 Alice的名字A、被叫方Bob的名字B和一隨機數(shù)Ra,利用呼叫方Alice和Trent共享的密 鑰對該報文加密;呼叫方Alice將索引號、呼叫方Alice的名字和被叫方Bob的名字與呼 叫方Alice加密后的報文一起發(fā)送給被叫方Bob。簡單表示為A — B :1, A, B, EMT(I, A, B, RA)。 接著,被叫方Bob產(chǎn)生一報文EKBT(I, A, B, RB),該報文包括一個新的隨機數(shù)&、索 引號1、呼叫方Alice的名字A和被叫方Bob的名字B,利用被叫方Bob與Trent共享的密 鑰對該報文加密;被叫方Bob將呼叫方Alice的加密報文、索引號1、呼叫方Alice的名字、 被叫方Bob的名字以及被叫方Bob加了密的報文一起發(fā)送給Trent。簡單表示為B — T :1, A, B, EKAT(I, A, B, RA) , Ekbt(I, A, B, Rb)。 然后,Trent產(chǎn)生一隨機會話密鑰K,然后,產(chǎn)生兩個報文。 一個是用Trent與呼 叫方Alice共享的密鑰對呼叫方Alice產(chǎn)生的隨機數(shù)和隨機會話密鑰K加密,另一個是用 Trent與被叫方Bob共享的密鑰對被叫方Bob產(chǎn)生的隨機數(shù)和隨機會話密鑰K加密。Trent 將這兩個加密后的報文與索引號I 一起發(fā)送給被叫方Bob。簡單表示為T — B :Em(K,RA), Erbt(K, Rb)。 最后,被叫方Bob將接收到的、利用Trent與呼叫方Alice共享的密鑰加密的報文 轉(zhuǎn)發(fā)給呼叫方Alice。簡單表示為B — A :EKAT(K, RA)。 現(xiàn)有的非IMS系統(tǒng)中,SIP分叉呼叫會話場景媒體安全的傳統(tǒng)解決技術(shù)大致為呼 叫終端和被叫終端各自提供生成媒體密鑰的密鑰參數(shù),通過交換密鑰參數(shù)最終協(xié)商出媒體 密鑰。比如,對于MIKEY-DH協(xié)議,呼叫終端和被叫終端各提供一半密鑰參數(shù),通過會話描述協(xié)議(SDP) offer/answer模式和Diffie-Hellman密鑰交換(DH)算法來交換密鑰參數(shù)及協(xié) 商密鑰,類似的還有SDES (SDP Description)等。傳統(tǒng)非MS系統(tǒng)中的SIP分叉呼叫會話技 術(shù)的缺點在于,在分叉呼叫會話場景中,呼叫終端必須和所有分叉的被叫終端獨立的協(xié)商 密鑰,這種動態(tài)的密鑰協(xié)商對于呼叫終端的處理量和計算量要求都非常高;而且MIKEY-DH 協(xié)議本身也由于計算量較大而存在被DOS攻擊的威脅,并且可能需要公鑰基礎(chǔ)設(shè)施(PKI) 的支持。為了盡量減小處理量,通常是加入延時機制,即所有的被呼叫終端都不發(fā)送攜帶密 鑰參數(shù)的回復給呼叫終端,直到某個終端應(yīng)答,再由該應(yīng)答的終端發(fā)送一個密鑰參數(shù)來和 呼叫終端協(xié)商媒體密鑰。但是,這種方法沒有給出新的密鑰協(xié)商機制,只是減少了對呼叫終 端處理量的要求,而且,由于應(yīng)答時密鑰協(xié)商尚未結(jié)束,此時的媒體流不能受到加密保護, 這樣又引入了應(yīng)答后讓呼叫終端和應(yīng)答終端協(xié)商媒體密鑰一個新的延時問題。因此,這種 加入延時機制的方式一方面不能實現(xiàn)密鑰的協(xié)商,另一方面也沒有真正解決處理量大和計 算量要求高等問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實現(xiàn)安全分叉呼叫會話的方法,能夠 提供密鑰協(xié)商機制,使其能夠在MS中實現(xiàn)安全的分叉呼叫會話。 本發(fā)明的另一 目的在于提供一種實現(xiàn)安全分叉呼叫會話的系統(tǒng),能夠提供密鑰協(xié)
商機制,使其能夠在IMS中實現(xiàn)安全的分叉呼叫會話。 為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的 —種實現(xiàn)安全分叉呼叫會話的方法,呼叫方和各被叫方分別與密鑰管理服務(wù)器 KMS進行認證,并獲取各自與KMS的共享密鑰,該方法還包括 呼叫方產(chǎn)生隨機數(shù),并通過IP多媒體子系統(tǒng)IMS網(wǎng)絡(luò)呼叫各被叫方;各被叫方分 別產(chǎn)生隨機數(shù),并從KMS獲取媒體根密鑰; 各被叫方分別根據(jù)獲得的媒體根密鑰和產(chǎn)生的隨機數(shù),生成各自與呼叫方的媒體 密鑰;被叫方中應(yīng)答當前呼叫的被叫應(yīng)答方通過IMS網(wǎng)絡(luò),將媒體根密鑰和產(chǎn)生的隨機數(shù) 發(fā)送給呼叫方; 呼叫方根據(jù)獲得的媒體根密鑰和被叫應(yīng)答方產(chǎn)生的隨機數(shù),生成與被叫應(yīng)答方的 相同的媒體密鑰; 呼叫方和被叫應(yīng)答方利用產(chǎn)生的相同的媒體密鑰進行安全的媒體會話。 該方法還包括在所述被叫方中被叫應(yīng)答后,所述IMS網(wǎng)絡(luò)拒絕其他被叫方的應(yīng)答。 所述呼叫方呼叫各被叫方具體為所述呼叫方通過IMS網(wǎng)絡(luò),采用呼叫請求 INVITE消息呼叫所有被叫方;所述INVITE消息至少攜帶有呼叫方的用戶標識ID、被叫方的 共同用戶ID,以及呼叫方與KMS的共享密鑰加密得到的報文E,叫方; 所述報文E,w包括呼叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的共同用戶 ID。 所述各被叫方產(chǎn)生隨機數(shù),并從KMS獲取媒體根密鑰具體包括 所述各被叫方接收到所述INVITE消息后,分別產(chǎn)生各自的隨機數(shù),并分別向KMS
發(fā)起各自的媒體根密鑰請求,所述媒體根密鑰請求至少攜帶呼叫方的用戶ID、被叫方的用戶ID,接收到的報文E^^方,以及被叫方與KMS的共享密鑰加密得到的各被叫方的報文 Ett ra ;該報文E,w包括被叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的用戶ID ;
所述KMS分別與呼叫方的共享密鑰和與被叫方的共享密鑰,解密報文E,彷和各 被叫方的報文E,w,將解密得到的呼叫方的用戶ID,被叫方的共同用戶ID及被叫方的用 戶ID,分別與媒體根密鑰請求中攜帶的明文進行比較,在驗證呼叫方的用戶ID—致,以及 被叫方的用戶ID與被叫方的共同用戶ID —致后生成媒體根密鑰; 所述KMS分別針對各被叫方,利用與呼叫方的共享密鑰加密呼叫方產(chǎn)生的隨機 數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰,利用與被叫方的共享密鑰加密媒體根密鑰,加密 后的兩個報文發(fā)給該被叫方;所述各被叫方利用自身與KMS的共享密鑰對接收到的報文進 行解密,獲得媒體根密鑰。 所述各被叫方生成各自與呼叫方的媒體密鑰,具體包括 所述各被叫方利用獲得的媒體根密鑰與該被叫方產(chǎn)生的隨機數(shù),采用預(yù)先設(shè)置的 媒體密鑰生成函數(shù)KDF,生成各自與呼叫方的媒體密鑰。 所述被叫方中應(yīng)答當前呼叫的被叫應(yīng)答方通過IMS網(wǎng)絡(luò),將媒體根密鑰和產(chǎn)生的 隨機數(shù)發(fā)送給呼叫方,具體包括 所述被叫應(yīng)答方通過IMS向呼叫方發(fā)送應(yīng)答響應(yīng)消息,同時,將從KMS獲得,使用 與呼叫方的共享密鑰加密的呼叫方產(chǎn)生的隨機數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰所 得到的報文轉(zhuǎn)發(fā)給呼叫方。 所述呼叫方生成與被叫應(yīng)答方的媒體密鑰具體包括 所述呼叫方利用與KMS的共享密鑰解密收到的、利用與呼叫方的共享密鑰加密呼 叫方產(chǎn)生的隨機數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰所得到的報文,獲得被叫方產(chǎn)生 的隨機數(shù)和媒體根密鑰; 利用解密得到的媒體根密鑰和該被叫應(yīng)答方產(chǎn)生的隨機數(shù),采用預(yù)先設(shè)置的KDF 生成與該被叫應(yīng)答方的媒體密鑰。 所述被叫方為一個用戶的多個終端,該用戶的各終端具有一個相同的用戶ID ;
或者,所述被叫方是多個用戶,且每個用戶只有一個用戶終端,各用戶具有一個能 共同映射到的共同用戶ID。 所述呼叫方和各被叫方分別與KMS進行認證的方法為
通過GBA方式與所述KMS建立安全信任關(guān)系; 通過通話雙方與KMS的信任關(guān)系的建立,通話雙方之間建立共享密鑰。 —種實現(xiàn)安全分叉呼叫會話的系統(tǒng),該系統(tǒng)包括密鑰管理服務(wù)器KMS、呼叫方和被
叫方,其中, KMS,用于對呼叫方和被叫方進行認證并生成各自的共享密鑰;在收到來自被叫方 的媒體根密鑰請求時,對被叫方進行驗證合法后生成媒體根密鑰;將生成的媒體根密鑰發(fā) 送給被叫方; 呼叫方,用于通過KMS的認證并獲得共享密鑰,通過IMS網(wǎng)絡(luò)向被叫方發(fā)起呼叫, 接收通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答 方的相同的媒體密鑰;與被叫方中的被叫應(yīng)答方利用產(chǎn)生的媒體密鑰進行安全的媒體會 話;
被叫方,用于通過KMS的認證并獲得共享密鑰,收到呼叫方的呼叫后,向KMS發(fā)起 媒體根密鑰請求,接收來自KMS的媒體根密鑰并采用設(shè)置有的KDF生成媒體密鑰;被叫方中 的被叫應(yīng)答方通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)應(yīng)答響應(yīng),與呼叫方利用產(chǎn)生的媒體密鑰進行安全的媒體 會話,其他被叫方接收來自IMS網(wǎng)絡(luò)的終止應(yīng)答消息。 所述呼叫方至少包括第一認證單元、第一隨機數(shù)產(chǎn)生單元、第一媒體密鑰生成單 元和呼叫單元,其中, 第一認證單元,用于通過KMS的認證并獲得共享密鑰; 第一隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),并通知呼叫單元開始呼叫; 第一媒體密鑰生成單元,用于接收通過MS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響
應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答方的媒體密鑰; 呼叫單元,用于接收來自第一隨機數(shù)產(chǎn)生單元的通知,通過MS網(wǎng)絡(luò)向被叫方發(fā) 起呼叫,并將呼叫方產(chǎn)生的隨機數(shù)發(fā)送給各被叫方;利用第一媒體密鑰生成單元產(chǎn)生的相 同的媒體密鑰,與被叫方中的被叫應(yīng)答方進行安全的媒體會話。 所述被叫方至少包括第二認證單元、第二隨機數(shù)生成單元、根密鑰獲取單元、第二 媒體密鑰生成單元和應(yīng)答單元,其中, 第二認證單元,用于通過KMS的認證并獲得共享密鑰; 第二隨機數(shù)產(chǎn)生單元,用于接收來自呼叫方的呼叫,產(chǎn)生隨機數(shù),并向根密鑰獲取 單元發(fā)送通知; 根密鑰獲取單元,用于接收來自第二隨機數(shù)產(chǎn)生單元的通知,向KMS發(fā)起媒體根 密鑰請求;接收來自KMS的媒體根密鑰并發(fā)送給第二媒體密鑰生成單元;
第二媒體密鑰生成單元,用于接收來自根密鑰獲取單元的媒體根密鑰,采用設(shè)置 有的KDF生成媒體密鑰,并通知應(yīng)答單元; 應(yīng)答單元,用于通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)被叫方中的被叫應(yīng)答方的應(yīng)答響應(yīng);利用第二 媒體密鑰生成單元產(chǎn)生的媒體密鑰,與呼叫方進行安全的媒體會話;其他被叫方的應(yīng)答單 元接收來自頂S網(wǎng)絡(luò)的終止應(yīng)答消息。 所述被叫方為一個用戶的多個終端,該用戶的各終端具有一個相同的用戶ID ;
或者,所述被叫方是多個用戶,且每個用戶只有一個用戶終端,各用戶具有一個能 共同映射到的共同用戶ID。 從上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明基于Otway Rees密鑰協(xié)商協(xié)議, 在KMS的幫助下生成用于產(chǎn)生呼叫方與被叫方間的媒體密鑰的媒體根密鑰K,然后基于各 被叫方生成的隨機數(shù)和KMS生成的媒體根密鑰K,利用媒體密鑰生成函數(shù)(KDF),每個被叫 方和呼叫方都可以生成媒體密鑰。雖然對于所有被叫方,用于生成媒體密鑰的根密鑰是相 同的,但由于各被叫方的隨機數(shù)由各被叫方自身產(chǎn)生,其他被叫方是無法獲悉的,所以基于 該隨機數(shù)生成的媒體密鑰對于各被叫方來講,是唯一而不能被其他終端獲悉的,從而實現(xiàn) 了分叉呼叫會話的媒體安全。本發(fā)明提出了基于Otway-Rees協(xié)議的一個密鑰協(xié)商機制,提 供了密鑰協(xié)商機制,使其在MS中實現(xiàn)了安全的分叉呼叫會話。本發(fā)明方案邏輯比較簡單, 減輕了呼叫方的計算處理壓力,跟KMS的信令交互也比較少,緩解了 KMS的存儲計算要求, 很好的提供了 MS保證分叉呼叫會話的安全保護。 具體來講,本發(fā)明方案與傳統(tǒng)非IMS系統(tǒng)中的SIP分叉呼叫會話技術(shù)相比,呼叫方
9只需要計算一次與被叫應(yīng)答方的媒體密鑰,降低了對呼叫方的計算處理能力要求,也不存 在額外的時延問題。本發(fā)明方案與TBS方案相比,在TBS方案中,KMS需要為所有的被叫方 產(chǎn)生一個隨機數(shù),并為被叫方生成唯一的媒體密鑰,而本發(fā)明中,無論是被叫方為一個用戶 的多個終端,還是為多個用戶的場景,KMS都只需為所有被叫方產(chǎn)生一個相同的根密鑰,這 樣,大大減輕了 KMS對存儲量和計算量的要求。此外,本發(fā)明與TBS方案相比,無需與KMS 事先進行Ticket請求和應(yīng)答,從而減少了額外的信令交互過程。
圖la為現(xiàn)有分叉呼叫會話的一種場景的示意圖; 圖lb為現(xiàn)有分叉呼叫會話的另一種場景的示意圖; 圖2為現(xiàn)有基于TBS技術(shù)的密鑰管理系統(tǒng)的組成結(jié)構(gòu)示意圖; 圖3為現(xiàn)有TBS實現(xiàn)分叉呼叫會話的流程示意圖; 圖4為本發(fā)明實現(xiàn)安全分叉呼叫會話的方法的流程圖; 圖5是本發(fā)明實現(xiàn)安全分叉呼叫會話的系統(tǒng)的組成結(jié)構(gòu)示意圖; 圖6是本發(fā)明實現(xiàn)安全分叉呼叫會話的第一實施例的流程示意圖; 圖7是本發(fā)明實現(xiàn)安全分叉呼叫會話的第二實施例的流程示意圖。
具體實施例方式
本文中的KMS并不特指某種設(shè)備,而是對用于實現(xiàn)密鑰的管理和分發(fā)的可信任的 第三方的統(tǒng)稱。 圖4為本發(fā)明實現(xiàn)安全分叉呼叫會話的方法的流程圖,如圖4所示,本發(fā)明方法包 括以下步驟 步驟400 :呼叫方和各被叫方分別與KMS進行認證并獲取各自與KMS的共享密鑰。
通話雙方通過GBA方式或其他方式,與KMS建立安全信任關(guān)系;在通過通話雙方與 KMS的信任關(guān)系的建立,通話雙方之間也建立了彼此信任的關(guān)系,即共享密鑰。本步驟的具 體實現(xiàn)屬于本領(lǐng)域技術(shù)人員慣用技術(shù)手段,這里不再贅述。呼叫方與KMS之間產(chǎn)生一個共 享密鑰,各被叫方與KMS之間產(chǎn)生一個共享密鑰。 步驟401 :呼叫方產(chǎn)生隨機數(shù),并通過IMS網(wǎng)絡(luò)呼叫各被叫方。 如果被叫方是一個用戶具有多個終端的情況,該用戶的各終端具有一個相同的用
戶標識(ID)即被叫方的共同用戶ID;如果被叫方是多個用戶(且每個用戶只有一個用戶
終端),各用戶具有一個都能共同映射到的組標識即被叫方的共同用戶ID。 呼叫方通過IMS網(wǎng)絡(luò),采用INVITE消息呼叫所有被叫方。在INVITE消息中至少
攜帶有呼叫方的用戶ID、被叫方的共同用戶ID以及利用呼叫方與KMS的共享密鑰加密的報
文E,w,報文E,w包括一個呼叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的共同用戶ID。 步驟402 :各被叫方產(chǎn)生隨機數(shù),并從KMS獲取媒體根密鑰。 本步驟具體包括各被叫方收到INVITE消息后,各被叫方分別產(chǎn)生各自的隨機 數(shù),并分別向KMS發(fā)起各自的媒體根密鑰請求,媒體根密鑰請求至少攜帶呼叫方的用戶ID、 被叫方的用戶ID,接收到的報文E呼啦,以及利用被叫方與KMS的共享密鑰加密的各被叫方的報文E,力,報文E,w包括被叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的用戶ID ;
KMS分別利用與呼叫方的共享密鑰和與被叫方的共享密鑰,解密報文E,w和各被 叫方的報文E ,將解密得到的呼叫方的用戶ID,被叫方的共同用戶ID和被叫方的用戶 ID,分別與媒體根密鑰請求中攜帶的明文進行比較,在驗證呼叫方的用戶ID —致,以及驗 證被叫方的用戶ID與被叫方的共同用戶ID—致或相符即合法后生成媒體根密鑰;
KMS分別針對各被叫方,利用與呼叫方的共享密鑰加密呼叫方產(chǎn)生的隨機數(shù)、該被 叫方產(chǎn)生的隨機數(shù)和媒體根密鑰,利用與被叫方的共享密鑰加密媒體根密鑰,之后加密后 的兩個報文發(fā)給該被叫方,而各被叫方利用自身與KMS的共享密鑰解密即可獲得媒體根密 鑰。 步驟403 :各被叫方分別根據(jù)獲得的媒體根密鑰和產(chǎn)生的隨機數(shù),生成各自與呼 叫方的媒體密鑰。 各被叫方利用媒體根密鑰和該被叫方產(chǎn)生的隨機數(shù),采用預(yù)先設(shè)置的KDF,生成各 自與呼叫方的媒體密鑰。 步驟404 :被叫應(yīng)答方將媒體根密鑰和產(chǎn)生的隨機數(shù),通過MS網(wǎng)絡(luò)發(fā)送給呼叫 方,同時IMS網(wǎng)絡(luò)拒絕其他被叫方的應(yīng)答。 被叫方中響應(yīng)當前呼叫方的呼叫的被叫應(yīng)答方通過IMS向呼叫方發(fā)送應(yīng)答響應(yīng) 消息,同時,將從KMS獲得的使用與呼叫方的共享密鑰加密的呼叫方產(chǎn)生的隨機數(shù)、該被叫 方產(chǎn)生的隨機數(shù)和媒體根密鑰所得到的報文轉(zhuǎn)發(fā)給呼叫方; IMS網(wǎng)絡(luò)在接收到被叫應(yīng)答方的應(yīng)答響應(yīng)后,向其他被叫方發(fā)出終止應(yīng)答消息,如 CANCEL消息,這樣,其他被叫方就不能再響應(yīng)當前呼叫方的呼叫。 步驟405 :呼叫方根據(jù)獲得的媒體根密鑰和被叫應(yīng)答方產(chǎn)生的隨機數(shù),生成與被 叫應(yīng)答方的相同的媒體密鑰。 呼叫方利用與KMS的共享密鑰解密收到的、利用與呼叫方的共享密鑰加密呼叫方 產(chǎn)生的隨機數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰所得到的報文,獲得被叫方產(chǎn)生的隨 機數(shù)和媒體根密鑰,再利用解密得到的媒體根密鑰和該被叫應(yīng)答方產(chǎn)生的隨機數(shù),采用預(yù) 先設(shè)置的KDF生成與該被叫應(yīng)答方的媒體密鑰。需要說明的是,呼叫方與各被叫方中預(yù)先 設(shè)置的KDF應(yīng)該是相同的。 步驟406 :呼叫方和被叫應(yīng)答方利用產(chǎn)生的相同的媒體密鑰進行安全的媒體會 話。 呼叫方可以與被叫應(yīng)答方利用生成的媒體密鑰對媒體會話進行加密,實現(xiàn)安全的 分叉呼叫會話,而且該媒體密鑰只有被叫方中的被叫應(yīng)答方知道,其它非應(yīng)答的被叫方是 不能獲悉的。 針對圖4所示的本發(fā)明方法,還提供一種實現(xiàn)安全分叉呼叫會話的系統(tǒng),圖5是本 發(fā)明實現(xiàn)安全分叉呼叫會話的系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖5所示,本發(fā)明系統(tǒng)包括KMS、 呼叫方和被叫方,在呼叫方和被叫方中設(shè)置有相同的KDF,其中, KMS,用于對呼叫方和被叫方進行認證并生成各自的共享密鑰;在收到來自被叫方 的媒體根密鑰請求時,對被叫方進行驗證合法后生成媒體根密鑰;將生成的媒體根密鑰發(fā) 送給被叫方; 呼叫方,用于通過KMS的認證并獲得共享密鑰,通過IMS網(wǎng)絡(luò)向被叫方發(fā)起呼叫,接收通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答 方的相同的媒體密鑰;與被叫方中的被叫應(yīng)答方利用產(chǎn)生的媒體密鑰進行安全的媒體會 話; 被叫方,用于通過KMS的認證并獲得共享密鑰,收到呼叫方的呼叫后,向KMS發(fā)起 媒體根密鑰請求,接收來自KMS的媒體根密鑰并采用設(shè)置有的KDF生成媒體密鑰;被叫方中 的被叫應(yīng)答方通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)應(yīng)答響應(yīng),與呼叫方利用產(chǎn)生的媒體密鑰進行安全的媒體 會話,其他被叫方接收來自IMS網(wǎng)絡(luò)的終止應(yīng)答消息。 其中,被叫方可以是一個用戶的多個終端,該用戶的各終端具有一個相同的用戶 ID即被叫方的共同用戶ID ;也可以是多個用戶(且每個用戶只有一個用戶終端),各用戶 具有一個都能共同映射到的組標識即被叫方的共同用戶ID。 呼叫方至少包括第一認證單元、第一隨機數(shù)產(chǎn)生單元、第一媒體密鑰生成單元和 呼叫單元,其中, 第一認證單元,用于通過KMS的認證并獲得共享密鑰; 第一隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),并通知呼叫單元開始呼叫; 第一媒體密鑰生成單元,用于接收通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響
應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答方的媒體密鑰; 呼叫單元,用于接收來自第一隨機數(shù)產(chǎn)生單元的通知,通過MS網(wǎng)絡(luò)向被叫方發(fā) 起呼叫,并將呼叫方產(chǎn)生的隨機數(shù)發(fā)送給各被叫方;利用第一媒體密鑰生成單元產(chǎn)生相同 的的媒體密鑰,與被叫方中的被叫應(yīng)答方進行安全的媒體會話。 被叫方至少包括第二認證單元、第二隨機數(shù)生成單元、根密鑰獲取單元、第二媒體 密鑰生成單元和應(yīng)答單元,其中, 第二認證單元,用于通過KMS的認證并獲得共享密鑰; 第二隨機數(shù)產(chǎn)生單元,用于接收來自呼叫方的呼叫,產(chǎn)生隨機數(shù),并向根密鑰獲取 單元發(fā)送通知; 根密鑰獲取單元,用于接收來自第二隨機數(shù)產(chǎn)生單元的通知,向KMS發(fā)起媒體根 密鑰請求;接收來自KMS的媒體根密鑰并發(fā)送給第二媒體密鑰生成單元;
第二媒體密鑰生成單元,用于接收來自根密鑰獲取單元的媒體根密鑰,采用設(shè)置 有的KDF生成媒體密鑰,并通知應(yīng)答單元; 應(yīng)答單元,用于通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)被叫方中的被叫應(yīng)答方的應(yīng)答響應(yīng);利用第二 媒體密鑰生成單元產(chǎn)生的媒體密鑰,與呼叫方進行安全的媒體會話;其他被叫方的應(yīng)答單 元接收來自頂S網(wǎng)絡(luò)的終止應(yīng)答消息。 下面結(jié)合實施例對本發(fā)明方法進行詳細描述。假設(shè)每個用戶都跟KMS建立信任關(guān) 系,通過密鑰協(xié)商協(xié)議,每個用戶都和KMS產(chǎn)生有共享密鑰。其中如果GBA無法使用,用戶 可以使用其它認證方式和KMS獲得共享密鑰。 對應(yīng)于圖la所示的應(yīng)用場景,圖6是本發(fā)明實現(xiàn)安全分叉呼叫會話的第一實施 例的流程示意圖,圖6顯示了呼叫方為用戶A,其用戶標識為ID-A,被叫方為用戶B,且用戶 B有多個注冊終端的分叉呼叫會話的密鑰協(xié)商過程,假設(shè)終端B 1為應(yīng)答終端,其他終端用 Bi表示,被叫方的共同用戶標識為ID-B。在用戶A和用戶B的各終端中均設(shè)置有相同的 KDF。具體實現(xiàn)步驟包括
步驟600a :用戶A和KMS進行認證并產(chǎn)生共享密鑰Ka。 步驟600b :用戶B的各終端和KMS進行認證并產(chǎn)生共享密鑰Kb。 步驟601a:用戶A產(chǎn)生隨機數(shù)Ra。 步驟601b :用戶A通過IMS網(wǎng)絡(luò)向用戶B發(fā)出呼叫請求(INVITE) , INVITE中攜帶 有以下參數(shù)ID-A, ID-B和Ea(Ra, ID_A, ID_B),其中Ea(Ra, ID_A, ID_B)是利用共享密鑰 Ka加密后得到的報文,其中包括Ra、 ID-A和ID_B。 步驟602 :IMS網(wǎng)絡(luò)將用戶A的呼叫請求繼續(xù)發(fā)給用戶B的各終端即Bl和Bi。
步驟603a :用戶B的各終端收到用戶A的呼叫請求后,產(chǎn)生隨機數(shù),也就是說,終 端Bl產(chǎn)生隨機數(shù)Rbl,終端Bi產(chǎn)生隨機數(shù)Rbi。 步驟603b :用戶B的各終端向KMS發(fā)出獲取媒體根密鑰請求,即終端Bl發(fā)送的請 求中包括ID-A, ID-B, Ea(Ra, ID_A, ID-B)和Eb(Rbl, ID_A, ID-B),終端Bi發(fā)送的請求中包 括ID-A, ID-B, Ea(Ra, ID_A, ID-B)和Eb(Rbi, ID_A, ID-B)。 其中,Eb(Rbl, ID-A, ID-B)是終端Bl利用共享密鑰Kb加密后得到的報文,其中包 括Rbl、 ID-A和ID-B, Eb (Rbi, ID_A, ID-B)是終端Bi利用共享密鑰Kb加密后得到的報文, 其中包括Rbi 、 ID-A和ID-B。 步驟604 :KMS用共享密鑰Ka解密收到的Ea(Ra,ID-A,ID-B),用共享密鑰Kb解密 接收到的Eb(Rbl, ID-A, ID-B)以及各Eb(Rbi, ID_A, ID_B) , KMS將解密的結(jié)果和接收到的 ID-A和ID-B的明文進行比較,如果驗證通過即二者一致,KMS生成媒體根密鑰K。
步驟605 :KMS利用共享密鑰Ka加密隨機數(shù)Ra, Rbl和根密鑰K,得到報文Ea(Ra, Rbl,K),利用共享密鑰Kb加密根密鑰K得到報文Eb(K);然后將Ea(Ra,Rbl,K)和Eb (K)兩 個報文發(fā)給用戶B的終端B1 ; KMS利用共享密鑰Ka加密隨機數(shù)Ra,Rbi和根密鑰K,得到報文Ea(Ra,Rbi,K),利 用共享密鑰Kb加密根密鑰K得到報文Eb (K),將Ea (Ra, Rbi , K)和Eb (K)兩個報文發(fā)給用 戶B的其他各終端Bi。 步驟606 :用戶B的終端Bl獲得Eb (K),用共享密鑰Kb解密獲得媒體根密鑰K, 并根據(jù)自身生成的隨機數(shù)Rbl,采用設(shè)置的KDF生成與用戶A的媒體密鑰Ka-bl = KDF(K, Rbl);用戶B的終端Bi獲得Eb (K),用共享密鑰Kb解密獲得根密鑰K,并根據(jù)自身生成的隨 機數(shù)Rbi,采用設(shè)置的KDF生成與用戶A的媒體密鑰Ka-bi = KDF(K, Rbi)。
步驟607 :響應(yīng)呼叫的用戶B的終端Bl通過IMS網(wǎng)絡(luò)向用戶A發(fā)送OK響應(yīng),并將 報文Ea(Ra, Rbl, K)隨該信令一起發(fā)給用戶A。 步驟608a :MS網(wǎng)絡(luò)將終端Bl發(fā)出的OK響應(yīng)轉(zhuǎn)發(fā)給用戶A。 步驟608b :IMS網(wǎng)絡(luò)向用戶B的其他終端UE Bi發(fā)出的取消(CANCEL)信息,終止
用戶B的其他終端Bi繼續(xù)應(yīng)答。 步驟609 :用戶A收到OK響應(yīng),用共享密鑰Ka解密報文Ea(Ra, Rbl, K),獲得Ra, Rbl和媒體根密鑰K,采用設(shè)置有的KDF生成與終端Bl的媒體密鑰Ka-bl = KDF(K, Rbl)。 該媒體密鑰只有用戶B的響應(yīng)終端Bl知道,用戶B的其它終端Bi是無法獲悉的。
通過圖6所示的步驟,用戶A可以與用戶B利用Ka-bl加密,實現(xiàn)安全的媒體會話。
對應(yīng)于圖lb所示的應(yīng)用場景,圖7是本發(fā)明實現(xiàn)安全分叉呼叫會話的第二實施例 的流程示意圖,圖7顯示了被叫方為多個用戶(每個用戶只有一個終端)的分叉呼叫會話的密鑰協(xié)商過程,假設(shè)呼叫方為用戶A,其用戶標識為ID-A,被叫方為用戶B(其用戶標識為 ID-B)和用戶C(其用戶標識為ID-C),用戶B為應(yīng)答用戶,其他用戶用用戶C表示,ID-G為 用戶B和用戶C都能映射到的組用戶名即被叫方的共同用戶標識為ID-G。在用戶A、用戶 B和用戶C中均設(shè)置有相同的KDF。具體實現(xiàn)步驟包括
步驟700a :用戶A和KMS進行認證并產(chǎn)生共享密鑰Ka。 步驟700b、步驟700c :用戶B,用戶C分別和KMS進行認證并產(chǎn)生共享密鑰Kb, Kc。
步驟701a:用戶A產(chǎn)生隨機數(shù)Ra。 步驟701b :用戶A通過IMS網(wǎng)絡(luò)向用戶B和用戶C發(fā)出呼叫請求(INVITE) , INVITE
中攜帶有以下參數(shù)ID-A, ID-G和Ea(Ra, ID_A, ID-G),其中Ea(Ra, ID_A, ID-G)是利用共享
密鑰Ka加密后得到的報文,其中包括Ra、 ID_A和ID_G。 步驟702 :IMS網(wǎng)絡(luò)將用戶A的呼叫請求繼續(xù)發(fā)給用戶B和用戶C。 步驟703a :收到用戶A的呼叫請求后,用戶B產(chǎn)生隨機數(shù)Rb,用戶C產(chǎn)生隨機數(shù)Rc。 步驟703b :用戶B、用戶C分別向KMS發(fā)出獲取媒體根密鑰請求,即用戶B發(fā)送的 請求中包括ID-A, ID-B, Ea(Ra, ID_A, ID-G)和Eb(Rb, ID_A, ID-B),用戶C發(fā)送的請求中包 括ID-A, ID-C, Ea(Ra, ID_A, ID-G)和Ec(Rc, ID_A, ID-C)。 其中,Eb(Rb, ID-A, ID-B)是用戶B利用共享密鑰Kb加密后得到的報文,其中包括 Rb、ID-A和ID-B,Ec(Rc,ID-A,ID-C)是用戶C利用共享密鑰Kc加密后得到的報文,其中包 括Rc、 ID-A禾P ID-C。 步驟704 :KMS通過明文ID_A, ID_B, ID-C分別找到Ka, Kb和Kc,然后用Ka, Kb和 Kc分別解密Ea(Ra, ID_A, ID-G) , Eb(Rb, ID_A, ID-B)以及Ec(Rc, ID_A, ID-C),將解密的結(jié) 果和ID-A, ID-G的明文進行比較,檢測ID-B, ID-C是否符合ID_G的映射,如果驗證通過, KMS生成媒體根密鑰K。 步驟705 :KMS利用共享密鑰Ka加密隨機數(shù)Ra, Rb和根密鑰K,得到報文Ea(Ra, Rb, K),利用共享密鑰Kb加密根密鑰K得到報文Eb (K);然后將Ea (Ra, Rb, K)和Eb (K)兩個 報文發(fā)給用戶B ; KMS利用共享密鑰Ka加密隨機數(shù)Ra,Rc和根密鑰K,得到報文Ea(Ra,Rc,K),利用 共享密鑰Kc加密根密鑰K得到報文Ec (K),將Ea (Ra, Rc, K)和Ec (K)兩個報文發(fā)給用戶C。
步驟706 :用戶B獲得Eb (K),用共享密鑰Kb解密獲得媒體根密鑰K,并根據(jù)自身 生成的隨機數(shù)Rb,采用設(shè)置的KDF生成與用戶A的媒體密鑰Ka-b = KDF(K, Rb);用戶C獲 得Ec(K),用共享密鑰Kc解密獲得根密鑰K,并根據(jù)自身生成的隨機數(shù)Rc,采用設(shè)置的KDF 生成與用戶A的媒體密鑰Ka-c = KDF(K, Rc)。 步驟707 :響應(yīng)呼叫的用戶B通過IMS網(wǎng)絡(luò)向用戶A發(fā)送OK響應(yīng),并將報文Ea (Ra, Rb,K)隨該信令一起發(fā)給用戶A。 步驟708a :IMS網(wǎng)絡(luò)將用戶B發(fā)出的OK響應(yīng)轉(zhuǎn)發(fā)給用戶A。
步驟708b :MS網(wǎng)絡(luò)向用戶C發(fā)出的取消(CANCEL)信息,終止用戶C繼續(xù)應(yīng)答。
步驟709 :用戶A收到OK響應(yīng),用共享密鑰Ka解密報文Ea (Ra, Rb, K),獲得Ra, Rb 和媒體根密鑰K,采用設(shè)置有的KDF生成與用戶B的媒體密鑰Ka-b = KDF(K, Rb)。該媒體 密鑰只有用戶B知道,其他用戶C是無法獲悉的。
通過圖7所示的步驟,用戶A可以與用戶B利用Ka-b加密,實現(xiàn)安全的媒體會話。
本發(fā)明方案邏輯比較簡單,減輕了呼叫方的計算處理壓力,跟KMS的信令交互也 比較少,緩解了KMS的存儲計算要求,很好的提供了 MS保證分叉呼叫會話的安全保護。具 體來講,本發(fā)明方案與傳統(tǒng)非IMS系統(tǒng)中的SIP分叉呼叫會話技術(shù)相比,呼叫方只需要計 算一次與被叫應(yīng)答方的媒體密鑰,降低了對呼叫方的計算處理能力要求,也不存在額外的 時延問題。本發(fā)明方案與TBS方案相比,在TBS方案中,KMS需要為所有的被叫方產(chǎn)生一個 隨機數(shù),并為被叫方生成唯一的媒體密鑰,而本發(fā)明中,無論是被叫方為一個用戶的多個終 端,還是為多個用戶的場景,KMS都只需為所有被叫方產(chǎn)生一個相同的根密鑰,這樣,大大減 輕了 KMS對存儲量和計算量的要求。此外,本發(fā)明與TBS方案相比,無需與KMS事先進行 Ticket請求和應(yīng)答,從而減少了額外的信令交互過程。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護 范圍之內(nèi)。
權(quán)利要求
一種實現(xiàn)安全分叉呼叫會話的方法,其特征在于,呼叫方和各被叫方分別與密鑰管理服務(wù)器KMS進行認證,并獲取各自與KMS的共享密鑰,該方法還包括呼叫方產(chǎn)生隨機數(shù),并通過IP多媒體子系統(tǒng)IMS網(wǎng)絡(luò)呼叫各被叫方;各被叫方分別產(chǎn)生隨機數(shù),并從KMS獲取媒體根密鑰;各被叫方分別根據(jù)獲得的媒體根密鑰和產(chǎn)生的隨機數(shù),生成各自與呼叫方的媒體密鑰;被叫方中應(yīng)答當前呼叫的被叫應(yīng)答方通過IMS網(wǎng)絡(luò),將媒體根密鑰和產(chǎn)生的隨機數(shù)發(fā)送給呼叫方;呼叫方根據(jù)獲得的媒體根密鑰和被叫應(yīng)答方產(chǎn)生的隨機數(shù),生成與被叫應(yīng)答方的相同的媒體密鑰;呼叫方和被叫應(yīng)答方利用產(chǎn)生的相同的媒體密鑰進行安全的媒體會話。
2. 根據(jù)權(quán)利要求l所述的方法,其特征在于,該方法還包括在所述被叫方中被叫應(yīng)答 后,所述IMS網(wǎng)絡(luò)拒絕其他被叫方的應(yīng)答。
3. 根據(jù)權(quán)利要求要求l或2所述的方法,其特征在于,所述呼叫方呼叫各被叫方具體 為所述呼叫方通過MS網(wǎng)絡(luò),采用呼叫請求INVITE消息呼叫所有被叫方;所述INVITE消 息至少攜帶有呼叫方的用戶標識ID、被叫方的共同用戶ID,以及呼叫方與KMS的共享密鑰 加密得到的報文E,w;所述報文E,w包括呼叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的共同用戶ID。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述各被叫方產(chǎn)生隨機數(shù),并從KMS獲取 媒體根密鑰具體包括所述各被叫方接收到所述INVITE消息后,分別產(chǎn)生各自的隨機數(shù),并分別向KMS發(fā) 起各自的媒體根密鑰請求,所述媒體根密鑰請求至少攜帶呼叫方的用戶ID、被叫方的用戶 ID,接收到的報文E,啦,以及被叫方與KMS的共享密鑰加密得到的各被叫方的報文E^叫方; 該報文E,w包括被叫方產(chǎn)生的隨機數(shù)、呼叫方的用戶ID和被叫方的用戶ID;所述KMS分別與呼叫方的共享密鑰和與被叫方的共享密鑰,解密報文E,w和各被叫方 的報文E,w,將解密得到的呼叫方的用戶ID,被叫方的共同用戶ID及被叫方的用戶ID,分 別與媒體根密鑰請求中攜帶的明文進行比較,在驗證呼叫方的用戶ID —致,以及被叫方的 用戶ID與被叫方的共同用戶ID —致后生成媒體根密鑰;所述KMS分別針對各被叫方,利用與呼叫方的共享密鑰加密呼叫方產(chǎn)生的隨機數(shù)、該 被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰,利用與被叫方的共享密鑰加密媒體根密鑰,加密后的 兩個報文發(fā)給該被叫方;所述各被叫方利用自身與KMS的共享密鑰對接收到的報文進行解 密,獲得媒體根密鑰。
5. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述各被叫方生成各自與呼叫方的媒 體密鑰,具體包括所述各被叫方利用獲得的媒體根密鑰與該被叫方產(chǎn)生的隨機數(shù),采用預(yù)先設(shè)置的媒體 密鑰生成函數(shù)KDF,生成各自與呼叫方的媒體密鑰。
6. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述被叫方中應(yīng)答當前呼叫的被叫應(yīng) 答方通過MS網(wǎng)絡(luò),將媒體根密鑰和產(chǎn)生的隨機數(shù)發(fā)送給呼叫方,具體包括所述被叫應(yīng)答方通過頂S向呼叫方發(fā)送應(yīng)答響應(yīng)消息,同時,將從KMS獲得,使用與呼 叫方的共享密鑰加密的呼叫方產(chǎn)生的隨機數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰所得到的報文轉(zhuǎn)發(fā)給呼叫方。
7. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述呼叫方生成與被叫應(yīng)答方的媒體 密鑰具體包括所述呼叫方利用與KMS的共享密鑰解密收到的、利用與呼叫方的共享密鑰加密呼叫方 產(chǎn)生的隨機數(shù)、該被叫方產(chǎn)生的隨機數(shù)和媒體根密鑰所得到的報文,獲得被叫方產(chǎn)生的隨 機數(shù)和媒體根密鑰;利用解密得到的媒體根密鑰和該被叫應(yīng)答方產(chǎn)生的隨機數(shù),采用預(yù)先設(shè)置的KDF生成 與該被叫應(yīng)答方的媒體密鑰。
8. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述被叫方為一個用戶的多個終端, 該用戶的各終端具有一個相同的用戶ID ;或者,所述被叫方是多個用戶,且每個用戶只有一個用戶終端,各用戶具有一個能共同 映射到的共同用戶ID。
9. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述呼叫方和各被叫方分別與KMS進 行認證的方法為通過GBA方式與所述KMS建立安全信任關(guān)系;通過通話雙方與KMS的信任關(guān)系的建立,通話雙方之間建立共享密鑰。
10. —種實現(xiàn)安全分叉呼叫會話的系統(tǒng),其特征在于,該系統(tǒng)包括密鑰管理服務(wù)器 KMS、呼叫方和被叫方,其中,KMS,用于對呼叫方和被叫方進行認證并生成各自的共享密鑰;在收到來自被叫方的媒 體根密鑰請求時,對被叫方進行驗證合法后生成媒體根密鑰;將生成的媒體根密鑰發(fā)送給 被叫方;呼叫方,用于通過KMS的認證并獲得共享密鑰,通過IMS網(wǎng)絡(luò)向被叫方發(fā)起呼叫,接收 通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答方的 相同的媒體密鑰;與被叫方中的被叫應(yīng)答方利用產(chǎn)生的媒體密鑰進行安全的媒體會話;被叫方,用于通過KMS的認證并獲得共享密鑰,收到呼叫方的呼叫后,向KMS發(fā)起媒體 根密鑰請求,接收來自KMS的媒體根密鑰并采用設(shè)置有的KDF生成媒體密鑰;被叫方中的 被叫應(yīng)答方通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)應(yīng)答響應(yīng),與呼叫方利用產(chǎn)生的媒體密鑰進行安全的媒體會 話,其他被叫方接收來自IMS網(wǎng)絡(luò)的終止應(yīng)答消息。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述呼叫方至少包括第一認證單元、第 一隨機數(shù)產(chǎn)生單元、第一媒體密鑰生成單元和呼叫單元,其中,第一認證單元,用于通過KMS的認證并獲得共享密鑰; 第一隨機數(shù)產(chǎn)生單元,用于產(chǎn)生隨機數(shù),并通知呼叫單元開始呼叫; 第一媒體密鑰生成單元,用于接收通過IMS網(wǎng)絡(luò)轉(zhuǎn)發(fā)的來自被叫應(yīng)答方的應(yīng)答響應(yīng),采用設(shè)置有的KDF生成與被叫應(yīng)答方的媒體密鑰;呼叫單元,用于接收來自第一隨機數(shù)產(chǎn)生單元的通知,通過IMS網(wǎng)絡(luò)向被叫方發(fā)起呼叫,并將呼叫方產(chǎn)生的隨機數(shù)發(fā)送給各被叫方;利用第一媒體密鑰生成單元產(chǎn)生的相同的媒體密鑰,與被叫方中的被叫應(yīng)答方進行安全的媒體會話。
12. 根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述被叫方至少包括第二認證單元、第 二隨機數(shù)生成單元、根密鑰獲取單元、第二媒體密鑰生成單元和應(yīng)答單元,其中,第二認證單元,用于通過KMS的認證并獲得共享密鑰;第二隨機數(shù)產(chǎn)生單元,用于接收來自呼叫方的呼叫,產(chǎn)生隨機數(shù),并向根密鑰獲取單元 發(fā)送通知;根密鑰獲取單元,用于接收來自第二隨機數(shù)產(chǎn)生單元的通知,向KMS發(fā)起媒體根密鑰 請求;接收來自KMS的媒體根密鑰并發(fā)送給第二媒體密鑰生成單元;第二媒體密鑰生成單元,用于接收來自根密鑰獲取單元的媒體根密鑰,采用設(shè)置有的 KDF生成媒體密鑰,并通知應(yīng)答單元;應(yīng)答單元,用于通過MS網(wǎng)絡(luò)轉(zhuǎn)發(fā)被叫方中的被叫應(yīng)答方的應(yīng)答響應(yīng);利用第二媒體 密鑰生成單元產(chǎn)生的媒體密鑰,與呼叫方進行安全的媒體會話;其他被叫方的應(yīng)答單元接 收來自IMS網(wǎng)絡(luò)的終止應(yīng)答消息。
13.根據(jù)權(quán)利要求IO所述的系統(tǒng),其特征在于,所述被叫方為一個用戶的多個終端,該 用戶的各終端具有一個相同的用戶ID ;或者,所述被叫方是多個用戶,且每個用戶只有一個用戶終端,各用戶具有一個能共同 映射到的共同用戶ID。
全文摘要
本發(fā)明提供了一種實現(xiàn)安全分叉呼叫會話的方法及系統(tǒng),本發(fā)明基于Otway Rees密鑰協(xié)商協(xié)議,提供了密鑰協(xié)商機制,使其在IP多媒體子系統(tǒng)(IMS)中實現(xiàn)了安全的分叉呼叫會話。在被叫方收到呼叫時,從叫密鑰管理服務(wù)器(KMS)獲取用于產(chǎn)生媒體密鑰的媒體根密鑰K,然后基于各被叫方生成的隨機數(shù)和媒體根密鑰K,利用媒體密鑰生成函數(shù)(KDF),每個被叫方和呼叫方都可以生成各自的媒體密鑰。各被叫方的媒體密鑰是唯一而不能被其他終端獲悉的,從而實現(xiàn)了分叉呼叫會話的媒體安全。本發(fā)明邏輯簡單,減輕了呼叫方的計算處理壓力,跟KMS的信令交互也比較少,緩解了KMS的存儲計算要求,很好的提供了IMS保證分叉呼叫會話的安全保護。
文檔編號H04L9/08GK101719825SQ200910083288
公開日2010年6月2日 申請日期2009年4月30日 優(yōu)先權(quán)日2009年4月30日
發(fā)明者朱允文, 滕志猛, 田甜, 韋銀星 申請人:中興通訊股份有限公司