用于可擴(kuò)展的重播計數(shù)器的方法和設(shè)備的制作方法
【專利摘要】在一個實施例中,通信網(wǎng)絡(luò)中的認(rèn)證器維護(hù)隨著每次認(rèn)證器重新啟動而增加的持久的認(rèn)證器時元值(610)。認(rèn)證器還維護(hù)認(rèn)證器的每個請求者的持久的每請求者值(620),每次請求者與認(rèn)證器建立新的安全關(guān)聯(lián)時,每個相應(yīng)的每請求者值被設(shè)置為認(rèn)證器時元值的當(dāng)前值(615)。為將消息從認(rèn)證器傳輸至特定請求者,每個消息使用具有特定于特定請求者的安全關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重播計數(shù)器。具體地,當(dāng)消息被傳輸時,每個消息的安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為認(rèn)證器時元值與特定請求者的每請求者值之間的差值,而消息計數(shù)器針對每個被傳輸?shù)南⒍辉黾?625)。
【專利說明】用于可擴(kuò)展的重播計數(shù)器的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001] 本公開總體涉及計算機(jī)網(wǎng)絡(luò),更具體地,涉及用于共享介質(zhì)計算機(jī)網(wǎng)絡(luò)的安全協(xié) 議。
【背景技術(shù)】
[0002] 諸如傳感器網(wǎng)絡(luò)之類的低功率有損網(wǎng)絡(luò)(LLN)具有大量應(yīng)用,比如智能電網(wǎng)和智 能城市。諸如有損路徑、低帶寬、電池操作、低存儲和/或處理能力之類的各種挑戰(zhàn)被呈現(xiàn) 給LLN。諸如無線網(wǎng)絡(luò)或電力線通信(PLC)網(wǎng)絡(luò)(一種通過電力線進(jìn)行的通信)之類的共 享介質(zhì)通信網(wǎng)絡(luò)為網(wǎng)絡(luò)通信提供了使能技術(shù)。例如,這些技術(shù)能夠被用在先進(jìn)測量基礎(chǔ)設(shè) 施(AMI)網(wǎng)絡(luò),并且在家中和建筑物中也很有用。
[0003] 安全是許多共享介質(zhì)網(wǎng)絡(luò)的重要方面,尤其對于通常在非受控環(huán)境中經(jīng)過大的物 理區(qū)域進(jìn)行操作的LLN解決方案而言很重要?,F(xiàn)有的安全協(xié)議通常使用重播計數(shù)器來確保 消息的新鮮度并且防止重播攻擊。重播計數(shù)器是嚴(yán)格單調(diào)的。消息源必須針對每個新的消 息增加重播計數(shù)器。消息目的地只接受具有比先前接收到的消息的重播計數(shù)器更大的重播 計數(shù)器的消息。然而,當(dāng)前的重播計數(shù)器解決方案不能很好的適應(yīng)諸如LLN之類的受限網(wǎng) 絡(luò),在這些受限網(wǎng)絡(luò)中,設(shè)備經(jīng)常在通信帶寬、處理能力和/或存儲器/存儲設(shè)備方面被限 制。
【專利附圖】
【附圖說明】
[0004] 可以通過結(jié)合附圖參照以下描述來更好地理解本申請的實施例,其中,相同標(biāo)號 表示等同或功能類似的要素,其中:
[0005] 圖1示出示例通信網(wǎng)絡(luò);
[0006] 圖2示出示例網(wǎng)絡(luò)設(shè)備/節(jié)點;
[0007] 圖3示出示例非易失性數(shù)據(jù)結(jié)構(gòu);
[0008] 圖4示出示例消息;
[0009] 圖5示出用于網(wǎng)絡(luò)安全的可擴(kuò)展的重播計數(shù)器的示例;
[0010] 圖6示出用于網(wǎng)絡(luò)安全的可擴(kuò)展的重播計數(shù)器的示例簡化程序;
[0011] 圖7示出用于網(wǎng)絡(luò)安全、尤其用于啟動和重新啟動認(rèn)證器的可擴(kuò)展的重播計數(shù)器 的另一示例簡化程序;
[0012] 圖8示出用于網(wǎng)絡(luò)安全、尤其針對重播計數(shù)器的可擴(kuò)展的重播計數(shù)器的另一示例 簡化程序。
【具體實施方式】
[0013] 概述
[0014] 根據(jù)本公開的一個或多個實施例,通信網(wǎng)絡(luò)中的認(rèn)證器維護(hù)隨著每次認(rèn)證器重新 啟動而增加的持久的認(rèn)證器時元(印〇ch)值。認(rèn)證器還維護(hù)用于認(rèn)證器的每個請求者的持 久的每請求者值,每當(dāng)請求者與認(rèn)證器建立新的安全關(guān)聯(lián)時,相應(yīng)的每請求者值被設(shè)置為 該認(rèn)證器時元值的當(dāng)前值。為將消息從認(rèn)證器傳輸至特定的請求者,每個消息使用具有針 對特定請求者的安全關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重播計數(shù)器。具體地,當(dāng)消 息被傳輸時,用于每個消息的安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為認(rèn)證器時元值與用于特定請求 者的每請求者值之間的差值,同時消息計數(shù)器隨著每個消息的傳輸而增加。
[0015] 詳細(xì)描沭
[0016] 計算機(jī)網(wǎng)絡(luò)是通過用于在諸如個人計算機(jī)和工作站或其他設(shè)備(例如,傳感器 等)之類的端節(jié)點之間傳輸數(shù)據(jù)的通信鏈路和區(qū)段進(jìn)行互連的地理分布的節(jié)點的集合。從 局域網(wǎng)(LAN)到廣域網(wǎng)(WAN)的范圍,許多類型的網(wǎng)絡(luò)是可用的。LAN通常通過位于相同的 一般物理位置(例如,建筑物或校園)的專用私有通信鏈路來連接節(jié)點。另一方面,WAN通 常通過諸如公共載波電話線路、光學(xué)光路、同步光纖網(wǎng)(SONET)、同步數(shù)字體系(SDH)鏈路 或電力線通信(PLC)(例如,IEEE 61334、IEEE P1901.2以及其他)之類的長距離通信鏈路 來連接地理上分散地節(jié)點。此外,移動自組網(wǎng)(MANET)是一種無線自組網(wǎng)絡(luò),該網(wǎng)絡(luò)通常被 認(rèn)為是通過無線鏈路進(jìn)行連接的移動路由(和相關(guān)聯(lián)的主機(jī))的自配置網(wǎng)絡(luò),這些無線鏈 路的聯(lián)合形成任意拓?fù)洹?br>
[0017] 具體地,諸如傳感器網(wǎng)絡(luò)之類的智能對象網(wǎng)絡(luò)是具有空間分布地自主設(shè)備(例 如,傳感器、驅(qū)動器等)的特定類型的網(wǎng)絡(luò),其中自主設(shè)備合作監(jiān)控不同位置處的諸如能量 /電能消耗、資源消耗(例如,用于先進(jìn)測量基礎(chǔ)設(shè)施或"AMI"應(yīng)用的水/氣體等)、溫度、 壓力、振動、聲音、輻射、運動、污染物等的物理或環(huán)境條件。其他類型的智能對象包括驅(qū)動 器,其可以包括用于啟動/關(guān)閉引擎或執(zhí)行任意其他動作的功能。傳感器網(wǎng)絡(luò)(一種智能 對象網(wǎng)絡(luò))通常是共享介質(zhì)網(wǎng)絡(luò)(例如,無線網(wǎng)絡(luò)或PLC網(wǎng)絡(luò))。也就是說,除了一個或多 個傳感器,傳感器網(wǎng)絡(luò)中的每個傳感器設(shè)備(節(jié)點)通常可以裝備無線收發(fā)器或其他通信 端口(諸如PLC、微控制器以及能量源(例如,電池))。通常,智能對象網(wǎng)絡(luò)被認(rèn)為是場域 網(wǎng)絡(luò)(FAN)、鄰域網(wǎng)絡(luò)(NAN)等。一般來說,智能對象節(jié)點(例如,傳感器)上的大小和成本 約束導(dǎo)致資源上的諸如能量、存儲器、計算速度和帶寬等相應(yīng)的約束。
[0018] 圖1是示例計算機(jī)網(wǎng)絡(luò)100的原理框圖,該示例計算機(jī)網(wǎng)絡(luò)100說明性地包括通 過各種通信方法進(jìn)行互連的節(jié)點/設(shè)備200 (例如,如圖所標(biāo)注的,"根"、" 11"、" 12". .. "43" 以及下面圖2中所描繪的)。例如,鏈路105可以是共享介質(zhì)(例如,無線鏈路、PLC鏈路 等),其中某些節(jié)點200(例如,路由器、傳感器、計算機(jī)等)可以(例如,基于距離、信號強(qiáng) 度、當(dāng)前操作狀態(tài)、位置等)與其他節(jié)點200進(jìn)行通信。本領(lǐng)域的技術(shù)人員將理解的是任意 數(shù)目的節(jié)點、設(shè)備、鏈路等可以被用在計算機(jī)網(wǎng)絡(luò)100中,并且此處所示的視圖是出于簡化 的目的。而且,本領(lǐng)域的技術(shù)人員還將理解的是盡管網(wǎng)絡(luò)100是以某一方向、具體通過"根" 節(jié)點來示出的,但是網(wǎng)絡(luò)100只是示例說明,其不旨在限制本公開。
[0019] 數(shù)據(jù)分組140(例如,在設(shè)備/節(jié)點之間被發(fā)送的流量和/或消息)可以適當(dāng) 地使用諸如某些已知的無線協(xié)議(例如,IEEE Std. 802. 15. 4、IEEEStd. 802. lli、WiFi、 Bluetooth"等)、PLC協(xié)議或其他共享介質(zhì)協(xié)議之類的預(yù)定義的網(wǎng)絡(luò)通信協(xié)議在計算機(jī)網(wǎng) 絡(luò)100的節(jié)點/設(shè)備之間進(jìn)行交換。在該上下文中,協(xié)議包括一組定義了節(jié)點彼此之間如 何交互的規(guī)則。
[0020] 圖2是可以由本申請所描述的一個或多個實施例(例如,上面圖1中所示的任意 節(jié)點)使用的示例節(jié)點/設(shè)備200的原理框圖。設(shè)備200可以包括通過系統(tǒng)總線250進(jìn)行 互連的一個或多個網(wǎng)絡(luò)接口 210 (例如,無線、PLC等)、至少一個處理器220和存儲器240 以及電源260 (例如,電池、插件等)。
[0021] 網(wǎng)絡(luò)接口 210包括用于通過耦合到網(wǎng)絡(luò)100的鏈路105來傳輸數(shù)據(jù)的機(jī)械電路、 電子電路以及信號電路。網(wǎng)絡(luò)接口 210可以被配置以使用一個或多個不同的通信協(xié)議來發(fā) 送和/或接收數(shù)據(jù)。進(jìn)一步地,應(yīng)當(dāng)注意,節(jié)點200可以具有一個或多個不同類型的網(wǎng)絡(luò)連 接210 (例如,無線連接和有線/物理連接),并且此處的視圖只用于說明。而且,盡管網(wǎng)絡(luò) 接口 210被示為與電源260分開,但是在某些實施例中(例如,PLC),網(wǎng)絡(luò)接口 210可以通 過電源260進(jìn)行通信,或者可以是電源260的集成部件。在一些具體配置中,PLC信號可以 被耦合到注入電源260中的電力線中。
[0022] 存儲器240包括可由處理器220和網(wǎng)絡(luò)接口 210尋址的多個存儲位置以用于存儲 與本申請所描述的實施例相關(guān)聯(lián)的軟件程序和數(shù)據(jù)結(jié)構(gòu)。應(yīng)當(dāng)注意,某些設(shè)備200可以具 有有限的存儲器或不具有存儲器(例如,除了用于在設(shè)備和相關(guān)聯(lián)的緩存上運行的程序/ 處理的存儲器,沒有用于存儲的存儲器)。處理器220可以包括適于執(zhí)行軟件程序和操縱數(shù) 據(jù)結(jié)構(gòu)245的必要元件或邏輯。操作系統(tǒng)242 (部分該操作系統(tǒng)通常駐留在存儲器240中 并且由處理器220執(zhí)行)通過特別調(diào)用支持在設(shè)備200上執(zhí)行的軟件處理和/或服務(wù)的操 作來功能性地組織該設(shè)備。如本申請所描述的,除了其他之外,這些軟件處理和/或服務(wù)可 以包括路由處理/服務(wù)244和說明性的安全處理248。應(yīng)當(dāng)注意,盡管安全處理248被示為 在集中式存儲器240中,但是可替代的實施例提供了在網(wǎng)絡(luò)接口 210內(nèi)(例如,MAC層的部 件(處理"248a"))被具體操作的處理248。
[0023] 其他處理器和存儲器類型(包括各種計算機(jī)可讀介質(zhì))可以被用來存儲和執(zhí)行涉 及本申請所描述的技術(shù)的程序指令,這對于本領(lǐng)域技術(shù)人員而言是顯而易見的。而且,盡管 這些描述說明了各種處理,但可明確地預(yù)計到的是,各種處理可以被體現(xiàn)為被配置以根據(jù) 本申請的技術(shù)(例如,根據(jù)類似處理的功能)進(jìn)行操作的模塊。進(jìn)一步地,盡管這些處理被 單獨示出,但是本領(lǐng)域技術(shù)人員將理解這些處理可以是其他處理內(nèi)的例程或模塊。
[0024] 路由處理(服務(wù))244包括由處理器220執(zhí)行的計算機(jī)可執(zhí)行指令以實現(xiàn)由一個 或多個路由協(xié)議提供的功能,例如,本領(lǐng)域技術(shù)人員將理解的先應(yīng)式路由協(xié)議或反應(yīng)式路 由協(xié)議。在有能力的設(shè)備上,這些功能可以被配置以管理包括諸如用于做出路由/轉(zhuǎn)發(fā)決 定的數(shù)據(jù)的路由/轉(zhuǎn)發(fā)表格(數(shù)據(jù)結(jié)構(gòu)245)。具體地,在先應(yīng)式路由中,在計算到網(wǎng)絡(luò)中的 任意目的地的路由(例如,諸如開放最短路徑優(yōu)先(0SPF)、中間系統(tǒng)至中間系統(tǒng)(ISIS)、優(yōu) 化鏈路狀態(tài)路由(0LSR)之類的鏈路狀態(tài)路由)之前發(fā)現(xiàn)并已知連接性。另一方面,反應(yīng)式 路由發(fā)現(xiàn)鄰居(即,沒有網(wǎng)絡(luò)拓?fù)涞南闰炛R),并且響應(yīng)于到目的地的需要的路由,將路 由請求發(fā)送到網(wǎng)絡(luò)中以確定哪個鄰居節(jié)點可以被用來達(dá)到所期望的目的地。示例反應(yīng)式路 由協(xié)議可以包括移動自組網(wǎng)中的按需距離矢量(A0DV)、動態(tài)源路由(DSR)、動態(tài)MANET按需 路由(DYM0)等。應(yīng)當(dāng)注意,在不能或未被配置成存儲路由條目的設(shè)備上,路由處理244可 以僅由提供源路由技術(shù)所需的機(jī)制組成。即,對于源路由,網(wǎng)絡(luò)中的其他設(shè)備能夠確切地告 訴具有較低能力的設(shè)備將分組發(fā)送至哪里,并且該具有較低能力的設(shè)備僅根據(jù)所指向的來 轉(zhuǎn)發(fā)分組。
[0025] 應(yīng)當(dāng)注意,近年來網(wǎng)狀網(wǎng)絡(luò)日趨流行和實用。具體地,諸如無線網(wǎng)絡(luò)或PLC網(wǎng)絡(luò)等 之類的共享介質(zhì)網(wǎng)狀網(wǎng)絡(luò)經(jīng)常在被稱為低功率有損網(wǎng)絡(luò)(LLN)上,LLN是其中的路由器和 它們的互連被約束的一類網(wǎng)絡(luò):LLN路由器通常在約束(例如,處理功率、存儲器和/或能 量(電池))下進(jìn)行操作,并且它們的互連說明性地以高損失率、低數(shù)據(jù)率和/或不穩(wěn)定為 特征。LLN由從幾打到幾千或甚至幾百萬的LLN路由器組成,并且支持點到點流量(LLN內(nèi) 的設(shè)備之間)、點到多點流量(從諸如根節(jié)點之類的中央控制點到LLN內(nèi)的設(shè)備的子集)以 及多點到點流量(從LLN內(nèi)的設(shè)備到中央控制點)。
[0026] LLN的示例實現(xiàn)方式是"物聯(lián)網(wǎng)"(Internet of Things)網(wǎng)絡(luò)。一般來說,術(shù)語 "物聯(lián)網(wǎng)"或"Ι〇Τ"可以被本領(lǐng)域的技術(shù)人員用來指在基于網(wǎng)絡(luò)的架構(gòu)中唯一可識別的對象 (物體)和它們的虛擬表示。具體地,在互聯(lián)網(wǎng)的演進(jìn)中的下一前沿不僅僅是連接計算機(jī)和 通信設(shè)備的能力,而是連接諸如燈、器具、交通工具、HAVC(供暖設(shè)備、通風(fēng)設(shè)備以及空調(diào))、 窗戶、遮光窗簾、門、鎖等之類的一般"對象"的能力。因此,"物聯(lián)網(wǎng)"通常指的是諸如傳感 器和驅(qū)動器之類的對象(例如,智能對象)通過可以是公共互聯(lián)網(wǎng)或?qū)S镁W(wǎng)絡(luò)的計算機(jī)網(wǎng) 絡(luò)(例如,IP)進(jìn)行的互連。這樣的設(shè)備通常以通過協(xié)議轉(zhuǎn)換網(wǎng)關(guān)的方式被連接到IP網(wǎng)絡(luò) 的非IP或?qū)賲f(xié)議的形式被用在工業(yè)中已達(dá)數(shù)十年。隨著諸如智能電網(wǎng)、智能城市、建筑 和工業(yè)自動化以及汽車(例如,能夠互連用于感知像電力質(zhì)量、輪胎壓力和溫度等幾百萬 對象并且能夠驅(qū)動引擎和燈的汽車)之類的大量應(yīng)用的出現(xiàn),擴(kuò)展適于這些網(wǎng)絡(luò)的IP協(xié)議 至關(guān)重要。
[0027] 示例協(xié)議是由Winter等人于2012年3月提出的題為"RPL :用于低功率有損網(wǎng)絡(luò) 的IPv6路由協(xié)議"的請求評論(RFC) 6550,其由互聯(lián)網(wǎng)工程任務(wù)組(IETF)建議標(biāo)準(zhǔn)指定, 該示例協(xié)議提供支持從LLN中的設(shè)備到中央控制點(例如,通常為LLN邊界路由器(LBR) 或"根節(jié)點/設(shè)備")的多點到點(MP2P)流量和從中央控制點到LLN中的設(shè)備的點到多點 (P2MP)流量(還有點到點,或"P2P"流量)的機(jī)制。除了定義限制控制流量、支持修復(fù)等特 征的集合之外,RPL(發(fā)音為"ripple")通??梢员幻枋鰹榻⒂糜诼酚闪髁?分組140的 有向非循環(huán)圖(DAG)的距離向量路由協(xié)議。應(yīng)當(dāng)注意,正如本領(lǐng)域的技術(shù)人員可以理解的, RPL還支持多拓?fù)渎酚桑∕TR)的概念,借此能夠根據(jù)個體需要建立多個DAG來運載流量。
[0028] DAG是具有所有邊以不應(yīng)該存在循環(huán)(回路)這樣的方式被定向的屬性的有向圖。 所有的邊被包含在定向至一個或多個根節(jié)點(例如,"簇頭"或"匯聚端(sink)")并且在該 一個或多個根節(jié)點處終止的路徑中,該一個或多個根節(jié)點通常將DAG的設(shè)備與較大的基礎(chǔ) 設(shè)施(例如,互聯(lián)網(wǎng)、廣域網(wǎng)或其他域)進(jìn)行互連。此外,面向目的地DAG(DODAG)是以單個 目的地為根的DAG,例如,在沒有外向邊緣的單個DAG根處。DAG內(nèi)的特定節(jié)點的"父節(jié)點" 是通向DAG根的路徑上的該特定節(jié)點的直接后繼,以使得父節(jié)點比該特定節(jié)點自身具有更 低的"等級",其中,節(jié)點的等級識別該節(jié)點相對于DAG根的位置(例如,節(jié)點離根越遠(yuǎn),則該 節(jié)點的等級越高)。還應(yīng)當(dāng)注意,樹是一種DAG,其中,DAG中的每個設(shè)備/節(jié)點通常具有一 個父節(jié)點或一個優(yōu)選父節(jié)點。DAG通??梢曰谀繕?biāo)函數(shù)(0F)被建立(例如,通過DAG處 理和/或路由處理244)。目標(biāo)函數(shù)的作用通常是指定關(guān)于如何建立DAG的規(guī)則(例如,父 節(jié)點的數(shù)目、備用父節(jié)點等)。
[0029] 如上所述,安全是許多共享介質(zhì)網(wǎng)絡(luò)的重要方面,尤其對于通常在非受控環(huán)境 中經(jīng)過大型物理區(qū)域進(jìn)行操作的LLN解決方案而言很重要。作為說明性的示例,IEEE Std. 802. 11使用分層密鑰管理架構(gòu)。通常,在這樣的架構(gòu)中的網(wǎng)絡(luò)節(jié)點使用IEEE 802. lx 執(zhí)行相互認(rèn)證(例如,將可擴(kuò)展認(rèn)證協(xié)議-傳輸層安全(ΕΑΡ-TLS)作為認(rèn)證方法)。盡 管IEEE 802. lx能夠使用任何任意密鑰交換算法,但是一個特定示例實現(xiàn)方式可以使用 短暫性橢圓曲線Diffie-Hellman-橢圓曲線數(shù)字簽名算法(Ephemeral elliptic-curve Diffie-Hellman-Elliptic Curve Digital Signature Algorithm,ECDHE_ECDSA)密鑰交 換算法。在成功認(rèn)證之后,場域路由器(FAR)/認(rèn)證器和加入節(jié)點相互派生出成對主密鑰 (PMK)。使用PMK,F(xiàn)AR和加入節(jié)點可以使用IEEE Std. 802. 114次握手以從PMK相互派生出 成對臨時密鑰(PTK)。使用PTK,其后FAR可以安全地將群組臨時密鑰(GTK)信息傳輸至該 節(jié)點。相同的GTK信息被傳輸至允許訪問網(wǎng)絡(luò)的所有節(jié)點。然后,加入節(jié)點使用GTK來加 密(解密)并簽字(認(rèn)證)被傳輸至鄰居節(jié)點的所有鏈路層數(shù)據(jù)幀。
[0030] 設(shè)備是否擁有當(dāng)前的GTK集合把內(nèi)部設(shè)備和外部設(shè)備分開,S卩,沒有有效的GTK, 外部設(shè)備不能參加該網(wǎng)絡(luò)(并且通過使用全網(wǎng)GTK,網(wǎng)絡(luò)支持有效的鏈路層廣播)。通過使 用成對密鑰信息(PTK從PMK派生出的,而PMK是從ΕΑΡ-TLS獲得的),F(xiàn)AR使用安全信道 (可能通過LLN中的多個鏈路跳)將GTK傳輸至單個設(shè)備,不考慮裝備在現(xiàn)有設(shè)備上安裝 的當(dāng)前GTK。通過使用安全成對信道(由PTK提供),F(xiàn)AR(認(rèn)證器)可以將新的GTK信息 僅傳輸至允許參加該網(wǎng)絡(luò)的那些設(shè)備(請求者)。每個GTK刷新允許FAR定義新的群組成 員。該機(jī)制使協(xié)議能夠支持完善的如向保S和后向保S。
[0031] 現(xiàn)有的安全協(xié)議通常使用重播計數(shù)器來確保消息的新鮮度并且防止重播攻擊。重 播計數(shù)器是嚴(yán)格單調(diào)的。消息源針對每個新的消息必須增加重播計數(shù)器。消息目的地只接 受具有比之前接收到的消息的重播計數(shù)器更大的重播計數(shù)器的消息。然而,當(dāng)前的重播計 數(shù)器解決方案不能很好的適應(yīng)諸如LLN之類的受限網(wǎng)絡(luò),在這些受限網(wǎng)絡(luò)中,設(shè)備經(jīng)常在 通信帶寬、處理能力和/或存儲器/存儲設(shè)備方面被限制。
[0032] 具體地,許多現(xiàn)有方法要求源隨著每個新的消息而增加重播計數(shù)器。盡管這種方 法簡單,但是需要發(fā)送器和接收器首先與重播計數(shù)器進(jìn)行同步(即,初始化)。這通常在發(fā) 送器和接收器首先建立安全關(guān)聯(lián)時被完成。例如,在IEEE Std. 802. 11中,4次握手用來在 認(rèn)證器與請求者之間初始化成對臨時密鑰(PTK)并初始化重播計數(shù)器。認(rèn)證器使用重播計 數(shù)器來將新的群組臨時密鑰(GTK)傳輸至請求者。應(yīng)當(dāng)注意的是,安全關(guān)聯(lián)通常具有壽命, 在壽命之后對等方(請求者)必須重新建立新的安全關(guān)聯(lián)。該"重新關(guān)聯(lián)"隨著時間針對 網(wǎng)絡(luò)內(nèi)的每個請求者設(shè)備重復(fù)地發(fā)生。
[0033] 具體地,初始化重播計數(shù)器引起消息發(fā)送開銷,因為設(shè)備必須交換一些可替代的 信息(即,802. 11中的"隨機(jī)數(shù)(nonce)")來確保新鮮度。為去除初始化重播計數(shù)器的開 銷,一些現(xiàn)有的協(xié)議依靠發(fā)送器和接收器之間預(yù)先存在的時間同步。該方法需要安全的時 間同步機(jī)制。出于降低成本的原因,許多LLN設(shè)備不具有實時時鐘(RTC),因此,不具有本地 可信時間源。
[0034] 根據(jù)說明性的示例,LLN(或其他網(wǎng)狀網(wǎng)絡(luò))可以依靠場域路由器(FAR)(例如, 圖1中的根節(jié)點)來管理通過該FAR進(jìn)行通信的每個LLN設(shè)備的鏈路層安全關(guān)聯(lián)。在該示 例中,F(xiàn)AR可以作為認(rèn)證器,每個被認(rèn)證的設(shè)備可以作為認(rèn)證器中繼,并且請求者能夠通過 認(rèn)證器中繼與認(rèn)證器進(jìn)行通信或直接與認(rèn)證器進(jìn)行通信以實施各種安全關(guān)聯(lián)建立技術(shù),例 如,根據(jù) IEEE Std. 802. IX 和 / 或 IEEE Std. 802. 11 i。
[0035] LLN通常通過有限的通信資源(例如,幾十千比特/秒)進(jìn)行操作。因此,對LLN 中的每個設(shè)備執(zhí)行4次握手是成本很高的操作。幸運地,在正常操作下,4次握手可能相對 較少(例如,每隔幾個月一次)。而且,認(rèn)證器可以隨著時間的推移分散4次握手。
[0036] 然而,當(dāng)認(rèn)證器重啟(例如,由于監(jiān)視器復(fù)位)時必須注意。如果重播計數(shù)器不是 永久地被存儲,則認(rèn)證器丟失重播計數(shù)器狀態(tài),并且必須與每個設(shè)備執(zhí)行4次握手以分布 GTK和授權(quán)訪問網(wǎng)絡(luò)??商娲?,認(rèn)證器可以永久地存儲每個設(shè)備的重播計數(shù)器。重啟之 后,F(xiàn)AR隨后能夠執(zhí)行2次握手以分布GTK,從而在網(wǎng)絡(luò)啟動時將802. lli消息開銷減小一 半。
[0037] 當(dāng)處理FAR的非易失性存儲能力時帶來了挑戰(zhàn)。像許多LLN設(shè)備,F(xiàn)AR通常包含 有限量的閃存來永久地存儲狀態(tài)。通常選擇閃存是因為其在惡劣的環(huán)境中具有魯棒性、低 成本以及低功率。
[0038] 不幸地,閃存的主要缺點是其具有有限數(shù)目的寫周期。示例LLN可能需要多達(dá)每 FAR 5000個LLN設(shè)備的支持。認(rèn)證器每次使用PTK發(fā)送新的消息時,認(rèn)證器必須執(zhí)行閃存 寫以保存新的重播計數(shù)器。使用現(xiàn)有的寫緩存技術(shù)來分批處理閃存寫是不盡人意的,因為 每當(dāng)FAR重啟時,為丟失的狀態(tài)保持開啟一些時間窗口,而寫緩存中的數(shù)據(jù)還未被同步到 閃存。增加閃存的大小并且通過利用閃存的所有部分來使用損耗均衡技術(shù)能夠幫助緩解該 問題,但是增加了系統(tǒng)成本。
[0039] 可擴(kuò)展的重播計數(shù)器
[0040] 本申請的技術(shù)將基于時元的重播計數(shù)器的概念作為一種方式來介紹,其中許多 (例如,數(shù)千)持久的重播計數(shù)器可以以該方式被管理。在某些實施例中,這些技術(shù)可以消 除上述閃存寫的問題,確保重播計數(shù)器即使在意外的重啟之后仍保持同步,并且維護(hù)與現(xiàn) 有協(xié)議的互操作性。說明性地,并且如下面更詳細(xì)地描述,這可以通過維護(hù)隨著每次認(rèn)證器 處理(重新)啟動而增加的單個持久的認(rèn)證器時元,當(dāng)建立新的安全關(guān)聯(lián)時,隨同附加的安 全關(guān)聯(lián)狀態(tài)一起存儲當(dāng)前的認(rèn)證器時元以及將傳統(tǒng)的重播計數(shù)器空間分離成安全關(guān)聯(lián)時 元和消息計數(shù)器來實現(xiàn)。
[0041] 具體地,根據(jù)下面詳細(xì)描述的本公開的一個或多個實施例,通信網(wǎng)絡(luò)中的認(rèn)證器 維護(hù)隨著每次認(rèn)證器重新啟動而增加的持久的認(rèn)證器時元值。認(rèn)證器還維護(hù)對于該認(rèn)證 器的每個請求者的持久的每請求者值,每個請求者每次與認(rèn)證器建立新的安全關(guān)聯(lián)時,相 應(yīng)的每請求者值被設(shè)置為該認(rèn)證器時元值的當(dāng)前值。為將消息從認(rèn)證器傳輸至特定的請求 者,每個消息使用具有針對特定請求者的安全關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重 播計數(shù)器。具體地,當(dāng)消息被傳輸時,每個消息的安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為認(rèn)證器時元 值與特定請求者的每請求者值之間的差值,而消息計數(shù)器隨著每個消息被傳輸而增加。
[0042] 說明性地,本申請所描述的技術(shù)可以通過硬件、軟件和/或固件來執(zhí)行(例如,根 據(jù)安全處理248/248a),所述硬件、軟件和/或固件可以包括由處理器220 (或接口 210的 獨立處理器)執(zhí)行的計算機(jī)可執(zhí)行指令以實現(xiàn)與本申請所描述的技術(shù)有關(guān)的功能(例如, 特別是認(rèn)證器處理)。例如,本申請的技術(shù)可以被認(rèn)為是對諸如各種無線協(xié)議或PLC協(xié)議 (例如,IEEE Std. 802. lli)之類的傳統(tǒng)通信協(xié)議的擴(kuò)展,正因如此,本申請的技術(shù)可以相應(yīng) 地通過本領(lǐng)域技術(shù)人員所理解的執(zhí)行這些協(xié)議的類似的部件進(jìn)行處理。還應(yīng)當(dāng)注意,盡管 這些實施例將機(jī)制描述為適應(yīng)于IEEE 802. lli,但是本申請所描述的概念不針對于IEEE 802. lli,并且實施例也不被這樣限制。
[0043] 操作上,本申請的技術(shù)描述了對重播計數(shù)器的持久的管理,尤其適合于大量重播 計數(shù)器。本申請的技術(shù)能夠最小化能耗盡閃存存儲的有限的寫周期能力的寫的數(shù)目,并且 本申請的技術(shù)還能確保認(rèn)證器(例如,F(xiàn)AR)和許多(例如,數(shù)千)請求者(例如,LLN節(jié)點) 之間的重播計數(shù)器即使經(jīng)歷了意外的重啟之后仍保持同步。
[0044] 本申請所描述的技術(shù)的第一組成部分涉及維護(hù)認(rèn)證器上的單個持久的認(rèn)證器 時元值(計數(shù)器)。圖3示出示例非易失性數(shù)據(jù)結(jié)構(gòu)300(例如,上面圖2中的數(shù)據(jù)結(jié)構(gòu) 245)。數(shù)據(jù)結(jié)構(gòu)300包括認(rèn)證器時元值310,該認(rèn)證器時元值310定義認(rèn)證器的當(dāng)前"典 型(incarnation)"。換言之,認(rèn)證器時元指示認(rèn)證器上認(rèn)證器處理被(重新)啟動的次數(shù) (即,通過每次認(rèn)證器重新啟動而增加來維護(hù))。具體地,每當(dāng)認(rèn)證器處理啟動(例如,作為 安全處理248的一部分或認(rèn)證器設(shè)備200的另一處理),認(rèn)證器從非易失性存儲器300讀 取當(dāng)前的認(rèn)證器時元值310,增加認(rèn)證器時元值,并且將新的值存儲在非易失性存儲器300 中。
[0045] 本申請所描述的技術(shù)的第二組成部分涉及持久的地管理每個獨立的基于時元的 重播計數(shù)器。具體地,對于每個請求者(條目315),認(rèn)證器維護(hù)持久的每請求者值320,其 中每次請求者315與認(rèn)證器建立新的安全關(guān)聯(lián)時,相應(yīng)的持久的每請求者值320被設(shè)置為 當(dāng)前的認(rèn)證器時元值310。換言之,每當(dāng)認(rèn)證器(例如,使用IEEE Std. 802. lli中的4次握 手)建立新的安全關(guān)聯(lián),認(rèn)證器將當(dāng)前的認(rèn)證器時元值310記錄在該請求者的會話狀態(tài)塊 (例如,字段320)中。應(yīng)當(dāng)注意,該處理除了建立新的安全關(guān)聯(lián)時所需要的寫之外,不需要 任何附加的寫。具體地,認(rèn)證器能夠通過在該請求者的每個新的安全關(guān)聯(lián)期間所存儲的新 的/相應(yīng)的PTK 325存儲當(dāng)前的認(rèn)證器時元值。
[0046] 本申請所描述的技術(shù)的第三組成部分涉及將傳統(tǒng)的消息的重播計數(shù)器空間分離 為(i)安全關(guān)聯(lián)(SA)時元和(ii)消息計數(shù)器。圖4示出包括頭部410和載荷430的示例 簡化消息400 (例如,分組140)。在頭部410內(nèi),可以存在用于指向消息400的一個或多個 各種字段,例如,(例如,認(rèn)證器的)源地址412和(例如,請求者的)目的地地址414。另 夕卜,如圖所示,重播計數(shù)器420被劃分為SA時元計數(shù)器422和消息計數(shù)器424。
[0047] 如本申請所描述的,SA時元422定義自與特定的請求者建立新的安全關(guān)聯(lián)以來認(rèn) 證器處理已經(jīng)(重新)啟動的次數(shù)。(應(yīng)當(dāng)注意,特定請求者的SA時元值422獨立于所有 其他請求者。)即,當(dāng)新的安全關(guān)聯(lián)被建立時,SA時元值422被初始化為零。換句話說,當(dāng)消 息被傳輸時,每個消息的SA時元計數(shù)器422被設(shè)置為認(rèn)證器時元值310和特定請求者315 的每請求者值320之間的差值。當(dāng)認(rèn)證器時元值310和特定請求者315的每請求者值320 之間沒有差值時,例如,響應(yīng)于與特定請求者建立新的安全關(guān)聯(lián),從而SA時元計數(shù)器422被 設(shè)置為零。如果SA時元"翻轉(zhuǎn)(roll over) "(增加超過最大允許的數(shù)目,例如,對于4比 特字段,從" 1111"到"〇〇〇〇"),則認(rèn)證器必須與特定的請求者建立新的安全關(guān)聯(lián)。
[0048] 重播計數(shù)器420的消息計數(shù)器424定義在安全關(guān)聯(lián)的SA時元內(nèi)所發(fā)送的消息的 數(shù)目,從而消息計數(shù)器424針對每個所傳輸?shù)南⒍辉黾?。具體地,在每個新的SA時元 啟動時,消息計數(shù)器424被初始化為零,并且認(rèn)證器針對每個新的消息增加消息計數(shù)器,直 到翻轉(zhuǎn)為止,在翻轉(zhuǎn)時認(rèn)證器針對特定請求者啟動新的SA時元(例如,增加 SA時元計數(shù)器 422)。應(yīng)當(dāng)注意,在說明性的實施例中,增加 SA時元計數(shù)器422涉及減小該請求者的每請 求者值320并且持久的保存值320。換言之,SA時元是認(rèn)證器時元值310與每請求者時元 值320之間的差值,因此由于消息計數(shù)器翻轉(zhuǎn)而增加 SA時元計數(shù)器422,存在兩個選項: [0049] 1)減小非易失性存儲器中的每請求者值320,這具有限制對單個請求者的任何副 作用的益處;或者
[0050] 2)增加非易失性存儲器中的認(rèn)證器時元值310,這具有重置所有節(jié)點的消息計數(shù) 器并且還延遲任意非易失性存儲器進(jìn)行寫的益處。
[0051] 實際上,給定說明性的8字節(jié)重播計數(shù)器字段,翻轉(zhuǎn)的情形很少(例如,具有32比 特的時元計數(shù)器和32比特的消息計數(shù)器)。具體地,在說明性的IEEE Std. 802. lli中,LAN 的擴(kuò)展認(rèn)證協(xié)議(EAP0L)密鑰消息包含8字節(jié)重播計數(shù)器字段。在一個實施例中,重播計 數(shù)器字段420可以被分解為將4個高字節(jié)作為SA時元計數(shù)器422并且將4個低字節(jié)作為 消息計數(shù)器424。
[0052] 與傳統(tǒng)的實現(xiàn)方式相比,在有線方面以這種方式使用EAP0L密鑰重播計數(shù)器導(dǎo)致 可見的差別。具體地,EAP0L密鑰重播計數(shù)器字段的較高位將在每次認(rèn)證器處理(重新)啟 動時增加,并且較低位將重置為零。即,當(dāng)重新啟動認(rèn)證器時,認(rèn)證器時元值310被增加,并 且當(dāng)下一消息被傳輸至特定的請求者時,SA時元計數(shù)器422被設(shè)置為所增加的認(rèn)證器時元 值310與特定請求者的每請求者值320之間的差值,并且消息計數(shù)器424被重置為零。然 而,應(yīng)當(dāng)注意,以這種方式使用EAP0L密鑰重播計數(shù)器字段不影響互操作性。具體地,IEEE Std. 802. 11規(guī)范沒有在認(rèn)證器可以增加重播計數(shù)器字段多少次上設(shè)置限制。
[0053] 由于對認(rèn)證器時元310具有持久的認(rèn)識,認(rèn)證器不需要執(zhí)行任何閃存寫來維持 EAP0L密鑰重播計數(shù)器值。相反,當(dāng)將每個消息傳輸至特定請求者時,認(rèn)證器僅生成每請求 者重播計數(shù)器。具體地,當(dāng)發(fā)送消息時,認(rèn)證器將SA時元422設(shè)置為認(rèn)證器時元310的當(dāng) 前值與針對該請求者而存儲的認(rèn)證器時元值(例如,每請求者值320)之間的差值。應(yīng)當(dāng)注 意,自然地采取簡單的差別來處理認(rèn)證器時元值翻轉(zhuǎn)時的情形。此外,認(rèn)證器增加每個新的 消息的消息計數(shù)器424。因此,每當(dāng)認(rèn)證器處理(重新)啟動時,消息計數(shù)器可以被存儲在 易失性存儲器中并且被初始化為零。
[0054] 如上面的詳細(xì)說明所闡述的,圖5示出根據(jù)本申請的一個或多個實施例的用于網(wǎng) 絡(luò)安全的可擴(kuò)展的重播計數(shù)器的示例。例如,假設(shè)一系列事件505以所示出的示例順序 發(fā)生,并且其余字段表示認(rèn)證器時元值510,對于每個請求者"A"和"B",表示每請求者值 515/535、重播計數(shù)器字段(即SA時元計數(shù)器520/540)以及消息計數(shù)器525/545。
[0055] 說明性地,當(dāng)認(rèn)證器啟動時,認(rèn)證器時元值510(上面的310)可以被初始化為零 (或者,在可替代的實施例中,被初始化為1),并且當(dāng)請求者"A"建立新的安全關(guān)聯(lián)時,A的 每請求者值515被設(shè)置為當(dāng)前的認(rèn)證器時元。當(dāng)消息被發(fā)送至A時,消息計數(shù)器525被增 力口。如果認(rèn)證器重新啟動,則認(rèn)證器時元值510被增加至1,并且請求者A的SA時元計數(shù)器 520被設(shè)置為當(dāng)前認(rèn)證器時元值510與其每請求者值515之間的差值(即,1),隨著更多的 消息被發(fā)送至A,由于重新啟動,消息計數(shù)器525從其重置值0被增加。
[0056] 假設(shè)現(xiàn)在請求者B與認(rèn)證器建立安全關(guān)聯(lián),這時B的每請求者值535被設(shè)置為當(dāng) 前認(rèn)證器值,即1。然后被發(fā)送至B的消息可以通過被初始化為0的SA時元計數(shù)器540和 消息計數(shù)器545來初始化它們的重播計數(shù)器。應(yīng)當(dāng)注意,發(fā)送至A的附加消息獨立于請求 者B而增加了它們的重播計數(shù)器。
[0057] 如果此時另一認(rèn)證器重新啟動,則認(rèn)證器時元510被增加至2,每請求者值515和 535被維持,并且為了發(fā)送消息至請求者A和B,新的SA時元值520和540被分別計算為認(rèn) 證器時元510與各自每請求者值515和535之間的結(jié)果差值,即2和1。
[0058] 還假設(shè)出于各種原因,請求者A現(xiàn)在與認(rèn)證器建立新的安全關(guān)聯(lián)。此時,A的每請 求者值515被設(shè)置為當(dāng)前的認(rèn)證器時元值510 (即,2),并且SA時元計數(shù)器和消息計數(shù)器均 可被重置為0。
[0059] 為了說明翻轉(zhuǎn),接下來假設(shè)三個消息被發(fā)送至請求者B,從而將消息計數(shù)器545增 加至3。在2比特計數(shù)器的簡化標(biāo)準(zhǔn)下,對下一(第四個)消息增加消息計數(shù)器將導(dǎo)致從 二進(jìn)制11 (值=3)翻轉(zhuǎn)至二進(jìn)制00 (值=4)。這樣,請求者B的SA時元計數(shù)器540將從 1被增加至2。假設(shè)對于更多消息(例如,6個)如此繼續(xù),以使得B的重播計數(shù)器的SA時 元為3并且消息計數(shù)器為3。當(dāng)下一消息被發(fā)送至B時,消息計數(shù)器545將翻轉(zhuǎn),從而增加 SA時元計數(shù)器540。然而,由于SA時元計數(shù)器也將翻轉(zhuǎn),因此,需要與請求者B的新的安全 關(guān)聯(lián),使得每請求者值535被設(shè)置為認(rèn)證器時元值510,并且重播計數(shù)器字段540和545均 被重置為0。
[0060] 如上一示例,如果此時認(rèn)證器再次重新啟動,認(rèn)證器時元值510被增加(至3),每 請求者值515和535保持相同,SA時元計數(shù)器被設(shè)置為差值(例如,分別為1和1),并且消 息計數(shù)器被重置為0。本領(lǐng)域的技術(shù)人員將理解,圖5中所示示例是經(jīng)簡化的并且僅出于說 明的目的,不旨在限制本申請的實施例的范圍。
[0061] 通過使用基于時元的重播計數(shù)器,當(dāng)認(rèn)證器處理(重新)啟動以管理認(rèn)證器時元 310時,認(rèn)證器所需的唯一附加的持久的寫操作發(fā)生。除了管理每請求者值320,認(rèn)證器不 需要任何附加的持久的寫操作來維護(hù)每個請求者的重播計數(shù)器。而且,當(dāng)認(rèn)證器非期望地 重啟時,基于時元的重播計數(shù)器確保認(rèn)證器與請求者之間的重播計數(shù)器狀態(tài)不會變得不一 致。當(dāng)認(rèn)證器處理重新啟動時,認(rèn)證器針對每個請求者建立新的SA時元,將消息計數(shù)器初 始化為零,并且能夠使用當(dāng)前的安全關(guān)聯(lián)開始發(fā)送消息,就好像認(rèn)證器從未重新啟動過一 樣。
[0062] 圖6示出根據(jù)本申請所描述的一個或多個實施例的用于網(wǎng)絡(luò)安全的可擴(kuò)展的重 播計數(shù)器的示例簡化程序。程序600可以開始于步驟605,并且繼續(xù)至步驟610,其中,如 上面更詳細(xì)地描述,通信網(wǎng)絡(luò)中的認(rèn)證器(例如,F(xiàn)AR或根節(jié)點)維護(hù)持久的的認(rèn)證器時元 值310,認(rèn)證器時元值310隨著每次認(rèn)證器重新啟動而增加。在步驟615中,認(rèn)證器建立與 請求者的安全關(guān)聯(lián),并且在步驟620中,認(rèn)證器維護(hù)每個請求者315的持久的每請求者值 320。如上所述,每次請求者與認(rèn)證器建立新的安全關(guān)聯(lián)時,每個相應(yīng)的每請求者值被設(shè)置 為當(dāng)前的認(rèn)證器時元值。又如上面所提到的,例如,每請求者值可以通過新的安全關(guān)聯(lián)的 PTK 325進(jìn)行存儲。
[0063] 認(rèn)證器可以在步驟625中將消息400傳輸至特定請求者,其中,每個消息使用具有 特定于特定請求者的安全關(guān)聯(lián)時元計數(shù)器422和消息計數(shù)器424的每請求者重播計數(shù)器 420。具體地,如上所述,當(dāng)消息被傳輸時,每個消息的安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為認(rèn)證器 時元值與該特定請求者的每請求者值之間的差值,同時針對每個所傳輸?shù)南?,消息計?shù) 器被增加。程序600可以在步驟630結(jié)束,應(yīng)當(dāng)注意具有繼續(xù)發(fā)送消息、重新啟動認(rèn)證器、 建立新的安全關(guān)聯(lián)等的能力。
[0064] 另外,圖7示出根據(jù)本申請所描述的一個或多個實施例的用于網(wǎng)絡(luò)安全、尤其用 于啟動和重新啟動認(rèn)證器的可擴(kuò)展重播計數(shù)器的另一示例簡化程序。程序700可以開始于 步驟705,并且繼續(xù)至步驟710,其中,如上面更詳細(xì)地描述的,認(rèn)證器可以啟動或者重新啟 動,此時,在步驟715中認(rèn)證器從非易失性存儲器300中讀取持久的認(rèn)證器時元值310。然 后認(rèn)證器時元值在步驟720中被增加,并且在步驟725中被存儲在非易失性存儲器中。同 樣地,當(dāng)在步驟730中將下一消息傳輸至特定請求者時,安全關(guān)聯(lián)時元計數(shù)器422被設(shè)置為 所增加的認(rèn)證器時元值310與特定請求者315的每請求者值320之間的差值,并且消息計 數(shù)器424被重置為零。其后,說明性的程序700可以在步驟735中結(jié)束,應(yīng)當(dāng)注意,其能夠 相應(yīng)地通過增加的計數(shù)器發(fā)送附加消息。
[0065] 最后,圖8示出根據(jù)本申請所描述的一個或多個實施例的用于網(wǎng)絡(luò)安全、尤其針 對重播計數(shù)器420的可擴(kuò)展重播計數(shù)器的另一示例簡化程序。程序800可以開始于步 驟805,并且繼續(xù)至步驟810,其中,如上面更詳細(xì)地描述的,認(rèn)證器(例如,F(xiàn)AR)將消息 400 (例如,GTK)傳輸至特定請求者(例如,LLN節(jié)點)。消息一旦被傳輸,則認(rèn)證器在步驟 815中增加消息計數(shù)器424,并且如果在步驟820中被翻轉(zhuǎn)(例如,被重置為零),則在步驟 825中增加特定請求者的安全關(guān)聯(lián)時元計數(shù)器422 (如上所述,這可能涉及減小每請求者值 320或者增加認(rèn)證器時元值310)。在步驟830中如果安全關(guān)聯(lián)時元計數(shù)器也已翻轉(zhuǎn),則在 步驟835中,認(rèn)證器建立與特定請求者的新的安全關(guān)聯(lián),并且每請求者值320被設(shè)置為當(dāng)前 的認(rèn)證器時元值310。程序800可以根據(jù)從本申請的技術(shù)中得出的重播計數(shù)器420,在步驟 810中繼續(xù)傳輸消息。
[0066] 應(yīng)當(dāng)注意,如上所述,盡管程序600-800內(nèi)的某些步驟是可選的,但是圖6-圖8中 所示的步驟僅僅是用于說明的示例,某些其他步驟可以根據(jù)需要被包括或排除。而且,盡管 這些步驟的特定順序被示出,但是該順序僅僅是說明性的,并且在不背離本申請的實施例 的范圍的情況下,可以使用對這些步驟的任意合適的安排。此外,盡管程序600-800被分開 描述,但是來自每個程序的某些步驟可以被合并到彼此程序中,并且這些程序不意欲互相 排斥。
[0067]因此,本申請所描述的技術(shù)提供用于網(wǎng)絡(luò)安全、尤其在共享介質(zhì)通信網(wǎng)絡(luò)中的可 擴(kuò)展重播計數(shù)器。具體地,本申請的技術(shù)能夠通過持久的地維護(hù)附連到FAR的每個LLN設(shè) 備的安全關(guān)聯(lián)和重播計數(shù)器,能夠使LLN比傳統(tǒng)技術(shù)更快地從FAR重啟中恢復(fù)。這些技術(shù) 還提供了實際的方法,每當(dāng)發(fā)送消息時該方法允許FAR在不需要閃存寫操作的情況下持久 的地管理許多(例如,數(shù)千)重播計數(shù)器。而且,這些技術(shù)能夠通過以標(biāo)準(zhǔn)相容的方式使用 現(xiàn)有的重播計數(shù)器字段來維護(hù)與現(xiàn)有協(xié)議的互操作性。
[0068] 盡管已經(jīng)示出并描述了提供用于網(wǎng)絡(luò)安全的可擴(kuò)展的重播計數(shù)器的說明性實施 例,但是應(yīng)當(dāng)理解,可以在本申請的實施例的精神和范圍內(nèi)作出各種其他的改編和修改。例 如,本申請已示出且描述的針對LLN的實施例。然而,在更廣泛的意義上,這些實施例沒有 被限制,并且事實上這些實施例可以采用其他類型的共享介質(zhì)網(wǎng)絡(luò)和/或協(xié)議。此外,盡管 示出了特定的協(xié)議,比如,各種IEEE Std.協(xié)議(例如,802. lx、802. 15. 4或802. lli),但是 可以相應(yīng)地使用其他合適的協(xié)議。
[0069] 前面的描述已經(jīng)針對具體實施例。然而,顯而易見的是,可以對所描述的實施例 做出各種變更和修改,從而達(dá)到其優(yōu)勢中的一些優(yōu)勢或全部優(yōu)勢。例如,可以明確地預(yù)計 到的是,本申請所描述的部件和/或元件能夠被實現(xiàn)為被存儲在具有在計算機(jī)、硬件、固件 或其組合上執(zhí)行的程序指令的有形的(非暫態(tài)的)計算機(jī)可讀介質(zhì)(例如,磁盤/CD/RAM/ EEPROM等)的軟件。因此,本說明書只通過示例的方式進(jìn)行詳細(xì)描述而非限制本申請的實 施例的范圍。因此,所附權(quán)利要求的目的是覆蓋進(jìn)入本申請的實施例的真正精神和范圍內(nèi) 的所有這樣的變更和修改。
【權(quán)利要求】
1. 一種方法,包括: 在通信網(wǎng)絡(luò)中的認(rèn)證器處維護(hù)持久的認(rèn)證器時元值,其中隨著每次所述認(rèn)證器重新啟 動,所述認(rèn)證器增加所述認(rèn)證器時元值; 在所述認(rèn)證器處維護(hù)所述認(rèn)證器的每個請求者的持久每請求者值,每次所述請求者與 所述認(rèn)證器建立新的安全關(guān)聯(lián)時,每個相應(yīng)的每請求者值被設(shè)置為所述認(rèn)證器時元值的當(dāng) 前值;以及 將至少一個消息從所述認(rèn)證器傳輸至特定請求者,每個消息包括具有特定于所述特 定請求者的安全關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重播計數(shù)器,其中,當(dāng)所述消息 被傳輸時,每個消息的所述安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為所述認(rèn)證器時元值與所述特定請 求者的所述每請求者值之間的差值,并且其中所述消息計數(shù)器針對每個被傳輸?shù)南⒈辉?加。
2. 如權(quán)利要求1所述的方法,其中,維護(hù)所述認(rèn)證器時元值包括,響應(yīng)于啟動所述認(rèn)證 器: 從非易失性存儲器中讀取所述持久的認(rèn)證器時元值; 增加所述認(rèn)證器時元值;以及 將所述增加的認(rèn)證器時元值存儲在所述非易失性存儲器中。
3. 如權(quán)利要求1所述的方法,還包括,響應(yīng)于所述認(rèn)證器被重新啟動: 增加所述認(rèn)證器時元值;以及 由所述認(rèn)證器將下一消息傳輸至所述特定請求者,同時將所述安全關(guān)聯(lián)時元計數(shù)器設(shè) 置為所述增加的認(rèn)證器時元值與所述特定請求者的所述每請求者值之間的差值,并且所述 消息計數(shù)器被重置為零。
4. 如權(quán)利要求1所述的方法,其中,維護(hù)每個請求者的所述持久的每請求者值包括: 通過在每個新的安全關(guān)聯(lián)期間存儲的相應(yīng)的成對臨時密鑰(PTK)存儲每個持久的每 請求者值。
5. 如權(quán)利要求1所述的方法,還包括: 響應(yīng)于所述消息計數(shù)器翻轉(zhuǎn),增加所述特定請求者的所述安全關(guān)聯(lián)時元計數(shù)器。
6. 如權(quán)利要求1所述的方法,還包括: 響應(yīng)于所述安全關(guān)聯(lián)時元計數(shù)器翻轉(zhuǎn),與所述特定請求者建立新的安全關(guān)聯(lián)。
7. 如權(quán)利要求1所述的方法,其中所述重播計數(shù)器為八字節(jié),并且其中所述安全關(guān)聯(lián) 時元計數(shù)器為四字節(jié),并且其中所述消息計數(shù)器為四字節(jié)。
8. 如權(quán)利要求1所述的方法,其中,所述認(rèn)證器是場域路由器(FAR)。
9. 如權(quán)利要求1所述的方法,還包括: 使用4次握手與每個請求者建立所述新的安全關(guān)聯(lián)。
10. 如權(quán)利要求1所述的方法,其中,響應(yīng)于與所述特定請求者建立新的安全關(guān)聯(lián),所 述認(rèn)證器時元值與所述特定請求者的所述每請求者值之間沒有差值,并且其中,當(dāng)所述認(rèn) 證器時元值與所述每請求者值之間沒有差值時,所述安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為零。
11. 一種裝置,包括: 一個或多個網(wǎng)絡(luò)接口,所述一個或多個網(wǎng)絡(luò)接口與共享介質(zhì)通信網(wǎng)絡(luò)進(jìn)行通信; 處理器,所述處理器被耦合于所述網(wǎng)絡(luò)接口,并且適于執(zhí)行一個或多個處理;以及 存儲器,所述存儲器被配置以存儲所述處理器可執(zhí)行的處理,當(dāng)所述處理被所述裝置 作為認(rèn)證器來執(zhí)行時,所述處理可操作以: 維護(hù)隨著每次所述認(rèn)證器重新啟動而增加的持久的認(rèn)證器時元值; 維護(hù)所述認(rèn)證器的每個請求者的持久的每請求者值,每次所述請求者與所述認(rèn)證器建 立新的安全關(guān)聯(lián)時,每個相應(yīng)的每請求者值被設(shè)置為所述認(rèn)證器時元值的當(dāng)前值;以及 將至少一個消息傳輸至特定請求者,每個消息使用具有特定于所述特定請求者的安全 關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重播計數(shù)器,其中,當(dāng)所述消息被傳輸時,每個消 息的所述安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為所述認(rèn)證器時元值與所述特定請求者的所述每請 求者值之間的差值,并且其中所述消息計數(shù)器針對每個被傳輸?shù)南⒍辉黾印?br>
12. 如權(quán)利要求11所述的裝置,其中,當(dāng)所述處理被執(zhí)行以維護(hù)所述認(rèn)證器時元值時, 響應(yīng)于啟動所述認(rèn)證器,所述處理還可操作以: 從非易失性存儲器中讀取所述持久的認(rèn)證器時元值; 增加所述認(rèn)證器時元值;以及 將所述增加的認(rèn)證器時元值存儲在所述非易失性存儲器中。
13. 如權(quán)利要求11所述的裝置,其中,當(dāng)所述處理被執(zhí)行時,響應(yīng)于所述認(rèn)證器被重新 啟動,所述處理還可操作以: 增加所述認(rèn)證器時元值;以及 將下一消息傳輸至所述特定請求者,同時將所述安全關(guān)聯(lián)時元計數(shù)器設(shè)置為所述增加 的認(rèn)證器時元值與所述特定請求者的所述每請求者值之間的差值,并且所述消息計數(shù)器被 重置為零。
14. 如權(quán)利要求11所述的裝置,其中當(dāng)所述處理被執(zhí)行以維護(hù)每個請求者的所述持久 的每請求者值時,所述處理還可操作以: 通過在每個新的安全關(guān)聯(lián)期間存儲的相應(yīng)的成對臨時密鑰(PTK)存儲每個持久的每 請求者值。
15. 如權(quán)利要求11所述的裝置,其中當(dāng)所述處理被執(zhí)行時,所述處理還可操作以: 響應(yīng)于所述消息計數(shù)器翻轉(zhuǎn),增加所述特定請求者的所述安全關(guān)聯(lián)時元計數(shù)器。
16. 如權(quán)利要求11所述的裝置,其中當(dāng)所述處理被執(zhí)行時,所述處理還可操作以: 響應(yīng)于所述安全關(guān)聯(lián)時元計數(shù)器翻轉(zhuǎn),與所述特定請求者建立新的安全關(guān)聯(lián)。
17. 如權(quán)利要求11所述的裝置,其中所述重播計數(shù)器為八字節(jié),并且其中所述安全關(guān) 聯(lián)時元計數(shù)器為四字節(jié),并且其中所述消息計數(shù)器為四字節(jié)。
18. 如權(quán)利要求11所述的裝置,其中,所述裝置是場域路由器(FAR)。
19. 如權(quán)利要求11所述的裝置,其中當(dāng)所述處理被執(zhí)行時,所述處理還可操作以: 使用4次握手與每個請求者建立所述新的安全關(guān)聯(lián)。
20. -種有形的非暫態(tài)計算機(jī)可讀介質(zhì),所述介質(zhì)具有被編碼在其上的軟件,當(dāng)所述軟 件由計算機(jī)網(wǎng)絡(luò)中的認(rèn)證器上的處理器執(zhí)行時,所述軟件可操作以: 維護(hù)隨著每次所述認(rèn)證器重新啟動而增加的持久的認(rèn)證器時元值; 維護(hù)所述認(rèn)證器的每個請求者的持久的每請求者值,每次所述請求者與所述認(rèn)證器建 立新的安全關(guān)聯(lián)時,每個相應(yīng)的每請求者值被設(shè)置為所述認(rèn)證器時元值的當(dāng)前值;以及 將至少一個消息傳輸至特定請求者,每個消息使用具有特定于所述特定請求者的安全 關(guān)聯(lián)時元計數(shù)器和消息計數(shù)器的每請求者重播計數(shù)器,其中,當(dāng)所述消息被傳輸時,每個消 息的所述安全關(guān)聯(lián)時元計數(shù)器被設(shè)置為所述認(rèn)證器時元值與所述特定請求者的所述每請 求者值之間的差值,并且其中,所述消息計數(shù)器針對每個被傳輸?shù)南⒍辉黾印?br>
【文檔編號】H04L29/08GK104247379SQ201380020729
【公開日】2014年12月24日 申請日期:2013年4月22日 優(yōu)先權(quán)日:2012年4月20日
【發(fā)明者】喬納森·W·輝, 安準(zhǔn)·阿胡佳, 克里史納·孔達(dá)卡, 偉·洪 申請人:思科技術(shù)公司