用于可扩展的重播计数器的方法和设备的制作方法

文档序号:7792643阅读:234来源:国知局
用于可扩展的重播计数器的方法和设备的制作方法
【专利摘要】在一个实施例中,通信网络中的认证器维护随着每次认证器重新启动而增加的持久的认证器时元值(610)。认证器还维护认证器的每个请求者的持久的每请求者值(620),每次请求者与认证器建立新的安全关联时,每个相应的每请求者值被设置为认证器时元值的当前值(615)。为将消息从认证器传输至特定请求者,每个消息使用具有特定于特定请求者的安全关联时元计数器和消息计数器的每请求者重播计数器。具体地,当消息被传输时,每个消息的安全关联时元计数器被设置为认证器时元值与特定请求者的每请求者值之间的差值,而消息计数器针对每个被传输的消息而被增加(625)。
【专利说明】用于可扩展的重播计数器的方法和设备

【技术领域】
[0001] 本公开总体涉及计算机网络,更具体地,涉及用于共享介质计算机网络的安全协 议。

【背景技术】
[0002] 诸如传感器网络之类的低功率有损网络(LLN)具有大量应用,比如智能电网和智 能城市。诸如有损路径、低带宽、电池操作、低存储和/或处理能力之类的各种挑战被呈现 给LLN。诸如无线网络或电力线通信(PLC)网络(一种通过电力线进行的通信)之类的共 享介质通信网络为网络通信提供了使能技术。例如,这些技术能够被用在先进测量基础设 施(AMI)网络,并且在家中和建筑物中也很有用。
[0003] 安全是许多共享介质网络的重要方面,尤其对于通常在非受控环境中经过大的物 理区域进行操作的LLN解决方案而言很重要。现有的安全协议通常使用重播计数器来确保 消息的新鲜度并且防止重播攻击。重播计数器是严格单调的。消息源必须针对每个新的消 息增加重播计数器。消息目的地只接受具有比先前接收到的消息的重播计数器更大的重播 计数器的消息。然而,当前的重播计数器解决方案不能很好的适应诸如LLN之类的受限网 络,在这些受限网络中,设备经常在通信带宽、处理能力和/或存储器/存储设备方面被限 制。

【专利附图】

【附图说明】
[0004] 可以通过结合附图参照以下描述来更好地理解本申请的实施例,其中,相同标号 表示等同或功能类似的要素,其中:
[0005] 图1示出示例通信网络;
[0006] 图2示出示例网络设备/节点;
[0007] 图3示出示例非易失性数据结构;
[0008] 图4示出示例消息;
[0009] 图5示出用于网络安全的可扩展的重播计数器的示例;
[0010] 图6示出用于网络安全的可扩展的重播计数器的示例简化程序;
[0011] 图7示出用于网络安全、尤其用于启动和重新启动认证器的可扩展的重播计数器 的另一示例简化程序;
[0012] 图8示出用于网络安全、尤其针对重播计数器的可扩展的重播计数器的另一示例 简化程序。

