專利名稱:使用認證令牌來授權(quán)防火墻打開針孔的制作方法
技術(shù)領(lǐng)域:
本發(fā)明中描述的實施例一般地涉及網(wǎng)絡(luò)安全,并且更具體地涉及使用認證令牌 (authentication token)來授權(quán)(authorize)防火墻打開針孑L (pinhole)。
背景技術(shù):
眾所周知,RTP (實時協(xié)議的略稱)提供了用于輸運諸如流傳輸音頻和視頻(例如, VoIP電話呼叫)之類的實時媒體數(shù)據(jù)的因特網(wǎng)標(biāo)準(zhǔn)協(xié)議。當(dāng)然,其它協(xié)議也可用來創(chuàng)建并管理計算機網(wǎng)絡(luò)上的媒體流。允許這樣的媒體流過防火墻的常見方法是防火墻檢查信令消息(例如SIP)以識別與媒體將用于數(shù)據(jù)流(例如,經(jīng)由UDP的RTP)的IP地址和端口有關(guān)的信息。一旦經(jīng)過識別,防火墻打開“針孔”,該“針孔”允許媒體流經(jīng)該防火墻去往所希望的目的地(如果目的地地址和/或端口被授權(quán)接收這樣的流量的話)。然而,如果信令被加密(經(jīng)常是這樣的),則防火墻無法檢查信令的實質(zhì)以識別目的地地址和/或端口。此外,如果信令和實際媒體流經(jīng)過不同路徑穿越(traverse)網(wǎng)絡(luò),則無法保證實際接收到媒體的防火墻將明白應(yīng)當(dāng)為這樣的媒體打開針孔。該后一種情形可以通過約束網(wǎng)絡(luò)設(shè)計以迫使信令和媒體流經(jīng)同一防火墻來解決。然而,該方法通常導(dǎo)致不自然的網(wǎng)絡(luò)設(shè)計選擇以便迫使消息信令和后續(xù)的實時數(shù)據(jù)流兩者使用相同網(wǎng)絡(luò)路徑。因此,存在對使用認證令牌來授權(quán)防火墻為某些媒體流打開針孔的技術(shù)的需要;尤其是為承載了實時流傳輸媒體數(shù)據(jù)的媒體流(例如,利用經(jīng)由UDP的RTP輸運的VoIP呼叫)打開針孔。
發(fā)明內(nèi)容
本發(fā)明中描述的實施例一般地提供了用于使用認證令牌來授權(quán)防火墻打開針孔的方法和裝置。這里描述的一個實施例包括一種系統(tǒng)。該系統(tǒng)一般可以包括具有處理器和包含程序的存儲器的網(wǎng)絡(luò)設(shè)備。該程序一般可被配置為接收用來授權(quán)穿越網(wǎng)絡(luò)設(shè)備去往目的地端點的媒體流的消息。請求本身可以包括密碼授權(quán)令牌(CAT)以及描述媒體流的源端點和目的地端點的流數(shù)據(jù)。該網(wǎng)絡(luò)程序還可以被配置為評估CAT以判斷CAT是否是由經(jīng)授權(quán)的呼叫控制器生成的。評估至少部分地基于網(wǎng)絡(luò)設(shè)備和經(jīng)授權(quán)的呼叫控制器兩者知道的共享私密(shared secret)。當(dāng)確定CAT是由經(jīng)授權(quán)的呼叫控制器生成的時,由網(wǎng)絡(luò)設(shè)備打開針孔,以允許來自源端點的網(wǎng)絡(luò)流量經(jīng)過網(wǎng)絡(luò)設(shè)備去往目的地端點。在特定實施例中,該消息還可以包括指示CAT被生成的時間的偽時間 (pseudo-time)、?;铑l率時段以及相對于偽時間指定的CAT使用期限時段。此外,網(wǎng)絡(luò)設(shè)備可以要求在針孔被打開之后的每個連續(xù)的?;铑l率時段內(nèi)接收到?;钕?keep-alive message),以使得針孔持續(xù)保持打開達CAT使用期限時段(也是相對于偽時間確定的)的持續(xù)時間。另外,生成了用于授權(quán)防火墻打開針孔的CAT的呼叫控制器還可被配置來向受信任中繼點(TRP)授予保持特定針孔打開達給定CAT的使用期限的權(quán)限。為了使呼叫在超過該時段之后保持活躍(active),TRP可以在初始CAT期滿之前從呼叫控制器請求新的 CAT,并將其轉(zhuǎn)發(fā)給端點。CAT和?;钕烧咦鳛橛糜贜AT的會話穿越效用(STUN)消息通過網(wǎng)絡(luò)被發(fā)送。
為了可以詳細地理解本發(fā)明的上述特征,可以通過參考實施例得到在上面簡要概述的本發(fā)明的更具體描述,實施例中的一些在附圖中示出。然而,注意,附圖僅圖示出了本發(fā)明的典型實施例,因此,不應(yīng)認為是對其范圍的限制,因為本發(fā)明可以接納其它等效實施例。圖1圖示出了根據(jù)本發(fā)明的實施例的示例網(wǎng)絡(luò)拓撲。圖2是圖示出根據(jù)本發(fā)明的實施例的用于使用認證令牌來授權(quán)防火墻打開針孔的示例方法的流程圖。圖3是圖示出根據(jù)本發(fā)明的實施例的用于利用?;钕硎贯樋拙S持承載媒體流的方法的示例的流程圖。圖4A-4E圖示出了根據(jù)本發(fā)明的實施例的在圖1的示例網(wǎng)絡(luò)拓撲中使用認證令牌來授權(quán)防火墻打開針孔的網(wǎng)絡(luò)流量流。圖4F-4G圖示出了根據(jù)本發(fā)明的實施例的在圖1的示例網(wǎng)絡(luò)拓撲中使用認證令牌以便利用從認證令牌得到的保活消息來使針孔保持承載媒體流的網(wǎng)絡(luò)流量流。
具體實施例方式本發(fā)明描述了令牌的使用,令牌被生成來授權(quán)防火墻打開準(zhǔn)許某些網(wǎng)絡(luò)流量(例如用于實時媒體流的經(jīng)由UDP的RTP)穿過防火墻的針孔。利用VoIP呼叫作為示例,發(fā)起 VoIP的端點從呼叫控制器請求令牌,呼叫控制器在建立到目的地VoIP端點的呼叫之前授權(quán)穿過防火墻的針孔。作為響應(yīng),呼叫控制器可以生成將朝目的地端點發(fā)送的令牌。呼叫控制器可以基于與呼叫控制器相關(guān)聯(lián)的授權(quán)ID、呼叫控制器和防火墻兩者知道的共享私密以及依請求為其授權(quán)的媒體流而定的數(shù)據(jù)來生成令牌。在一種情形中,發(fā)起VoIP的端點從呼叫控制器接收令牌并將其轉(zhuǎn)發(fā)給目的地??商娲兀苄湃沃欣^點(TRP)可以代表發(fā)起 VoIP的端點從呼叫控制器請求令牌并將其發(fā)送給VoIP目的地端點。該后一種方法允許將令牌用來授權(quán)防火墻針孔而不需要另外修改個體VoIP電話上的軟件。一旦被授權(quán),針孔就可以利用從發(fā)起VoIP的端點(或TRP)發(fā)送來的?;钕⒍3执蜷_。此外,令牌本身可以具有最大使用期限,在該最大使用期限之后,必須從呼叫控制器請求新的令牌(并發(fā)送給目的地VoIP端點)以用于使針孔保持打開。另外,在打開針孔之后,防火墻可以記住用于打開該針孔的偽時間,并且該偽時間不能被再使用來打開穿過該防火墻的或者穿過已看到該偽時間或更長偽時間的任何其它防火墻的另一針孔。偽時間本身可以提供在呼叫控制器和(一個或多個)防火墻之間同步的時鐘值。 此外,CAT令牌中的偽時間僅被需要來處理該CAT令牌以及相對應(yīng)的針孔防火墻。即,該偽時間不必對應(yīng)于任何其它系統(tǒng)時鐘,并且其不必以與任何其它時鐘相同的速率前進。在一個實施例中,偽時間可以利用單調(diào)增加的值(例如48比特值,其中,當(dāng)給定媒體流被初始化時,低32比特被初始化為零,并且每當(dāng)呼叫控制器被重新啟動時高16比特被遞增)來實現(xiàn)。除了共享同步時鐘值以外,還可以定義有效時段,其指示在CAT被發(fā)出之后該CAT應(yīng)當(dāng)被認為有效的偽時間單位的數(shù)目。
這里公開的一個實施例可以被實現(xiàn)為在諸如防火墻或路由器之類的網(wǎng)絡(luò)設(shè)備上執(zhí)行的路由程序,該網(wǎng)絡(luò)設(shè)備被配置為將網(wǎng)絡(luò)與惡意(或者簡單地,不想要的)網(wǎng)絡(luò)流量屏蔽開。另外,這里公開的實施例可以適于由其它網(wǎng)絡(luò)設(shè)備使用,例如充當(dāng)網(wǎng)絡(luò)橋接器的“透明”防火墻。另外,路由程序可被分發(fā)到多種計算機可讀存儲介質(zhì)上。說明性計算機可讀存儲介質(zhì)包括但不限于(i)永久地存儲信息的不可寫入存儲介質(zhì)(例如計算機內(nèi)的只讀存儲器設(shè)備,例如可由CD-ROM驅(qū)動器讀取的CD-ROM盤);(ii)存儲可改變信息的可寫入存儲介質(zhì)(例如軟盤驅(qū)動器內(nèi)的軟盤或硬盤驅(qū)動器)。其它介質(zhì)包括用來例如通過計算機網(wǎng)絡(luò)或電話網(wǎng)絡(luò)(包括無線通信網(wǎng)絡(luò))將信息傳送給計算機的通信介質(zhì)。后一實施例具體地包括發(fā)送去往/來自因特網(wǎng)和其它網(wǎng)絡(luò)的信息。圖1圖示出了根據(jù)本發(fā)明的實施例的示例網(wǎng)絡(luò)拓撲100。在此示例中,網(wǎng)絡(luò)拓撲 100用來發(fā)起(并維持)第一 VoIP端點105(發(fā)起VoIP呼叫)與第二 VoIP端點110(呼叫的目的地)之間的呼叫。第一 VoIP端點105可以提供基于硬件或軟件的IP電話,該IP電話允許用戶撥出(并接收)電話呼叫。當(dāng)然,本領(lǐng)域技術(shù)人員將認識到,除了如圖1的示例所示的使用用來進行VoIP呼叫的經(jīng)由UDP的RTP流以外,這里描述的使用認證令牌來授權(quán)防火墻打開針孔的技術(shù)還可以適于與被配置來授權(quán)其它實時數(shù)據(jù)和/或媒體流的多種呼叫控制器、呼叫管理器或其它媒體管理器一起使用。如圖所示,第一 VoIP端點105與受信任中繼點(TRP) 130以及呼叫控制器120(或者更一般地,被配置來授權(quán)多種不同實時媒體流的呼叫管理器)一起位于防火墻140后面。 類似地,第二 VoIP端點110位于防火墻150后面。因此,承載語音呼叫的數(shù)據(jù)分組必須穿過防火墻140和防火墻150以抵達第二 VoIP端點110。然而,通常,防火墻140可被配置為允許外出(outbound)流量流向網(wǎng)絡(luò)115。相比而言,防火墻150必須允許進入流量經(jīng)過防火墻150以便使第一 VoIP端點105向第二 VoIP端點110撥打電話。防火墻140、150可以包括具有處理器和存儲路由程序的存儲器的任何合適的路由或網(wǎng)絡(luò)設(shè)備,該路由程序被配置為允許流量、阻止流量或?qū)⒘髁柯酚山?jīng)過防火墻去往防火墻后面的目的地端點。如下面更詳細描述的,呼叫控制器120可以提供被配置來生成授權(quán)令牌的網(wǎng)絡(luò)設(shè)備,該授權(quán)令牌被稱為密碼授權(quán)令牌(或者簡稱為CAT),用來創(chuàng)建對這樣的流量授權(quán)的防火墻針孔。因此,呼叫控制器120充當(dāng)?shù)谝?VoIP端點105所撥打的呼叫的授權(quán)代理。說明性地,呼叫控制器120以及防火墻140和150均知道共享私密122。該共享私密122可以基于用來標(biāo)識給定呼叫控制器120的認證代理id 124。如下面更詳細描述的, 呼叫控制器120可以使用共享私密122和認證代理id 124以及依呼叫而定的數(shù)據(jù)來創(chuàng)建授權(quán)防火墻150打開針孔的CAT。進而,防火墻150可以使用認證代理id 124以及共享私密122的拷貝來認證CAT是來自給定呼叫控制器120的。此外,由防火墻150打開的針孔可被配置為僅保持打開預(yù)定時間段。S卩,CAT可以向針孔授權(quán)有限的使用期限。另外,在該時段期間,防火墻150可被配置為要求時常(例如, 每30秒)發(fā)送新的經(jīng)認證的?;钕?,以便使針孔保持打開。在圖1的示例拓撲中,經(jīng)認證的?;钕⒖梢杂蒚RP 130生成。因此,當(dāng)呼叫控制器120創(chuàng)建用于授權(quán)(以及再次授權(quán))穿過防火墻150的針孔的CAT時,呼叫控制器120向TRP 130授予保持特定針孔打開達給定CAT的使用期限的權(quán)限。為了使呼叫在超過該時段時保持活躍,TRP 130可以在初始CAT期滿之前,從呼叫控制器請求新的CAT,并將其轉(zhuǎn)發(fā)給端點。
圖2是圖示出根據(jù)本發(fā)明的實施例的用于使用認證令牌來授權(quán)防火墻打開針孔的示例方法200的流程圖。結(jié)合提供了利用圖1的網(wǎng)絡(luò)拓撲的流量流示例的圖4A-4E來描述圖2的方法200。如圖所示,方法200開始于步驟205,在步驟205中,VoIP端點發(fā)起語音呼叫。這在圖4A中被示出,在圖4A中,VoIP端點105被用來撥出電話號碼(“555-5555”)。 作為響應(yīng),TRP 130接收向所撥出數(shù)字打電話的請求,并解析出VoIP端點110的端口和目的地IP地址。在步驟210,TRP生成對來自呼叫控制器的CAT的請求。例如,圖4B示出了 TRP 130發(fā)送對用于授權(quán)防火墻針孔的令牌的請求。該請求可以包括在步驟205處確定的目的地IP地址和端口、試圖發(fā)起語音呼叫的VoIP端點105的源IP地址和端口,以及反映CAT被生成的時間的偽時間。如已提到的,偽時間可以反映用來確保令牌具有有限的有效性的單調(diào)增加值。因此,呈現(xiàn)給防火墻的具有有效時段之外的偽時間的以其它方式有效的CAT不能被用來打開針孔。即,CAT不能被截取并在有效時間間隔之外被再使用。作為響應(yīng),在步驟215,呼叫控制器可以生成CAT令牌,該CAT令牌用于授權(quán)徑內(nèi)(in-path)防火墻打開針孔一允許媒體穿越該防火墻去往目的地。例如,圖4C示出了呼叫控制器120根據(jù)包括共享私密122在內(nèi)的確定信息來生成 CAT。另外,圖4C示出了呼叫控制器將未經(jīng)加密HMAC密鑰(UHK)和經(jīng)加密HMAC密鑰(EHK) 作為對來自TRP 130的CAT請求的響應(yīng)的一部分發(fā)送。如本領(lǐng)域技術(shù)人員將認識到的,基于密鑰的(keyed)散列消息認證碼(HMAC)是利用密碼散列函數(shù)結(jié)合私密密鑰計算出的一類消息認證碼(MAC)。如上所述,呼叫控制器可以被配置有共享私密122和認證代理idl24,并且該信息可以與共同管理域中的防火墻(例如防火墻140、150)共享。即,基于CAT來允許針孔的每個防火墻被提供有(每個呼叫控制器的)認證代理id 124和共享私密122。認證代理id 1 和共享私密122允許防火墻認證消息是由給定呼叫控制器源發(fā)的。同時,不將共享私密 122 與 TRP 130 或 VoIP 端點 105、110 共享。根據(jù)共享私密122,呼叫控制器120和防火墻150兩者執(zhí)行密鑰推導(dǎo)函數(shù)。例如Kmac = HMAC-SHA1-128C MAC",共享私密)Kenc = HMAC-SHA1-128C KEY",共享私密)Kma。被用來對用于打開防火墻針孔的CAT進行認證。在此示例中,K·提供了用于創(chuàng)建EHK的128比特加密密鑰,EHK用來使針孔保持活著。被提供來計算Kma。的“MAC”可以從被請求媒體流特有的流數(shù)據(jù)來確定。然而,注意,這些值(KmacJPKmc)都不通過網(wǎng)絡(luò)來發(fā)送。而是,呼叫控制器120和防火墻150利用共享私密122在內(nèi)部計算它們。因此,呼叫控制器120被配置有共享私密122并且對于每個呼叫生成UHK和EHK兩者。即,呼叫控制器120逐個呼叫地為TRP 130生成CAT。該CAT允許防火墻(例如防火墻 150)認證描述媒體流的流數(shù)據(jù)(例如,源和目的地地址的集合、通信協(xié)議以及依呼叫而定的屬性)。TRP 130不具有生成CAT所需的HMAC密鑰(即,KmJ ;而是,其可由呼叫控制器 120提供。呼叫控制器120可被配置為在每個呼叫的開始處并且在該呼叫的結(jié)束處(針對 “關(guān)閉針孔”消息)執(zhí)行此操作。此外,呼叫控制器120還為呼叫處于活動狀態(tài)的每個CAT 持續(xù)時段(例如,每5分鐘)生成新的CAT。在一個實施例中,呼叫控制器120將此信息中繼給TRP 130,TRP 130得知UHK和CAT使用期限(即,可以利用CAT打開針孔的持續(xù)時間)。EHK也被中繼給TRP 130,但是, EHK不直接由TRP 130使用。而是,EHK被包括在發(fā)送給VoIP端點110的消息中,并且被任何徑內(nèi)防火墻(例如,防火墻150)看見。返回圖2的方法200,在步驟220處,TRP可以將CAT轉(zhuǎn)發(fā)給VoIP端點。在一個實施例中,CAT (包括EHK值)可以作為UDP NAT的簡單穿越(STUN)消息的一部分被中繼。 例如,圖4D示出了 TRP 130生成包括EHK、CAT、偽時間和媒體流數(shù)據(jù)的STUN消息的示例。 如已提到的,發(fā)送給VoIP端點110的該消息還可以包括有效時段(其是相對于偽時間確定的)和?;铑l率,保活頻率指示應(yīng)當(dāng)多久發(fā)送一次?;钕⒁曰诮o定CAT使針孔保持打開。在步驟225,徑內(nèi)防火墻識別從TRP發(fā)送來的消息并且評估包括在消息中的信息。如果CAT通過認證,則防火墻隨后為與CAT包括在一起的流數(shù)據(jù)(例如,作為STUN消息中的字段被傳輸?shù)牧鲾?shù)據(jù))中所標(biāo)識的媒體流打開針孔。例如,圖4E示出了防火墻150打開用于授權(quán)媒體流410的針孔420。在一個實施例中,防火墻150(其知道共享私密122)解密 EHK以確定相對應(yīng)的UHK。防火墻使用該UHK來認證打開針孔的請求。例如,防火墻150可以使用共享私密122獨立地計算UHK的值,通過將該值與對從TRP 130接收的EHK解密而確定的UHK相比較,防火墻150可以確認該請求來自呼叫控制器120。在這樣的情況中,防火墻150打開針孔420。另外,來自CAT的偽時間被評估以核實該CAT是在有效時段內(nèi)發(fā)出的。如果是,則防火墻150返回CAT被接受的指示,S卩,防火墻150已打開了與該CAT相對應(yīng)的針孔的指示。 在一個實施例中,如果CAT中的偽時間在防火墻150處的本地偽時間之前,則該本地偽時間被提前到CAT中的偽時間值并且令牌被接受。當(dāng)然,在步驟225處驗證了 CAT之后媒體流被打開,并且媒體流在有效時段期滿之后可以長時間持續(xù);有效時段僅確定其間CAT可用來打開針孔的所允許時間長度。在步驟230,一旦針孔被授權(quán),則發(fā)起VoIP的端點開始通過經(jīng)授權(quán)的媒體流(例如,發(fā)送去往/來自VoIP端點105和110的源地址和目的地地址以及端口的經(jīng)由UDP的 RTP流)發(fā)送數(shù)據(jù)。當(dāng)分組穿越網(wǎng)絡(luò)115并遇到防火墻150時,針孔420允許該流量流向防火墻之后的目的地端點(例如,VoIP端點110)。如已提到的,用來授權(quán)防火墻打開針孔的CAT消息可以具有相對于偽時間的預(yù)定義使用期限,在該偽時間處,呼叫控制器為給定呼叫生成CAT。此外,在該使用期限期間,防火墻可以要求在媒體流的持續(xù)時間中?;钕⒁獣r常(例如,對于利用經(jīng)由RTP的UDP發(fā)送的VoIP呼叫,每三十秒)被接收到。圖3是圖示出根據(jù)本發(fā)明的實施例的用于利用?;钕⒕S持承載媒體流的針孔的方法300的示例的流程圖。結(jié)合圖4F-4G來描述圖3的方法 300,圖4F-4G提供了在圖1的示例網(wǎng)絡(luò)拓撲中利用保活消息發(fā)送所使用的流量流的示例。如圖所示,方法300開始于步驟305,在步驟305中,TRP將CAT轉(zhuǎn)發(fā)給VoIP端點, 如上所述。另外,TRP可以按照需要記下用于生成?;钕⒌膫螘r間、?;铑l率,以及用于確定請求重新授權(quán)CAT的時間的CAT使用期限。如上所述,一旦TRP將CAT發(fā)送給了目的地并且穿越徑內(nèi)防火墻的針孔被打開,則數(shù)據(jù)分組(例如,承載VoIP呼叫的媒體的經(jīng)由UDP 的RTP分組)可以作為媒體流的一部分被發(fā)送給目的地。當(dāng)然,其它實時協(xié)議和數(shù)據(jù)流也可被發(fā)送。在步驟310,TRP監(jiān)視相對于CAT的偽時間過去了多長時間,直到當(dāng)前的?;顣r段將要期滿為止。例如,對于30秒的?;顣r段,TRP可以在向端點發(fā)送?;钕⒅暗却钡疆?dāng)前的30秒時間窗期滿之前五秒為止。當(dāng)然,?;顣r段和發(fā)送新的?;钕⒌臅r間可以被定制以適合個案的需要。在步驟315,一旦?;顣r段將要期滿,TRP就可以判斷媒體流是否仍然在活躍地發(fā)送數(shù)據(jù)。如果是,則TRP可以生成去往媒體流的端點的新的?;钕?。在步驟320,媒體流的徑內(nèi)防火墻截取?;钕⒉⑶腋轮甘踞樋讘?yīng)當(dāng)被關(guān)閉的時間的值,例如將以秒計的活躍字段(seconds-active field)延長另一 30秒。例如,圖4F圖示出了 TRP 130生成包括流數(shù)據(jù)(指示源和目的地位置以及協(xié)議信息)和更新后的?;顣r間的消息。在一個實施例中,?;钕⒖梢员环庋b在STUN指示中。 眾所周知,STUN指示不接收響應(yīng)。因此,在特定實施例中,承載?;钕⒌亩鄠€STUN指示可被發(fā)送以避免由于被丟棄的分組而使針孔被關(guān)閉。此外,(一個或多個)STUN指示可以包括每當(dāng)TRP將其轉(zhuǎn)發(fā)給VoIP端點110時被更新的兩個字段。以秒計的活躍字段可以從TRP和 CAT的偽時間的角度來指定媒體流410應(yīng)當(dāng)保持活躍的秒數(shù)。并且保活消息中的驗證字段可以包括利用以秒計的活躍字段和從呼叫控制器120接收的UHK計算出的SHA1-HMAC(如上所述)。因此,可由防火墻基于UHK來驗證?;钕?。然而,由于TRP不具有生成UHK所需的信息,因此呼叫控制器120保持對授權(quán)媒體流負責(zé)。同時,呼叫控制器120向TRP(經(jīng)由UHK)授予保持針孔打開達CAT的使用期限的權(quán)限。注意,在一個實施例中,TRP不發(fā)送 SHAI-HMAC的所有128個比特,而是可以僅發(fā)送SHA1-HMAC的前64(或96)個比特。
在步驟320,徑內(nèi)防火墻接收承載了?;钕⒌姆纸M并且判斷是否延長針孔的使用期限。另外,如果防火墻未看到(并驗證)保活消息達用戶設(shè)置的時間間隔(例如30秒), 則針孔被關(guān)閉。如圖4F所示,防火墻150接收STUN消息,并且作為響應(yīng),判斷針孔420是否已經(jīng)打開。如果是,則防火墻150不需要認證CAT(當(dāng)其創(chuàng)建針孔時已經(jīng)進行了驗證)。而是,防火墻140驗證?;钕?。為此,防火墻150判斷以秒計的活躍字段的值是否大于先前接收(并且先前驗證過)的消息。防火墻150然后保證以秒計的活躍字段不超過最大CAT 持續(xù)時間。如果保活消息滿足這兩個要求,則防火墻150然后驗證利用以秒計的活躍值和 UHK計算出的SHA1-HMAC。如果通過了驗證,則使針孔在?;钕⒌囊悦胗嫷幕钴S字段所指定的另一時段中保持打開。如上所述,CAT可被用來在指定時間段對針孔授權(quán)。在這些情況中,如果媒體流需要存活長于所指定時段的時間,則其需要利用新的CAT被重新授權(quán)。返回圖3的方法300, 在步驟325,TRP判斷CAT使用期限是否將要期滿(即,利用另一?;钕⑹欠癫荒苎娱L針孔使用期限)。如果可以利用另一?;钕⒀娱L針孔使用期限,則方法300返回步驟310, 在步驟310中,TRP等待另一?;顣r間間隔過去。否則,一旦CAT即將期滿,則在步驟330,TRP向呼叫控制器發(fā)送利用另一 CAT來重新授權(quán)媒體流的請求。作為響應(yīng),呼叫控制器可以生成返回給TRP的新的CAT (步驟335)。 可以利用與上面所述的用來生成原始CAT相同的技術(shù)來生成新CAT。在步驟340,TRP將新 CAT轉(zhuǎn)發(fā)給媒體流端點并且該新的CAT被徑內(nèi)防火墻截取。該防火墻隨后基于該新的CAT 中的信息來重新設(shè)置最大使用期限。圖4G圖示出了利用圖1的示例網(wǎng)絡(luò)拓撲執(zhí)行的步驟330、335和340的示例。如圖所示,TRP 130與呼叫控制器120通信以請求新的CAT。作為響應(yīng),呼叫控制器120生成新的EHK和UHK值并且然后將它們發(fā)送給TRP 130。TRP將新EHK和相對應(yīng)的流數(shù)據(jù)發(fā)送給防火墻150。當(dāng)被防火墻150接收到時,防火墻150驗證該新的CAT,如上所述(S卩,防火墻解密EHK以獲得新的UHK并更新最大針孔使用期限)。有利地,本發(fā)明的實施例描述了使用令牌來授權(quán)防火墻打開準(zhǔn)許某一網(wǎng)絡(luò)流量 (例如,用于諸如VoIP呼叫之類的實時媒體流的經(jīng)由UDP的RTP)穿過該防火墻的針孔。發(fā)起媒體流的端點從呼叫控制器請求令牌,呼叫控制器授權(quán)穿過防火墻的針孔。作為響應(yīng),呼叫控制器可以生成被發(fā)送給目的地端點的密碼授權(quán)令牌(CAT)。呼叫控制器可以基于與呼叫控制器相關(guān)聯(lián)的授權(quán)ID、呼叫控制器和防火墻兩者知道的共享私密以及依為請求被授權(quán)的媒體流而定的數(shù)據(jù)來生成令牌。受信任中繼點(TRP)可以代表發(fā)起VoIP的端點來從呼叫控制器請求令牌并將其發(fā)送給VoIP目的地端點。因此,當(dāng)呼叫控制器創(chuàng)建用于授權(quán)(以及重新授權(quán))穿過防火墻的針孔的CAT時,呼叫控制器向TRP授予保持特定針孔打開達給定CAT的使用期限的權(quán)限。如果呼叫需要在超過該時段時保持活躍,則TRP可以在初始CAT 期滿之前從呼叫控制器請求新的CAT,并將其轉(zhuǎn)發(fā)給端點。雖然前面涉及本發(fā)明的實施例,然而可以在不脫離本發(fā)明的基本范圍的情況下作出其它實施例,并且本發(fā)明的范圍由下面的權(quán)利要求來確定。
權(quán)利要求
1.一種系統(tǒng),包括網(wǎng)絡(luò)設(shè)備,被配置為接收用來授權(quán)穿越所述網(wǎng)絡(luò)設(shè)備去往目的地端點的媒體流的消息,其中,請求包括密碼授權(quán)令牌(CAT)以及描述所述媒體流的源端點和目的地端點的流數(shù)據(jù);評估所述CAT以判斷所述CAT是否是由經(jīng)授權(quán)的呼叫控制器生成的,其中,所述評估至少部分地基于所述網(wǎng)絡(luò)設(shè)備和所述經(jīng)授權(quán)的呼叫控制器兩者知道的共享私密;以及當(dāng)確定所述CAT是由所述經(jīng)授權(quán)的呼叫控制器生成的時,打開允許來自所述源端點的網(wǎng)絡(luò)流量經(jīng)過所述網(wǎng)絡(luò)設(shè)備去往所述目的地端點的針孔。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述消息還包括指示所述CAT被生成的時間的偽時間、?;铑l率時段以及相對于所述偽時間指定的CAT使用期限時段。
3.如權(quán)利要求2所述的系統(tǒng),其中,用于新的針孔的偽時間必須大于所述網(wǎng)絡(luò)設(shè)備上次看到的偽時間。
4.如權(quán)利要求2所述的系統(tǒng),其中,所述網(wǎng)絡(luò)設(shè)備還被配置為要求在所述針孔被打開之后的每個連續(xù)的保活頻率時段內(nèi)接收到?;钕?,以使得所述針孔持續(xù)保持打開達所述 CAT使用期限時段的持續(xù)時間。
5.如權(quán)利要求4所述的系統(tǒng),其中,所述經(jīng)授權(quán)的呼叫控制器被配置來向受信任中繼點(TRP)授予生成由所述網(wǎng)絡(luò)設(shè)備接收的所述?;钕⒌臋?quán)限。
6.如權(quán)利要求5所述的系統(tǒng),其中,所述保活消息是利用由與所述媒體流相關(guān)聯(lián)的信息構(gòu)成的4元組被發(fā)送的,與所述媒體流相關(guān)聯(lián)的信息包括源IP地址、源UDP端口、目的地 IP地址和目的地UDP端口。
7.如權(quán)利要求6所述的系統(tǒng),其中,所述消息被編碼到用于NAT的會話穿越效用 (STUN)消息中。
8.如權(quán)利要求1所述的系統(tǒng),其中,所述呼叫控制器對從所述源端點打往所述目的地端點的VoIP呼叫進行授權(quán)。
9.如權(quán)利要求1所述的系統(tǒng),其中,所述CAT是利用基于密鑰的散列消息認證代碼 (HMAC)生成的,所述基于密鑰的HMAC是根據(jù)描述了源端點和目的地端點的流數(shù)據(jù)以及所述共享私密計算出的。
10.如權(quán)利要求1所述的系統(tǒng),其中,由所述網(wǎng)絡(luò)設(shè)備接收的所述消息與所述媒體流在相同的4元組上,其中,所述媒體流包括RTP媒體流,并且其中,所述4元組包括所述RTP媒體流的源IP地址、源UDP端口、目的地IP地址和目的地UDP端口。
11.如權(quán)利要求10所述的系統(tǒng),其中,所述消息包括用于NAT的會話穿越效用(STUN) 消息。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述網(wǎng)絡(luò)設(shè)備用作將所述目的地端點與網(wǎng)絡(luò)流量屏蔽開的防火墻。
13.一種使用認證令牌來授權(quán)網(wǎng)絡(luò)設(shè)備打開針孔的方法,所述針孔允許媒體流穿越所述網(wǎng)絡(luò)設(shè)備去往目的地端點,該方法包括接收用來授權(quán)穿越所述網(wǎng)絡(luò)設(shè)備去往所述目的地端點的所述媒體流的消息,其中,請求包括密碼授權(quán)令牌(CAT)以及描述所述媒體流的源端點和目的地端點的流數(shù)據(jù);評估所述CAT以判斷所述CAT是否是由經(jīng)授權(quán)的呼叫控制器生成的,其中,所述評估至少部分地基于所述網(wǎng)絡(luò)設(shè)備和所述經(jīng)授權(quán)的呼叫控制器兩者知道的共享私密;以及當(dāng)確定所述CAT是由所述經(jīng)授權(quán)的呼叫控制器生成的時,打開允許來自所述源端點的網(wǎng)絡(luò)流量經(jīng)過所述網(wǎng)絡(luò)設(shè)備去往所述目的地端點的針孔。
14.如權(quán)利要求13所述的方法,其中,所述消息還包括指示所述CAT被生成的時間的偽時間、保活頻率時段以及相對于所述偽時間指定的CAT使用期限時段。
15.如權(quán)利要求14所述的方法,其中,用于新的針孔的偽時間必須大于所述網(wǎng)絡(luò)設(shè)備上次看到的偽時間。
16.如權(quán)利要求14所述的方法,其中,所述網(wǎng)絡(luò)設(shè)備被配置為要求在所述針孔被打開之后的每個連續(xù)的?;铑l率時段內(nèi)接收到?;钕?,以使得所述針孔持續(xù)保持打開達所述 CAT使用期限時段的持續(xù)時間。
17.如權(quán)利要求16所述的方法,其中,所述呼叫控制器被配置來向受信任中繼點(TRP) 授予生成由所述網(wǎng)絡(luò)設(shè)備接收的所述?;钕⒌臋?quán)限。
18.如權(quán)利要求17所述的方法,其中,由所述網(wǎng)絡(luò)設(shè)備接收的所述消息與所述媒體流在相同的4元組上,其中,所述媒體流包括RTP媒體流,并且其中,所述4元組包括所述RTP 媒體流的源IP地址、源UDP端口、目的地IP地址和目的地UDP端口。
19.如權(quán)利要求13所述的方法,其中,所述呼叫控制器對從所述源端點打往所述目的地端點的VoIP呼叫進行授權(quán)。
20.如權(quán)利要求13所述的方法,其中,所述CAT是利用基于密鑰的散列消息認證代碼 (HMAC)生成的,所述基于密鑰的HMAC是根據(jù)描述了源端點和目的地端點的流數(shù)據(jù)以及所述共享私密計算出的。
21.如權(quán)利要求13所述的方法,其中,所述網(wǎng)絡(luò)設(shè)備用作將所述目的地端點與網(wǎng)絡(luò)流量屏蔽開的防火墻。
22.一種包含網(wǎng)絡(luò)程序的計算機可讀存儲介質(zhì),當(dāng)所述網(wǎng)絡(luò)程序在網(wǎng)絡(luò)設(shè)備上被運行時,執(zhí)行允許媒體流穿越所述網(wǎng)絡(luò)設(shè)備去往目的地端點的操作,該操作包括接收用來授權(quán)穿越所述網(wǎng)絡(luò)設(shè)備去往所述目的地端點的所述媒體流的消息,其中,請求包括密碼授權(quán)令牌(CAT)以及描述所述媒體流的源端點和目的地端點的流數(shù)據(jù);評估所述CAT以判斷所述CAT是否是由經(jīng)授權(quán)的呼叫控制器生成的,其中,所述評估至少部分地基于所述網(wǎng)絡(luò)設(shè)備和所述經(jīng)授權(quán)的呼叫控制器兩者知道的共享私密;以及當(dāng)確定所述CAT是由所述經(jīng)授權(quán)的呼叫控制器生成的時,打開允許來自所述源端點的網(wǎng)絡(luò)流量經(jīng)過所述網(wǎng)絡(luò)設(shè)備去往所述目的地端點的針孔。
23.如權(quán)利要求22所述的計算機可讀存儲介質(zhì),其中,所述消息還包括指示所述CAT被生成的時間的偽時間、?;铑l率時段以及相對于所述偽時間指定的CAT使用期限時段。
24.如權(quán)利要求23所述的計算機可讀存儲介質(zhì),其中,所述網(wǎng)絡(luò)設(shè)備被配置為要求在所述針孔被打開之后的每個連續(xù)的?;铑l率時段內(nèi)接收到?;钕?,以使得所述針孔持續(xù)保持打開達所述CAT使用期限時段的持續(xù)時間。
25.如權(quán)利要求22所述的計算機可讀存儲介質(zhì),其中,所述CAT是利用基于密鑰的散列消息認證代碼(HMAC)生成的,所述基于密鑰的HMAC是根據(jù)描述了源端點和目的地端點的流數(shù)據(jù)以及所述共享私密計算出的。
全文摘要
描述了使用密碼令牌來授權(quán)防火墻打開準(zhǔn)許某一網(wǎng)絡(luò)流量穿越防火墻的針孔的技術(shù)。發(fā)起端點從呼叫控制器請求令牌,呼叫控制器授權(quán)穿過防火墻的針孔。作為響應(yīng),呼叫控制器可以生成被發(fā)送給目的地端點的密碼授權(quán)令牌(CAT)。呼叫控制器可以基于與呼叫控制器相關(guān)聯(lián)的授權(quán)ID、呼叫控制器和防火墻兩者知道的共享私密以及依請求被授權(quán)的媒體流而定的數(shù)據(jù)來生成令牌。
文檔編號H04M7/00GK102217270SQ200980123730
公開日2011年10月12日 申請日期2009年12月21日 優(yōu)先權(quán)日2009年1月16日
發(fā)明者丹尼爾·G·溫, 卡倫·F·詹寧斯, 大衛(wèi)·A·麥格魯, 艾瑞克·G·萬柯克 申請人:思科技術(shù)公司