專利名稱:一種基于媒體網(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ù)量多、基于動(dòng)態(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é)議。如果不對(duì)媒體網(wǎng)關(guān)進(jìn)行安全管理認(rèn)證,則會(huì)出現(xiàn)以下問題1)仿冒媒體網(wǎng)關(guān),冒充真正的媒體網(wǎng)關(guān)進(jìn)行通話,而通話費(fèi)用卻計(jì)入真正媒體網(wǎng)關(guān)對(duì)應(yīng)的帳戶上,使用戶通話費(fèi)用的安全性得不到保證。
2)對(duì)媒體網(wǎng)關(guān)控制器(MGC)進(jìn)行攻擊,系統(tǒng)安全性無法得到保證,容易造成非法及偽造設(shè)備被納入管理;當(dāng)非法及偽造設(shè)備被較多的納入管理時(shí),將會(huì)把合法的設(shè)備淹沒掉,甚至?xí)斐烧麄€(gè)網(wǎng)絡(luò)系統(tǒng)的癱瘓。
目前,在媒體網(wǎng)關(guān)控制協(xié)議中提到,可以支持對(duì)發(fā)起方的身份認(rèn)證,對(duì)于發(fā)起方的身份認(rèn)證有兩種實(shí)現(xiàn)思想一種是進(jìn)行地址認(rèn)證,即僅接受來自源地址的信息;另一種是在呼叫建立過程中傳送通信密鑰,用此密鑰進(jìn)行身份認(rèn)證。
對(duì)于上述兩種實(shí)現(xiàn)思想,在媒體網(wǎng)關(guān)控制協(xié)議中,迄今為止都沒有提出具體的解決方案,因此根本無法實(shí)施。另一方面,從安全角度而言,即使能夠?qū)嵤?,由于目前媒體網(wǎng)關(guān)控制協(xié)議所建議的安全性很差,對(duì)于地址認(rèn)證方式,非法方只要偽造某一合法的IP地址,就很容易實(shí)現(xiàn)基于源地址的認(rèn)證;而對(duì)于密鑰認(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和對(duì)應(yīng)MG的共享密鑰Ki,MG和MGC之間進(jìn)行安全認(rèn)證時(shí),該方法進(jìn)一步包括a.MGC生成隨機(jī)數(shù)Rand,然后根據(jù)所生成的隨機(jī)數(shù)Rand、共享密鑰Ki以及選定的密鑰生成算法和數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字;b.MGC將步驟a計(jì)算出的簽名字及所生成的隨機(jī)數(shù)Rand發(fā)送給MG;c.MG收到后,先根據(jù)共享密鑰Ki、隨機(jī)數(shù)Rand以及選定的密鑰生成算法和數(shù)字簽名算法,計(jì)算出自身當(dāng)前使用的簽名字,然后判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對(duì)方為合法MGC方,MG再計(jì)算出自身用于認(rèn)證的簽名字,并將計(jì)算出的用于認(rèn)證的簽名字發(fā)送給MGC;否則,對(duì)方為非法MGC方,結(jié)束當(dāng)前認(rèn)證流程;d.MGC收到后,計(jì)算出自身當(dāng)前使用的簽名字,并判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對(duì)方為合法MG方;否則,對(duì)方為非法MG方。
其中,所述簽名字的計(jì)算進(jìn)一步包括MG或MGC先根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki以及選定的密鑰生成算法計(jì)算出鑒權(quán)密鑰;再根據(jù)當(dāng)前計(jì)算出的鑒權(quán)密鑰、隨機(jī)數(shù)Rand以及選定的數(shù)字簽名算法計(jì)算出簽名字。
當(dāng)MG進(jìn)行啟動(dòng)注冊(cè)時(shí),該方法進(jìn)一步包括MG向MGC發(fā)送至少攜帶有MG標(biāo)識(shí)(MGID)的接入請(qǐng)求命令??梢詫?duì)所述的MGID按照預(yù)先設(shè)定的加密算法進(jìn)行加密;如果MGID進(jìn)行了加密,則MGC收到接入請(qǐng)求命令后,對(duì)所述的MGID按照預(yù)先設(shè)定的解密算法進(jìn)行解密。
所述選定的密鑰生成算法和數(shù)字簽名算法為預(yù)先根據(jù)MG和MGC所支持的密鑰生成算法和數(shù)字簽名算法設(shè)定的。
如果所述接入請(qǐng)求命令中攜帶有MG側(cè)所支持的密鑰生成算法或數(shù)字簽名算法對(duì)應(yīng)的算法標(biāo)識(shí),則所述選定的密鑰生成算法和數(shù)字簽名算法為MGC根據(jù)接入請(qǐng)求命令中的算法標(biāo)識(shí)確定的,該算法確定過程進(jìn)一步包括MGC收到MG發(fā)來的接入請(qǐng)求命令后,判斷是否攜帶有算法標(biāo)識(shí),如果攜帶有MG支持的算法標(biāo)識(shí),則MGC根據(jù)MG支持的算法選定所要使用的密鑰生成算法和數(shù)字簽名算法,并將選定的密鑰生成算法和數(shù)字簽名算法對(duì)應(yīng)的算法標(biāo)識(shí)發(fā)送給MG;否則,MGC直接采用預(yù)先設(shè)定的密鑰生成算法和數(shù)字簽名算法。
上述方案中,所述MG和MGC的共享密鑰Ki存儲(chǔ)于MG和MGC設(shè)備中不易被讀取的位置。
該方法進(jìn)一步包括設(shè)置一附加鑒權(quán)參數(shù)。那么,MG和MGC分別根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki、確定的密鑰生成算法以及附加鑒權(quán)參數(shù)計(jì)算鑒權(quán)密鑰。并且,MG和MGC分別根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki、確定的數(shù)字簽名算法以及附加鑒權(quán)參數(shù)計(jì)算簽名字。
所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置一隨機(jī)數(shù),MGC將該隨機(jī)數(shù)以明文方式在保留字段發(fā)送給MG?;?yàn)樵贛G設(shè)備中設(shè)置一隨機(jī)數(shù),MG將該隨機(jī)數(shù)以明文方式在保留字段發(fā)送給MGC。
所述設(shè)置附加鑒權(quán)參數(shù)還可以為分別在MG和MGC設(shè)備中設(shè)置對(duì)應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對(duì)應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù)?;蚴?,在MGC設(shè)備中設(shè)置與當(dāng)前通信的MG相對(duì)應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對(duì)應(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請(qǐng)求命令的保留字段中發(fā)送給MG。那么,在上述方案中,步驟a中MGC在計(jì)算自身簽名字之后,步驟a進(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í)行上述方案中的步驟a~d。
因此,本發(fā)明所提供的基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,具有以下的優(yōu)點(diǎn)和特點(diǎn)1)在MGC側(cè)和MG側(cè)共享密鑰Ki,利用該共享密鑰作為種子密鑰,可在MG和MGC相互認(rèn)證時(shí),進(jìn)一步分別計(jì)算出MGC側(cè)和MG側(cè)的鑒權(quán)密鑰和簽名字,由于該共享密鑰僅在MGC和MG設(shè)備中分別存儲(chǔ),而不用相互傳遞,因此能夠保證鑒權(quán)密鑰和簽名字的保密性。
2)在每次鑒權(quán)時(shí),計(jì)算鑒權(quán)密鑰和簽名字的另一個(gè)參數(shù)Rand,是由MGC隨機(jī)產(chǎn)生的隨機(jī)數(shù),從而實(shí)現(xiàn)了動(dòng)態(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é)議的注冊(cè)認(rèn)證過程,適用范圍廣。
圖1為本發(fā)明方法實(shí)現(xiàn)的流程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。
本發(fā)明的基本思想是在MG和MGC之間利用媒體網(wǎng)關(guān)控制協(xié)議進(jìn)行安全認(rèn)證時(shí),通過對(duì)媒體網(wǎng)關(guān)控制協(xié)議安全性機(jī)制進(jìn)行補(bǔ)充,來實(shí)現(xiàn)身份的認(rèn)證。具體地說就是在MG側(cè)和MGC側(cè)分別設(shè)置共享密鑰,然后MG和MGC分別利用雙方確定的密鑰生成算法、數(shù)字簽名算法、MGC產(chǎn)生的隨機(jī)數(shù)以及共享密鑰,計(jì)算出本次認(rèn)證過程中自身的鑒權(quán)密鑰和簽名字,并將計(jì)算出的簽名自發(fā)給對(duì)方,然后通過將自身計(jì)算出的簽名字和對(duì)方發(fā)送過來的簽名字進(jìn)行比較,以確定對(duì)方是否為合法方,從而完成對(duì)方安全身份的認(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之間不會(huì)采用相同的密鑰Ki。
并且,在MG和MGC設(shè)備中至少保留一套密鑰生成算法和數(shù)字簽名算法,且要求MG和MGC雙方至少有一套相同的密鑰生成算法和數(shù)字簽名算法。在本發(fā)明實(shí)現(xiàn)過程中,利用雙方都支持的密鑰生成算法f1完成動(dòng)態(tài)密鑰的產(chǎn)生,利用雙方都支持的數(shù)字簽名算法f2實(shí)現(xiàn)MG和MGC之間的身份鑒權(quán)。
參見圖1所示,本發(fā)明安全認(rèn)證方法的具體實(shí)現(xiàn)過程包括以下步驟步驟101MG進(jìn)行正常注冊(cè)時(shí),先在啟動(dòng)時(shí)間向MGC發(fā)接入請(qǐng)求命令,在該接入請(qǐng)求命令中至少包含MG標(biāo)識(shí)(MGID)。這里,針對(duì)MGCP協(xié)議,接入請(qǐng)求命令可以是特定域IP協(xié)議(RSIP)命令。該MGID可以是加密的,也可以是不加密的,如果要對(duì)MGID加密,則需要預(yù)先設(shè)定加密算法,并分別存儲(chǔ)在MG和MGC設(shè)備中,MGID采用該預(yù)先設(shè)定的加密算法進(jìn)行加密。
如果MG或MGC允許同時(shí)支持多套密鑰生成算法或數(shù)字簽名算法,也就是說,MG或MGC任何一方支持一種以上的密鑰生成算法或數(shù)字簽名算法,這種情況下,可以預(yù)先設(shè)定MG和MGC之間采用的算法,也可以在MG和MGC之間進(jìn)行算法協(xié)商,以確定雙方當(dāng)前要采用的密鑰生成算法或數(shù)字簽名算法,如果需要進(jìn)行算法協(xié)商,則該接入請(qǐng)求命令中還要攜帶MG支持的算法標(biāo)識(shí)(ID),該算法標(biāo)識(shí)可以是MG側(cè)所支持的密鑰生成算法、或數(shù)字簽名算法、或密鑰生成算法和數(shù)字簽名算法對(duì)應(yīng)的算法標(biāo)識(shí)。
步驟102~104MGC收到MG發(fā)來的接入請(qǐng)求命令后,先向MG發(fā)送確認(rèn)應(yīng)答消息ACK;然后,MGC判斷接入請(qǐng)求命令中是否攜帶了算法標(biāo)識(shí),如果接入請(qǐng)求命令中包含算法標(biāo)識(shí),說明雙方需要進(jìn)行算法協(xié)商,則MGC選定本次認(rèn)證要采用的密鑰生成算法f1和數(shù)字簽名算法f2;如果接入請(qǐng)求命令中未包含算法標(biāo)識(shí),則MGC采用預(yù)先設(shè)定的密鑰生成算法和數(shù)字簽名算法,分別作為密鑰生成算法f1和數(shù)字簽名算法f2;MGC產(chǎn)生一個(gè)隨機(jī)數(shù)Rand,利用選定的密鑰生成算法f1,MGC按照公式(1)計(jì)算出MGC側(cè)本次認(rèn)證過程的鑒權(quán)密鑰KAUTHKAUTH=f1(Ki,Rand) (1)進(jìn)而根據(jù)得到的KAUTH和選定的數(shù)字簽名算法f2,按照公式(2)計(jì)算出MGC側(cè)用于認(rèn)證的簽名字MGCAUTH,該MGCAUTH用于鑒別MGC是否合法。
MGCAUTH=f2(KAUTH,Rand) (2)計(jì)算出簽名字MGCAUTH后,MGC發(fā)送MGC請(qǐng)求命令給MG,該MGC請(qǐng)求命令中至少包括參數(shù)Rand、MGCAUTH和保留(Reserved)字段,其中,Reserved字段是可選的,可根據(jù)需要選擇攜帶一個(gè)或多個(gè)參數(shù),比如MG和MGC雙方需要進(jìn)行算法協(xié)商的情況下,該Reserved字段可以包括MGC選定的,也就是指定MG使用的密鑰生成算法f1和數(shù)字簽名算法f2的算法標(biāo)識(shí)。這里,對(duì)于MGCP協(xié)議,MGC請(qǐng)求命令可以是RQNT命令。
步驟105~107MG收到MGC發(fā)來的Rand、MGCAUTH和Reserved字段后,先確定應(yīng)使用的算法,具體做法是如果Reserved字段中攜帶有MGC選定的密鑰生成算法f1和數(shù)字簽名算法f2的算法標(biāo)識(shí),則MG使用該密鑰生成算法f1和數(shù)字簽名算法f2;否則,使用預(yù)先設(shè)定的密鑰生成算法和數(shù)字簽名算法,分別作為密鑰生成算法f1和數(shù)字簽名算法f2;然后取出Rand,根據(jù)密鑰生成算法f1按照公式(3)計(jì)算出MG側(cè)當(dāng)前使用的鑒權(quán)密鑰KRES;KRES=f1(Ki,Rand) (3)得到鑒權(quán)密鑰后,再根據(jù)數(shù)字簽名算法f2按照公式(4)計(jì)算出MG側(cè)當(dāng)前使用的簽名字MGRES;MGRES=f2(KRES,Rand)(4)判斷MGCAUTH是否等于MGRES,如果是,則說明是一個(gè)合法MGC發(fā)過來的信息,再根據(jù)公式(5)計(jì)算出MG側(cè)用于認(rèn)證的簽名字MGAUTH,該MGAUTH是用來讓MGC確認(rèn)MG是否合法的;MGAUTH=f2(KRES,Rand) (5)計(jì)算出MGAUTH后,MG向MGC發(fā)消息,將計(jì)算出的MGAUTH通知MGC,同時(shí)MG還向MGC發(fā)送鑒權(quán)成功的應(yīng)答消息ACK。這里,步驟106的MGAUTH通知消息和步驟107的應(yīng)答消息可以合并,即采用一條應(yīng)答消息發(fā)送,該應(yīng)答消息中包括計(jì)算出的MGAUTH和鑒權(quán)成功信息。
如果MGCAUTH不等于MGRES,則結(jié)束當(dāng)前流程,或返回步驟103重新認(rèn)證,這種情況下,MG可以發(fā)消息通知MGC本次認(rèn)證失敗,也可以不通知。
步驟108~109MGC收到MGAUTHx后,按照公式(6)計(jì)算出自身當(dāng)前使用的簽名字MGCRES;MGCRES=f2(KAUTH,Rand) (6)然后判斷MGAUTH是否等于MGCRES,如果是,則說明是合法MG發(fā)過來的信息,MGC回復(fù)對(duì)MG鑒權(quán)成功的應(yīng)答消息。如果MGAUTH不等于MGCRES,則結(jié)束當(dāng)前流程,或返回步驟103重新認(rèn)證,這種情況下,MGC可以發(fā)消息通知MG本次認(rèn)證失敗,也可以不通知。
通過上述步驟101~109即可完成MG接入MGC的安全身份認(rèn)證過程。對(duì)于后續(xù)的周期鑒權(quán),比如通信時(shí)所需的認(rèn)證,或重認(rèn)證過程,可重復(fù)執(zhí)行步驟103~109,但步驟103中所涉及到的算法選擇可以忽略,也就是說,第一次通過協(xié)商確定所使用的算法后,以后不需要再協(xié)商,直接采用確定的算法??梢姡ㄟ^上述步驟可以實(shí)現(xiàn)MG和MGC之間基于MGCP協(xié)議的動(dòng)態(tài)密鑰管理,同時(shí)也實(shí)現(xiàn)了雙向鑒權(quán),即共享密鑰只在本方產(chǎn)生,不進(jìn)行傳遞,雙方僅通過簽名字的比較確定對(duì)方身份的合法性。
為了確保MG和MGC之間更高的安全性,可預(yù)先在MGC和每個(gè)MG中再分別設(shè)置相互對(duì)應(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è)對(duì)應(yīng)的計(jì)數(shù)器,該計(jì)數(shù)器的初始值設(shè)為0或1,由于MGC同時(shí)對(duì)應(yīng)多個(gè)MG,所以要設(shè)置多個(gè)計(jì)數(shù)器,每個(gè)計(jì)數(shù)器對(duì)應(yīng)一個(gè)MG。這樣的話,在公式(2)、公式(4)、公式(5)以及公式(6)的計(jì)算中就要增加計(jì)數(shù)器值COUNT-MG或COUNT-MGC,則公式(2)、公式(4)、公式(5)、公式(6)分別變?yōu)楣?2’)、公式(4’)、公式(5’)、公式(6’)MGCAUTH=f2(KAUTH,COUNT-MGC,Rand) (2’)MGRES=f2(KRES,COUNT-MG,Rand) (4’)MGAUTH=f2(KRES,COUNT-MG,Rand) (5’)MGCRES=f2(KAUTH,COUNT-MGC,Rand)(6’)同時(shí),在步驟103中,MGC計(jì)算出用于認(rèn)證的簽名字MGCAUTH后,要將自身當(dāng)前的計(jì)數(shù)器值COUNT-MGC加1;在步驟105中,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ā)給對(duì)方。比如只在MGC側(cè)設(shè)置多個(gè)計(jì)數(shù)器,每個(gè)計(jì)數(shù)器對(duì)應(yīng)一個(gè)MG,當(dāng)MGC與某個(gè)MG進(jìn)行安全認(rèn)證時(shí),MGC可以將對(duì)應(yīng)當(dāng)前MG的當(dāng)前計(jì)數(shù)器值放在Reserved字段中發(fā)送給當(dāng)前的MG。
如果設(shè)置的附加鑒權(quán)參數(shù)為隨機(jī)數(shù)時(shí),該隨機(jī)數(shù)要以明文傳送給對(duì)方;如果設(shè)置的附加鑒權(quán)參數(shù)為時(shí)戳?xí)r,設(shè)置、應(yīng)用方式和相應(yīng)的使用過程與上述計(jì)數(shù)器的實(shí)例基本類似,只是不需要初始化,也不需要傳送給對(duì)方。
以上描述的方案,不僅適用于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和對(duì)應(yīng)MG的共享密鑰Ki,MG和MGC之間進(jìn)行安全認(rèn)證時(shí),該方法進(jìn)一步包括a.MGC生成隨機(jī)數(shù)Rand,然后根據(jù)所生成的隨機(jī)數(shù)Rand、共享密鑰Ki以及選定的密鑰生成算法和數(shù)字簽名算法計(jì)算出自身用于認(rèn)證的簽名字;b.MGC將步驟a計(jì)算出的簽名字及所生成的隨機(jī)數(shù)Rand發(fā)送給MG;c.MG收到后,先根據(jù)共享密鑰Ki、隨機(jī)數(shù)Rand以及選定的密鑰生成算法和數(shù)字簽名算法,計(jì)算出自身當(dāng)前使用的簽名字,然后判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對(duì)方為合法MGC方,MG再計(jì)算出自身用于認(rèn)證的簽名字,并將計(jì)算出的用于認(rèn)證的簽名字發(fā)送給MGC;否則,對(duì)方為非法MGC方,結(jié)束當(dāng)前認(rèn)證流程;d.MGC收到后,計(jì)算出自身當(dāng)前使用的簽名字,并判斷計(jì)算出的簽名字與所收到的簽名字是否一致,如果是,則對(duì)方為合法MG方;否則,對(duì)方為非法MG方。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述簽名字的計(jì)算進(jìn)一步包括MG或MGC先根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki以及選定的密鑰生成算法計(jì)算出鑒權(quán)密鑰;再根據(jù)當(dāng)前計(jì)算出的鑒權(quán)密鑰、隨機(jī)數(shù)Rand以及選定的數(shù)字簽名算法計(jì)算出簽名字。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,MG進(jìn)行啟動(dòng)注冊(cè)時(shí),該方法進(jìn)一步包括MG向MGC發(fā)送至少攜帶有MG標(biāo)識(shí)(MGID)的接入請(qǐng)求命令。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,該方法進(jìn)一步包括對(duì)所述的MGID按照預(yù)先設(shè)定的加密算法進(jìn)行加密。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括MGC收到接入請(qǐng)求命令后,對(duì)所述的MGID按照預(yù)先設(shè)定的解密算法進(jìn)行解密。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選定的密鑰生成算法和數(shù)字簽名算法為預(yù)先根據(jù)MG和MGC所支持的密鑰生成算法和數(shù)字簽名算法設(shè)定的。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述接入請(qǐng)求命令中進(jìn)一步攜帶有MG側(cè)所支持的密鑰生成算法或數(shù)字簽名算法對(duì)應(yīng)的算法標(biāo)識(shí)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述選定的密鑰生成算法和數(shù)字簽名算法為MGC根據(jù)接入請(qǐng)求命令中的算法標(biāo)識(shí)確定的,該算法確定過程進(jìn)一步包括MGC收到MG發(fā)來的接入請(qǐng)求命令后,判斷是否攜帶有算法標(biāo)識(shí),如果攜帶有MG支持的算法標(biāo)識(shí),則MGC根據(jù)MG支持的算法選定所要使用的密鑰生成算法和數(shù)字簽名算法,并將選定的密鑰生成算法和數(shù)字簽名算法對(duì)應(yīng)的算法標(biāo)識(shí)發(fā)送給MG;否則,MGC直接采用預(yù)先設(shè)定的密鑰生成算法和數(shù)字簽名算法。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述MG和MGC的共享密鑰Ki存儲(chǔ)于MG和MGC設(shè)備中不易被讀取的位置。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括設(shè)置一附加鑒權(quán)參數(shù)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,MG和MGC分別根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki、確定的密鑰生成算法以及附加鑒權(quán)參數(shù)計(jì)算鑒權(quán)密鑰。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,MG和MGC分別根據(jù)MGC生成的隨機(jī)數(shù)Rand、共享密鑰Ki、確定的數(shù)字簽名算法以及附加鑒權(quán)參數(shù)計(jì)算簽名字。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置一隨機(jī)數(shù),MGC將該隨機(jī)數(shù)以明文方式在保留字段發(fā)送給MG。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MG設(shè)備中設(shè)置一隨機(jī)數(shù),MG將該隨機(jī)數(shù)以明文方式在保留字段發(fā)送給MGC。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為分別在MG和MGC設(shè)備中設(shè)置對(duì)應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對(duì)應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù)。
16.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述設(shè)置附加鑒權(quán)參數(shù)為在MGC設(shè)備中設(shè)置與當(dāng)前通信的MG相對(duì)應(yīng)的計(jì)數(shù)器或時(shí)鐘,以當(dāng)前計(jì)數(shù)器值或時(shí)鐘對(duì)應(yīng)的當(dāng)前時(shí)戳值作為附加鑒權(quán)參數(shù);并且,MGC將當(dāng)前計(jì)數(shù)器值發(fā)送給MG。
17.根據(jù)權(quán)利要求15或16所述的方法,其特征在于,所述計(jì)數(shù)器初始值為0或1。
18.根據(jù)權(quán)利要求16所述的方法,其特征在于,MGC將當(dāng)前計(jì)數(shù)器值放置在MGC請(qǐng)求命令的保留字段中發(fā)送給MG。
19.根據(jù)權(quán)利要求15或16所述的方法,其特征在于,步驟a中MGC在計(jì)算自身簽名字之后,步驟a進(jìn)一步包括MGC將當(dāng)前計(jì)數(shù)器值加1。
20.根據(jù)權(quán)利要求15所述的方法,其特征在于,MG在計(jì)算鑒權(quán)密鑰之后,該方法進(jìn)一步包括MG將當(dāng)前計(jì)數(shù)器值加1。
全文摘要
本發(fā)明公開了一種基于媒體網(wǎng)關(guān)控制協(xié)議的安全認(rèn)證方法,該方法是預(yù)先在媒體網(wǎng)關(guān)(MG)和媒體網(wǎng)關(guān)控制器(MGC)中設(shè)置MGC和對(duì)應(yīng)MG的共享密鑰K
文檔編號(hào)H04L12/66GK1571407SQ0314950
公開日2005年1月26日 申請(qǐng)日期2003年7月14日 優(yōu)先權(quán)日2003年7月14日
發(fā)明者鄭志彬, 魏強(qiáng) 申請(qǐng)人:華為技術(shù)有限公司