專利名稱:用于自動(dòng)切換消息認(rèn)證密鑰的方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及認(rèn)證消息通信。本發(fā)明更具體地涉及用于改變用來 對傳輸協(xié)議連接進(jìn)行數(shù)字簽名的密鑰的方法。
背景技術(shù):
本節(jié)描述的方法可被實(shí)行,但不一定是以前構(gòu)思或?qū)嵭羞^的手段。因 此,除非此處另有說明,否則本節(jié)所描述的手段對于本申請中的權(quán)利要求 來說就不是現(xiàn)有技術(shù),并且不因包含在本節(jié)中就被認(rèn)為是現(xiàn)有技術(shù)。
傳輸控制協(xié)議(TCP)是通過按需使用段重傳和有序確認(rèn)來為上層應(yīng) 用提供可靠的面向連接的數(shù)據(jù)傳遞服務(wù)的傳輸層協(xié)議。在典型的TCP實(shí)現(xiàn) 方式中,TCP連接在建立在兩個(gè)主機(jī)上的兩個(gè)TCP端點(diǎn)中建立。TCP端點(diǎn) 由主機(jī)的TCP模塊(或棧)維護(hù)并被表示為TCP端口號和主機(jī)的互聯(lián)網(wǎng) 協(xié)議(IP)地址的組合。
TCP使用流數(shù)據(jù)傳輸機(jī)制在兩個(gè)端點(diǎn)之間傳遞非結(jié)構(gòu)字節(jié)流。流中的 字節(jié)被按順序編號并分組成TCP段以便在TCP端點(diǎn)之間通過TCP連接來 發(fā)送。通過TCP連接發(fā)送的TCP段包括頭部和凈荷部分,并可由段的凈 荷部分中第一字節(jié)的序列號來標(biāo)識。
TCP序列號主要用于TCP連接上的數(shù)據(jù)流控制。當(dāng)TCP連接最初建 立時(shí),每個(gè)端點(diǎn)生成偽隨機(jī)ISN (初始序列號)。每個(gè)端點(diǎn)為該端點(diǎn)發(fā)送 的數(shù)據(jù)的每個(gè)字節(jié)單調(diào)增加其ISN。流控制機(jī)制還通過要求其他端點(diǎn)為接 收的數(shù)據(jù)發(fā)送ACK (確認(rèn))來確??煽康膫鬟f;每個(gè)ACK識別與成功接 收的數(shù)據(jù)相對應(yīng)的接收序列號。ACK機(jī)制確保兩個(gè)TCP端點(diǎn)針對數(shù)據(jù)傳 輸總是同步的。
TCP提供的傳輸服務(wù)被上層應(yīng)用用來通過TCP連接交換特定于應(yīng)用的 數(shù)據(jù)。使用TCP連接來交換數(shù)據(jù)的上層應(yīng)用的一個(gè)示例是邊界網(wǎng)關(guān)協(xié)議(BGP) 。 BGP是對等路由協(xié)議,其最新版本BGP-4在互聯(lián)網(wǎng)工程任務(wù)組 (IETF) 1995年3月公布的RPC 1771中定義。為了交換路由信息,兩個(gè) BGP主機(jī)或?qū)Φ榷耸紫冉CP連接,然后協(xié)商BGP會(huì)話以交換網(wǎng)絡(luò)路 由。使用TCP來交換數(shù)據(jù)的上層應(yīng)用的另一個(gè)示例是標(biāo)記分發(fā)協(xié)議 (LDP) 。 LDP是為多協(xié)議標(biāo)記交換(MPLS)架構(gòu)定義的協(xié)議并描述于 IETF 2001年1月公布的RFC 3036。在MPLS網(wǎng)絡(luò)中,兩個(gè)標(biāo)記交換路由 器(LSR)或LDP對等端通過TCP連接建立雙向LDP會(huì)話以便交換將網(wǎng) 絡(luò)層路由信息直接映射到數(shù)據(jù)鏈路層交換路徑的標(biāo)記映射信息。
但是,TCP易受到數(shù)據(jù)注入攻擊。在數(shù)據(jù)注入攻擊中,攻擊者猜測用 于有效TCP連接的參數(shù)值并使用這些參數(shù)值來發(fā)送包含惡意或偽造數(shù)據(jù)凈 荷的偽造TCP段。這些偽造TCP段可能影響TCP連接本身的狀態(tài)或可能 意在上層應(yīng)用。若接收TCP端點(diǎn)將這類段傳遞到上層應(yīng)用,則當(dāng)該應(yīng)用作 用于或運(yùn)行數(shù)據(jù)凈荷時(shí),可能出現(xiàn)各種問題。數(shù)據(jù)注入攻擊的結(jié)果可以很 嚴(yán)重。例如,當(dāng)BGP會(huì)話被相關(guān)TCP連接狀態(tài)的變化打斷時(shí),建立該會(huì) 話的BGP對等端可能不得不丟棄在會(huì)話期間交換的所有BGP路由,并可 能不得不將其路由信息與網(wǎng)絡(luò)中的對等路由器重新同步。
一種類型的數(shù)據(jù)注入攻擊是通過設(shè)置TCP段頭部中的RST (重置)比 特來構(gòu)建和發(fā)送請求TCP連接的關(guān)閉和重置的偽造TCP段。
用于阻止這類數(shù)據(jù)注入攻擊的一個(gè)現(xiàn)有方法最小化攻擊者能夠確定有 效TCP連接的參數(shù)的機(jī)會(huì)。在該現(xiàn)有方法中,TCP端點(diǎn)為其發(fā)送的每個(gè) TCP連接計(jì)算數(shù)字簽名(或消息摘要或消息認(rèn)證碼),并在TCP段頭部 中包含該簽名。該簽名是基于只有兩個(gè)TCP端點(diǎn)知道的密鑰或密碼來計(jì)算 的,并使用TCP段的一個(gè)或多個(gè)字段的內(nèi)容作為輸入。于是,要想成功發(fā) 動(dòng)數(shù)據(jù)注入攻擊,攻擊者將不僅必須確定有效TCP連接參數(shù),而且必須猜 測用來生成TCP段簽名的密鑰或密碼。
該現(xiàn)有方法的用于保護(hù)BGP會(huì)話的一個(gè)特定實(shí)現(xiàn)方式描述于IETF 1998年8月公布的RFC2385。在該實(shí)現(xiàn)方式中,在TCP段中定義了用于 攜帶消息-摘要5 (MD5)哈希值的TCP OPTION。 MD5算法(描述于 IETF 1992年4月公布的RFC1321)將任意長度的消息作為輸入并生成該輸入的128比特簽名或"消息摘要"作為輸出。在該實(shí)現(xiàn)方式中,在TCP
連接上發(fā)送的每個(gè)TCP段在TCP段頭部的OPTION字段中包含通過將 MD5算法按順序應(yīng)用于下列項(xiàng)目而生成的16字節(jié)MD5簽名
1. TCP段偽頭部(依如下順序源IP地址、目的地IP地址、補(bǔ)零協(xié) 議號和段長度);
2. TCP段頭部(不包括OPTION字段,并假設(shè)校驗(yàn)和為0)
3. TCP段數(shù)據(jù)(如果有的話);以及
4. 為兩個(gè)TCP端點(diǎn)所知、可推定特定于TCP連接的獨(dú)立指定的密鑰 或密碼。
收到利用MD5簽名簽署過的TCP段之后,接收TCP端點(diǎn)使用它自己 的密鑰為來自相同數(shù)據(jù)的TCP段計(jì)算它自己的摘要。接收TCP端點(diǎn)隨后 將算出的摘要與TCP段的OPTION字段中包含的MD5簽名作比較。若算 出的摘要與TCP段中包含的MD5簽名相匹配,則接收TCP端點(diǎn)證實(shí)該 TCP段有效并將段的凈荷部分傳遞到收方上層應(yīng)用。若比較失敗,則TCP 端點(diǎn)靜默地丟棄該TCP段,不發(fā)回確認(rèn)。
但是上述方法具有很多缺點(diǎn)。上述方法的一個(gè)缺點(diǎn)是雖然困難,但 攻擊者生成用于其想要注入到TCP連接中的惡意TCP段的有效簽名并不 是不可能的。例如,由于MD5算法容易受到成功的密碼分析攻擊,因此 攻擊者可能嗅探大量相似的TCP段并推導(dǎo)出用于創(chuàng)建TCP段的MD5簽名 的密鑰。該缺點(diǎn)尤其對于使用TCP連接相當(dāng)長時(shí)間來運(yùn)行會(huì)話的諸如 BGP之類的上層應(yīng)用來說會(huì)導(dǎo)致嚴(yán)重的安全問題。
上述方法的另一個(gè)缺點(diǎn)是在某些情形下,很難在不嚴(yán)重干擾上層應(yīng) 用的前提下改變TCP連接密鑰。由于兩個(gè)TCP端點(diǎn)必須使用相同的密鑰 來為與TCP連接相關(guān)的TCP會(huì)話生成簽名,因此當(dāng)與TCP連接相關(guān)的密 鑰需要改變時(shí),為了避免在上層應(yīng)用之間通過TCP連接發(fā)送的數(shù)據(jù)的損 失,兩個(gè)TCP端點(diǎn)必須幾乎同時(shí)地改變密鑰。
例如,在根據(jù)RFC 2385的BGP實(shí)現(xiàn)方式中,當(dāng)BGP對等端通過 TCP連接互相之間建立BGP會(huì)話時(shí),兩個(gè)BGP對等端可配置其各自的 TCP端點(diǎn)使用共享的MD5密鑰或密碼。共享的MD5密鑰可事先供應(yīng)給BGP對等端。但是,可能出現(xiàn)某些要求MD5密鑰必須改變的情形。例 如,MD5密鑰可能由于與人事變動(dòng)(例如,網(wǎng)絡(luò)管理員離開公司)有關(guān)的 安全問題的原因必須改變。在另一個(gè)示例中,若BGP會(huì)話是長期運(yùn)行的會(huì) 話,并且在互聯(lián)網(wǎng)服務(wù)供應(yīng)商(ISP)的BGP對等端和客戶網(wǎng)絡(luò)的BGP對 等端之間建立,為了避免潛在攻擊者通過嗅探和分析通過與BGP會(huì)話相關(guān) 的TCP連接發(fā)送的大量TCP段來猜測密鑰,可能希望周期性地改變MD5 密鑰。
但是, 一旦BGP會(huì)話建立,由于BGP使用它自己的KEEPALIVE機(jī) 制來檢測BGP會(huì)話是否活動(dòng),因此就沒有實(shí)用方法可以改變MD5密鑰 了 。 BGP對等端禁止用于TCP連接的TCP HoldTimer,并使用它們自己的 BGP KEEPALIVE HoldTimer,該HoldTimer的值在BGP會(huì)話建立期間被 協(xié)商。BGP對等端周期性地發(fā)送BGP KEEPALIVE消息來確保它的BGP 對等端上的HoldTimer不過期。例如,若BGP對等端商定180秒的默認(rèn) BGP HoldTimer間隔,則沒有任何其他BGP消息的交換,BGP對等端將 每60秒左右發(fā)送BGP KEEPALIVE消息。若BGP對等端在BGP KEEPALIVE HoldTimer時(shí)間間隔內(nèi)未通過BGP會(huì)話接收通信,則它發(fā)出 HoldTimer Expired Error并關(guān)閉BGP會(huì)話。
于是,若BGP對等端在通過TCP連接建立的BGP會(huì)話中使用的 MD5密鑰需要改變,則該密鑰必須在小于BGP HoldTimer的時(shí)間間隔內(nèi) 在兩個(gè)TCP端點(diǎn)上改變。為了防止TCP端點(diǎn)不做進(jìn)一步處理地丟棄利用 舊密鑰簽名的攜帶BGP會(huì)話的BGP消息的TCP段,其間密鑰在兩個(gè)TCP 端點(diǎn)上改變的時(shí)間間隔必須小于BGP HoldTimer。但是,在諸如ISP的大 網(wǎng)絡(luò)中,可能難以在像BGP HoldTimer間隔一樣小的時(shí)間間隔內(nèi)在支持 BGP對等端的所有TCP端點(diǎn)上改變MD5密鑰。
諸如BGP、 RIP和IS-IS之類的某些協(xié)議使用基于時(shí)間的同步來觸發(fā) 用于會(huì)話的密鑰翻轉(zhuǎn)(key rollover)。但是,所有這些現(xiàn)有的密鑰連鎖機(jī) 制依賴于端點(diǎn)系統(tǒng)時(shí)鐘的同步來精確地完成并發(fā)的密鑰翻轉(zhuǎn)。若連接兩端 的時(shí)鐘不同步,則密碼翻轉(zhuǎn)可能失敗,導(dǎo)致連接或會(huì)話的重置。
另一個(gè)可能的方法是修改TCP來明確攜帶發(fā)信令通知MD5密鑰改變的比特或字段。但是,該方法需要專用邏輯來解釋信令,且要求在端點(diǎn)處 對信令消息的管理。
另一個(gè)可能的方法是第一端點(diǎn)在任意特定時(shí)刻單方面改變消息認(rèn)證密 鑰,基于改變的密鑰生成消息認(rèn)證標(biāo)簽,并向第二端點(diǎn)發(fā)送消息和消息認(rèn) 證標(biāo)簽。若第二端點(diǎn)不能基于當(dāng)前密鑰來認(rèn)證消息,則第二端點(diǎn)改變密鑰 再次嘗試。若改變到第二密鑰導(dǎo)致成功的消息認(rèn)證,則第二端點(diǎn)得知第一 端點(diǎn)已改變密鑰。
但是,因?yàn)榻邮斩它c(diǎn)必須在每次切換時(shí)計(jì)算多個(gè)認(rèn)證標(biāo)簽,所以該方 法耗費(fèi)計(jì)算。端點(diǎn)還可將分組保持在無序緩沖器中,并且必須利用多個(gè)密 鑰適當(dāng)?shù)靥幚磉@些分組的認(rèn)證。另外,將欺騙數(shù)據(jù)段注入到網(wǎng)絡(luò)中的惡意 用戶可能強(qiáng)制端點(diǎn)重復(fù)計(jì)算多個(gè)認(rèn)證標(biāo)簽。
上面所引用的在先方法例如在如上引用的Mynam等I和Mynam等II
中示出。
基于前面所述,無疑需要克服了上述現(xiàn)有方法缺點(diǎn)的用于阻止數(shù)據(jù)注 入攻擊的技術(shù)。
本發(fā)明通過示例方式而不是通過限制方式在附圖的圖示中給出,所述
附圖中相似的參考標(biāo)號指代相似的要素,并且其中
圖1是例示了在其中可實(shí)現(xiàn)實(shí)施方式的可操作環(huán)境的框圖2A是示出切換傳輸協(xié)議連接密鑰的方法的一個(gè)實(shí)施方式的上位概
覽的流程圖2B是示出用于確定切換傳輸協(xié)議連接密鑰的示例替代方法的上位 概覽的流程圖3是示例密鑰矩陣的框圖;并且
圖4是例示了可在其上實(shí)現(xiàn)實(shí)施方式的計(jì)算機(jī)系統(tǒng)的框圖。
具體實(shí)施例方式
描述了用于切換傳輸協(xié)議連接密鑰的方法。在以下描述中,出于解釋目的,提出多個(gè)具體細(xì)節(jié)來提供對本發(fā)明的全面理解。但是,本領(lǐng)域技術(shù) 人員將理解本發(fā)明的實(shí)施不需要這些具體細(xì)節(jié)。在其他示例中,為避免不 必要地模糊本發(fā)明,以框圖形式示出公知的結(jié)構(gòu)和設(shè)備。
這里根據(jù)以下提綱來描述實(shí)施方式
1.0 —般概覽
2.0結(jié)構(gòu)和功能概覽
3.0切換傳輸協(xié)議連接密鑰的方法
4.0實(shí)現(xiàn)機(jī)制-硬件概覽
5.0擴(kuò)展和替代
1.0 —般概覽
在前述背景中確定的需要以及通過以下描述將變得明顯的其他需要和 目標(biāo)在本發(fā)明中達(dá)成,本發(fā)明在一個(gè)方面包括用于切換傳輸協(xié)議密鑰的方 法,所述方法包括在建立在數(shù)據(jù)通信網(wǎng)中的連接的第一端點(diǎn)處接收和存儲(chǔ) 多個(gè)密碼;選擇用于認(rèn)證連接上的數(shù)據(jù)段的第一密碼;從第二端點(diǎn)接收該 連接上的數(shù)據(jù)段,其中所述數(shù)據(jù)段包括第二端點(diǎn)自動(dòng)增加的序列值;確定 該序列值是否與指定的特征相匹配,若是,則在用于認(rèn)證后續(xù)數(shù)據(jù)段的多 個(gè)密碼中選擇下一密碼。
根據(jù)該方面的一個(gè)特征,指定的特征是TCP序列號的指定數(shù)目的繞回 (wraparound)的出現(xiàn)。在另一個(gè)特征中,指定的特征是大于從第二端點(diǎn) 收到的初始序列號的指定數(shù)目。在又一個(gè)特征中,指定的特征是初始連接 窗大小值的指定倍數(shù)。
在又一個(gè)特征中,連接是傳輸控制協(xié)議(TCP)連接,且其中序列值 是TCP序列號。在另一特征中,第一密碼和下一密碼是用于執(zhí)行TCP段 的基于哈希的消息認(rèn)證的MD5哈希算法密鑰值。在再一特征中,連接是 流傳輸控制協(xié)議(SCTP)連接,且序列值是SCTP傳輸序列號(TSN)。
根據(jù)另一方面,本發(fā)明提供了在電信網(wǎng)絡(luò)中自動(dòng)改變連接的兩個(gè)端點(diǎn) 的每一個(gè)處的消息認(rèn)證密鑰的方法,所述方法包括以下計(jì)算機(jī)實(shí)現(xiàn)的步 驟在建立在網(wǎng)絡(luò)中的傳輸控制協(xié)議(TCP)連接的第一端點(diǎn)處接收和存儲(chǔ)多個(gè)密碼;選擇用于認(rèn)證連接上的數(shù)據(jù)段的第一密碼;從第二端點(diǎn)接收 連接上的TCP段,其中所述數(shù)據(jù)段包括第二端點(diǎn)確定的TCP序列號;確 定該序列號是否與指定的特征相匹配,若是,則在用于認(rèn)證后續(xù)數(shù)據(jù)段的 多個(gè)密碼中選擇下一密碼。指定的特征是以下各項(xiàng)中的任何一個(gè)TCP序 列號的特定數(shù)目的繞回,大于從第二端點(diǎn)收到的初始序列號的特定數(shù)目, 以及初始連接窗大小值的特定倍數(shù)。
在又一個(gè)方面中,本發(fā)明提供了在電信網(wǎng)絡(luò)中自動(dòng)改變連接的兩個(gè)端 點(diǎn)的每一個(gè)處的消息認(rèn)證密鑰的方法,所述方法包括以下步驟測試在連 接的多個(gè)數(shù)據(jù)段的每一個(gè)中收到的序列值;當(dāng)序列值與指定的特征相匹配 時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰中選擇用于認(rèn)證后續(xù)收到的數(shù)據(jù)段的下一 消息認(rèn)證密鑰。
在其他方面,本發(fā)明包括被配置為執(zhí)行前述步驟的計(jì)算機(jī)裝置和計(jì)算 機(jī)可讀介質(zhì)。
2.0結(jié)構(gòu)概覽
圖1是例示了可在其中實(shí)現(xiàn)此處描述的用于切換傳輸協(xié)議密鑰的方法 的實(shí)施方式的可操作環(huán)境的框圖。
網(wǎng)絡(luò)元件110和網(wǎng)絡(luò)元件120通過網(wǎng)絡(luò)100可通信地連接。在圖1 中,網(wǎng)絡(luò)元件110和120是各自運(yùn)行一個(gè)或多個(gè)BGP處理器116、 126的 路由器。但是,此處描述的方法不限于在運(yùn)行BGP過程的路由器上實(shí)現(xiàn), 并且圖1所描繪的網(wǎng)絡(luò)元件和其上運(yùn)行的過程僅是一個(gè)實(shí)現(xiàn)方法的示例。
網(wǎng)絡(luò)元件IIO包括操作系統(tǒng)112,操作系統(tǒng)112包括TCP模塊114、 密鑰改變邏輯118和密鑰矩陣119。密鑰改變邏輯118包括實(shí)現(xiàn)此處描述 的功能的一個(gè)或多個(gè)計(jì)算機(jī)程序指令或其他軟件要素。密鑰矩陣119是相 關(guān)聯(lián)地存儲(chǔ)用于執(zhí)行消息認(rèn)證操作的密鑰和用于確定何時(shí)切換到新密鑰的 特征的數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施方式中,密鑰改變邏輯118可集成到TCP模 塊114中。
密鑰改變邏輯118和密鑰矩陣119在操作系統(tǒng)112中被單獨(dú)例示以示 出一個(gè)示例實(shí)施方式?;蛘撸荑€改變邏輯118可包括操作系統(tǒng)主控的獨(dú)立應(yīng)用。密鑰矩陣119可在任何可訪問密鑰改變邏輯118的位置存儲(chǔ)。使 用安全存儲(chǔ)是合適的,以阻止非授權(quán)用戶或應(yīng)用訪問密鑰矩陣中的密碼。 術(shù)語"密鑰"和"密碼"在本說明書中具有相同的意思。
BGP過程116在操作系統(tǒng)112頂部邏輯運(yùn)行并使用TCP模塊114提供 的傳輸服務(wù)。類似地,網(wǎng)絡(luò)元件120包括操作系統(tǒng)122,操作系統(tǒng)122包 括TCP模塊124。 BGP過程126在操作系統(tǒng)122頂部運(yùn)行并使用TCP模塊 124提供的傳輸服務(wù)。
網(wǎng)絡(luò)元件110上的BGP過程116和網(wǎng)絡(luò)元件120上的BGP過程126 通過TCP連接117建立BGP會(huì)話。TCP連接117與分別由網(wǎng)絡(luò)元件110 上的TCP模i央114和網(wǎng)絡(luò)元件120上的TCP模i央116表示的兩個(gè)TCP端 點(diǎn)相關(guān)聯(lián)。
在操作的一個(gè)方面,BGP會(huì)話建立后,BGP過程116利用MD5密鑰 配置TCP模塊114,該密鑰被TCP模塊114用來創(chuàng)建用于或"簽署"TCP 段的MD5簽名,所述TCP段通過TCP連接117將BGP消息運(yùn)送到BGP 過程126。類似地,BGP過程126利用同樣的MD5密鑰配置TCP模塊 124,該密鑰被TCP模塊124用來創(chuàng)建用于TCP段的MD5簽名,所述 TCP段通過TCP連接117將BGP消息運(yùn)送到BGP過程116。
BGP會(huì)話建立后,當(dāng)BGP過程116決定向BGP過程126發(fā)送BGP消 息時(shí),BGP過程116將BGP消息傳送到TCP模塊114。 TCP模塊114接 收消息內(nèi)容,必要的話,拆分用于包含在一個(gè)或多個(gè)TCP段的凈荷部分的 消息。TCP模塊114隨后創(chuàng)建一個(gè)或多個(gè)TCP段,并且對于每個(gè)TCP 段,使用先前由BGP過程116提供的MD5密鑰來創(chuàng)建MD5簽名。 一個(gè) 或多個(gè)TCP段通過TCP連接117被發(fā)送到TCP模塊124,并在需要TCP 段的重傳的情況中置于TCP模塊114的用于該連接的重傳隊(duì)列中。
收到一個(gè)或多個(gè)TCP段之后,TCP模塊124利用它自己的用于TCP 連接117的MD5密鑰版本為每段計(jì)算MD5摘要。對于每個(gè)TCP段,若算 出的MD5摘要與TCP段中包含的MD5簽名相匹配,則TCP模塊124證 實(shí)該段有效。TCP模塊124隨后根據(jù)一個(gè)或多個(gè)收到的TCP段的內(nèi)容,組 裝原始的BGP消息,必要的話,將該消息傳遞到BGP過程126。網(wǎng)絡(luò)元件126上的BGP過程126通過TCP連接117向網(wǎng)絡(luò)元件110 中的BGP過程126以類似方式發(fā)送BGP消息。
此處的功能提供諸如MD5密鑰之類的周期性改變的密鑰,通過該密 鑰確定消息簽名。為了支持此處描述的功能,密鑰矩陣119在此處描述的 功能變得可操作之前通過安全方式被供應(yīng)給每一個(gè)網(wǎng)絡(luò)元件110、 120。將 密鑰矩陣119供應(yīng)給網(wǎng)絡(luò)元件的具體方式不重要,且應(yīng)用(如BGP過程 116、 126或其他應(yīng)用)可實(shí)現(xiàn)任何適當(dāng)?shù)墓?yīng)機(jī)制。重要的是密鑰矩陣 119在此處的密鑰改變技術(shù)開始前的某個(gè)時(shí)刻以相同形式存在于兩個(gè)網(wǎng)絡(luò) 元件IIO、 120上。
在一個(gè)方法中,管理員負(fù)責(zé)確保連接的兩個(gè)端點(diǎn)被供應(yīng)了用于實(shí)現(xiàn)此 處的技術(shù)的密鑰矩陣119和密鑰改變邏輯118。在哈希算法密鑰以其他方 式離線交換的環(huán)境中,該方法是適用的。
或者,可使用一種超時(shí)(timeout)方法。在超時(shí)方法中,當(dāng)發(fā)送端點(diǎn) 確定了需要改變密鑰時(shí),發(fā)送端點(diǎn)開始為發(fā)送到接收端的哈希數(shù)據(jù)使用新 密鑰。若發(fā)送端點(diǎn)未能在指定的超時(shí)時(shí)間段(例如,TCP超時(shí)時(shí)間段,通 常比BGP KEEPALIVE超時(shí)值短)內(nèi)收到來自接收端點(diǎn)的響應(yīng),則發(fā)送端 點(diǎn)假設(shè)接收端點(diǎn)不能認(rèn)證該消息或使用新密鑰。作為響應(yīng),發(fā)送端點(diǎn)返回 到先前的密鑰。該方法為此處的技術(shù)提供了后向兼容性。
在另一個(gè)方法中,端點(diǎn)可交換BGP能力協(xié)商消息來互相通知每個(gè)端點(diǎn) 可使用此處的技術(shù)來執(zhí)行密碼轉(zhuǎn)換。
在另一個(gè)方法中,指定的TCP選項(xiàng)值可以指示使用此處的技術(shù)。
并且,可通過諸如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)、流控制傳輸協(xié)議 (SCTP)和數(shù)據(jù)報(bào)擁塞控制協(xié)議(DCCP)之類的各種面向連接或無連接 傳輸協(xié)議來實(shí)現(xiàn)不同的實(shí)施方式。另外,可實(shí)現(xiàn)此處描述的方法的不同實(shí) 施方式來為諸如LDP和多播源發(fā)現(xiàn)協(xié)議(Multicast Source Discovery Protocol)之類的各種上層應(yīng)用提供傳輸協(xié)議密鑰轉(zhuǎn)換。因此,此處描述的 方法的實(shí)施方式和圖1所描繪的可操作環(huán)境展示了示例,但實(shí)施方式不限 于圖1的環(huán)境。3.0切換傳輸協(xié)議連接密鑰的方法
一般地,此處用于在電信網(wǎng)絡(luò)中切換連接的兩個(gè)端點(diǎn)的每一個(gè)處的傳 輸協(xié)議連接密鑰的方法包括測試連接上的多個(gè)數(shù)據(jù)段的每一段中收到的序 列值。當(dāng)序列值匹配指定的特征時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰中選擇用 于認(rèn)證后續(xù)接收的數(shù)據(jù)段的下一消息認(rèn)證密鑰。序列值通過傳輸協(xié)議的普 通操作自動(dòng)在發(fā)送時(shí)刻增加。
實(shí)際上,端點(diǎn)觀察活動(dòng)連接的抵達(dá)段的序列值,當(dāng)序列值到達(dá)特定值 或匹配特定特征時(shí),端點(diǎn)自動(dòng)切換到另一個(gè)消息認(rèn)證密鑰。對方端點(diǎn)也照 此辦理。
由于兩個(gè)端點(diǎn)觀察兩個(gè)端點(diǎn)發(fā)送或接收的段的相同序列值,因此該方 法保證了密鑰轉(zhuǎn)換同時(shí)發(fā)生。不要求密鑰改變信令或分組格式改變;TCP 實(shí)現(xiàn)方式不要求任何TCP協(xié)議操作的改變。端點(diǎn)不需要處理在轉(zhuǎn)換時(shí)間間 隔期間同時(shí)活動(dòng)的多個(gè)消息認(rèn)證密鑰,例如,當(dāng)緩沖器中持有亂序分組 時(shí)。不要求消息的雙重哈希。密鑰改變后不要求連接重置。不要求應(yīng)用在 密鑰改變發(fā)生時(shí)重置會(huì)話。不要求時(shí)鐘同步。
圖2A是示出切換傳輸協(xié)議連接密鑰的方法的一個(gè)實(shí)施方式的上位概 覽的流程圖;圖2B是示出用于確定是否切換傳輸協(xié)議連接密鑰的示例替 代方法的上位概覽的流程圖。圖3是示例密鑰矩陣的框圖。
首先參考圖2A,在步驟202中,消息認(rèn)證密鑰的配置和導(dǎo)致密鑰改 變的特征被接收。在一個(gè)實(shí)施方式中,步驟202涉及將密鑰矩陣119供應(yīng) 給傳輸協(xié)議連接的每個(gè)端點(diǎn)的應(yīng)用。諸如網(wǎng)絡(luò)管理員之類的用戶可執(zhí)行該 供應(yīng)。該供應(yīng)可將密鑰矩陣119提供到多個(gè)路由器、交換機(jī)或?qū)韨鬏攨f(xié) 議連接中可能涉及到的其他網(wǎng)絡(luò)元件。這樣,事先不需要知道特定連接的 特定端點(diǎn)。該供應(yīng)通常以安全方式執(zhí)行,例如使用加密技術(shù)確保未授權(quán)用 戶或設(shè)備不能截取和使用密鑰矩陣119。
各種實(shí)施方式可使用許多不同種類的導(dǎo)致密鑰改變的特征。 一般地, 導(dǎo)致密鑰改變的特征依賴于在傳輸協(xié)議連接的段中攜帶的序列值。例如, '在一個(gè)實(shí)施方式中,密鑰改變發(fā)生在收到的段中的序列值等于初始接收窗 大小的指定倍數(shù)時(shí)。在TCP用語中,該序列值為w cvw"丄或者,密鑰改變特征在序列值繞回最大允許序列值數(shù)目空間指定次數(shù)
時(shí),指定一次密鑰改變。因此,若序列值用具有最大十進(jìn)制值216=65536 的16比特表示,且指定的繞回?cái)?shù)目為3,則密鑰改變特征將在序列值從0 增加到65535三(3)次時(shí),指定密鑰改變發(fā)生。
在另一替代方式中,密鑰改變特征指定從初始序列值的偏移量。例 如,在TCP實(shí)現(xiàn)方式中,密鑰改變特征可以當(dāng)TCP數(shù)據(jù)段序列號達(dá)到 ISN+指定值時(shí)指定密鑰改變。
在又一個(gè)替代方式中,密鑰改變特征指定從端點(diǎn)發(fā)送并由接收端點(diǎn)確 認(rèn)的數(shù)據(jù)量或字節(jié)數(shù)。例如,應(yīng)用可指定與密鑰改變矩陣119中的密碼相 關(guān)聯(lián)地存儲(chǔ)的特定數(shù)目的字節(jié)。通過計(jì)算離ISN的偏移量,指定數(shù)目的字 節(jié)被轉(zhuǎn)換成要求密鑰改變的特定序列號。
例如,假設(shè)在TCP實(shí)現(xiàn)方式中,ISN為10000,且密鑰改變矩陣119 指定密鑰改變將在交換了 5000字節(jié)的數(shù)據(jù)之后發(fā)生。于是,開始序列號 大于等于15000的任何TCP段必須使用新密鑰。TCP序列號為14999且長 度為100字節(jié)的TCP段仍使用舊密鑰,而以TCP序列號14999 + 100 = 15099開始的下一段將開始使用下一密鑰來進(jìn)行消息認(rèn)證。
現(xiàn)在參考圖3,示出密鑰改變矩陣119的示例實(shí)施方式。密鑰改變矩 陣119包括具有分別關(guān)聯(lián)密碼、密碼改變特征以及可選地關(guān)聯(lián)后續(xù)認(rèn)證方 法的列302、 304、 306的任意數(shù)目的行。例如,密鑰改變矩陣119的第一 行指定第一個(gè)消息認(rèn)證密碼是"0xll3be44aah",該密碼應(yīng)在連接的序列 值等于(3Vcvvvm/)時(shí)改變到矩陣中的下一個(gè)密碼,并且當(dāng)密碼改變發(fā)生 時(shí),應(yīng)利用下一個(gè)密碼來使用MD5消息認(rèn)證算法。示例密鑰改變矩陣的 相繼的行基于5次序列值繞回的發(fā)生以及離ISN的指定偏移量,來將其他 密碼與密鑰改變相關(guān)聯(lián)。另外,最后一行指定下一個(gè)認(rèn)證方法應(yīng)為SHA1 而非MD5。
在任一特定實(shí)施方式中,指定不同的認(rèn)證方法是可選的而不是必需 的。另外,替代實(shí)施方式可將其他安全機(jī)制與密碼改變相關(guān)聯(lián)。例如,密 鑰改變矩陣可指定密碼改變后應(yīng)為后續(xù)收到的段使用多個(gè)安全機(jī)制的組 合。密鑰改變矩陣可指定密鑰改變發(fā)生時(shí)應(yīng)用應(yīng)向用戶、系統(tǒng)或應(yīng)用發(fā)出通知或警告。示例通知可指示密鑰改變矩陣中幾乎所有密鑰都已被使用, 需要供應(yīng)新的密鑰改變矩陣。這樣,密鑰改變矩陣為傳輸協(xié)議連接的安全 提供靈活的配置。
在使用TCP的某些實(shí)施方式中,當(dāng)指定了非MD5的認(rèn)證方法時(shí),可 修改TCP協(xié)議來重載當(dāng)前TCP選項(xiàng)以使用其他認(rèn)證方法。TCP MD5選項(xiàng) 可被重塑為可以攜帶標(biāo)識多個(gè)認(rèn)證方法之一的值的TCP安全選項(xiàng)。
再次參考圖2A,在步驟204中,選擇第一密鑰。步驟204表示在特定 端點(diǎn)選擇密鑰改變矩陣中的第一密鑰。假設(shè)其他端點(diǎn)同時(shí)選擇相同的第一 密鑰,以便這些端點(diǎn)在開始時(shí)是同步的。
在步驟206中,接收數(shù)據(jù)段。例如,包含數(shù)據(jù)塊的TCP數(shù)據(jù)段或 SCTP消息被接收。在步驟208中,從收到的數(shù)據(jù)段中獲得序列值。在 TCP實(shí)現(xiàn)方式中,步驟208表示識別在收到的數(shù)據(jù)段中攜帶的序列號。若 收到的數(shù)據(jù)段是連接的第一段,則序列號可以是其他端點(diǎn)生成的ISN,或 者序列號可以是在其他端點(diǎn)將一些確認(rèn)數(shù)據(jù)成功發(fā)送到第一端點(diǎn)后確定的 遞增的序列號。
在步驟210中,來自收到的數(shù)據(jù)段的序列值與存儲(chǔ)的密鑰改變特征相 比較來確定是否存在匹配。例如,步驟210包括將收到的TCP序列號與密 鑰改變矩陣119 (圖3)的密碼改變特征的值相比較以確定收到的序列號 是否與任何列的值相匹配。
若匹配發(fā)生,則在步驟214中選擇下一個(gè)密鑰。例如,對于圖3的密 鑰改變矩陣119,若當(dāng)前密碼為"0xll3be44aah",且當(dāng)前收到的序列號 匹酉己(3Vc雨tO ,則選擇下一個(gè)密碼"0xll3be44a99"。在步驟216 中,使用所選密鑰計(jì)算用于收到的消息的認(rèn)證值。從而,若匹配發(fā)生于步 驟210,則在歩驟216中使用新選擇的密碼來計(jì)算用于收到的消息的認(rèn)證 值以確定收到的消息是否為真。若沒有匹配發(fā)生,則在步驟216中繼續(xù)使 用舊密碼。
在步驟218中,其他適當(dāng)?shù)臄?shù)據(jù)段處理出現(xiàn)??刂齐S后轉(zhuǎn)移到步驟 206以通過相同方式處理其他數(shù)據(jù)段。
在步驟215中,當(dāng)選擇了新密鑰或密碼時(shí),該過程還可選地選擇其他安全特征。例如,可從密鑰改變矩陣選擇新的認(rèn)證方法并在步驟216中使 用它來確定消息認(rèn)證值。
在本方法中,對于當(dāng)前使用的消息認(rèn)證方法,端點(diǎn)總保持同步。這一 現(xiàn)象的出現(xiàn)是因?yàn)榘l(fā)送端點(diǎn)一直是確定序列值與密鑰改變矩陣中的特征相 匹配的第一端點(diǎn),因?yàn)榘l(fā)送端點(diǎn)在它發(fā)送消息時(shí)積累序列值。識別匹配之 后,發(fā)送端點(diǎn)可切換到新的消息認(rèn)證方法,使用該方法來計(jì)算認(rèn)證值,并 發(fā)送新計(jì)算的認(rèn)證值和消息。接收端點(diǎn)隨后檢查收到的序列值,同樣識別 匹配,切換到新的消息認(rèn)證方法,從而使用正確的新消息認(rèn)證方法來驗(yàn)證 收到的認(rèn)證值。
圖2B使用導(dǎo)致密鑰改變的特征的各種示例測試示出圖2A的流程步驟 的進(jìn)一步細(xì)節(jié)。例如,在一個(gè)實(shí)施方式中,在步驟208之后,圖2A的步 驟210的測試可包括在步驟210A中測試收到的序列值是否等于TCP序列 號繞回的指定倍數(shù)。或者,步驟210可包括在步驟210B中確定收到的序 列號是否等于離TCP連接的初始序列號指定偏移量。另外,在步驟210C 中,密鑰改變特征可在TCP數(shù)據(jù)段序列號達(dá)到初始接收窗大小的指定倍數(shù) 時(shí)指定密鑰改變。若基于與密鑰改變矩陣119的匹配,任一這類測試為 真,則在步驟214中選擇下一個(gè)密鑰。
此處的某些段參考MD5的使用作為消息認(rèn)證方法。這類參考僅用作 示例。其他實(shí)施方式可使用任何其他消息認(rèn)證方法或加密方法,如 SHA1、 UMAC-96、 CMAC等。
此處的某些段參考TCP的使用作為傳輸協(xié)議。這類參考僅用作示例。 其他實(shí)施方式可使用任何其他使用序列值用于流控制或其他目的的面向連 接的通信協(xié)議,如SCTP。
4.0實(shí)現(xiàn)機(jī)制-硬件概覽
圖4是例示了其中可實(shí)現(xiàn)本發(fā)明的實(shí)施方式的計(jì)算機(jī)系統(tǒng)400的框 圖。優(yōu)選實(shí)施方式是利用一個(gè)或多個(gè)在諸如路由器設(shè)備之類的網(wǎng)絡(luò)元件上 運(yùn)行的計(jì)算機(jī)程序來實(shí)現(xiàn)的。因此,在該實(shí)施方式中,計(jì)算機(jī)系統(tǒng)400是 一個(gè)路由器。計(jì)算機(jī)系統(tǒng)400包括總線402或其他用于傳送信息的傳送機(jī)制,以及 耦合到總線402用于處理信息的處理器404。計(jì)算機(jī)系統(tǒng)400還包括耦合 到總線402用于存儲(chǔ)信息和處理器404運(yùn)行的指令的主存儲(chǔ)器406,如隨 機(jī)存取存儲(chǔ)器(RAM)、閃存或其他動(dòng)態(tài)存儲(chǔ)設(shè)備。主存儲(chǔ)器406還可用 于存儲(chǔ)在處理器404運(yùn)行的指令運(yùn)行期間的臨時(shí)變量或其他中間信息。計(jì) 算機(jī)系統(tǒng)400還包括耦合到總線402用于存儲(chǔ)靜態(tài)信息和用于處理器404 的指令的只讀存儲(chǔ)器(ROM) 408或其他靜態(tài)存儲(chǔ)設(shè)備。諸如磁盤、閃存 或光盤之類的存儲(chǔ)設(shè)備410被提供并耦合到總線402用于存儲(chǔ)信息和指通信接口 418可以耦合到總線402用于將信息和命令選項(xiàng)傳送到處理 器404。接口 418是傳統(tǒng)的串行接口,如RS-232或RS-422接口。外部終 端412或其他計(jì)算機(jī)系統(tǒng)連接到計(jì)算機(jī)系統(tǒng)400并利用接口 418向其提供 命令。計(jì)算機(jī)系統(tǒng)400中運(yùn)行的固件或軟件提供終端接口或基于特征的命 令接口以便可以將外部命令給予計(jì)算機(jī)系統(tǒng)。交換系統(tǒng)416耦合到總線402并具有到一個(gè)或多個(gè)外部網(wǎng)絡(luò)元件的輸 入接口 414和輸出接口 419。外部網(wǎng)絡(luò)元件可包括耦合到一個(gè)或多個(gè)主機(jī) 424的本地網(wǎng)絡(luò)422,或諸如互聯(lián)網(wǎng)428之類的具有一個(gè)或多個(gè)服務(wù)器430 的全球網(wǎng)。交換系統(tǒng)416根據(jù)預(yù)定協(xié)議和公知慣例將抵達(dá)輸入接口 414的 信息流量切換到輸出接口 419。例如,交換系統(tǒng)416與處理器404合作可 以確定抵達(dá)輸入接口 414的數(shù)據(jù)分組的目的地并利用輸出接口 419將其發(fā) 送到正確的目的地。目的地可包括本地網(wǎng)絡(luò)422或互聯(lián)網(wǎng)428中的主機(jī) 424、服務(wù)器430、其他終端站或者其他路由和交換設(shè)備。本發(fā)明涉及用于切換傳輸協(xié)議連接密鑰的計(jì)算機(jī)系統(tǒng)400的使用。根 據(jù)本發(fā)明的一個(gè)實(shí)施方式,計(jì)算機(jī)系統(tǒng)400響應(yīng)于運(yùn)行主存儲(chǔ)器406中包 含的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列的處理器404來提供用于切換傳輸 協(xié)議連接密鑰的方法。這類指令可從諸如存儲(chǔ)設(shè)備410之類的另一計(jì)算機(jī) 可讀介質(zhì)被讀入主存儲(chǔ)器406。主存儲(chǔ)器406中包含的指令序列的運(yùn)行導(dǎo) 致處理器404執(zhí)行此處描述的過程步驟.。也可采用多處理裝置中的一個(gè)或 多個(gè)處理器來運(yùn)行主存儲(chǔ)器406中包含的指令序列。在替代實(shí)施方式中,可代替或結(jié)合軟件指令使用硬連接電路以實(shí)現(xiàn)本發(fā)明。因此,本發(fā)明的實(shí) 施方式不限于硬件電路和軟件的任何特定組合。此處使用的術(shù)語"計(jì)算機(jī)可讀介質(zhì)"指代參與向處理器404提供指令 來運(yùn)行的任何介質(zhì)。該介質(zhì)可采用很多形式,包括但不限于非易失性介 質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)例如包括光盤或磁盤,如存儲(chǔ)設(shè)備410。易失性介質(zhì)包括動(dòng)態(tài)存儲(chǔ)器,如主存儲(chǔ)器406。傳輸介質(zhì)包括 同軸電纜、銅線和光纖,包括由總線402組成的線纜。傳輸介質(zhì)也可采用 聲波或光波的形式,如在無線電波和紅外數(shù)據(jù)通信期間生成的聲波或光 波。計(jì)算機(jī)可讀介質(zhì)的常見形式例如包括軟盤,柔性盤,硬盤,磁帶或任 何其他磁介質(zhì),CD-ROM,任何其他光介質(zhì),打孔卡片,紙帶,任何其他 帶有孔樣式的物理介質(zhì),RAM, PROM禾卩EPROM, FLASH-EPROM,任何其他存儲(chǔ)芯片或筒盒,下文中所描述的載波,或者計(jì)算機(jī)可以從中讀取 的任何其他介質(zhì)。將一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列運(yùn)送至處理器404供執(zhí)行可能涉 及各種形式的計(jì)算機(jī)可讀介質(zhì)。例如,開始時(shí)指令可能在遠(yuǎn)程計(jì)算機(jī)的磁 盤上攜帶。遠(yuǎn)程計(jì)算機(jī)可將指令加載到它的動(dòng)態(tài)存儲(chǔ)器中并利用調(diào)制解調(diào) 器通過電話線發(fā)送指令,計(jì)算機(jī)系統(tǒng)400本地的調(diào)制解調(diào)器可通過電話線 接收數(shù)據(jù)并使用紅外發(fā)送器來將數(shù)據(jù)轉(zhuǎn)化成紅外信號。耦合到總線402的 紅外檢測器可以接收在紅外信號中攜帶的數(shù)據(jù)并將數(shù)據(jù)放到總線402上。 總線402將數(shù)據(jù)運(yùn)送到主存儲(chǔ)器406,處理器404從主存儲(chǔ)器獲取和運(yùn)行 指令。主存儲(chǔ)器406接收的指令在被處理器404運(yùn)行之前或之后可選地存 儲(chǔ)到存儲(chǔ)設(shè)備410上。通信接口 418還提供耦合到網(wǎng)絡(luò)鏈接420的雙向數(shù)據(jù)通信,網(wǎng)絡(luò)鏈接 420連接到本地網(wǎng)絡(luò)422。例如,通信接口 418可以是綜合業(yè)務(wù)數(shù)字網(wǎng) (ISDN)卡或調(diào)制解調(diào)器,以向相應(yīng)類型的電話線提供數(shù)據(jù)通信連接。作 為另一個(gè)示例,通信接口 418可以是局域網(wǎng)(LAN)卡,以向兼容的LAN 提供數(shù)據(jù)通信連接。還可實(shí)現(xiàn)無線鏈接。在任何這類實(shí)現(xiàn)方式中,通信接 口 418發(fā)送和接收電、電磁或光信號,所述信號攜帶表示各種類型信息的數(shù)字?jǐn)?shù)據(jù)流。
網(wǎng)絡(luò)鏈接420通常通過一個(gè)或多個(gè)網(wǎng)絡(luò)向其他數(shù)據(jù)設(shè)備提供數(shù)據(jù)通
信。例如,網(wǎng)絡(luò)鏈接420可通過本地網(wǎng)絡(luò)422向主機(jī)424或向互聯(lián)網(wǎng)服務(wù) 供應(yīng)商(ISP) 426操作的數(shù)據(jù)設(shè)備提供連接。ISP 426進(jìn)而通過現(xiàn)在一般 被稱作"互聯(lián)網(wǎng)"428的全球分組數(shù)據(jù)通信網(wǎng)絡(luò)提供數(shù)據(jù)通信服務(wù)。本地 網(wǎng)絡(luò)422和互聯(lián)網(wǎng)428都使用攜帶數(shù)字?jǐn)?shù)據(jù)流的電、電磁或光信號。攜帶 去往和來自計(jì)算機(jī)系統(tǒng)400的數(shù)字?jǐn)?shù)據(jù)、穿過各種網(wǎng)絡(luò)的信號以及網(wǎng)絡(luò)鏈 接420上的和穿過通信接口 418的信號是傳輸信息的載波的示例性形式。
計(jì)算機(jī)系統(tǒng)400可以通過網(wǎng)絡(luò)(一個(gè)或多個(gè))、網(wǎng)絡(luò)鏈接420和通信 接口 418發(fā)送消息并接收數(shù)據(jù),包括程序代碼。在互聯(lián)網(wǎng)示例中,服務(wù)器 430可通過互聯(lián)網(wǎng)428、 ISP 426、本地網(wǎng)絡(luò)422和通信接口 418發(fā)送用于 應(yīng)用程序的請求代碼。根據(jù)本發(fā)明, 一個(gè)這類下載的應(yīng)用程序提供此處描 述的傳輸協(xié)議連接密鑰。
因?yàn)榇a被接收和/或存儲(chǔ)到存儲(chǔ)設(shè)備410或其他非易失性存儲(chǔ)器中供 以后運(yùn)行,所以處理器404可運(yùn)行收到的代碼。通過這種方式,計(jì)算機(jī)系 統(tǒng)400可以載波的形式獲得應(yīng)用程序代碼。
5.0擴(kuò)展和替代
在前述說明中,參考本發(fā)明的具體實(shí)施方式
描述了本發(fā)明,但是顯 然,在不脫離本發(fā)明的更寬精神和范圍的前提下,可對其進(jìn)行各種修改和 變更。因此,說明書和附圖應(yīng)被視為解釋性而非限制性的。
權(quán)利要求
1.一種方法,包括在建立在數(shù)據(jù)通信網(wǎng)絡(luò)中的連接的第一端點(diǎn)處接收和存儲(chǔ)多個(gè)密碼;選擇用于認(rèn)證所述連接上的數(shù)據(jù)段的第一密碼;從第二端點(diǎn)接收所述連接上的數(shù)據(jù)段,其中所述數(shù)據(jù)段包括被所述第二端點(diǎn)自動(dòng)增加的序列值;確定所述序列值是否與指定特征相匹配,若是,則從所述多個(gè)密碼中選擇下一密碼用于認(rèn)證后續(xù)的數(shù)據(jù)段。
2. 如權(quán)利要求l所述的方法,其中所述指定特征是TCP序列號的指定 數(shù)目的繞回的發(fā)生。
3. 如權(quán)利要求1所述的方法,其中所述指定特征是大于從所述第二端 點(diǎn)接收的初始序列號的指定數(shù)目。
4. 如權(quán)利要求1所述的方法,其中所述指定特征是初始連接窗大小值 的指定倍數(shù)。
5. 如權(quán)利要求1所述的方法,其中所述連接是傳輸控制協(xié)議(TCP) 連接,并且其中所述序列值是TCP序列號。
6. 如權(quán)利要求1所述的方法,其中所述第一密碼和所述下一密碼是用 于執(zhí)行TCP段的基于哈希的消息認(rèn)證的哈希算法密鑰值。
7. 如權(quán)利要求1所述的方法,其中所述連接是流傳輸控制協(xié)議 (SCTP)連接,并且所述序列值是SCTP傳輸序列號(TSN)。
8. —種在電信網(wǎng)絡(luò)中自動(dòng)改變連接的兩個(gè)端點(diǎn)的每個(gè)端點(diǎn)處的消息認(rèn) 證密鑰的方法,所述方法包括計(jì)算機(jī)實(shí)現(xiàn)的以下步驟在建立在所述網(wǎng)絡(luò)中的傳輸控制協(xié)議(TCP)連接的第一端點(diǎn)處接收 和存儲(chǔ)多個(gè)密碼;選擇用于認(rèn)證所述連接上的數(shù)據(jù)段的第一密碼;從第二端點(diǎn)接收所述連接上的TCP段,其中所述數(shù)據(jù)段包括所述第二 端點(diǎn)確定的TCP序列號;確定所述序列號是否與指定特征相匹配,若是,則從所述多個(gè)密碼中選擇下一密碼用于認(rèn)證后續(xù)的數(shù)據(jù)段;其中所述指定特征是以下之一TCP序列號的特定數(shù)目的繞回;大于 從所述第二端點(diǎn)接收的初始序列號的特定數(shù)目;以及初始連接窗大小值的 特定倍數(shù)。
9. 一種在電信網(wǎng)絡(luò)中自動(dòng)改變連接的兩個(gè)端點(diǎn)的每個(gè)端點(diǎn)處的消息認(rèn) 證密鑰的方法,所述方法包括以下步驟測試在所述連接上的多個(gè)數(shù)據(jù)段的每一個(gè)中收到的序列值; 當(dāng)所述序列值與指定特征相匹配時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰中選 擇下一消息認(rèn)證密鑰用于認(rèn)證后續(xù)收到的數(shù)據(jù)段。
10. 如權(quán)利要求9所述的方法,其中所述指定特征是TCP序列號的指定數(shù)目的繞回的發(fā)生。
11. 如權(quán)利要求9所述的方法,其中所述指定特征是大于從所述第二端點(diǎn)接收的初始序列號的指定數(shù)目。
12. 如權(quán)利要求9所述的方法,其中所述指定特征是初始連接窗大小 值的指定倍數(shù)。
13. 如權(quán)利要求9所述的方法,其中所述連接是傳輸控制協(xié)議(TCP) 連接,并且其中所述序列值是TCP序列號。
14. 如權(quán)利要求9所述的方法,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的哈希算法密鑰值。
15. 如權(quán)利要求9所述的方法,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的MD5哈希算法密鑰值。
16. 如權(quán)利要求9所述的方法,其中所述連接是流傳輸控制協(xié)議 (SCTP)連接,并且所述序列值是SCTP傳輸序列號(TSN)。
17. —種被配置用于在電信網(wǎng)絡(luò)中自動(dòng)改變連接的端點(diǎn)處的消息認(rèn)證 密鑰的設(shè)備,所述設(shè)備包括用于測試在所述連接上的多個(gè)數(shù)據(jù)段的每一個(gè)中收到的序列值的裝置;用于當(dāng)所述序列值與指定特征相匹配時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰 中選擇下一消息認(rèn)證密鑰用于認(rèn)證后續(xù)收到的數(shù)據(jù)段的裝置。
18. 如權(quán)利要求17所述的設(shè)備,其中所述指定特征是TCP序列號的指定數(shù)目的繞回的發(fā)生。
19. 如權(quán)利要求17所述的設(shè)備,其中所述指定特征是大于從所述第二 端點(diǎn)接收的初始序列號的指定數(shù)目。
20. 如權(quán)利要求17所述的設(shè)備,其中所述指定特征是初始連接窗大小 值的指定倍數(shù)。
21. 如權(quán)利要求17所述的設(shè)備,其中所述連接是傳輸控制協(xié)議 (TCP)連接,并且其中所述序列值是TCP序列號。
22. 如權(quán)利要求17所述的設(shè)備,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的哈希算法密鑰值。
23. 如權(quán)利要求17所述的設(shè)備,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的MD5哈希算法密鑰值。
24. 如權(quán)利要求17所述的設(shè)備,其中所述連接是流傳輸控制協(xié)議 (SCTP)連接,并且所述序列值是SCTP傳輸序列號(TSN)。
25. —種被配置用于在電信網(wǎng)絡(luò)中自動(dòng)改變連接的端點(diǎn)處的消息認(rèn)證 密鑰的設(shè)備,所述設(shè)備包括處理器;網(wǎng)絡(luò)接口,耦合到所述處理器并耦合到所述網(wǎng)絡(luò),用于接收來自所述 網(wǎng)絡(luò)的分組流;計(jì)算機(jī)可讀介質(zhì),耦合到所述處理器,并包含一個(gè)或多個(gè)存儲(chǔ)的指令 序列,所述指令被所述處理器執(zhí)行時(shí),導(dǎo)致所述處理器執(zhí)行以下步驟 測試在所述連接上的多個(gè)數(shù)據(jù)段的每一個(gè)中收到的序列值; 當(dāng)所述序列值與指定特征相匹配時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰中選 擇下一消息認(rèn)證密鑰用于認(rèn)證后續(xù)收到的數(shù)據(jù)段。
26. 如權(quán)利要求25所述的設(shè)備,其中所述指定特征是TCP序列號的指 定數(shù)目的繞回的發(fā)生。
27. 如權(quán)利要求25所述的設(shè)備,其中所述指定特征是大于從所述第二 端點(diǎn)接收的初始序列號的指定數(shù)目。
28. 如權(quán)利要求25所述的設(shè)備,其中所述指定特征是初始連接窗大小值的指定倍數(shù)。
29. 如權(quán)利要求25所述的設(shè)備,其中所述連接是傳輸控制協(xié)議 (TCP)連接,并且其中所述序列值是TCP序列號。
30. 如權(quán)利要求25所述的設(shè)備,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的哈希算法密鑰值。
31. 如權(quán)利要求25所述的設(shè)備,其中所述第一密碼和所述下一密碼是 用于執(zhí)行TCP段的基于哈希的消息認(rèn)證的MD5哈希算法密鑰值。
32. 如權(quán)利要求25所述的設(shè)備,其中所述連接是流傳輸控制協(xié)議 (SCTP)連接,并且所述序列值是SCTP傳輸序列號(TSN)。
全文摘要
公開了用于切換傳輸協(xié)議連接密鑰的方法。一種在電信網(wǎng)絡(luò)中自動(dòng)改變連接的兩個(gè)端點(diǎn)的每一個(gè)處的消息認(rèn)證密鑰的方法包括測試連接上的多個(gè)數(shù)據(jù)段的每一個(gè)中收到的序列值;當(dāng)序列值匹配指定的特征時(shí),從多個(gè)存儲(chǔ)的消息認(rèn)證密鑰中選擇下一消息認(rèn)證密鑰用于認(rèn)證后續(xù)接收的數(shù)據(jù)段。
文檔編號H04L9/16GK101297516SQ200680040176
公開日2008年10月29日 申請日期2006年10月18日 優(yōu)先權(quán)日2005年10月28日
發(fā)明者施瑞航·巴格, 林·韓, 米特什·德拉爾, 約翰·C·王, 阿納恩薩·拉邁阿, 阿莫·卡里 申請人:思科技術(shù)公司