專利名稱:一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種認(rèn)證技術(shù),特別是指一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法。
背景技術(shù):
在下一代網(wǎng)絡(luò)(NGN)中,存在很多支持媒體網(wǎng)關(guān)控制協(xié)議,如MGCP協(xié)議和H.248協(xié)議的媒體網(wǎng)關(guān)(MG),這些網(wǎng)關(guān)設(shè)備分布在企業(yè)或用戶家中,具有覆蓋面廣、數(shù)量多、基于動態(tài)IP的特點(diǎn)。這里,所述的MGCP協(xié)議是因特網(wǎng)工程任務(wù)組(IETF)制定的一種媒體網(wǎng)關(guān)控制標(biāo)準(zhǔn),所述的H.248協(xié)議是國際電信聯(lián)盟(ITU)制定的一種媒體網(wǎng)關(guān)控制協(xié)議。如果不對媒體網(wǎng)關(guān)進(jìn)行安全管理認(rèn)證,則會出現(xiàn)以下問題1)仿冒媒體網(wǎng)關(guān),冒充真正的媒體網(wǎng)關(guān)進(jìn)行通話,而通話費(fèi)用卻計(jì)入真正媒體網(wǎng)關(guān)對應(yīng)的帳戶上,使用戶通話費(fèi)用的安全性得不到保證。
2)對媒體網(wǎng)關(guān)控制器(MGC)進(jìn)行攻擊,系統(tǒng)安全性無法得到保證,容易造成非法及偽造設(shè)備被納入管理;當(dāng)非法及偽造設(shè)備被較多的納入管理時(shí),將會把合法的設(shè)備淹沒掉,甚至?xí)斐烧麄€(gè)網(wǎng)絡(luò)系統(tǒng)的癱瘓。
目前,在媒體網(wǎng)關(guān)控制協(xié)議中提到,可以支持對發(fā)起方的身份認(rèn)證,對于發(fā)起方的身份認(rèn)證有兩種實(shí)現(xiàn)思想一種是進(jìn)行地址認(rèn)證,即僅接受來自源地址的信息;另一種是在呼叫建立過程中傳送通信密鑰,用此密鑰進(jìn)行身份認(rèn)證。
對于上述兩種實(shí)現(xiàn)思想,在媒體網(wǎng)關(guān)控制協(xié)議中,迄今為止都沒有提出具體的解決方案,因此根本無法實(shí)施。另一方面,從安全角度而言,即使能夠?qū)嵤?,由于目前媒體網(wǎng)關(guān)控制協(xié)議所建議的安全性很差,對于地址認(rèn)證方式,非法方只要偽造某一合法的IP地址,就很容易實(shí)現(xiàn)基于源地址的認(rèn)證;而對于密鑰認(rèn)證方式,在呼叫過程中通過傳輸密鑰來進(jìn)行身份認(rèn)證是非常不安全的,只要某一非法用戶截取到該加密信息并獲得密鑰,同樣可以很容易地偽造成合法用戶。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,可確保非法媒體網(wǎng)關(guān)無法正確接入到媒體網(wǎng)關(guān)控制器中使用。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,預(yù)先在媒體網(wǎng)關(guān)(MG)和媒體網(wǎng)關(guān)控制器(MGC)中設(shè)置MGC和對應(yīng)MG的共享密鑰Ki,MG和MGC之間進(jìn)行安全認(rèn)證時(shí),該方法進(jìn)一步包括a.MG利用自身生成的隨機(jī)數(shù)Rand-MG1計(jì)算出自身密鑰信息A,并將計(jì)算出的密鑰信息A發(fā)送給MGC;b.MGC利用自身生成的隨機(jī)數(shù)Rand-MGC計(jì)算出自身密鑰信息B,并根據(jù)接收到的對方密鑰信息A生成自身的鑒權(quán)密鑰;再根據(jù)當(dāng)前生成的鑒權(quán)密鑰、自身密鑰信息B、共享密鑰Ki以及選定的數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字,然后將計(jì)算出的自身密鑰信息B和簽名字發(fā)送給MG;c.MG收到后,先根據(jù)接收到的對方密鑰信息B生成自身的鑒權(quán)密鑰;再根據(jù)當(dāng)前生成的鑒權(quán)密鑰、共享密鑰Ki、對方密鑰信息B以及選定的數(shù)字簽名算法計(jì)算出自身當(dāng)前使用的簽名字,然后判斷當(dāng)前計(jì)算出的簽名字與所收到的簽名字是否一致,如果不一致,則對方為非法MGC方,結(jié)束當(dāng)前認(rèn)證流程;否則,對方為合法MGC方,再重新生成新的隨機(jī)數(shù)Rand-MG2,利用該新隨機(jī)數(shù)計(jì)算出自身新密鑰信息C,并根據(jù)生成的鑒權(quán)密鑰、新密鑰信息C、共享密鑰Ki以及選定的數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字,之后,將當(dāng)前計(jì)算出的簽名字和新密鑰信息C發(fā)送給MGC;d.MGC收到后,根據(jù)共享密鑰Ki、接收到的對方密鑰信息C以及選定的數(shù)字簽名算法計(jì)算出自身當(dāng)前使用的簽名字,并判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對方為合法MG方;否則,對方為非法MG方。
MG進(jìn)行啟動注冊時(shí),該方法進(jìn)一步包括MG向MGC發(fā)送至少攜帶有MG標(biāo)識(MGID)的接入請求命令。那么,步驟a所述MG自身的密鑰信息A放置在所述接入請求命令中發(fā)送給MGC。并且,該方法可進(jìn)一步包括對所述的MGID按照預(yù)先設(shè)定的加密算法進(jìn)行加密。相應(yīng)地,MGC收到接入請求命令后,對所述的MGID按照預(yù)先設(shè)定的解密算法進(jìn)行解密。
上述方案中,所述選定的數(shù)字簽名算法為預(yù)先根據(jù)MG和MGC所支持的數(shù)字簽名算法設(shè)定的。當(dāng)所述接入請求命令中進(jìn)一步攜帶有MG側(cè)所支持的數(shù)字簽名算法對應(yīng)的算法標(biāo)識時(shí),所述選定的數(shù)字簽名算法為MGC根據(jù)接入請求命令中的算法標(biāo)識確定的,該算法確定過程進(jìn)一步包括MGC收到MG發(fā)來的接入請求命令后,判斷是否攜帶有算法標(biāo)識,如果攜帶有MG支持的算法標(biāo)識,則MGC根據(jù)MG支持的算法選定所要使用的數(shù)字簽名算法,并將選定的數(shù)字簽名算法對應(yīng)的算法標(biāo)識發(fā)送給MG;否則,MGC直接采用預(yù)先設(shè)定的數(shù)字簽名算法。
上述方案中,所述MG和MGC的共享密鑰Ki存儲于MG和MGC設(shè)備中不易被讀取的位置。
上述方案中,該方法進(jìn)一步包括設(shè)置一附加鑒權(quán)參數(shù)。則MG和MGC分別根據(jù)密鑰信息、共享密鑰Ki、選定的數(shù)字簽名算法以及附加鑒權(quán)參數(shù)計(jì)算簽名字。所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置一隨機(jī)數(shù),MGC將該隨機(jī)數(shù)以明文方式在保留字段中發(fā)送給MG?;蛘?,所述設(shè)置附加鑒權(quán)參數(shù)為在MG設(shè)備中設(shè)置一隨機(jī)數(shù),MG將該隨機(jī)數(shù)以明文方式在保留字段中發(fā)送給MGC?;蛘?,所述設(shè)置附加鑒權(quán)參數(shù)為分別在MG和MGC設(shè)備中設(shè)置對應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù)?;蛘?,所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置與當(dāng)前通信的MG相對應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù);并且,MGC將當(dāng)前計(jì)數(shù)器值發(fā)送給MG。其中,所述計(jì)數(shù)器的初始值為0或1。MGC將當(dāng)前計(jì)數(shù)器值放置在MGC請求命令的保留參數(shù)中發(fā)送給MG。
如果以計(jì)數(shù)器值作為附加鑒權(quán)參數(shù),則步驟b中MGC在計(jì)算自身簽名字之后,步驟b進(jìn)一步包括MGC將當(dāng)前計(jì)數(shù)器值加1。且MG在計(jì)算鑒權(quán)密鑰之后,該方法進(jìn)一步包括MG將當(dāng)前計(jì)數(shù)器值加1。
當(dāng)進(jìn)行周期鑒權(quán)時(shí),可重復(fù)執(zhí)行步驟b~d。
因此,本發(fā)明所提供的基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,具有以下的優(yōu)點(diǎn)和特點(diǎn)1)在MGC側(cè)和MG側(cè)設(shè)置并存儲共享密鑰Ki,利用該共享密鑰Ki實(shí)現(xiàn)雙向鑒權(quán);在MG和MGC相互認(rèn)證過程中,采用DH密碼算法生成各自的密鑰信息,進(jìn)而根據(jù)密鑰信息計(jì)算出MGC側(cè)或MG側(cè)的鑒權(quán)密鑰和簽名字,由于每個(gè)認(rèn)證過程的密鑰信息都是隨機(jī)產(chǎn)生的,因此能夠保證鑒權(quán)密鑰和簽名字的保密性,從而提高認(rèn)證的可靠性和安全性。
2)在每次進(jìn)行安全認(rèn)證時(shí),計(jì)算鑒權(quán)密鑰和簽名字的共享密鑰信息是由MGC或MG根據(jù)各自隨機(jī)產(chǎn)生的隨機(jī)數(shù)按照一定規(guī)律計(jì)算得出的,從而實(shí)現(xiàn)了動態(tài)密鑰的生成,同時(shí)也實(shí)現(xiàn)了MG和MGC之間的雙向鑒權(quán),進(jìn)而可有效防止MG的偽造事件發(fā)生。
3)本發(fā)明還可在每次安全認(rèn)證過程中,再設(shè)置一個(gè)一次性的附加鑒權(quán)參數(shù),比如再生成一個(gè)隨機(jī)數(shù)作為附加鑒權(quán)參數(shù),或是設(shè)置計(jì)數(shù)器或時(shí)鐘,利用計(jì)數(shù)器值或時(shí)戳值作為附加鑒權(quán)參數(shù),通過不同的附加鑒權(quán)參數(shù)值不僅能保證雙向鑒權(quán)的可能,而且可防止非法者的重復(fù)攻擊。
4)當(dāng)MGC側(cè)和MG側(cè)同時(shí)或分別支持一種以上密鑰生成算法和數(shù)字簽名算法時(shí),本發(fā)明還配有算法協(xié)商機(jī)制,使雙方的選擇更靈活、可靠、方便。
5)本發(fā)明可適用于各種媒體網(wǎng)關(guān)控制協(xié)議,如MGCP協(xié)議、H.248協(xié)議的注冊認(rèn)證過程,適用范圍廣。
圖1為本發(fā)明方法實(shí)現(xiàn)的流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
本發(fā)明的基本思想是在MG和MGC之間利用媒體網(wǎng)關(guān)控制協(xié)議進(jìn)行安全認(rèn)證時(shí),通過對媒體網(wǎng)關(guān)控制協(xié)議安全性機(jī)制進(jìn)行補(bǔ)充,來實(shí)現(xiàn)身份的認(rèn)證。具體地說就是在MG側(cè)和MGC側(cè)分別設(shè)置共享密鑰,并且在MG側(cè)和MGC側(cè)分別生成隨機(jī)數(shù),并按照相同的規(guī)律利用自身生成的隨機(jī)數(shù)計(jì)算出各自的密鑰信息;在進(jìn)行安全認(rèn)證時(shí),MG或MGC先利用對方的密鑰信息生成自身的鑒權(quán)密鑰,再根據(jù)雙方確定的數(shù)字簽名算法、自身生成的密鑰信息、自身生成的鑒權(quán)密鑰以及共享密鑰,計(jì)算出本次認(rèn)證過程中用于認(rèn)證的簽名字,并將計(jì)算出的簽名字和密鑰信息發(fā)給另一方,另一方再將計(jì)算出的自身當(dāng)前使用的簽名字和所收到的簽名字進(jìn)行比較,根據(jù)比較結(jié)果來確定對方是否為合法方,進(jìn)而完成對方安全身份的認(rèn)證。
因此,本發(fā)明實(shí)現(xiàn)的前提是MG側(cè)和MGC側(cè)共享一個(gè)密鑰Ki,密鑰長度至少為128bit,該密鑰被預(yù)先安全保存于MGC和MG設(shè)備中。這里所述的安全存放是指該密鑰采用物理存放方式,且該密鑰在寫入后任何人都不可能讀取到。當(dāng)有多個(gè)MG與同一MGC相連時(shí),不同MG分別與MGC共享不同的密鑰Ki,也就是說,不同MG之間不會采用相同的密鑰Ki。
并且,在MG和MGC設(shè)備中至少保留一套密鑰生成算法和數(shù)字簽名算法,且要求MG和MGC雙方至少有一套相同的密鑰生成算法和數(shù)字簽名算法。在本發(fā)明實(shí)現(xiàn)過程中,主要是利用雙方都支持的數(shù)字簽名算法f2實(shí)現(xiàn)MG和MGC之間的身份鑒權(quán)。
參見圖1所示,本發(fā)明安全認(rèn)證方法的具體實(shí)現(xiàn)過程包括以下步驟步驟101~102MG在啟動時(shí)進(jìn)行正常注冊,先在自身生成隨機(jī)數(shù)Rand-MG1,然后按照公式(1)計(jì)算出自身的密鑰信息AA=gRand-MG1mod(P)(1)公式(1)中,g為底數(shù),可以取任意值,一般取10;P為一個(gè)素?cái)?shù),也就是一個(gè)質(zhì)數(shù),且長度至少為512bit。g和P的值是MG和MGC雙方預(yù)先協(xié)商確定的。
計(jì)算出密鑰信息A后,MG向MGC發(fā)接入請求命令,在該接入請求命令中至少包含MG標(biāo)識(MGID)和密鑰信息A。這里,對于MGCP協(xié)議,接入請求命令可以是特定域IP協(xié)議(RSIP)命令。該MGID可以是加密的,也可以是不加密的,如果要對MGID加密,則需要預(yù)先設(shè)定加密算法,并分別存儲在MG和MGC設(shè)備中,MGID采用該預(yù)先設(shè)定的加密算法進(jìn)行加密。
如果MG或MGC允許同時(shí)支持多種數(shù)字簽名算法,也就是說,MG或MGC任何一方支持一種以上數(shù)字簽名算法,這種情況下,可以預(yù)先設(shè)定MG和MGC之間采用的數(shù)字簽名算法,也可以在MG和MGC之間進(jìn)行算法協(xié)商,以確定雙方當(dāng)前要采用的數(shù)字簽名算法,如果需要進(jìn)行算法協(xié)商,則該接入請求命令中還要攜帶MG支持的算法標(biāo)識(ID),該算法標(biāo)識可以是MG側(cè)所支持的數(shù)字簽名算法對應(yīng)的算法標(biāo)識。
步驟103~105MGC收到MG發(fā)來的接入請求命令后,先向MG發(fā)送確認(rèn)應(yīng)答消息ACK;然后,MGC判斷接入請求命令中是否攜帶了算法標(biāo)識,如果接入請求命令中包含算法標(biāo)識,說明雙方需要進(jìn)行算法協(xié)商,則MGC確定本次認(rèn)證要采用的數(shù)字簽名算法f2;如果接入請求命令中未包含算法標(biāo)識,則MGC直接采用預(yù)先設(shè)定的數(shù)字簽名算法作為數(shù)字簽名算法f2;MGC產(chǎn)生一個(gè)隨機(jī)數(shù)Rand-MGC,然后按照公式(2)計(jì)算出自身的密鑰信息BB=gRand-MGCmod(P) (2)公式(2)中的g和P與公式(1)中g(shù)和P完全相同。
計(jì)算出密鑰信息B后,MGC再根據(jù)接收到的密鑰信息A按照公式(3)計(jì)算出自身的鑒權(quán)密鑰KEY-MGCKEY-MGC=ARand-MGCmod(P)=gRand-MGC*Rand-MGlmod(P)(3)公式(3)中,由于P為一個(gè)失素?cái)?shù),所以將A值代入公式時(shí),A中的mod(P)可以忽略不計(jì)。
進(jìn)而利用計(jì)算出的密鑰信息B、KEY-MGC、確定的數(shù)字簽名算法f2以及共享密鑰Ki,按照公式(4)計(jì)算出MGC側(cè)用于認(rèn)證的簽名字MGCAUTH,該MGCAUTH用于鑒別MGC是否合法。
MGCAUTH=f2(KEY-MGC,Ki,B)(4)計(jì)算出簽名字MGCAUTH后,MGC發(fā)送MGC請求命令給MG,該MGC請求命令中至少包括密鑰信息B、MGCAUTH和保留(Reserved)字段,其中,Reserved字段是可選的,可根據(jù)需要選擇攜帶一個(gè)或多個(gè)參數(shù),比如MG和MGC雙方需要進(jìn)行算法協(xié)商的情況下,該Reserved字段可以包括MGC選定的,也就是指定MG使用的數(shù)字簽名算法f2對應(yīng)的算法標(biāo)識。這里,對于MGCP協(xié)議,MGC請求命令可以是RQNT命令。
步驟106~108MG收到MGC發(fā)來的密鑰信息B、MGCAUTH和Reserved字段后,先確定應(yīng)使用的算法,具體做法是如果Reserved字段中攜帶有MGC選定的數(shù)字簽名算法f2對應(yīng)的算法標(biāo)識,則MG使用該數(shù)字簽名算法f2;否則,使用預(yù)先設(shè)定的數(shù)字簽名算法作為數(shù)字簽名算法f2;然后取出密鑰信息B,利用密鑰信息B和自己在步驟101中生成的隨機(jī)數(shù)Rand-MG1,按照公式(5)計(jì)算出自身的鑒權(quán)密鑰KEY-MGKEY-MG=B Rand-MG1mod(P)=gRand-MG1*Rand-MGCmod(P)(5)進(jìn)而利用計(jì)算出的密鑰信息B、KEY-MG、確定的數(shù)字簽名算法f2以及共享密鑰Ki,按照公式(6)計(jì)算出MG當(dāng)前使用的簽名字MGRES,該MGCRES用于鑒別MGC是否合法。
MGRES=f2(KEY-MG,Ki,B) (6)然后,MG判斷MGRES是否等于MGCAUTH,如果是,則說明是一個(gè)合法MGC發(fā)過來的信息,再生成一個(gè)新的隨機(jī)數(shù)Rand-MG2,利用該隨機(jī)數(shù)Rand-MG2按照公式(7)重新計(jì)算MG新的密鑰信息CC=gRand-MG2mod(P) (7)計(jì)算出新密鑰信息C后,MG再利用新密鑰信息C按公式(8)MG側(cè)用于認(rèn)證的簽名字MGAUTH,該MGAUTH用于鑒別MG是否合法。
MGAUTH=f2(KEY-MG,Ki,C)(8)之后,MG向MGC發(fā)參數(shù)通知消息,將計(jì)算出的MGAUTH和新密鑰信息C通知MGC,同時(shí),MG還向MGC發(fā)送鑒權(quán)結(jié)果消息ACK,這里,該鑒權(quán)結(jié)果消息即為表示對MGC鑒權(quán)成功消息。其中,步驟107的參數(shù)通知消息和步驟108的鑒權(quán)結(jié)果消息可以合并,即僅發(fā)送一條鑒權(quán)結(jié)果消息,該鑒權(quán)結(jié)果消息中包括計(jì)算出的MGAUTH、新密鑰信息C和鑒權(quán)成功信息。
如果MGRES不等于MGCAUTH,則結(jié)束當(dāng)前流程,或返回步驟104重新認(rèn)證,這種情況下,MG可以發(fā)鑒權(quán)結(jié)果消息通知MGC本次認(rèn)證失敗,也可以不發(fā)任何消息進(jìn)行通知。
步驟109~110MGC收到MGAUTH后,利用新密鑰信息C、在步驟104中生成KEY-MGC、確定的數(shù)字簽名算法f2以及共享密鑰Ki,按照公式(9)計(jì)算出自身當(dāng)前使用的簽名字MGCRESMGCRES=f2(KEY-MGC,Ki,C)(9)然后判斷MGCRES是否等于MGAUTH,如果是,則說明是合法MG發(fā)過來的信息,MGC回復(fù)對MG鑒權(quán)成功的應(yīng)答消息。如果MGAUTH不等于MGCRES,則結(jié)束當(dāng)前流程,或返回步驟104重新認(rèn)證,這種情況下,MGC可以發(fā)消息通知MG本次認(rèn)證失敗,也可以不發(fā)消息通知。
通過上述步驟101~110即可完成MG接入MGC的安全身份認(rèn)證過程。上述步驟中,MG、MGC分別利用對方傳送過來的密鑰信息計(jì)算自身鑒權(quán)密鑰的方式,是采用現(xiàn)有的DH密碼算法。對于后續(xù)的周期鑒權(quán),比如通信時(shí)所需的認(rèn)證,或重認(rèn)證過程,可重復(fù)執(zhí)行步驟104~109,但步驟104中所涉及到的算法選擇可以忽略,也就是說,第一次通過協(xié)商確定所使用的算法后,以后不需要再協(xié)商,直接采用確定的算法,并且,公式(3)中用到的密鑰信息A全部用新密鑰信息C替換??梢?,通過上述步驟可以實(shí)現(xiàn)MG和MGC之間基于MGCP協(xié)議的動態(tài)密鑰管理,同時(shí)也實(shí)現(xiàn)了雙向鑒權(quán),即共享密鑰只在本方產(chǎn)生,不進(jìn)行傳遞,雙方僅通過簽名字的比較確定對方身份的合法性。
為了確保MG和MGC之間更高的安全性,可預(yù)先在MGC和每個(gè)MG中再分別設(shè)置相互對應(yīng)的附加鑒權(quán)參數(shù),MG和MGC在計(jì)算各自的簽名字時(shí),除了利用共享密鑰、MGC生成的隨機(jī)數(shù)、雙方確定的密鑰生成算法和數(shù)字簽名算法,還要利用該附加鑒權(quán)參數(shù)。該附加鑒權(quán)參數(shù)可以有多種實(shí)現(xiàn)方式,比如再單獨(dú)生成一個(gè)隨機(jī)數(shù),以此隨機(jī)數(shù)作為附加鑒權(quán)參數(shù);單獨(dú)設(shè)置一個(gè)計(jì)數(shù)器,利用該計(jì)數(shù)器的當(dāng)前值作為附加鑒權(quán)參數(shù);單獨(dú)設(shè)置時(shí)鐘,以時(shí)戳值作為附加鑒權(quán)參數(shù)等等。以設(shè)置計(jì)數(shù)器并利用計(jì)數(shù)器值作為附加鑒權(quán)參數(shù)為例,有以下兩種方式第一種方式,在MGC和MG設(shè)備中分別設(shè)置一個(gè)對應(yīng)的計(jì)數(shù)器,該計(jì)數(shù)器的初始值設(shè)為0或1,由于MGC同時(shí)對應(yīng)多個(gè)MG,所以要設(shè)置多個(gè)計(jì)數(shù)器,每個(gè)計(jì)數(shù)器對應(yīng)一個(gè)MG。這樣的話,在公式(4)、公式(6)、公式(8)以及公式(9)的計(jì)算中就要增加計(jì)數(shù)器值COUNT-MG或COUNT-MGC,則公式(4)、公式(6)、公式(8)、公式(9)分別變?yōu)楣?4’)、公式(6’)、公式(8’)、公式(9’)MGCAUTH=f2(KEY-MGC,Ki,B,COUNT-MGC)(4’)MGRES=f2(KEY-MG,Ki,B,COUNT-MG) (6’)MGAUTH=f2(KEY-MG,Ki,C,COUNT-MG)(8’)MGCRES=f2(KEY-MGC,Ki,C,COUNT-MGC) (9’)同時(shí),在步驟104中,MGC計(jì)算出用于認(rèn)證的簽名字MGCAUTH后,要將自身當(dāng)前的計(jì)數(shù)器值COUNT-MGC加1;在步驟106中,MG計(jì)算出自身當(dāng)前使用的鑒權(quán)密鑰之后,也要將自身當(dāng)前的計(jì)數(shù)器值COUNT-MG加1。
第二種方式,僅在MG或MGC一方設(shè)置該計(jì)數(shù)器,同樣,該計(jì)數(shù)器的初始值設(shè)為0或1。這種情況下,就需要在MG和MGC之間傳遞消息時(shí)將當(dāng)前計(jì)數(shù)器值發(fā)給對方。比如只在MGC側(cè)設(shè)置多個(gè)計(jì)數(shù)器,每個(gè)計(jì)數(shù)器對應(yīng)一個(gè)MG,當(dāng)MGC與某個(gè)MG進(jìn)行安全認(rèn)證時(shí),MGC可以將對應(yīng)當(dāng)前MG的當(dāng)前計(jì)數(shù)器值放在Reserved字段中發(fā)送給當(dāng)前的MG。所采用計(jì)算公式的相應(yīng)變化與第一種方式中公式(4’)、公式(6’)、公式(8’)、公式(9’)相同。
在實(shí)際應(yīng)用中,具體采用的是何種方式,MG或MGC可以在收到命令消息后,對命令消息中是否攜帶有Reserved字段或Reserved字段中是否含有附加鑒權(quán)參數(shù)進(jìn)行判斷,如果有,則采用消息中攜帶的附加鑒權(quán)參數(shù)值,相當(dāng)于使用方式二;如果消息中根本未攜帶附加鑒權(quán)參數(shù),則從自身取,相當(dāng)于使用方式一,當(dāng)然,此種情況下,MG和MGC預(yù)先知道要利用附加鑒權(quán)參數(shù)。
如果設(shè)置的附加鑒權(quán)參數(shù)為時(shí)戳?xí)r,設(shè)置、應(yīng)用方式和相應(yīng)的使用過程與上述計(jì)數(shù)器的實(shí)例基本類似,只是不需要初始化,也不需要傳送給對方。
如果設(shè)置的附加鑒權(quán)參數(shù)為隨機(jī)數(shù)時(shí),以在MGC設(shè)置隨機(jī)數(shù)為例在步驟104中,MGC會生成作為附加鑒權(quán)參數(shù)的隨機(jī)數(shù)Rand-add,則MGC在向MG發(fā)送MGC請求命令時(shí),會在該MGC請求命令的保留(Reserved)字段中攜帶Rand-add,該隨機(jī)數(shù)Rand-add以明文傳送給對方。相應(yīng)地,公式(4)、公式(6)、公式(8)、公式(9)分別變?yōu)楣?4”)、公式(6”)、公式(8”)、公式(9”)MGCAUTH=f2(KEY-MGC,Ki,B,Rand-add)(4”)MGRES=f2(KEY-MG,Ki,B,Rand-add) (6”)MGAUTH=f2(KEY-MG,Ki,C,Rand-add) (8”)MGCRES=f2(KEY-MGC,Ki,C,Rand-add) (9”)。
以上描述的方案,不僅適用于MGCP協(xié)議,當(dāng)MG和MGC之間通過H.248協(xié)議進(jìn)行通信,也完全適合于采用H.248協(xié)議的認(rèn)證過程??傊?,以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,其特征在于預(yù)先在媒體網(wǎng)關(guān)(MG)和媒體網(wǎng)關(guān)控制器(MGC)中設(shè)置MGC和對應(yīng)MG的共享密鑰Ki,MG和MGC之間進(jìn)行安全認(rèn)證時(shí),該方法進(jìn)一步包括a.MG利用自身生成的隨機(jī)數(shù)Rand-MG1計(jì)算出自身密鑰信息A,并將計(jì)算出的密鑰信息A發(fā)送給MGC;b.MGC利用自身生成的隨機(jī)數(shù)Rand-MGC計(jì)算出自身密鑰信息B,并根據(jù)接收到的對方密鑰信息A生成自身的鑒權(quán)密鑰;再根據(jù)當(dāng)前生成的鑒權(quán)密鑰、自身密鑰信息B、共享密鑰Ki以及選定的數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字,然后將計(jì)算出的自身密鑰信息B和簽名字發(fā)送給MG;c.MG收到后,先根據(jù)接收到的對方密鑰信息B生成自身的鑒權(quán)密鑰;再根據(jù)當(dāng)前生成的鑒權(quán)密鑰、共享密鑰Ki、對方密鑰信息B以及選定的數(shù)字簽名算法計(jì)算出自身當(dāng)前使用的簽名字,然后判斷當(dāng)前計(jì)算出的簽名字與所收到的簽名字是否一致,如果不一致,則對方為非法MGC方,結(jié)束當(dāng)前認(rèn)證流程;否則,對方為合法MGC方,再重新生成新的隨機(jī)數(shù)Rand-MG2,利用該新隨機(jī)數(shù)計(jì)算出自身新密鑰信息C,并根據(jù)生成的鑒權(quán)密鑰、新密鑰信息C、共享密鑰Ki以及選定的數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字,之后,將當(dāng)前計(jì)算出的簽名字和新密鑰信息C發(fā)送給MGC;d.MGC收到后,根據(jù)共享密鑰Ki、接收到的對方密鑰信息C以及選定的數(shù)字簽名算法計(jì)算出自身當(dāng)前使用的簽名字,并判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對方為合法MG方;否則,對方為非法MG方。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,MG進(jìn)行啟動注冊時(shí),該方法進(jìn)一步包括MG向MGC發(fā)送至少攜帶有MG標(biāo)識(MGID)的接入請求命令。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟a所述MG自身的密鑰信息A放置在所述接入請求命令中發(fā)送給MGC。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法進(jìn)一步包括對所述的MGID按照預(yù)先設(shè)定的加密算法進(jìn)行加密。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括MGC收到接入請求命令后,對所述的MGID按照預(yù)先設(shè)定的解密算法進(jìn)行解密。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選定的數(shù)字簽名算法為預(yù)先根據(jù)MG和MGC所支持的數(shù)字簽名算法設(shè)定的。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述接入請求命令中進(jìn)一步攜帶有MG側(cè)所支持的數(shù)字簽名算法對應(yīng)的算法標(biāo)識。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述選定的數(shù)字簽名算法為MGC根據(jù)接入請求命令中的算法標(biāo)識確定的,該算法確定過程進(jìn)一步包括MGC收到MG發(fā)來的接入請求命令后,判斷是否攜帶有算法標(biāo)識,如果攜帶有MG支持的算法標(biāo)識,則MGC根據(jù)MG支持的算法選定所要使用的數(shù)字簽名算法,并將選定的數(shù)字簽名算法對應(yīng)的算法標(biāo)識發(fā)送給MG;否則,MGC直接采用預(yù)先設(shè)定的數(shù)字簽名算法。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述MG和MGC的共享密鑰Ki存儲于MG和MGC設(shè)備中不易被讀取的位置。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括設(shè)置一附加鑒權(quán)參數(shù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,MG和MGC分別根據(jù)密鑰信息、共享密鑰Ki、選定的數(shù)字簽名算法以及附加鑒權(quán)參數(shù)計(jì)算簽名字。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置一隨機(jī)數(shù),MGC將該隨機(jī)數(shù)以明文方式在保留字段中發(fā)送給MG。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MG設(shè)備中設(shè)置一隨機(jī)數(shù),MG將該隨機(jī)數(shù)以明文方式在保留字段中發(fā)送給MGC。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為分別在MG和MGC設(shè)備中設(shè)置對應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù)。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置與當(dāng)前通信的MG相對應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù);并且,MGC將當(dāng)前計(jì)數(shù)器值發(fā)送給MG。
16.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,所述計(jì)數(shù)器的初始值為0或1。
17.根據(jù)權(quán)利要求15所述的方法,其特征在于,MGC將當(dāng)前計(jì)數(shù)器值放置在MGC請求命令的保留參數(shù)中發(fā)送給MG。
18.根據(jù)權(quán)利要求14或15所述的方法,其特征在于,步驟b中MGC在計(jì)算自身簽名字之后,步驟b進(jìn)一步包括MGC將當(dāng)前計(jì)數(shù)器值加1。
19.根據(jù)權(quán)利要求14所述的方法,其特征在于,MG在計(jì)算鑒權(quán)密鑰之后,該方法進(jìn)一步包括MG將當(dāng)前計(jì)數(shù)器值加1。
全文摘要
本發(fā)明公開了一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,在媒體網(wǎng)關(guān)(MG)側(cè)和媒體網(wǎng)關(guān)控制器(MGC)側(cè)分別設(shè)置共享密鑰,并在MG側(cè)和MGC側(cè)分別生成隨機(jī)數(shù),利用自身生成的隨機(jī)數(shù)計(jì)算出各自的密鑰信息;在進(jìn)行安全認(rèn)證時(shí),MG或MGC先利用對方的密鑰信息生成自身的鑒權(quán)密鑰,再根據(jù)雙方確定的數(shù)字簽名算法、自身生成的密鑰信息、自身生成的鑒權(quán)密鑰以及共享密鑰,計(jì)算出本次認(rèn)證過程中用于認(rèn)證的簽名字,并將計(jì)算出的簽名字和密鑰信息發(fā)給另一方,另一方再將計(jì)算出的自身當(dāng)前使用的簽名字和所收到的簽名字進(jìn)行比較,根據(jù)比較結(jié)果來確定對方是否為合法方,進(jìn)而完成對方安全身份的認(rèn)證,該方法可確保非法媒體網(wǎng)關(guān)無法正確接入到媒體網(wǎng)關(guān)控制器中使用。
文檔編號H04L12/66GK1571408SQ0314958
公開日2005年1月26日 申請日期2003年7月17日 優(yōu)先權(quán)日2003年7月17日
發(fā)明者鄭志彬 申請人:華為技術(shù)有限公司