国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種設(shè)備間安全通信的方法

      文檔序號(hào):7627753閱讀:176來(lái)源:國(guó)知局
      專利名稱:一種設(shè)備間安全通信的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及NGN通信安全技術(shù)領(lǐng)域,特別是指一種設(shè)備間安全通信的方法。
      背景技術(shù)
      隨著IP技術(shù)在電信領(lǐng)域內(nèi)的大量使用,IP網(wǎng)絡(luò)本身的安全性和可靠性已逐漸成為該技術(shù)在高安全性要求的電信網(wǎng)絡(luò)中商用的一個(gè)急需解決的關(guān)鍵問(wèn)題。
      由于IP網(wǎng)絡(luò)的開放性,任何人只要能夠接入IP網(wǎng)絡(luò),便可截獲和分析IP網(wǎng)絡(luò)中傳送的通訊數(shù)據(jù),或者隨時(shí)向網(wǎng)絡(luò)中任何設(shè)備發(fā)送任何格式的消息報(bào)文。由于IP包本身并不具有任何安全特性,因此IP包的地址可以被輕易的進(jìn)行偽造仿冒。下面參見(jiàn)附圖對(duì)消息的仿冒問(wèn)題及其危害進(jìn)行詳細(xì)描述如圖1所示,A向B發(fā)送請(qǐng)求消息請(qǐng)求完成某項(xiàng)業(yè)務(wù),正常情況下B收到A的請(qǐng)求消息后執(zhí)行請(qǐng)求命令并向A返回執(zhí)行結(jié)果(即響應(yīng)消息)。但是,當(dāng)攻擊者接入IP網(wǎng)絡(luò)后可以截獲A向B的請(qǐng)求消息并假冒B的身份向A返回一個(gè)仿冒的響應(yīng)消息,而A收到這個(gè)仿冒消息后會(huì)當(dāng)作是從真實(shí)的B設(shè)備收到的響應(yīng)消息并完成某個(gè)動(dòng)作。
      以IP電話為例,網(wǎng)絡(luò)服務(wù)器A向B發(fā)起呼叫建立請(qǐng)求,正常情況下B應(yīng)該將呼叫路由到真正的被叫用戶并等待被叫用戶摘機(jī)后向A返回應(yīng)答消息,但攻擊者有可能向A立即返回失敗響應(yīng)消息造成呼叫無(wú)法正常接通,或者攻擊者向A返回成功應(yīng)答消息造成呼叫“假成功”,導(dǎo)致接續(xù)異常。
      如圖2所示,攻擊者也有可能會(huì)仿冒A向B發(fā)送大量的請(qǐng)求消息,B收到仿冒消息后會(huì)當(dāng)作是從真實(shí)的A設(shè)備收到的響應(yīng)消息并完成某個(gè)動(dòng)作,從而會(huì)消耗大量的B設(shè)備資源并造成正常業(yè)務(wù)中斷,嚴(yán)重的時(shí)候會(huì)影響到用戶業(yè)務(wù)和數(shù)據(jù)的安全性。
      為了避免IP包的仿冒,提高IP網(wǎng)絡(luò)基礎(chǔ)的電信業(yè)務(wù)的安全性,目前,已經(jīng)有一些方案來(lái)解決這個(gè)問(wèn)題,下面進(jìn)行說(shuō)明會(huì)話發(fā)起協(xié)議(SIP)引用了HTTP DIGEST協(xié)議來(lái)完成SIP用戶接入時(shí)的認(rèn)證和鑒權(quán),下面參見(jiàn)圖3示出的呼叫流程對(duì)HTTP DIGEST認(rèn)證過(guò)程進(jìn)行描述。其中,僅對(duì)和認(rèn)證相關(guān)的信令消息進(jìn)行說(shuō)明,包括以下步驟在需要向軟交換設(shè)備B發(fā)起呼叫時(shí),軟交換設(shè)備A向B發(fā)送INVITE請(qǐng)求消息請(qǐng)求建立呼叫。該INVITE消息中并沒(méi)有攜帶任何認(rèn)證信息。
      當(dāng)軟交換設(shè)備B收到A發(fā)起的不包含認(rèn)證信息的INVITE后,向A返回407響應(yīng)消息來(lái)發(fā)起呼叫認(rèn)證過(guò)程,該響應(yīng)消息中的一個(gè)頭域Proxy-Authenticate攜帶的參數(shù)中包含了B生成的一隨機(jī)數(shù)nonce。
      收到響應(yīng)消息后,軟交換設(shè)備A重新向B發(fā)起INVITE請(qǐng)求消息,該消息通過(guò)一頭域攜帶了A根據(jù)nonce生成的響應(yīng)參數(shù)response和所述的nonce。
      軟交換設(shè)備B收到所述INVITE消息后,按照HTTP DIGEST方法進(jìn)行驗(yàn)證,包括讀取Proxy-Authorization頭域,判斷該消息中的nonce是否與其發(fā)送給軟交換設(shè)備A的nonce相同,然后使用認(rèn)證方式定義的加密算法以及參數(shù)生成response,判斷是否與A發(fā)送過(guò)來(lái)的response相同,當(dāng)nonce與response均相同時(shí),B認(rèn)為該消息合法,進(jìn)行后續(xù)操作。
      從上可以看出,HTTP DIGEST認(rèn)證技術(shù)保證了發(fā)送消息雙方身份的確定性,但是,該技術(shù)方案通常只對(duì)INVITE等呼叫外請(qǐng)求消息進(jìn)行認(rèn)證,而對(duì)于呼叫內(nèi)的請(qǐng)求消息(如CANCEL、BYE等)并不進(jìn)行認(rèn)證。因此僅能夠解決仿冒INVITE等呼外請(qǐng)求消息的問(wèn)題,還無(wú)法解決仿冒其他消息的問(wèn)題以及消息重播的問(wèn)題。
      若對(duì)每個(gè)請(qǐng)求消息均采用HTTP DIGEST進(jìn)行認(rèn)證,則消息流程將變得非常復(fù)雜。這是因?yàn)?,各個(gè)設(shè)備已經(jīng)存在對(duì)呼叫的狀態(tài)機(jī),該狀態(tài)機(jī)已經(jīng)比較復(fù)雜了,如果要對(duì)所有請(qǐng)求消息使用HTTP DIGEST方式進(jìn)行認(rèn)證,如對(duì)CANCEL、ACK、UPDATE呼叫內(nèi)消息的認(rèn)證,則需要對(duì)每個(gè)消息都要增加一個(gè)狀態(tài)機(jī)以激活認(rèn)證和生成認(rèn)證參數(shù),很明顯會(huì)使得實(shí)現(xiàn)變得極其的復(fù)雜,因此不可能采用現(xiàn)有方式實(shí)現(xiàn)對(duì)響應(yīng)消息安全性的保證。

      發(fā)明內(nèi)容
      有鑒于此,本發(fā)明的主要目的在于提供了一種設(shè)備間安全通信的方法,以提高通信雙方的安全性,并且不必針對(duì)每個(gè)消息都增加狀態(tài)機(jī)。
      本發(fā)明提供的設(shè)備間安全通信的方法,包括以下步驟A、進(jìn)行互通的第一設(shè)備和第二設(shè)備通過(guò)協(xié)商確定一致的消息認(rèn)證加密參數(shù);B、第一設(shè)備發(fā)送消息時(shí)攜帶根據(jù)所述消息認(rèn)證加密參數(shù)生成的認(rèn)證信息;C、第二設(shè)備接收到所述消息后使用所述消息認(rèn)證加密參數(shù)生成認(rèn)證信息對(duì)接收的所述第一設(shè)備發(fā)送的消息所攜帶的認(rèn)證信息進(jìn)行認(rèn)證,在認(rèn)證通過(guò)后接受所述消息。
      其中,步驟A所述協(xié)商的步驟包括第一設(shè)備/第二設(shè)備生成至少包含隨機(jī)數(shù)nonce、最大序列號(hào)maxseq的消息認(rèn)證加密參數(shù),并發(fā)送給第二設(shè)備/第一設(shè)備。
      其中,進(jìn)一步包括收到所述消息認(rèn)證加密參數(shù)的第二設(shè)備/第一設(shè)備根據(jù)其配置調(diào)整所述最大序列號(hào)maxseq,并返回給發(fā)送消息認(rèn)證加密參數(shù)的第一設(shè)備/第二設(shè)備。
      其中,步驟B所述生成的認(rèn)證信息包括表示不同消息的序列號(hào)seq,隨機(jī)數(shù)nonce,根據(jù)序列號(hào)seq和隨機(jī)數(shù)nonce生成的加密密文response。
      其中,步驟B所述生成的認(rèn)證信息包括表示不同呼叫外消息的序列號(hào)seq和表示呼叫內(nèi)不同消息的子序列號(hào)seq-sub,隨機(jī)數(shù)nonce,根據(jù)序列號(hào)seq、子序列號(hào)seq-sub和隨機(jī)數(shù)nonce生成的加密密文response。
      其中,所述進(jìn)行互通的第一設(shè)備和第二設(shè)備在一定條件下重新協(xié)商確定一致的消息認(rèn)證加密參數(shù)。
      其中,所述一定條件包括定期,或序列號(hào)seq使用超過(guò)所述最大序列號(hào)maxseq的一定百分比。
      其中,所述協(xié)商的步驟進(jìn)一步包括使用HTTP DEGEST的方式保證所述協(xié)商過(guò)程的安全性。
      其中,步驟C所述使用所述消息認(rèn)證加密參數(shù)生成認(rèn)證信息對(duì)接收的消息所攜帶的認(rèn)證信息進(jìn)行認(rèn)證的步驟包括根據(jù)第一設(shè)備同樣的算法生成加密密文response,判斷該加密密文response是否與接收的消息所攜帶的認(rèn)證信息中的加密密文response一致,若是則認(rèn)證通過(guò),否則認(rèn)證失敗。
      其中,認(rèn)證信息包括表示不同消息的序列號(hào)seq、隨機(jī)數(shù)nonce時(shí),所述認(rèn)證步驟進(jìn)一步包括第二設(shè)備判斷接收的消息所攜帶的認(rèn)證信息中的隨機(jī)數(shù)nonce值與其存儲(chǔ)的隨機(jī)數(shù)nonce相同時(shí),進(jìn)一步,判斷接收的消息所攜帶的序列號(hào)seq未被當(dāng)前對(duì)端發(fā)起的其他消息使用過(guò)時(shí),認(rèn)證成功,否則認(rèn)證失敗。
      其中,判斷接收的消息所攜帶的序列號(hào)seq被當(dāng)前對(duì)端發(fā)起的其他消息使用過(guò)時(shí),進(jìn)一步包括判斷該消息是否是上次使用相同序列號(hào)seq消息的應(yīng)用層重傳,若是,則應(yīng)用層按照應(yīng)用層協(xié)議或規(guī)范定義按照重傳消息處理方式進(jìn)行處理,否則認(rèn)證失敗。
      其中,認(rèn)證信息包括表示不同呼叫外消息的序列號(hào)seq和表示呼叫內(nèi)不同消息的子序列號(hào)seq-sub、隨機(jī)數(shù)nonce時(shí),所述認(rèn)證步驟進(jìn)一步包括第二設(shè)備判斷接收的消息所攜帶的認(rèn)證信息中的隨機(jī)數(shù)nonce值與其存儲(chǔ)的隨機(jī)數(shù)nonce相同時(shí),進(jìn)一步,判斷序列號(hào)seq與其保存的序列號(hào)seq一致、子序列號(hào)sub-seq參數(shù)未被之前的相同序列號(hào)seq的消息使用過(guò)時(shí),認(rèn)證成功;否則認(rèn)證失敗。
      其中,判斷子序列號(hào)sub-seq參數(shù)被使用過(guò)時(shí),進(jìn)一步包括判斷該消息是否是上次使用相同序列號(hào)seq、相同子序列號(hào)sub-seq消息的應(yīng)用層重傳,若是,則應(yīng)用層按照應(yīng)用層協(xié)議或規(guī)范定義按照重傳消息處理方式進(jìn)行處理,否則認(rèn)證失敗。
      其中,認(rèn)證失敗后直接丟棄所述消息。
      由上述方法可以看出,在通信雙方進(jìn)行通信時(shí),本發(fā)明可以確定該消息是否來(lái)自對(duì)方而非作為攻擊者的第三方,解決了消息被仿冒的問(wèn)題,同時(shí)還可以避免消息的重放攻擊。
      具體來(lái)說(shuō),本發(fā)明所有消息中都需要攜帶一認(rèn)證信息,因此可以有效的保證請(qǐng)求和響應(yīng)消息的合法性,避免受到仿冒消息攻擊和消息重播攻擊。認(rèn)證信息置于消息頭域中,除了用于加密的隨機(jī)數(shù)同步過(guò)程以外不會(huì)新增任何新的消息交互,因此不需要針對(duì)每個(gè)消息都增加狀態(tài)機(jī),并且僅占用固定量的較少的系統(tǒng)資源。
      并且,由于用于加密的隨機(jī)數(shù)定期交互和協(xié)商,進(jìn)一步的提高了安全性,并且在密鑰協(xié)商的過(guò)程中進(jìn)一步采用加密方式來(lái)進(jìn)行協(xié)商,提高了隨機(jī)數(shù)傳輸?shù)目煽啃浴?br> 另一方面,使用了序列號(hào)、子序列號(hào)機(jī)制有效的防止重放攻擊,完成了對(duì)響應(yīng)消息的安全性保證。并且,本發(fā)明不限于所使用的協(xié)議,在SIP、MGCP、H.248、H.323等協(xié)議中均可使用。


      圖1為向主叫方發(fā)起攻擊的示意圖。
      圖2為向被叫方發(fā)起攻擊的示意圖。
      圖3為采用HTTP DIGEST方式進(jìn)行呼叫的示意圖。
      圖4為本發(fā)明認(rèn)證頭域的認(rèn)證和同步的流程圖。
      圖5為認(rèn)證過(guò)程流程圖。
      圖6為本發(fā)明SIP通信的實(shí)施例流程圖。
      具體實(shí)施例方式
      本發(fā)明的主要思想是進(jìn)行互通的兩個(gè)設(shè)備首先進(jìn)行用于加密的隨機(jī)數(shù)的協(xié)商和交換;使得在兩個(gè)設(shè)備上均保存有該隨機(jī)數(shù),然后在后續(xù)的信令交互中,攜帶所述隨機(jī)數(shù),由對(duì)方對(duì)該隨機(jī)數(shù)進(jìn)行鑒權(quán)來(lái)保證信令傳輸?shù)陌踩?br> 本發(fā)明可以分為以下兩個(gè)部分第一部分直接進(jìn)行互通的兩個(gè)設(shè)備間的認(rèn)證加密參數(shù)協(xié)商和交換過(guò)程,這個(gè)過(guò)程用來(lái)完成用于消息加密的隨機(jī)數(shù)等參數(shù)的協(xié)商、交換與同步。通過(guò)該過(guò)程雙方將得到一致的消息認(rèn)證加密參數(shù),該參數(shù)可包括用于認(rèn)證加密的隨機(jī)數(shù)nonce參數(shù)和最大序列號(hào)maxseq參數(shù)。
      第二部分完成認(rèn)證加密參數(shù)協(xié)商和交換后,任何一方向?qū)Χ税l(fā)送消息時(shí)都須攜帶消息認(rèn)證信息,該信息包含認(rèn)證加密參數(shù)以及據(jù)此生成的認(rèn)證信息;而對(duì)端接收到消息后都須首先對(duì)消息進(jìn)行認(rèn)證,認(rèn)證通過(guò)后才對(duì)消息進(jìn)行處理,若認(rèn)證未通過(guò)則丟棄消息。
      下面首先參見(jiàn)圖4示出的流程圖,對(duì)本發(fā)明兩個(gè)設(shè)備間的認(rèn)證加密參數(shù)協(xié)商和交換過(guò)程進(jìn)行詳細(xì)說(shuō)明。
      設(shè)備初始加載后,設(shè)備間除了預(yù)先配置的認(rèn)證密碼外尚沒(méi)有任何關(guān)于用于消息認(rèn)證的數(shù)據(jù),需要首先進(jìn)行認(rèn)證加密參數(shù)協(xié)商和交換過(guò)程,為了保證該過(guò)程的可靠性,本實(shí)施例中采用了HTTP DIGEST認(rèn)證方式來(lái)保證認(rèn)證加密參數(shù)交換過(guò)程的可靠性,包括以下步驟步驟401軟交換設(shè)備A進(jìn)入工作狀態(tài)后,首先向要進(jìn)行通信的軟交換設(shè)備B發(fā)起認(rèn)證加密參數(shù)同步請(qǐng)求。由于在進(jìn)行互通之前軟交換設(shè)備A和B之間沒(méi)有進(jìn)行消息認(rèn)證的任何信息,因此本步驟中認(rèn)證加密參數(shù)同步請(qǐng)求消息中不攜帶任何認(rèn)證信息。
      其中,本實(shí)施例中采用了HTTP DIGEST方式保證認(rèn)證加密參數(shù)同步過(guò)程中各消息的安全性以提高設(shè)備的抗攻擊能力。但不難理解,也可以采用其他方式來(lái)保證軟交換設(shè)備A與B之間同步過(guò)程的安全性,例如可以使用一種新的請(qǐng)求方法(如CASMAN-Create And Synchronize Message AuthenticateNonce),或使用現(xiàn)有SIP協(xié)議及其擴(kuò)展定義的方法。
      步驟402軟交換設(shè)備B檢測(cè)到接收的認(rèn)證加密參數(shù)同步請(qǐng)求中不包括任何設(shè)備間認(rèn)證信息,向A返回響應(yīng)消息發(fā)起設(shè)備間認(rèn)證過(guò)程。本例中,通過(guò)該響應(yīng)消息中的頭域Proxy-Authenticate攜帶B生成的HTTP-DIGEST認(rèn)證方法中必須的隨機(jī)數(shù)。
      步驟403軟交換設(shè)備A收到所述響應(yīng)消息后,由HTTP-DIGEST的規(guī)定根據(jù)響應(yīng)消息中攜帶的信息產(chǎn)生HTTP-DIGEST認(rèn)證頭域Proxy-Authenticate;同時(shí),產(chǎn)生本發(fā)明所需的消息認(rèn)證頭域Message-Authenticate。然后向B設(shè)備重新發(fā)起認(rèn)證加密參數(shù)同步請(qǐng)求,該同步請(qǐng)求包含所述HTTP-DIGEST認(rèn)證頭域Proxy-Authenticate以及所述消息認(rèn)證頭域Message-Authenticate。
      其中,所述消息認(rèn)證頭域Message-Authenticate可以為以下格式Message-AuthenticateMBMD,nonce=“j32423k54df5432654a52a4d32j52n3”,seq=1,sub-seq=0,response=“98743215116413019551354”,nnonce=“f84f1cec41e6cbe5aea9c8e88d359”,maxseq=1000000其中“MBMD”為消息加密方法,表示本例采用MBMD(Message ByMessage Digest)加密方法;還包括隨機(jī)數(shù)nonce參數(shù)、序列號(hào)seq參數(shù)、子序列號(hào)sub-seq參數(shù)、用于認(rèn)證加密的新隨機(jī)數(shù)nnonce參數(shù)、最大序列號(hào)maxseq參數(shù)以及經(jīng)過(guò)特定算法得到的加密密文response參數(shù)等。其中,nnonce和maxseq僅存在認(rèn)證加密參數(shù)協(xié)商和交換過(guò)程,sub-seq參數(shù)為可選參數(shù),其余各參數(shù)存在于設(shè)備間采用MBMD進(jìn)行消息認(rèn)證的所有消息中。不難理解,實(shí)際實(shí)施過(guò)程中可能會(huì)增加新的參數(shù)或者使用其他參數(shù)名稱。
      對(duì)于response參數(shù)的生成,根據(jù)所采用的加密算法不同,生成的值會(huì)不同,加密算法可以是公知的加密算法。例如可以根據(jù)隨機(jī)數(shù)nonce、密碼password(軟交換之間預(yù)先配置的交互密碼password,該密碼為一可打印字符組成的字符串)、序列號(hào)seq等信息生成,若消息中包含有sub-seq,則除了上述參數(shù),還可包含sub-seq參數(shù)來(lái)生成response。
      步驟404軟交換設(shè)備B收到消息認(rèn)證加密參數(shù)同步請(qǐng)求消息后,首先根據(jù)HTTP-DIGEST認(rèn)證頭域Proxy-Authenticate對(duì)請(qǐng)求消息進(jìn)行認(rèn)證,這個(gè)過(guò)程和現(xiàn)有技術(shù)相同。
      認(rèn)證通過(guò)后,軟交換設(shè)備B記錄Message-Authenticate中的nnonce、maxseq等消息認(rèn)證相關(guān)參數(shù)。若有必要,還根據(jù)本地?cái)?shù)據(jù)配置縮小maxseq的值,然后根據(jù)請(qǐng)求消息中的消息認(rèn)證頭域生成響應(yīng)消息中的消息認(rèn)證頭域,返回對(duì)請(qǐng)求消息的響應(yīng)消息。
      步驟405軟交換設(shè)備A收到響應(yīng)消息后,首先根據(jù)響應(yīng)消息中消息認(rèn)證頭域Message-Authenticate對(duì)響應(yīng)消息進(jìn)行認(rèn)證,例如判斷該消息中的response是否與步驟403生成的相等,A設(shè)備還會(huì)根據(jù)響應(yīng)消息中消息認(rèn)證頭域更新步驟403生成的maxseq參數(shù)。
      從上可以看出,經(jīng)過(guò)上述步驟后,軟交換設(shè)備A、B之間通過(guò)消息認(rèn)證頭域完成了以下消息認(rèn)證過(guò)程必須的信息同步nonce用于消息加密的隨機(jī)數(shù)。
      maxseq最大序列號(hào)。
      如圖4示出的步驟406~407,是后續(xù)的認(rèn)證同步過(guò)程。該過(guò)程可以是定時(shí)觸發(fā),也可以是根據(jù)某狀態(tài)觸發(fā),例如當(dāng)任何通信的一方發(fā)覺(jué)序列號(hào)seq的使用率已達(dá)到或超過(guò)某一閾值(可通過(guò)設(shè)備本地?cái)?shù)據(jù)配置等方式獲得,如75%)時(shí),則發(fā)起新的協(xié)商過(guò)程重新同步nonce。下面對(duì)該過(guò)程進(jìn)行詳述步驟406軟交換設(shè)備A發(fā)覺(jué)序列號(hào)的使用率已達(dá)到或超過(guò)某一閾值后,向設(shè)備B發(fā)起認(rèn)證加密參數(shù)同步過(guò)程,以同步新的nonce和相關(guān)參數(shù)。
      發(fā)出的認(rèn)證加密參數(shù)同步請(qǐng)求消息的消息認(rèn)證頭域中,包含nonce、seq、response等參數(shù),同時(shí)還需要包含新的隨機(jī)數(shù)nnonce以及最大序列號(hào)maxseq。
      步驟407收到所述認(rèn)證加密參數(shù)同步請(qǐng)求消息后,軟交換設(shè)備B首先對(duì)消息進(jìn)行認(rèn)證(認(rèn)證過(guò)程在后文進(jìn)行描述),認(rèn)證通過(guò)后設(shè)備B記錄用于消息認(rèn)證加密的隨機(jī)數(shù)nonce為nnonce的值,及maxseq參數(shù),若有必要,還根據(jù)本地?cái)?shù)據(jù)配置縮小maxseq的值。并根據(jù)請(qǐng)求消息中的消息認(rèn)證頭域生成響應(yīng)消息中的消息認(rèn)證頭域,置于響應(yīng)消息中返回給軟交換設(shè)備A。
      步驟408軟交換設(shè)備A收到響應(yīng)消息后,首先根據(jù)響應(yīng)消息中的消息認(rèn)證頭域?qū)憫?yīng)消息進(jìn)行認(rèn)證,并且,設(shè)備A還可能根據(jù)響應(yīng)消息中消息認(rèn)證頭域更新消息認(rèn)證maxseq參數(shù)。
      考慮到產(chǎn)生新nonce的設(shè)備B在發(fā)送響應(yīng)消息后到A方響應(yīng)會(huì)有一段網(wǎng)絡(luò)延時(shí),因此響應(yīng)方B可在發(fā)送請(qǐng)求消息后延時(shí)一段時(shí)間(建議10秒)后啟用nnonce作為新的nonce。而響應(yīng)接收方A在收到響應(yīng)消息后立即啟用nnoce作為新的nonce。
      完成認(rèn)證加密參數(shù)協(xié)商和交換后,任何一方向?qū)Χ税l(fā)送的消息中都包含Message-Authenticate頭域,該頭域中包含的認(rèn)證信息如上述步驟403中所述,包括雙方協(xié)商好的值為nnonce的nonce、本次所生成的seq、一個(gè)可選的子序列號(hào)sub-seq以及經(jīng)過(guò)特定算法產(chǎn)生的加密密文response。
      其中,seq是一個(gè)從未被本端發(fā)起的呼叫使用過(guò)的序列號(hào),若之前使用過(guò)該seq,則該seq后續(xù)將不再次被使用(或稱之為失效)。并且,本發(fā)明使用子序列號(hào)sub-seq來(lái)標(biāo)識(shí)一個(gè)呼叫內(nèi)不同的消息,當(dāng)使用sub-seq時(shí),sub-seq從0開始隨消息發(fā)送順序逐漸遞增,每次遞增增量為1。當(dāng)然對(duì)于呼叫內(nèi)的消息交互也可以只使用seq而不使用sub-seq。這里需要說(shuō)明的是,對(duì)于非呼叫內(nèi)的事務(wù)過(guò)程由于通常只有一個(gè)請(qǐng)求消息和一個(gè)響應(yīng)消息,可以不使用sub-seq。
      任何一方從對(duì)端接收到消息后,首先對(duì)消息進(jìn)行認(rèn)證,僅在認(rèn)證通過(guò)后才對(duì)消息進(jìn)行處理,否則丟棄消息。參見(jiàn)圖5所示,該認(rèn)證過(guò)程包括以下步驟步驟501收到消息的軟交換設(shè)備判斷該消息中的nonce值是否與其存儲(chǔ)的nonce相同,若是,則執(zhí)行步驟502;否則認(rèn)為認(rèn)證失敗。
      步驟502若判斷是呼叫外消息(Out of a dialog)(呼叫內(nèi)消息是指屬于某個(gè)已經(jīng)建立的對(duì)話的消息,而呼叫外消息是指不歸屬于任何一個(gè)已經(jīng)建立的對(duì)話的消息。如,用于建立呼叫的INVITE消息屬于呼叫外消息,而呼叫建立后用于媒體改向的INVITE,俗稱re-INVITE,屬于呼叫內(nèi)消息),進(jìn)一步判斷seq是否被之前從當(dāng)前對(duì)端發(fā)起的其他呼叫使用過(guò),是則認(rèn)證失?。环駝t執(zhí)行步驟504;若判斷是呼叫內(nèi)消息(Within a dialog),則進(jìn)一步判斷seq是否與設(shè)備保存的seq一致,若是,則執(zhí)行步驟503;否則認(rèn)證失敗。
      步驟503判斷所述消息包含的sub-seq參數(shù)是否被之前的相同seq的消息使用過(guò),若未被使用過(guò),則執(zhí)行步驟504。
      若被使用過(guò),進(jìn)一步判斷該消息是否是上次使用相同seq、相同sub-seq的消息的應(yīng)用層重傳(本次之前收到完全相同的消息就認(rèn)為是消息重傳),若是,則應(yīng)用層按照應(yīng)用層協(xié)議或規(guī)范定義按照重傳消息處理方式進(jìn)行處理,否則認(rèn)證失敗。
      步驟504消息接收者根據(jù)消息發(fā)送者同樣的算法生成加密密文response,判斷該密文是否與消息中攜帶的加密密文response參數(shù)一致,若是則認(rèn)證通過(guò),否則認(rèn)證失敗。
      上述任何一個(gè)步驟驗(yàn)證失敗,則直接丟棄消息而不對(duì)消息作任何進(jìn)一步的處理,若上述步驟依次執(zhí)行完后認(rèn)證通過(guò),則按照現(xiàn)有的處理方式對(duì)消息進(jìn)行處理。
      下面參見(jiàn)圖6示出的SIP通信的實(shí)施例,來(lái)對(duì)交互信令消息的加密和認(rèn)證過(guò)程舉例進(jìn)行說(shuō)明,包括以下步驟
      步驟601呼叫發(fā)起方設(shè)備A在發(fā)送INVITE消息時(shí)選取一個(gè)尚未失效的加密序列號(hào)seq,并使用nonce等生成消息認(rèn)證頭域,其中nonce為隨機(jī)數(shù),seq為選取的尚未失效的加密序列號(hào),sub-seq為0,以及加密后的密文response。
      可采用下述算法計(jì)算response如果有sub-seq則response=bASE64(nonce“”seq“”sub-seq“”role),表示response依據(jù)參數(shù)nonce、seq、sub-seq、role來(lái)進(jìn)行計(jì)算如果無(wú)sub-seq則response=bASE64(nonce“”seq“”role),表示response依據(jù)參數(shù)nonce、seq、role來(lái)進(jìn)行計(jì)算其中,如果是由本端發(fā)起的呼叫則參數(shù)role為“l(fā)ocal”,否則為“remote”。如果業(yè)務(wù)初試請(qǐng)求是由本端發(fā)起則參數(shù)role為“l(fā)ocal”,否則為“remote”。
      步驟602設(shè)備B收到所述INVITE請(qǐng)求消息后首先對(duì)消息進(jìn)行認(rèn)證。
      認(rèn)證通過(guò)后向A返回100響應(yīng)消息,其中帶有nonce、seq、sub-seq以及加密后的密文response,其中nonce、seq與INVITE請(qǐng)求消息中的nonce和seq分別一致,sub-seq為0,response為加密后的密文,計(jì)算response的加密算法與步驟601相同,這一點(diǎn),以后不再說(shuō)明。
      設(shè)備A收到該響應(yīng)消息后首先對(duì)消息進(jìn)行認(rèn)證(包括判斷消息中的response是否合法),認(rèn)證通過(guò)后對(duì)該響應(yīng)消息進(jìn)行處理。
      步驟603~604設(shè)備B向A發(fā)送180、200響應(yīng)消息時(shí)同樣需要生成消息認(rèn)證頭域,其中帶有nonce、seq、sub-seq以及密文response,其中nonce、seq與INVITE請(qǐng)求消息中的nonce和seq分別一致,sub-seq分別為1和2,response為密文。
      步驟605收到180、200響應(yīng)消息后設(shè)備A首先對(duì)消息進(jìn)行認(rèn)證,認(rèn)證通過(guò)后對(duì)該響應(yīng)消息進(jìn)行處理。
      如果是200響應(yīng)消息,則設(shè)備A需要返回對(duì)200響應(yīng)消息的ACK,ACK消息帶有nonce、seq、sub-seq以及密文response,其中nonce、seq與INVITE請(qǐng)求消息中的nonce和seq分別一致,sub-seq分別為1,response為密文。
      設(shè)備B收到該響應(yīng)消息后首先對(duì)消息進(jìn)行認(rèn)證,認(rèn)證通過(guò)后對(duì)該響應(yīng)消息進(jìn)行處理。
      步驟606用戶掛機(jī)后設(shè)備A向B發(fā)送BYE請(qǐng)求消息,BYE消息帶有nonce、seq、sub-seq以及密文response,其中nonce、seq與INVITE請(qǐng)求消息中的nonce和seq分別一致,sub-seq分別為2,response為密文。
      步驟606設(shè)備B收到該響應(yīng)消息后首先對(duì)消息進(jìn)行認(rèn)證(包括判斷消息中的response是否合法等),認(rèn)證通過(guò)后對(duì)該響應(yīng)消息進(jìn)行處理。
      設(shè)備B向A發(fā)送對(duì)BYE請(qǐng)求的200響應(yīng)消息時(shí)同樣需要生成消息認(rèn)證頭域,其中帶有nonce、seq、sub-seq以及加密后的密文response,其中nonce、seq與INVITE請(qǐng)求消息中的nonce和seq分別一致,sub-seq分別為3,response為密文。
      設(shè)備A收到該響應(yīng)消息后首先對(duì)消息進(jìn)行認(rèn)證,認(rèn)證通過(guò)后對(duì)該響應(yīng)消息進(jìn)行處理。
      從上面實(shí)施例可以看出,本發(fā)明通信的兩端采用nonce進(jìn)行通信,所有消息中都需要攜帶認(rèn)證信息,因此可以有效的保證請(qǐng)求和響應(yīng)消息所有消息的合法性,避免受到仿冒消息攻擊。認(rèn)證信息置于消息頭域中,除了nonce同步過(guò)程以外不會(huì)新增任何新的消息交互,因此不需要針對(duì)每個(gè)消息都增加狀態(tài)機(jī),并且僅占用固定量的較少的系統(tǒng)資源。并且,使用了兩個(gè)序列號(hào)(seq、sub-seq)確保每個(gè)消息的唯一性,可以有效的防止重播攻擊。并且,sub-seq可以減緩seq序列號(hào)的耗盡速度。
      以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種設(shè)備間安全通信的方法,其特征在于,該方法包括以下步驟A、進(jìn)行互通的第一設(shè)備和第二設(shè)備通過(guò)協(xié)商確定一致的消息認(rèn)證加密參數(shù);B、第一設(shè)備發(fā)送消息時(shí)攜帶根據(jù)所述消息認(rèn)證加密參數(shù)生成的認(rèn)證信息;C、第二設(shè)備接收到所述消息后,使用所述消息認(rèn)證加密參數(shù)生成認(rèn)證信息對(duì)接收的所述第一設(shè)備發(fā)送的消息所攜帶的認(rèn)證信息進(jìn)行認(rèn)證,在認(rèn)證通過(guò)后接受所述消息。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A所述協(xié)商的步驟包括第一設(shè)備/第二設(shè)備生成至少包含隨機(jī)數(shù)nonce、最大序列號(hào)maxseq的消息認(rèn)證加密參數(shù),并發(fā)送給第二設(shè)備/第一設(shè)備。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,進(jìn)一步包括收到所述消息認(rèn)證加密參數(shù)的第二設(shè)備/第一設(shè)備根據(jù)其配置調(diào)整所述最大序列號(hào)maxseq,并返回給發(fā)送消息認(rèn)證加密參數(shù)的第一設(shè)備/第二設(shè)備。
      4.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟B所述生成的認(rèn)證信息包括表示不同消息的序列號(hào)seq,隨機(jī)數(shù)nonce,根據(jù)序列號(hào)seq和隨機(jī)數(shù)nonce生成的加密密文response。
      5.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟B所述生成的認(rèn)證信息包括表示不同呼叫外消息的序列號(hào)seq和表示呼叫內(nèi)不同消息的子序列號(hào)seq-sub,隨機(jī)數(shù)nonce,根據(jù)序列號(hào)seq、子序列號(hào)seq-sub和隨機(jī)數(shù)nonce生成的加密密文response。
      6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述進(jìn)行互通的第一設(shè)備和第二設(shè)備在一定條件下重新協(xié)商確定一致的消息認(rèn)證加密參數(shù)。
      7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述一定條件包括定期,或序列號(hào)seq使用超過(guò)所述最大序列號(hào)maxseq的一定百分比。
      8.根據(jù)權(quán)利要求1或6所述的方法,其特征在于,所述協(xié)商的步驟進(jìn)一步包括使用HTTP DEGEST的方式保證所述協(xié)商過(guò)程的安全性。
      9.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟C所述使用所述消息認(rèn)證加密參數(shù)生成認(rèn)證信息對(duì)接收的消息所攜帶的認(rèn)證信息進(jìn)行認(rèn)證的步驟包括根據(jù)第一設(shè)備同樣的算法生成加密密文response,判斷該加密密文response是否與接收的消息所攜帶的認(rèn)證信息中的加密密文response一致,若是則認(rèn)證通過(guò),否則認(rèn)證失敗。
      10.根據(jù)權(quán)利要求9所述的方法,其特征在于,認(rèn)證信息包括表示不同消息的序列號(hào)seq、隨機(jī)數(shù)nonce時(shí),所述認(rèn)證步驟進(jìn)一步包括第二設(shè)備判斷接收的消息所攜帶的認(rèn)證信息中的隨機(jī)數(shù)nonce值與其存儲(chǔ)的隨機(jī)數(shù)nonce相同時(shí),進(jìn)一步,判斷接收的消息所攜帶的序列號(hào)seq未被當(dāng)前對(duì)端發(fā)起的其他消息使用過(guò)時(shí),認(rèn)證成功,否則認(rèn)證失敗。
      11.根據(jù)權(quán)利要求10所述的方法,其特征在于,判斷接收的消息所攜帶的序列號(hào)seq被當(dāng)前對(duì)端發(fā)起的其他消息使用過(guò)時(shí),進(jìn)一步包括判斷該消息是否是上次使用相同序列號(hào)seq消息的應(yīng)用層重傳,若是,則應(yīng)用層按照應(yīng)用層協(xié)議或規(guī)范定義按照重傳消息處理方式進(jìn)行處理,否則認(rèn)證失敗。
      12.根據(jù)權(quán)利要求9所述的方法,其特征在于,認(rèn)證信息包括表示不同呼叫外消息的序列號(hào)seq和表示呼叫內(nèi)不同消息的子序列號(hào)seq-sub、隨機(jī)數(shù)nonce時(shí),所述認(rèn)證步驟進(jìn)一步包括第二設(shè)備判斷接收的消息所攜帶的認(rèn)證信息中的隨機(jī)數(shù)nonce值與其存儲(chǔ)的隨機(jī)數(shù)nonce相同時(shí),進(jìn)一步,判斷序列號(hào)seq與其保存的序列號(hào)seq一致、子序列號(hào)sub-seq參數(shù)未被之前的相同序列號(hào)seq的消息使用過(guò)時(shí),認(rèn)證成功;否則認(rèn)證失敗。
      13.根據(jù)權(quán)利要求11所述的方法,其特征在于,判斷子序列號(hào)sub-seq參數(shù)被使用過(guò)時(shí),進(jìn)一步包括判斷該消息是否是上次使用相同序列號(hào)seq、相同子序列號(hào)sub-seq消息的應(yīng)用層重傳,若是,則應(yīng)用層按照應(yīng)用層協(xié)議或規(guī)范定義按照重傳消息處理方式進(jìn)行處理,否則認(rèn)證失敗。
      14.根據(jù)權(quán)利要求1、9到13中的任一權(quán)利要求所述的方法,其特征在于,認(rèn)證失敗后直接丟棄所述消息。
      全文摘要
      本發(fā)明提供了一種設(shè)備間安全通信的方法,包括首先,直接進(jìn)行互通的兩個(gè)設(shè)備間進(jìn)行認(rèn)證加密參數(shù)協(xié)商和交換過(guò)程,用來(lái)完成消息認(rèn)證隨機(jī)數(shù)等參數(shù)的協(xié)商、交換與同步,使雙方將得到一致的消息認(rèn)證加密參數(shù),該參數(shù)可包括用于認(rèn)證加密的隨機(jī)數(shù)參數(shù)和最大序列號(hào)參數(shù);之后,任何一方向?qū)Χ税l(fā)送消息時(shí)都須攜帶消息認(rèn)證信息,該信息包含消息認(rèn)證加密參數(shù)以及據(jù)此生成的認(rèn)證信息;而對(duì)端接收到消息后都須首先對(duì)消息進(jìn)行認(rèn)證,認(rèn)證通過(guò)后才對(duì)消息進(jìn)行處理,若認(rèn)證未通過(guò)則丟棄消息。使用本發(fā)明,可提高通信雙方的安全性,并且不必針對(duì)每個(gè)消息都增加狀態(tài)機(jī),減小通信雙方的負(fù)擔(dān)。
      文檔編號(hào)H04L29/06GK1881870SQ20051012369
      公開日2006年12月20日 申請(qǐng)日期2005年11月18日 優(yōu)先權(quán)日2005年11月18日
      發(fā)明者王鵬 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1