【具体实施方式】
[0013] 概述
[0014] 根据本公开的一个或多个实施例,通信网络中的认证器维护随着每次认证器重新 启动而增加的持久的认证器时元(印〇ch)值。认证器还维护用于认证器的每个请求者的持 久的每请求者值,每当请求者与认证器建立新的安全关联时,相应的每请求者值被设置为 该认证器时元值的当前值。为将消息从认证器传输至特定的请求者,每个消息使用具有针 对特定请求者的安全关联时元计数器和消息计数器的每请求者重播计数器。具体地,当消 息被传输时,用于每个消息的安全关联时元计数器被设置为认证器时元值与用于特定请求 者的每请求者值之间的差值,同时消息计数器随着每个消息的传输而增加。
[0015] 详细描沭
[0016] 计算机网络是通过用于在诸如个人计算机和工作站或其他设备(例如,传感器 等)之类的端节点之间传输数据的通信链路和区段进行互连的地理分布的节点的集合。从 局域网(LAN)到广域网(WAN)的范围,许多类型的网络是可用的。LAN通常通过位于相同的 一般物理位置(例如,建筑物或校园)的专用私有通信链路来连接节点。另一方面,WAN通 常通过诸如公共载波电话线路、光学光路、同步光纤网(SONET)、同步数字体系(SDH)链路 或电力线通信(PLC)(例如,IEEE 61334、IEEE P1901.2以及其他)之类的长距离通信链路 来连接地理上分散地节点。此外,移动自组网(MANET)是一种无线自组网络,该网络通常被 认为是通过无线链路进行连接的移动路由(和相关联的主机)的自配置网络,这些无线链 路的联合形成任意拓扑。
[0017] 具体地,诸如传感器网络之类的智能对象网络是具有空间分布地自主设备(例 如,传感器、驱动器等)的特定类型的网络,其中自主设备合作监控不同位置处的诸如能量 /电能消耗、资源消耗(例如,用于先进测量基础设施或"AMI"应用的水/气体等)、温度、 压力、振动、声音、辐射、运动、污染物等的物理或环境条件。其他类型的智能对象包括驱动 器,其可以包括用于启动/关闭引擎或执行任意其他动作的功能。传感器网络(一种智能 对象网络)通常是共享介质网络(例如,无线网络或PLC网络)。也就是说,除了一个或多 个传感器,传感器网络中的每个传感器设备(节点)通常可以装备无线收发器或其他通信 端口(诸如PLC、微控制器以及能量源(例如,电池))。通常,智能对象网络被认为是场域 网络(FAN)、邻域网络(NAN)等。一般来说,智能对象节点(例如,传感器)上的大小和成本 约束导致资源上的诸如能量、存储器、计算速度和带宽等相应的约束。
[0018] 图1是示例计算机网络100的原理框图,该示例计算机网络100说明性地包括通 过各种通信方法进行互连的节点/设备200 (例如,如图所标注的,"根"、" 11"、" 12". .. "43" 以及下面图2中所描绘的)。例如,链路105可以是共享介质(例如,无线链路、PLC链路 等),其中某些节点200(例如,路由器、传感器、计算机等)可以(例如,基于距离、信号强 度、当前操作状态、位置等)与其他节点200进行通信。本领域的技术人员将理解的是任意 数目的节点、设备、链路等可以被用在计算机网络100中,并且此处所示的视图是出于简化 的目的。而且,本领域的技术人员还将理解的是尽管网络100是以某一方向、具体通过"根" 节点来示出的,但是网络100只是示例说明,其不旨在限制本公开。
[0019] 数据分组140(例如,在设备/节点之间被发送的流量和/或消息)可以适当 地使用诸如某些已知的无线协议(例如,IEEE Std. 802. 15. 4、IEEEStd. 802. lli、WiFi、 Bluetooth"等)、PLC协议或其他共享介质协议之类的预定义的网络通信协议在计算机网 络100的节点/设备之间进行交换。在该上下文中,协议包括一组定义了节点彼此之间如 何交互的规则。
[0020] 图2是可以由本申请所描述的一个或多个实施例(例如,上面图1中所示的任意 节点)使用的示例节点/设备200的原理框图。设备200可以包括通过系统总线250进行 互连的一个或多个网络接口 210 (例如,无线、PLC等)、至少一个处理器220和存储器240 以及电源260 (例如,电池、插件等)。
[0021] 网络接口 210包括用于通过耦合到网络100的链路105来传输数据的机械电路、 电子电路以及信号电路。网络接口 210可以被配置以使用一个或多个不同的通信协议来发 送和/或接收数据。进一步地,应当注意,节点200可以具有一个或多个不同类型的网络连 接210 (例如,无线连接和有线/物理连接),并且此处的视图只用于说明。而且,尽管网络 接口 210被示为与电源260分开,但是在某些实施例中(例如,PLC),网络接口 210可以通 过电源260进行通信,或者可以是电源260的集成部件。在一些具体配置中,PLC信号可以 被耦合到注入电源260中的电力线中。
[0022] 存储器240包括可由处理器220和网络接口 210寻址的多个存储位置以用于存储 与本申请所描述的实施例相关联的软件程序和数据结构。应当注意,某些设备200可以具 有有限的存储器或不具有存储器(例如,除了用于在设备和相关联的缓存上运行的程序/ 处理的存储器,没有用于存储的存储器)。处理器220可以包括适于执行软件程序和操纵数 据结构245的必要元件或逻辑。操作系统242 (部分该操作系统通常驻留在存储器240中 并且由处理器220执行)通过特别调用支持在设备200上执行的软件处理和/或服务的操 作来功能性地组织该设备。如本申请所描述的,除了其他之外,这些软件处理和/或服务可 以包括路由处理/服务244和说明性的安全处理248。应当注意,尽管安全处理248被示为 在集中式存储器240中,但是可替代的实施例提供了在网络接口 210内(例如,MAC层的部 件(处理"248a"))被具体操作的处理248。
[0023] 其他处理器和存储器类型(包括各种计算机可读介质)可以被用来存储和执行涉 及本申请所描述的技术的程序指令,这对于本领域技术人员而言是显而易见的。而且,尽管 这些描述说明了各种处理,但可明确地预计到的是,各种处理可以被体现为被配置以根据 本申请的技术(例如,根据类似处理的功能)进行操作的模块。进一步地,尽管这些处理被 单独示出,但是本领域技术人员将理解这些处理可以是其他处理内的例程或模块。
[0024] 路由处理(服务)244包括由处理器220执行的计算机可执行指令以实现由一个 或多个路由协议提供的功能,例如,本领域技术人员将理解的先应式路由协议或反应式路 由协议。在有能力的设备上,这些功能可以被配置以管理包括诸如用于做出路由/转发决 定的数据的路由/转发表格(数据结构245)。具体地,在先应式路由中,在计算到网络中的 任意目的地的路由(例如,诸如开放最短路径优先(0SPF)、中间系统至中间系统(ISIS)、优 化链路状态路由(0LSR)之类的链路状态路由)之前发现并已知连接性。另一方面,反应式 路由发现邻居(即,没有网络拓扑的先验知识),并且响应于到目的地的需要的路由,将路 由请求发送到网络中以确定哪个邻居节点可以被用来达到所期望的目的地。示例反应式路 由协议可以包括移动自组网中的按需距离矢量(A0DV)、动态源路由(DSR)、动态MANET按需 路由(DYM0)等。应当注意,在不能或未被配置成存储路由条目的设备上,路由处理244可 以仅由提供源路由技术所需的机制组成。即,对于源路由,网络中的其他设备能够确切地告 诉具有较低能力的设备将分组发送至哪里,并且该具有较低能力的设备仅根据所指向的来 转发分组。
[0025] 应当注意,近年来网状网络日趋流行和实用。具体地,诸如无线网络或PLC网络等 之类的共享介质网状网络经常在被称为低功率有损网络(LLN)上,LLN是其中的路由器和 它们的互连被约束的一类网络:LLN路由器通常在约束(例如,处理功率、存储器和/或能 量(电池))下进行操作,并且它们的互连说明性地以高损失率、低数据率和/或不稳定为 特征。LLN由从几打到几千或甚至几百万的LLN路由器组成,并且支持点到点流量(LLN内 的设备之间)、点到多点流量(从诸如根节点之类的中央控制点到LLN内的设备的子集)以 及多点到点流量(从LLN内的设备到中央控制点)。
[0026] LLN的示例实现方式是"物联网"(Internet of Things)网络。一般来说,术语 "物联网"或"Ι〇Τ"可以被本领域的技术人员用来指在基于网络的架构中唯一可识别的对象 (物体)和它们的虚拟表示。具体地,在互联网的演进中的下一前沿不仅仅是连接计算机和 通信设备的能力,而是连接诸如灯、器具、交通工具、HAVC(供暖设备、通风设备以及空调)、 窗户、遮光窗帘、门、锁等之类的一般"对象"的能力。因此,"物联网"通常指的是诸如传感 器和驱动器之类的对象(例如,智能对象)通过可以是公共互联网或专用网络的计算机网 络(例如,IP)进行的互连。这样的设备通常以通过协议转换网关的方式被连接到IP网络 的非IP或专属协议的形式被用在工业中已达数十年。随着诸如智能电网、智能城市、建筑 和工业自动化以及汽车(例如,能够互连用于感知像电力质量、轮胎压力和温度等几百万 对象并且能够驱动引擎和灯的汽车)之类的大量应用的出现,扩展适于这些网络的IP协议 至关重要。
[0027] 示例协议是由Winter等人于2012年3月提出的题为"RPL :用于低功率有损网络 的IPv6路由协议"的请求评论(RFC) 6550,其由互联网工程任务组(IETF)建议标准指定, 该示例协议提供支持从LLN中的设备到中央控制点(例如,通常为LLN边界路由器(LBR) 或"根节点/设备")的多点到点(MP2P)流量和从中央控制点到LLN中的设备的点到多点 (P2MP)流量(还有点到点,或"P2P"流量)的机制。除了定义限制控制流量、支持修复等特 征的集合之外,RPL(发音为"ripple")通常可以被描述为建立用于路由流量/分组140的 有向非循环图(DAG)的距离向量路由协议。应当注意,正如本领域的技术人员可以理解的, RPL还支持多拓扑路由(MTR)的概念,借此能够根据个体需要建立多个DAG来运载流量。
[0028] DAG是具有所有边以不应该存在循环(回路)这样的方式被定向的属性的有向图。 所有的边被包含在定向至一个或多个根节点(例如,"簇头"或"汇聚端(sink)")并且在该 一个或多个根节点处终止的路径中,该一个或多个根节点通常将DAG的设备与较大的基础 设施(例如,互联网、广域网或其他域)进行互连。此外,面向目的地DAG(DODAG)是以单个 目的地为根的DAG,例如,在没有外向边缘的单个DAG根处。DAG内的特定节点的"父节点" 是通向DAG根的路径上的该特定节点的直接后继,以使得父节点比该特定节点自身具有更 低的"等级",其中,节点的等级识别该节点相对于DAG根的位置(例如,节点离根越远,则该 节点的等级越高)。还应当注意,树是一种DAG,其中,DAG中的每个设备/节点通常具有一 个父节点或一个优选父节点。DAG通常可以基于目标函数(0F)被建立(例如,通过DAG处 理和/或路由处理244)。目标函数的作用通常是指定关于如何建立DAG的规则(例如,父 节点的数目、备用父节点等)。
[0029] 如上所述,安全是许多共享介质网络的重要方面,尤其对于通常在非受控环境 中经过大型物理区域进行操作的LLN解决方案而言很重要。作为说明性的示例,IEEE Std. 802. 11使用分层密钥管理架构。通常,在这样的架构中的网络节点使用IEEE 802. lx 执行相互认证(例如,将可扩展认证协议-传输层安全(ΕΑΡ-TLS)作为认证方法)。尽 管IEEE 802. lx能够使用任何任意密钥交换算法,但是一个特定示例实现方式可以使用 短暂性椭圆曲线Diffie-Hellman-椭圆曲线数字签名算法(Ephemeral elliptic-curve Diffie-Hellman-Elliptic Curve Digital Signature Algorithm,ECDHE_ECDSA)密钥交 换算法。在成功认证之后,场域路由器(FAR)/认证器和加入节点相互派生出成对主密钥 (PMK)。使用PMK,FAR和加入节点可以使用IEEE Std. 802. 114次握手以从PMK相互派生出 成对临时密钥(PTK)。使用PTK,其后FAR可以安全地将群组临时密钥(GTK)信息传输至该 节点。相同的GTK信息被传输至允许访问网络的所有节点。然后,加入节点使用GTK来加 密(解密)并签字(认证)被传输至邻居节点的所有链路层数据帧。
[0030] 设备是否拥有当前的GTK集合把内部设备和外部设备分开,S卩,没有有效的GTK, 外部设备不能参加该网络(并且通过使用全网GTK,网络支持有效的链路层广播)。通过使 用成对密钥信息(PTK从PMK派生出的,而PMK是从ΕΑΡ-TLS获得的),FAR使用安全信道 (可能通过LLN中的多个链路跳)将GTK传输至单个设备,不考虑装备在现有设备上安装 的当前GTK。通过使用安全成对信道(由PTK提供),FAR(认证器)可以将新的GTK信息 仅传输至允许参加该网络的那些设备(请求者)。每个GTK刷新允许FAR定义新的群组成 员。该机制使协议能够支持完善的如向保S和后向保S。
[0031] 现有的安全协议通常使用重播计数器来确保消息的新鲜度并且防止重播攻击。重 播计数器是严格单调的。消息源针对每个新的消息必须增加重播计数器。消息目的地只接 受具有比之前接收到的消息的重播计数器更大的重播计数器的消息。然而,当前的重播计 数器解决方案不能很好的适应诸如LLN之类的受限网络,在这些受限网络中,设备经常在 通信带宽、处理能力和/或存储器/存储设备方面被限制。
[0032] 具体地,许多现有方法要求源随着每个新的消息而增加重播计数器。尽管这种方 法简单,但是需要发送器和接收器首先与重播计数器进行同步(即,初始化)。这通常在发 送器和接收器首先建立安全关联时被完成。例如,在IEEE Std. 802. 11中,4次握手用来在 认证器与请求者之间初始化成对临时密钥(PTK)并初始化重播计数器。认证器使用重播计 数器来将新的群组临时密钥(GTK)传输至请求者。应当注意的是,安全关联通常具有寿命, 在寿命之后对等方(请求者)必须重新建立新的安全关联。该"重新关联"随着时间针对 网络内的每个请求者设备重复地发生。
[0033] 具体地,初始化重播计数器引起消息发送开销,因为设备必须交换一些可替代的 信息(即,802. 11中的"随机数(nonce)")来确保新鲜度。为去除初始化重播计数器的开 销,一些现有的协议依靠发送器和接收器之间预先存在的时间同步。该方法需要安全的时 间同步机制。出于降低成本的原因,许多LLN设备不具有实时时钟(RTC),因此,不具有本地 可信时间源。
[0034] 根据说明性的示例,LLN(或其他网状网络)可以依靠场域路由器(FAR)(例如, 图1中的根节点)来管理通过该FAR进行通信的每个LLN设备的链路层安全关联。在该示 例中,FAR可以作为认证器,每个被认证的设备可以作为认证器中继,并且请求者能够通过 认证器中继与认证器进行通信或直接与认证器进行通信以实施各种安全关联建立技术,例 如,根据 IEEE Std. 802. IX 和 / 或 IEEE Std. 802. 11 i。
[0035] LLN通常通过有限的通信资源(例如,几十千比特/秒)进行操作。因此,对LLN 中的每个设备执行4次握手是成本很高的操作。幸运地,在正常操作下,4次握手可能相对 较少(例如,每隔几个月一次)。而且,认证器可以随着时间的推移分散4次握手。
[0036] 然而,当认证器重启(例如,由于监视器复位)时必须注意。如果重播计数器不是 永久地被存储,则认证器丢失重播计数器状态,并且必须与每个设备执行4次握手以分布 GTK和授权访问网络。可替代地,认证器可以永久地存储每个设备的重播计数器。重启之 后,FAR随后能够执行2次握手以分布GTK,从而在网络启动时将802. lli消息开销减小一 半。
[0037] 当处理FAR的非易失性存储能力时带来了挑战。像许多LLN设备,FAR通常包含 有限量的闪存来永久地存储状态。通常选择闪存是因为其在恶劣的环境中具有鲁棒性、低 成本以及低功率。
[0038] 不幸地,闪存的主要缺点是其具有有限数目的写周期。示例LLN可能需要多达每 FAR 5000个LLN设备的支持。认证器每次使用PTK发送新的消息时,认证器必须执行闪存 写以保存新的重播计数器。使用现有的写缓存技术来分批处理闪存写是不尽人意的,因为 每当FAR重启时,为丢失的状态保持开启一些时间窗口,而写缓存中的数据还未被同步到 闪存。增加闪存的大小并且通过利用闪存的所有部分来使用损耗均衡技术能够帮助缓解该 问题,但是增加了系统成本。
[0039] 可扩展的重播计数器
[0040] 本申请的技术将基于时元的重播计数器的概念作为一种方式来介绍,其中许多 (例如,数千)持久的重播计数器可以以该方式被管理。在某些实施例中,这些技术可以消 除上述闪存写的问题,确保重播计数器即使在意外的重启之后仍保持同步,并且维护与现 有协议的互操作性。说明性地,并且如下面更详细地描述,这可以通过维护随着每次认证器 处理(重新)启动而增加的单个持久的认证器时元,当建立新的安全关联时,随同附加的安 全关联状态一起存储当前的认证器时元以及将传统的重播计数器空间分离成安全关联时 元和消息计数器来实现。
[0041] 具体地,根据下面详细描述的本公开的一个或多个实施例,通信网络中的认证器 维护随着每次认证器重新启动而增加的持久的认证器时元值。认证器还维护对于该认证 器的每个请求者的持久的每请求者值,每个请求者每次与认证器建立新的安全关联时,相 应的每请求者值被设置为该认证器时元值的当前值。为将消息从认证器传输至特定的请求 者,每个消息使用具有针对特定请求者的安全关联时元计数器和消息计数器的每请求者重 播计数器。具体地,当消息被传输时,每个消息的安全关联时元计数器被设置为认证器时元 值与特定请求者的每请求者值之间的差值,而消息计数器随着每个消息被传输而增加。
[0042] 说明性地,本申请所描述的技术可以通过硬件、软件和/或固件来执行(例如,根 据安全处理248/248a),所述硬件、软件和/或固件可以包括由处理器220 (或接口 210的 独立处理器)执行的计算机可执行指令以实现与本申请所描述的技术有关的功能(例如, 特别是认证器处理)。例如,本申请的技术可以被认为是对诸如各种无线协议或PLC协议 (例如,IEEE Std. 802. lli)之类的传统通信协议的扩展,正因如此,本申请的技术可以相应 地通过本领域技术人员所理解的执行这些协议的类似的部件进行处理。还应当注意,尽管 这些实施例将机制描述为适应于IEEE 802. lli,但是本申请所描述的概念不针对于IEEE 802. lli,并且实施例也不被这样限制。
[0043] 操作上,本申请的技术描述了对重播计数器的持久的管理,尤其适合于大量重播 计数器。本申请的技术能够最小化能耗尽闪存存储的有限的写周期能力的写的数目,并且 本申请的技术还能确保认证器(例如,FAR)和许多(例如,数千)请求者(例如,LLN节点) 之间的重播计数器即使经历了意外的重启之后仍保持同步。
[0044] 本申请所描述的技术的第一组成部分涉及维护认证器上的单个持久的认证器 时元值(计数器)。图3示出示例非易失性数据结构300(例如,上面图2中的数据结构 245)。数据结构300包括认证器时元值310,该认证器时元值310定义认证器的当前"典 型(incarnation)"。换言之,认证器时元指示认证器上认证器处理被(重新)启动的次数 (即,通过每次认证器重新启动而增加来维护)。具体地,每当认证器处理启动(例如,作为 安全处理248的一部分或认证器设备200的另一处理),认证器从非易失性存储器300读 取当前的认证器时元值310,增加认证器时元值,并且将新的值存储在非易失性存储器300 中。
[0045] 本申请所描述的技术的第二组成部分涉及持久的地管理每个独立的基于时元的 重播计数器。具体地,对于每个请求者(条目315),认证器维护持久的每请求者值320,其 中每次请求者315与认证器建立新的安全关联时,相应的持久的每请求者值320被设置为 当前的认证器时元值310。换言之,每当认证器(例如,使用IEEE Std. 802. lli中的4次握 手)建立新的安全关联,认证器将当前的认证器时元值310记录在该请求者的会话状态块 (例如,字段320)中。应当注意,该处理除了建立新的安全关联时所需要的写之外,不需要 任何附加的写。具体地,认证器能够通过在该请求者的每个新的安全关联期间所存储的新 的/相应的PTK 325存储当前的认证器时元值。
[0046] 本申请所描述的技术的第三组成部分涉及将传统的消息的重播计数器空间分离 为(i)安全关联(SA)时元和(ii)消息计数器。图4示出包括头部410和载荷430的示例 简化消息400 (例如,分组140)。在头部410内,可以存在用于指向消息400的一个或多个 各种字段,例如,(例如,认证器的)源地址412和(例如,请求者的)目的地地址414。另 夕卜,如图所示,重播计数器420被划分为SA时元计数器422和消息计数器424。
[0047] 如本申请所描述的,SA时元422定义自与特定的请求者建立新的安全关联以来认 证器处理已经(重新)启动的次数。(应当注意,特定请求者的SA时元值422独立于所有 其他请求者。)即,当新的安全关联被建立时,SA时元值422被初始化为零。换句话说,当消 息被传输时,每个消息的SA时元计数器422被设置为认证器时元值310和特定请求者315 的每请求者值320之间的差值。当认证器时元值310和特定请求者315的每请求者值320 之间没有差值时,例如,响应于与特定请求者建立新的安全关联,从而SA时元计数器422被 设置为零。如果SA时元"翻转(roll over) "(增加超过最大允许的数目,例如,对于4比 特字段,从" 1111"到"〇〇〇〇"),则认证器必须与特定的请求者建立新的安全关联。
[0048] 重播计数器420的消息计数器424定义在安全关联的SA时元内所发送的消息的 数目,从而消息计数器424针对每个所传输的消息而被增加。具体地,在每个新的SA时元 启动时,消息计数器424被初始化为零,并且认证器针对每个新的消息增加消息计数器,直 到翻转为止,在翻转时认证器针对特定请求者启动新的SA时元(例如,增加 SA时元计数器 422)。应当注意,在说明性的实施例中,增加 SA时元计数器422涉及减小该请求者的每请 求者值320并且持久的保存值320。换言之,SA时元是认证器时元值310与每请求者时元 值320之间的差值,因此由于消息计数器翻转而增加 SA时元计数器422,存在两个选项: [0049] 1)减小非易失性存储器中的每请求者值320,这具有限制对单个请求者的任何副 作用的益处;或者
[0050] 2)增加非易失性存储器中的认证器时元值310,这具有重置所有节点的消息计数 器并且还延迟任意非易失性存储器进行写的益处。
[0051] 实际上,给定说明性的8字节重播计数器字段,翻转的情形很少(例如,具有32比 特的时元计数器和32比特的消息计数器)。具体地,在说明性的IEEE Std. 802. lli中,LAN 的扩展认证协议(EAP0L)密钥消息包含8字节重播计数器字段。在一个实施例中,重播计 数器字段420可以被分解为将4个高字节作为SA时元计数器422并且将4个低字节作为 消息计数器424。
[0052] 与传统的实现方式相比,在有线方面以这种方式使用EAP0L密钥重播计数器导致 可见的差别。具体地,EAP0L密钥重播计数器字段的较高位将在每次认证器处理(重新)启 动时增加,并且较低位将重置为零。即,当重新启动认证器时,认证器时元值310被增加,并 且当下一消息被传输至特定的请求者时,SA时元计数器422被设置为所增加的认证器时元 值310与特定请求者的每请求者值320之间的差值,并且消息计数器424被重置为零。然 而,应当注意,以这种方式使用EAP0L密钥重播计数器字段不影响互操作性。具体地,IEEE Std. 802. 11规范没有在认证器可以增加重播计数器字段多少次上设置限制。
[0053] 由于对认证器时元310具有持久的认识,认证器不需要执行任何闪存写来维持 EAP0L密钥重播计数器值。相反,当将每个消息传输至特定请求者时,认证器仅生成每请求 者重播计数器。具体地,当发送消息时,认证器将SA时元422设置为认证器时元310的当 前值与针对该请求者而存储的认证器时元值(例如,每请求者值320)之间的差值。应当注 意,自然地采取简单的差别来处理认证器时元值翻转时的情形。此外,认证器增加每个新的 消息的消息计数器424。因此,每当认证器处理(重新)启动时,消息计数器可以被存储在 易失性存储器中并且被初始化为零。
[0054] 如上面的详细说明所阐述的,图5示出根据本申请的一个或多个实施例的用于网 络安全的可扩展的重播计数器的示例。例如,假设一系列事件505以所示出的示例顺序 发生,并且其余字段表示认证器时元值510,对于每个请求者"A"和"B",表示每请求者值 515/535、重播计数器字段(即SA时元计数器520/540)以及消息计数器525/545。
[0055] 说明性地,当认证器启动时,认证器时元值510(上面的310)可以被初始化为零 (或者,在可替代的实施例中,被初始化为1),并且当请求者"A"建立新的安全关联时,A的 每请求者值515被设置为当前的认证器时元。当消息被发送至A时,消息计数器525被增 力口。如果认证器重新启动,则认证器时元值510被增加至1,并且请求者A的SA时元计数器 520被设置为当前认证器时元值510与其每请求者值515之间的差值(即,1),随着更多的 消息被发送至A,由于重新启动,消息计数器525从其重置值0被增加。
[0056] 假设现在请求者B与认证器建立安全关联,这时B的每请求者值535被设置为当 前认证器值,即1。然后被发送至B的消息可以通过被初始化为0的SA时元计数器540和 消息计数器545来初始化它们的重播计数器。应当注意,发送至A的附加消息独立于请求 者B而增加了它们的重播计数器。
[0057] 如果此时另一认证器重新启动,则认证器时元510被增加至2,每请求者值515和 535被维持,并且为了发送消息至请求者A和B,新的SA时元值520和540被分别计算为认 证器时元510与各自每请求者值515和535之间的结果差值,即2和1。
[0058] 还假设出于各种原因,请求者A现在与认证器建立新的安全关联。此时,A的每请 求者值515被设置为当前的认证器时元值510 (即,2),并且SA时元计数器和消息计数器均 可被重置为0。
[0059] 为了说明翻转,接下来假设三个消息被发送至请求者B,从而将消息计数器545增 加至3。在2比特计数器的简化标准下,对下一(第四个)消息增加消息计数器将导致从 二进制11 (值=3)翻转至二进制00 (值=4)。这样,请求者B的SA时元计数器540将从 1被增加至2。假设对于更多消息(例如,6个)如此继续,以使得B的重播计数器的SA时 元为3并且消息计数器为3。当下一消息被发送至B时,消息计数器545将翻转,从而增加 SA时元计数器540。然而,由于SA时元计数器也将翻转,因此,需要与请求者B的新的安全 关联,使得每请求者值535被设置为认证器时元值510,并且重播计数器字段540和545均 被重置为0。
[0060] 如上一示例,如果此时认证器再次重新启动,认证器时元值510被增加(至3),每 请求者值515和535保持相同,SA时元计数器被设置为差值(例如,分别为1和1),并且消 息计数器被重置为0。本领域的技术人员将理解,图5中所示示例是经简化的并且仅出于说 明的目的,不旨在限制本申请的实施例的范围。
[0061] 通过使用基于时元的重播计数器,当认证器处理(重新)启动以管理认证器时元 310时,认证器所需的唯一附加的持久的写操作发生。除了管理每请求者值320,认证器不 需要任何附加的持久的写操作来维护每个请求者的重播计数器。而且,当认证器非期望地 重启时,基于时元的重播计数器确保认证器与请求者之间的重播计数器状态不会变得不一 致。当认证器处理重新启动时,认证器针对每个请求者建立新的SA时元,将消息计数器初 始化为零,并且能够使用当前的安全关联开始发送消息,就好像认证器从未重新启动过一 样。
[0062] 图6示出根据本申请所描述的一个或多个实施例的用于网络安全的可扩展的重 播计数器的示例简化程序。程序600可以开始于步骤605,并且继续至步骤610,其中,如 上面更详细地描述,通信网络中的认证器(例如,FAR或根节点)维护持久的的认证器时元 值310,认证器时元值310随着每次认证器重新启动而增加。在步骤615中,认证器建立与 请求者的安全关联,并且在步骤620中,认证器维护每个请求者315的持久的每请求者值 320。如上所述,每次请求者与认证器建立新的安全关联时,每个相应的每请求者值被设置 为当前的认证器时元值。又如上面所提到的,例如,每请求者值可以通过新的安全关联的 PTK 325进行存储。
[0063] 认证器可以在步骤625中将消息400传输至特定请求者,其中,每个消息使用具有 特定于特定请求者的安全关联时元计数器422和消息计数器424的每请求者重播计数器 420。具体地,如上所述,当消息被传输时,每个消息的安全关联时元计数器被设置为认证器 时元值与该特定请求者的每请求者值之间的差值,同时针对每个所传输的消息,消息计数 器被增加。程序600可以在步骤630结束,应当注意具有继续发送消息、重新启动认证器、 建立新的安全关联等的能力。
[0064] 另外,图7示出根据本申请所描述的一个或多个实施例的用于网络安全、尤其用 于启动和重新启动认证器的可扩展重播计数器的另一示例简化程序。程序700可以开始于 步骤705,并且继续至步骤710,其中,如上面更详细地描述的,认证器可以启动或者重新启 动,此时,在步骤715中认证器从非易失性存储器300中读取持久的认证器时元值310。然 后认证器时元值在步骤720中被增加,并且在步骤725中被存储在非易失性存储器中。同 样地,当在步骤730中将下一消息传输至特定请求者时,安全关联时元计数器422被设置为 所增加的认证器时元值310与特定请求者315的每请求者值320之间的差值,并且消息计 数器424被重置为零。其后,说明性的程序700可以在步骤735中结束,应当注意,其能够 相应地通过增加的计数器发送附加消息。
[0065] 最后,图8示出根据本申请所描述的一个或多个实施例的用于网络安全、尤其针 对重播计数器420的可扩展重播计数器的另一示例简化程序。程序800可以开始于步 骤805,并且继续至步骤810,其中,如上面更详细地描述的,认证器(例如,FAR)将消息 400 (例如,GTK)传输至特定请求者(例如,LLN节点)。消息一旦被传输,则认证器在步骤 815中增加消息计数器424,并且如果在步骤820中被翻转(例如,被重置为零),则在步骤 825中增加特定请求者的安全关联时元计数器422 (如上所述,这可能涉及减小每请求者值 320或者增加认证器时元值310)。在步骤830中如果安全关联时元计数器也已翻转,则在 步骤835中,认证器建立与特定请求者的新的安全关联,并且每请求者值320被设置为当前 的认证器时元值310。程序800可以根据从本申请的技术中得出的重播计数器420,在步骤 810中继续传输消息。
[0066] 应当注意,如上所述,尽管程序600-800内的某些步骤是可选的,但是图6-图8中 所示的步骤仅仅是用于说明的示例,某些其他步骤可以根据需要被包括或排除。而且,尽管 这些步骤的特定顺序被示出,但是该顺序仅仅是说明性的,并且在不背离本申请的实施例 的范围的情况下,可以使用对这些步骤的任意合适的安排。此外,尽管程序600-800被分开 描述,但是来自每个程序的某些步骤可以被合并到彼此程序中,并且这些程序不意欲互相 排斥。
[0067]因此,本申请所描述的技术提供用于网络安全、尤其在共享介质通信网络中的可 扩展重播计数器。具体地,本申请的技术能够通过持久的地维护附连到FAR的每个LLN设 备的安全关联和重播计数器,能够使LLN比传统技术更快地从FAR重启中恢复。这些技术 还提供了实际的方法,每当发送消息时该方法允许FAR在不需要闪存写操作的情况下持久 的地管理许多(例如,数千)重播计数器。而且,这些技术能够通过以标准相容的方式使用 现有的重播计数器字段来维护与现有协议的互操作性。
[0068] 尽管已经示出并描述了提供用于网络安全的可扩展的重播计数器的说明性实施 例,但是应当理解,可以在本申请的实施例的精神和范围内作出各种其他的改编和修改。例 如,本申请已示出且描述的针对LLN的实施例。然而,在更广泛的意义上,这些实施例没有 被限制,并且事实上这些实施例可以采用其他类型的共享介质网络和/或协议。此外,尽管 示出了特定的协议,比如,各种IEEE Std.协议(例如,802. lx、802. 15. 4或802. lli),但是 可以相应地使用其他合适的协议。
[0069] 前面的描述已经针对具体实施例。然而,显而易见的是,可以对所描述的实施例 做出各种变更和修改,从而达到其优势中的一些优势或全部优势。例如,可以明确地预计 到的是,本申请所描述的部件和/或元件能够被实现为被存储在具有在计算机、硬件、固件 或其组合上执行的程序指令的有形的(非暂态的)计算机可读介质(例如,磁盘/CD/RAM/ EEPROM等)的软件。因此,本说明书只通过示例的方式进行详细描述而非限制本申请的实 施例的范围。因此,所附权利要求的目的是覆盖进入本申请的实施例的真正精神和范围内 的所有这样的变更和修改。
【权利要求】
1. 一种方法,包括: 在通信网络中的认证器处维护持久的认证器时元值,其中随着每次所述认证器重新启 动,所述认证器增加所述认证器时元值; 在所述认证器处维护所述认证器的每个请求者的持久每请求者值,每次所述请求者与 所述认证器建立新的安全关联时,每个相应的每请求者值被设置为所述认证器时元值的当 前值;以及 将至少一个消息从所述认证器传输至特定请求者,每个消息包括具有特定于所述特 定请求者的安全关联时元计数器和消息计数器的每请求者重播计数器,其中,当所述消息 被传输时,每个消息的所述安全关联时元计数器被设置为所述认证器时元值与所述特定请 求者的所述每请求者值之间的差值,并且其中所述消息计数器针对每个被传输的消息被增 加。
2. 如权利要求1所述的方法,其中,维护所述认证器时元值包括,响应于启动所述认证 器: 从非易失性存储器中读取所述持久的认证器时元值; 增加所述认证器时元值;以及 将所述增加的认证器时元值存储在所述非易失性存储器中。
3. 如权利要求1所述的方法,还包括,响应于所述认证器被重新启动: 增加所述认证器时元值;以及 由所述认证器将下一消息传输至所述特定请求者,同时将所述安全关联时元计数器设 置为所述增加的认证器时元值与所述特定请求者的所述每请求者值之间的差值,并且所述 消息计数器被重置为零。
4. 如权利要求1所述的方法,其中,维护每个请求者的所述持久的每请求者值包括: 通过在每个新的安全关联期间存储的相应的成对临时密钥(PTK)存储每个持久的每 请求者值。
5. 如权利要求1所述的方法,还包括: 响应于所述消息计数器翻转,增加所述特定请求者的所述安全关联时元计数器。
6. 如权利要求1所述的方法,还包括: 响应于所述安全关联时元计数器翻转,与所述特定请求者建立新的安全关联。
7. 如权利要求1所述的方法,其中所述重播计数器为八字节,并且其中所述安全关联 时元计数器为四字节,并且其中所述消息计数器为四字节。
8. 如权利要求1所述的方法,其中,所述认证器是场域路由器(FAR)。
9. 如权利要求1所述的方法,还包括: 使用4次握手与每个请求者建立所述新的安全关联。
10. 如权利要求1所述的方法,其中,响应于与所述特定请求者建立新的安全关联,所 述认证器时元值与所述特定请求者的所述每请求者值之间没有差值,并且其中,当所述认 证器时元值与所述每请求者值之间没有差值时,所述安全关联时元计数器被设置为零。
11. 一种装置,包括: 一个或多个网络接口,所述一个或多个网络接口与共享介质通信网络进行通信; 处理器,所述处理器被耦合于所述网络接口,并且适于执行一个或多个处理;以及 存储器,所述存储器被配置以存储所述处理器可执行的处理,当所述处理被所述装置 作为认证器来执行时,所述处理可操作以: 维护随着每次所述认证器重新启动而增加的持久的认证器时元值; 维护所述认证器的每个请求者的持久的每请求者值,每次所述请求者与所述认证器建 立新的安全关联时,每个相应的每请求者值被设置为所述认证器时元值的当前值;以及 将至少一个消息传输至特定请求者,每个消息使用具有特定于所述特定请求者的安全 关联时元计数器和消息计数器的每请求者重播计数器,其中,当所述消息被传输时,每个消 息的所述安全关联时元计数器被设置为所述认证器时元值与所述特定请求者的所述每请 求者值之间的差值,并且其中所述消息计数器针对每个被传输的消息而被增加。
12. 如权利要求11所述的装置,其中,当所述处理被执行以维护所述认证器时元值时, 响应于启动所述认证器,所述处理还可操作以: 从非易失性存储器中读取所述持久的认证器时元值; 增加所述认证器时元值;以及 将所述增加的认证器时元值存储在所述非易失性存储器中。
13. 如权利要求11所述的装置,其中,当所述处理被执行时,响应于所述认证器被重新 启动,所述处理还可操作以: 增加所述认证器时元值;以及 将下一消息传输至所述特定请求者,同时将所述安全关联时元计数器设置为所述增加 的认证器时元值与所述特定请求者的所述每请求者值之间的差值,并且所述消息计数器被 重置为零。
14. 如权利要求11所述的装置,其中当所述处理被执行以维护每个请求者的所述持久 的每请求者值时,所述处理还可操作以: 通过在每个新的安全关联期间存储的相应的成对临时密钥(PTK)存储每个持久的每 请求者值。
15. 如权利要求11所述的装置,其中当所述处理被执行时,所述处理还可操作以: 响应于所述消息计数器翻转,增加所述特定请求者的所述安全关联时元计数器。
16. 如权利要求11所述的装置,其中当所述处理被执行时,所述处理还可操作以: 响应于所述安全关联时元计数器翻转,与所述特定请求者建立新的安全关联。
17. 如权利要求11所述的装置,其中所述重播计数器为八字节,并且其中所述安全关 联时元计数器为四字节,并且其中所述消息计数器为四字节。
18. 如权利要求11所述的装置,其中,所述装置是场域路由器(FAR)。
19. 如权利要求11所述的装置,其中当所述处理被执行时,所述处理还可操作以: 使用4次握手与每个请求者建立所述新的安全关联。
20. -种有形的非暂态计算机可读介质,所述介质具有被编码在其上的软件,当所述软 件由计算机网络中的认证器上的处理器执行时,所述软件可操作以: 维护随着每次所述认证器重新启动而增加的持久的认证器时元值; 维护所述认证器的每个请求者的持久的每请求者值,每次所述请求者与所述认证器建 立新的安全关联时,每个相应的每请求者值被设置为所述认证器时元值的当前值;以及 将至少一个消息传输至特定请求者,每个消息使用具有特定于所述特定请求者的安全 关联时元计数器和消息计数器的每请求者重播计数器,其中,当所述消息被传输时,每个消 息的所述安全关联时元计数器被设置为所述认证器时元值与所述特定请求者的所述每请 求者值之间的差值,并且其中,所述消息计数器针对每个被传输的消息而被增加。
【文档编号】H04L29/08GK104247379SQ201380020729
【公开日】2014年12月24日 申请日期:2013年4月22日 优先权日:2012年4月20日
【发明者】乔纳森·W·辉, 安准·阿胡佳, 克里史纳·孔达卡, 伟·洪 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1