用于自动切换消息认证密钥的方法

文档序号:7640522阅读:195来源:国知局
专利名称:用于自动切换消息认证密钥的方法
技术领域
本发明一般地涉及认证消息通信。本发明更具体地涉及用于改变用来 对传输协议连接进行数字签名的密钥的方法。
背景技术
本节描述的方法可被实行,但不一定是以前构思或实行过的手段。因 此,除非此处另有说明,否则本节所描述的手段对于本申请中的权利要求 来说就不是现有技术,并且不因包含在本节中就被认为是现有技术。
传输控制协议(TCP)是通过按需使用段重传和有序确认来为上层应 用提供可靠的面向连接的数据传递服务的传输层协议。在典型的TCP实现 方式中,TCP连接在建立在两个主机上的两个TCP端点中建立。TCP端点 由主机的TCP模块(或栈)维护并被表示为TCP端口号和主机的互联网 协议(IP)地址的组合。
TCP使用流数据传输机制在两个端点之间传递非结构字节流。流中的 字节被按顺序编号并分组成TCP段以便在TCP端点之间通过TCP连接来 发送。通过TCP连接发送的TCP段包括头部和净荷部分,并可由段的净 荷部分中第一字节的序列号来标识。
TCP序列号主要用于TCP连接上的数据流控制。当TCP连接最初建 立时,每个端点生成伪随机ISN (初始序列号)。每个端点为该端点发送 的数据的每个字节单调增加其ISN。流控制机制还通过要求其他端点为接 收的数据发送ACK (确认)来确保可靠的传递;每个ACK识别与成功接 收的数据相对应的接收序列号。ACK机制确保两个TCP端点针对数据传 输总是同步的。
TCP提供的传输服务被上层应用用来通过TCP连接交换特定于应用的 数据。使用TCP连接来交换数据的上层应用的一个示例是边界网关协议(BGP) 。 BGP是对等路由协议,其最新版本BGP-4在互联网工程任务组 (IETF) 1995年3月公布的RPC 1771中定义。为了交换路由信息,两个 BGP主机或对等端首先建立TCP连接,然后协商BGP会话以交换网络路 由。使用TCP来交换数据的上层应用的另一个示例是标记分发协议 (LDP) 。 LDP是为多协议标记交换(MPLS)架构定义的协议并描述于 IETF 2001年1月公布的RFC 3036。在MPLS网络中,两个标记交换路由 器(LSR)或LDP对等端通过TCP连接建立双向LDP会话以便交换将网 络层路由信息直接映射到数据链路层交换路径的标记映射信息。
但是,TCP易受到数据注入攻击。在数据注入攻击中,攻击者猜测用 于有效TCP连接的参数值并使用这些参数值来发送包含恶意或伪造数据净 荷的伪造TCP段。这些伪造TCP段可能影响TCP连接本身的状态或可能 意在上层应用。若接收TCP端点将这类段传递到上层应用,则当该应用作 用于或运行数据净荷时,可能出现各种问题。数据注入攻击的结果可以很 严重。例如,当BGP会话被相关TCP连接状态的变化打断时,建立该会 话的BGP对等端可能不得不丢弃在会话期间交换的所有BGP路由,并可 能不得不将其路由信息与网络中的对等路由器重新同步。
一种类型的数据注入攻击是通过设置TCP段头部中的RST (重置)比 特来构建和发送请求TCP连接的关闭和重置的伪造TCP段。
用于阻止这类数据注入攻击的一个现有方法最小化攻击者能够确定有 效TCP连接的参数的机会。在该现有方法中,TCP端点为其发送的每个 TCP连接计算数字签名(或消息摘要或消息认证码),并在TCP段头部 中包含该签名。该签名是基于只有两个TCP端点知道的密钥或密码来计算 的,并使用TCP段的一个或多个字段的内容作为输入。于是,要想成功发 动数据注入攻击,攻击者将不仅必须确定有效TCP连接参数,而且必须猜 测用来生成TCP段签名的密钥或密码。
该现有方法的用于保护BGP会话的一个特定实现方式描述于IETF 1998年8月公布的RFC2385。在该实现方式中,在TCP段中定义了用于 携带消息-摘要5 (MD5)哈希值的TCP OPTION。 MD5算法(描述于 IETF 1992年4月公布的RFC1321)将任意长度的消息作为输入并生成该输入的128比特签名或"消息摘要"作为输出。在该实现方式中,在TCP
连接上发送的每个TCP段在TCP段头部的OPTION字段中包含通过将 MD5算法按顺序应用于下列项目而生成的16字节MD5签名
1. TCP段伪头部(依如下顺序源IP地址、目的地IP地址、补零协 议号和段长度);
2. TCP段头部(不包括OPTION字段,并假设校验和为0)
3. TCP段数据(如果有的话);以及
4. 为两个TCP端点所知、可推定特定于TCP连接的独立指定的密钥 或密码。
收到利用MD5签名签署过的TCP段之后,接收TCP端点使用它自己 的密钥为来自相同数据的TCP段计算它自己的摘要。接收TCP端点随后 将算出的摘要与TCP段的OPTION字段中包含的MD5签名作比较。若算 出的摘要与TCP段中包含的MD5签名相匹配,则接收TCP端点证实该 TCP段有效并将段的净荷部分传递到收方上层应用。若比较失败,则TCP 端点静默地丢弃该TCP段,不发回确认。
但是上述方法具有很多缺点。上述方法的一个缺点是虽然困难,但 攻击者生成用于其想要注入到TCP连接中的恶意TCP段的有效签名并不 是不可能的。例如,由于MD5算法容易受到成功的密码分析攻击,因此 攻击者可能嗅探大量相似的TCP段并推导出用于创建TCP段的MD5签名 的密钥。该缺点尤其对于使用TCP连接相当长时间来运行会话的诸如 BGP之类的上层应用来说会导致严重的安全问题。
上述方法的另一个缺点是在某些情形下,很难在不严重干扰上层应 用的前提下改变TCP连接密钥。由于两个TCP端点必须使用相同的密钥 来为与TCP连接相关的TCP会话生成签名,因此当与TCP连接相关的密 钥需要改变时,为了避免在上层应用之间通过TCP连接发送的数据的损 失,两个TCP端点必须几乎同时地改变密钥。
例如,在根据RFC 2385的BGP实现方式中,当BGP对等端通过 TCP连接互相之间建立BGP会话时,两个BGP对等端可配置其各自的 TCP端点使用共享的MD5密钥或密码。共享的MD5密钥可事先供应给BGP对等端。但是,可能出现某些要求MD5密钥必须改变的情形。例 如,MD5密钥可能由于与人事变动(例如,网络管理员离开公司)有关的 安全问题的原因必须改变。在另一个示例中,若BGP会话是长期运行的会 话,并且在互联网服务供应商(ISP)的BGP对等端和客户网络的BGP对 等端之间建立,为了避免潜在攻击者通过嗅探和分析通过与BGP会话相关 的TCP连接发送的大量TCP段来猜测密钥,可能希望周期性地改变MD5 密钥。
但是, 一旦BGP会话建立,由于BGP使用它自己的KEEPALIVE机 制来检测BGP会话是否活动,因此就没有实用方法可以改变MD5密钥 了 。 BGP对等端禁止用于TCP连接的TCP HoldTimer,并使用它们自己的 BGP KEEPALIVE HoldTimer,该HoldTimer的值在BGP会话建立期间被 协商。BGP对等端周期性地发送BGP KEEPALIVE消息来确保它的BGP 对等端上的HoldTimer不过期。例如,若BGP对等端商定180秒的默认 BGP HoldTimer间隔,则没有任何其他BGP消息的交换,BGP对等端将 每60秒左右发送BGP KEEPALIVE消息。若BGP对等端在BGP KEEPALIVE HoldTimer时间间隔内未通过BGP会话接收通信,则它发出 HoldTimer Expired Error并关闭BGP会话。
于是,若BGP对等端在通过TCP连接建立的BGP会话中使用的 MD5密钥需要改变,则该密钥必须在小于BGP HoldTimer的时间间隔内 在两个TCP端点上改变。为了防止TCP端点不做进一步处理地丢弃利用 旧密钥签名的携带BGP会话的BGP消息的TCP段,其间密钥在两个TCP 端点上改变的时间间隔必须小于BGP HoldTimer。但是,在诸如ISP的大 网络中,可能难以在像BGP HoldTimer间隔一样小的时间间隔内在支持 BGP对等端的所有TCP端点上改变MD5密钥。
诸如BGP、 RIP和IS-IS之类的某些协议使用基于时间的同步来触发 用于会话的密钥翻转(key rollover)。但是,所有这些现有的密钥连锁机 制依赖于端点系统时钟的同步来精确地完成并发的密钥翻转。若连接两端 的时钟不同步,则密码翻转可能失败,导致连接或会话的重置。
另一个可能的方法是修改TCP来明确携带发信令通知MD5密钥改变的比特或字段。但是,该方法需要专用逻辑来解释信令,且要求在端点处 对信令消息的管理。
另一个可能的方法是第一端点在任意特定时刻单方面改变消息认证密 钥,基于改变的密钥生成消息认证标签,并向第二端点发送消息和消息认 证标签。若第二端点不能基于当前密钥来认证消息,则第二端点改变密钥 再次尝试。若改变到第二密钥导致成功的消息认证,则第二端点得知第一 端点已改变密钥。
但是,因为接收端点必须在每次切换时计算多个认证标签,所以该方 法耗费计算。端点还可将分组保持在无序缓冲器中,并且必须利用多个密 钥适当地处理这些分组的认证。另外,将欺骗数据段注入到网络中的恶意 用户可能强制端点重复计算多个认证标签。
上面所引用的在先方法例如在如上引用的Mynam等I和Mynam等II
中示出。
基于前面所述,无疑需要克服了上述现有方法缺点的用于阻止数据注 入攻击的技术。


本发明通过示例方式而不是通过限制方式在附图的图示中给出,所述
附图中相似的参考标号指代相似的要素,并且其中
图1是例示了在其中可实现实施方式的可操作环境的框图2A是示出切换传输协议连接密钥的方法的一个实施方式的上位概
览的流程图2B是示出用于确定切换传输协议连接密钥的示例替代方法的上位 概览的流程图3是示例密钥矩阵的框图;并且
图4是例示了可在其上实现实施方式的计算机系统的框图。
具体实施例方式
描述了用于切换传输协议连接密钥的方法。在以下描述中,出于解释目的,提出多个具体细节来提供对本发明的全面理解。但是,本领域技术 人员将理解本发明的实施不需要这些具体细节。在其他示例中,为避免不 必要地模糊本发明,以框图形式示出公知的结构和设备。
这里根据以下提纲来描述实施方式
1.0 —般概览
2.0结构和功能概览
3.0切换传输协议连接密钥的方法
4.0实现机制-硬件概览
5.0扩展和替代
1.0 —般概览
在前述背景中确定的需要以及通过以下描述将变得明显的其他需要和 目标在本发明中达成,本发明在一个方面包括用于切换传输协议密钥的方 法,所述方法包括在建立在数据通信网中的连接的第一端点处接收和存储 多个密码;选择用于认证连接上的数据段的第一密码;从第二端点接收该 连接上的数据段,其中所述数据段包括第二端点自动增加的序列值;确定 该序列值是否与指定的特征相匹配,若是,则在用于认证后续数据段的多 个密码中选择下一密码。
根据该方面的一个特征,指定的特征是TCP序列号的指定数目的绕回 (wraparound)的出现。在另一个特征中,指定的特征是大于从第二端点 收到的初始序列号的指定数目。在又一个特征中,指定的特征是初始连接 窗大小值的指定倍数。
在又一个特征中,连接是传输控制协议(TCP)连接,且其中序列值 是TCP序列号。在另一特征中,第一密码和下一密码是用于执行TCP段 的基于哈希的消息认证的MD5哈希算法密钥值。在再一特征中,连接是 流传输控制协议(SCTP)连接,且序列值是SCTP传输序列号(TSN)。
根据另一方面,本发明提供了在电信网络中自动改变连接的两个端点 的每一个处的消息认证密钥的方法,所述方法包括以下计算机实现的步 骤在建立在网络中的传输控制协议(TCP)连接的第一端点处接收和存储多个密码;选择用于认证连接上的数据段的第一密码;从第二端点接收 连接上的TCP段,其中所述数据段包括第二端点确定的TCP序列号;确 定该序列号是否与指定的特征相匹配,若是,则在用于认证后续数据段的 多个密码中选择下一密码。指定的特征是以下各项中的任何一个TCP序 列号的特定数目的绕回,大于从第二端点收到的初始序列号的特定数目, 以及初始连接窗大小值的特定倍数。
在又一个方面中,本发明提供了在电信网络中自动改变连接的两个端 点的每一个处的消息认证密钥的方法,所述方法包括以下步骤测试在连 接的多个数据段的每一个中收到的序列值;当序列值与指定的特征相匹配 时,从多个存储的消息认证密钥中选择用于认证后续收到的数据段的下一 消息认证密钥。
在其他方面,本发明包括被配置为执行前述步骤的计算机装置和计算 机可读介质。
2.0结构概览
图1是例示了可在其中实现此处描述的用于切换传输协议密钥的方法 的实施方式的可操作环境的框图。
网络元件110和网络元件120通过网络100可通信地连接。在图1 中,网络元件110和120是各自运行一个或多个BGP处理器116、 126的 路由器。但是,此处描述的方法不限于在运行BGP过程的路由器上实现, 并且图1所描绘的网络元件和其上运行的过程仅是一个实现方法的示例。
网络元件IIO包括操作系统112,操作系统112包括TCP模块114、 密钥改变逻辑118和密钥矩阵119。密钥改变逻辑118包括实现此处描述 的功能的一个或多个计算机程序指令或其他软件要素。密钥矩阵119是相 关联地存储用于执行消息认证操作的密钥和用于确定何时切换到新密钥的 特征的数据结构。在一个实施方式中,密钥改变逻辑118可集成到TCP模 块114中。
密钥改变逻辑118和密钥矩阵119在操作系统112中被单独例示以示 出一个示例实施方式。或者,密钥改变逻辑118可包括操作系统主控的独立应用。密钥矩阵119可在任何可访问密钥改变逻辑118的位置存储。使 用安全存储是合适的,以阻止非授权用户或应用访问密钥矩阵中的密码。 术语"密钥"和"密码"在本说明书中具有相同的意思。
BGP过程116在操作系统112顶部逻辑运行并使用TCP模块114提供 的传输服务。类似地,网络元件120包括操作系统122,操作系统122包 括TCP模块124。 BGP过程126在操作系统122顶部运行并使用TCP模块 124提供的传输服务。
网络元件110上的BGP过程116和网络元件120上的BGP过程126 通过TCP连接117建立BGP会话。TCP连接117与分别由网络元件110 上的TCP模i央114和网络元件120上的TCP模i央116表示的两个TCP端 点相关联。
在操作的一个方面,BGP会话建立后,BGP过程116利用MD5密钥 配置TCP模块114,该密钥被TCP模块114用来创建用于或"签署"TCP 段的MD5签名,所述TCP段通过TCP连接117将BGP消息运送到BGP 过程126。类似地,BGP过程126利用同样的MD5密钥配置TCP模块 124,该密钥被TCP模块124用来创建用于TCP段的MD5签名,所述 TCP段通过TCP连接117将BGP消息运送到BGP过程116。
BGP会话建立后,当BGP过程116决定向BGP过程126发送BGP消 息时,BGP过程116将BGP消息传送到TCP模块114。 TCP模块114接 收消息内容,必要的话,拆分用于包含在一个或多个TCP段的净荷部分的 消息。TCP模块114随后创建一个或多个TCP段,并且对于每个TCP 段,使用先前由BGP过程116提供的MD5密钥来创建MD5签名。 一个 或多个TCP段通过TCP连接117被发送到TCP模块124,并在需要TCP 段的重传的情况中置于TCP模块114的用于该连接的重传队列中。
收到一个或多个TCP段之后,TCP模块124利用它自己的用于TCP 连接117的MD5密钥版本为每段计算MD5摘要。对于每个TCP段,若算 出的MD5摘要与TCP段中包含的MD5签名相匹配,则TCP模块124证 实该段有效。TCP模块124随后根据一个或多个收到的TCP段的内容,组 装原始的BGP消息,必要的话,将该消息传递到BGP过程126。网络元件126上的BGP过程126通过TCP连接117向网络元件110 中的BGP过程126以类似方式发送BGP消息。
此处的功能提供诸如MD5密钥之类的周期性改变的密钥,通过该密 钥确定消息签名。为了支持此处描述的功能,密钥矩阵119在此处描述的 功能变得可操作之前通过安全方式被供应给每一个网络元件110、 120。将 密钥矩阵119供应给网络元件的具体方式不重要,且应用(如BGP过程 116、 126或其他应用)可实现任何适当的供应机制。重要的是密钥矩阵 119在此处的密钥改变技术开始前的某个时刻以相同形式存在于两个网络 元件IIO、 120上。
在一个方法中,管理员负责确保连接的两个端点被供应了用于实现此 处的技术的密钥矩阵119和密钥改变逻辑118。在哈希算法密钥以其他方 式离线交换的环境中,该方法是适用的。
或者,可使用一种超时(timeout)方法。在超时方法中,当发送端点 确定了需要改变密钥时,发送端点开始为发送到接收端的哈希数据使用新 密钥。若发送端点未能在指定的超时时间段(例如,TCP超时时间段,通 常比BGP KEEPALIVE超时值短)内收到来自接收端点的响应,则发送端 点假设接收端点不能认证该消息或使用新密钥。作为响应,发送端点返回 到先前的密钥。该方法为此处的技术提供了后向兼容性。
在另一个方法中,端点可交换BGP能力协商消息来互相通知每个端点 可使用此处的技术来执行密码转换。
在另一个方法中,指定的TCP选项值可以指示使用此处的技术。
并且,可通过诸如用户数据报协议(UDP)、流控制传输协议 (SCTP)和数据报拥塞控制协议(DCCP)之类的各种面向连接或无连接 传输协议来实现不同的实施方式。另外,可实现此处描述的方法的不同实 施方式来为诸如LDP和多播源发现协议(Multicast Source Discovery Protocol)之类的各种上层应用提供传输协议密钥转换。因此,此处描述的 方法的实施方式和图1所描绘的可操作环境展示了示例,但实施方式不限 于图1的环境。3.0切换传输协议连接密钥的方法
一般地,此处用于在电信网络中切换连接的两个端点的每一个处的传 输协议连接密钥的方法包括测试连接上的多个数据段的每一段中收到的序 列值。当序列值匹配指定的特征时,从多个存储的消息认证密钥中选择用 于认证后续接收的数据段的下一消息认证密钥。序列值通过传输协议的普 通操作自动在发送时刻增加。
实际上,端点观察活动连接的抵达段的序列值,当序列值到达特定值 或匹配特定特征时,端点自动切换到另一个消息认证密钥。对方端点也照 此办理。
由于两个端点观察两个端点发送或接收的段的相同序列值,因此该方 法保证了密钥转换同时发生。不要求密钥改变信令或分组格式改变;TCP 实现方式不要求任何TCP协议操作的改变。端点不需要处理在转换时间间 隔期间同时活动的多个消息认证密钥,例如,当缓冲器中持有乱序分组 时。不要求消息的双重哈希。密钥改变后不要求连接重置。不要求应用在 密钥改变发生时重置会话。不要求时钟同步。
图2A是示出切换传输协议连接密钥的方法的一个实施方式的上位概 览的流程图;图2B是示出用于确定是否切换传输协议连接密钥的示例替 代方法的上位概览的流程图。图3是示例密钥矩阵的框图。
首先参考图2A,在步骤202中,消息认证密钥的配置和导致密钥改 变的特征被接收。在一个实施方式中,步骤202涉及将密钥矩阵119供应 给传输协议连接的每个端点的应用。诸如网络管理员之类的用户可执行该 供应。该供应可将密钥矩阵119提供到多个路由器、交换机或将来传输协 议连接中可能涉及到的其他网络元件。这样,事先不需要知道特定连接的 特定端点。该供应通常以安全方式执行,例如使用加密技术确保未授权用 户或设备不能截取和使用密钥矩阵119。
各种实施方式可使用许多不同种类的导致密钥改变的特征。 一般地, 导致密钥改变的特征依赖于在传输协议连接的段中携带的序列值。例如, '在一个实施方式中,密钥改变发生在收到的段中的序列值等于初始接收窗 大小的指定倍数时。在TCP用语中,该序列值为w cvw"丄或者,密钥改变特征在序列值绕回最大允许序列值数目空间指定次数
时,指定一次密钥改变。因此,若序列值用具有最大十进制值216=65536 的16比特表示,且指定的绕回数目为3,则密钥改变特征将在序列值从0 增加到65535三(3)次时,指定密钥改变发生。
在另一替代方式中,密钥改变特征指定从初始序列值的偏移量。例 如,在TCP实现方式中,密钥改变特征可以当TCP数据段序列号达到 ISN+指定值时指定密钥改变。
在又一个替代方式中,密钥改变特征指定从端点发送并由接收端点确 认的数据量或字节数。例如,应用可指定与密钥改变矩阵119中的密码相 关联地存储的特定数目的字节。通过计算离ISN的偏移量,指定数目的字 节被转换成要求密钥改变的特定序列号。
例如,假设在TCP实现方式中,ISN为10000,且密钥改变矩阵119 指定密钥改变将在交换了 5000字节的数据之后发生。于是,开始序列号 大于等于15000的任何TCP段必须使用新密钥。TCP序列号为14999且长 度为100字节的TCP段仍使用旧密钥,而以TCP序列号14999 + 100 = 15099开始的下一段将开始使用下一密钥来进行消息认证。
现在参考图3,示出密钥改变矩阵119的示例实施方式。密钥改变矩 阵119包括具有分别关联密码、密码改变特征以及可选地关联后续认证方 法的列302、 304、 306的任意数目的行。例如,密钥改变矩阵119的第一 行指定第一个消息认证密码是"0xll3be44aah",该密码应在连接的序列 值等于(3Vcvvvm/)时改变到矩阵中的下一个密码,并且当密码改变发生 时,应利用下一个密码来使用MD5消息认证算法。示例密钥改变矩阵的 相继的行基于5次序列值绕回的发生以及离ISN的指定偏移量,来将其他 密码与密钥改变相关联。另外,最后一行指定下一个认证方法应为SHA1 而非MD5。
在任一特定实施方式中,指定不同的认证方法是可选的而不是必需 的。另外,替代实施方式可将其他安全机制与密码改变相关联。例如,密 钥改变矩阵可指定密码改变后应为后续收到的段使用多个安全机制的组 合。密钥改变矩阵可指定密钥改变发生时应用应向用户、系统或应用发出通知或警告。示例通知可指示密钥改变矩阵中几乎所有密钥都已被使用, 需要供应新的密钥改变矩阵。这样,密钥改变矩阵为传输协议连接的安全 提供灵活的配置。
在使用TCP的某些实施方式中,当指定了非MD5的认证方法时,可 修改TCP协议来重载当前TCP选项以使用其他认证方法。TCP MD5选项 可被重塑为可以携带标识多个认证方法之一的值的TCP安全选项。
再次参考图2A,在步骤204中,选择第一密钥。步骤204表示在特定 端点选择密钥改变矩阵中的第一密钥。假设其他端点同时选择相同的第一 密钥,以便这些端点在开始时是同步的。
在步骤206中,接收数据段。例如,包含数据块的TCP数据段或 SCTP消息被接收。在步骤208中,从收到的数据段中获得序列值。在 TCP实现方式中,步骤208表示识别在收到的数据段中携带的序列号。若 收到的数据段是连接的第一段,则序列号可以是其他端点生成的ISN,或 者序列号可以是在其他端点将一些确认数据成功发送到第一端点后确定的 递增的序列号。
在步骤210中,来自收到的数据段的序列值与存储的密钥改变特征相 比较来确定是否存在匹配。例如,步骤210包括将收到的TCP序列号与密 钥改变矩阵119 (图3)的密码改变特征的值相比较以确定收到的序列号 是否与任何列的值相匹配。
若匹配发生,则在步骤214中选择下一个密钥。例如,对于图3的密 钥改变矩阵119,若当前密码为"0xll3be44aah",且当前收到的序列号 匹酉己(3Vc雨tO ,则选择下一个密码"0xll3be44a99"。在步骤216 中,使用所选密钥计算用于收到的消息的认证值。从而,若匹配发生于步 骤210,则在歩骤216中使用新选择的密码来计算用于收到的消息的认证 值以确定收到的消息是否为真。若没有匹配发生,则在步骤216中继续使 用旧密码。
在步骤218中,其他适当的数据段处理出现。控制随后转移到步骤 206以通过相同方式处理其他数据段。
在步骤215中,当选择了新密钥或密码时,该过程还可选地选择其他安全特征。例如,可从密钥改变矩阵选择新的认证方法并在步骤216中使 用它来确定消息认证值。
在本方法中,对于当前使用的消息认证方法,端点总保持同步。这一 现象的出现是因为发送端点一直是确定序列值与密钥改变矩阵中的特征相 匹配的第一端点,因为发送端点在它发送消息时积累序列值。识别匹配之 后,发送端点可切换到新的消息认证方法,使用该方法来计算认证值,并 发送新计算的认证值和消息。接收端点随后检查收到的序列值,同样识别 匹配,切换到新的消息认证方法,从而使用正确的新消息认证方法来验证 收到的认证值。
图2B使用导致密钥改变的特征的各种示例测试示出图2A的流程步骤 的进一步细节。例如,在一个实施方式中,在步骤208之后,图2A的步 骤210的测试可包括在步骤210A中测试收到的序列值是否等于TCP序列 号绕回的指定倍数。或者,步骤210可包括在步骤210B中确定收到的序 列号是否等于离TCP连接的初始序列号指定偏移量。另外,在步骤210C 中,密钥改变特征可在TCP数据段序列号达到初始接收窗大小的指定倍数 时指定密钥改变。若基于与密钥改变矩阵119的匹配,任一这类测试为 真,则在步骤214中选择下一个密钥。
此处的某些段参考MD5的使用作为消息认证方法。这类参考仅用作 示例。其他实施方式可使用任何其他消息认证方法或加密方法,如 SHA1、 UMAC-96、 CMAC等。
此处的某些段参考TCP的使用作为传输协议。这类参考仅用作示例。 其他实施方式可使用任何其他使用序列值用于流控制或其他目的的面向连 接的通信协议,如SCTP。
4.0实现机制-硬件概览
图4是例示了其中可实现本发明的实施方式的计算机系统400的框 图。优选实施方式是利用一个或多个在诸如路由器设备之类的网络元件上 运行的计算机程序来实现的。因此,在该实施方式中,计算机系统400是 一个路由器。计算机系统400包括总线402或其他用于传送信息的传送机制,以及 耦合到总线402用于处理信息的处理器404。计算机系统400还包括耦合 到总线402用于存储信息和处理器404运行的指令的主存储器406,如随 机存取存储器(RAM)、闪存或其他动态存储设备。主存储器406还可用 于存储在处理器404运行的指令运行期间的临时变量或其他中间信息。计 算机系统400还包括耦合到总线402用于存储静态信息和用于处理器404 的指令的只读存储器(ROM) 408或其他静态存储设备。诸如磁盘、闪存 或光盘之类的存储设备410被提供并耦合到总线402用于存储信息和指通信接口 418可以耦合到总线402用于将信息和命令选项传送到处理 器404。接口 418是传统的串行接口,如RS-232或RS-422接口。外部终 端412或其他计算机系统连接到计算机系统400并利用接口 418向其提供 命令。计算机系统400中运行的固件或软件提供终端接口或基于特征的命 令接口以便可以将外部命令给予计算机系统。交换系统416耦合到总线402并具有到一个或多个外部网络元件的输 入接口 414和输出接口 419。外部网络元件可包括耦合到一个或多个主机 424的本地网络422,或诸如互联网428之类的具有一个或多个服务器430 的全球网。交换系统416根据预定协议和公知惯例将抵达输入接口 414的 信息流量切换到输出接口 419。例如,交换系统416与处理器404合作可 以确定抵达输入接口 414的数据分组的目的地并利用输出接口 419将其发 送到正确的目的地。目的地可包括本地网络422或互联网428中的主机 424、服务器430、其他终端站或者其他路由和交换设备。本发明涉及用于切换传输协议连接密钥的计算机系统400的使用。根 据本发明的一个实施方式,计算机系统400响应于运行主存储器406中包 含的一个或多个指令的一个或多个序列的处理器404来提供用于切换传输 协议连接密钥的方法。这类指令可从诸如存储设备410之类的另一计算机 可读介质被读入主存储器406。主存储器406中包含的指令序列的运行导 致处理器404执行此处描述的过程步骤.。也可采用多处理装置中的一个或 多个处理器来运行主存储器406中包含的指令序列。在替代实施方式中,可代替或结合软件指令使用硬连接电路以实现本发明。因此,本发明的实 施方式不限于硬件电路和软件的任何特定组合。此处使用的术语"计算机可读介质"指代参与向处理器404提供指令 来运行的任何介质。该介质可采用很多形式,包括但不限于非易失性介 质、易失性介质和传输介质。非易失性介质例如包括光盘或磁盘,如存储设备410。易失性介质包括动态存储器,如主存储器406。传输介质包括 同轴电缆、铜线和光纤,包括由总线402组成的线缆。传输介质也可采用 声波或光波的形式,如在无线电波和红外数据通信期间生成的声波或光 波。计算机可读介质的常见形式例如包括软盘,柔性盘,硬盘,磁带或任 何其他磁介质,CD-ROM,任何其他光介质,打孔卡片,纸带,任何其他 带有孔样式的物理介质,RAM, PROM禾卩EPROM, FLASH-EPROM,任何其他存储芯片或筒盒,下文中所描述的载波,或者计算机可以从中读取 的任何其他介质。将一个或多个指令的一个或多个序列运送至处理器404供执行可能涉 及各种形式的计算机可读介质。例如,开始时指令可能在远程计算机的磁 盘上携带。远程计算机可将指令加载到它的动态存储器中并利用调制解调 器通过电话线发送指令,计算机系统400本地的调制解调器可通过电话线 接收数据并使用红外发送器来将数据转化成红外信号。耦合到总线402的 红外检测器可以接收在红外信号中携带的数据并将数据放到总线402上。 总线402将数据运送到主存储器406,处理器404从主存储器获取和运行 指令。主存储器406接收的指令在被处理器404运行之前或之后可选地存 储到存储设备410上。通信接口 418还提供耦合到网络链接420的双向数据通信,网络链接 420连接到本地网络422。例如,通信接口 418可以是综合业务数字网 (ISDN)卡或调制解调器,以向相应类型的电话线提供数据通信连接。作 为另一个示例,通信接口 418可以是局域网(LAN)卡,以向兼容的LAN 提供数据通信连接。还可实现无线链接。在任何这类实现方式中,通信接 口 418发送和接收电、电磁或光信号,所述信号携带表示各种类型信息的数字数据流。
网络链接420通常通过一个或多个网络向其他数据设备提供数据通
信。例如,网络链接420可通过本地网络422向主机424或向互联网服务 供应商(ISP) 426操作的数据设备提供连接。ISP 426进而通过现在一般 被称作"互联网"428的全球分组数据通信网络提供数据通信服务。本地 网络422和互联网428都使用携带数字数据流的电、电磁或光信号。携带 去往和来自计算机系统400的数字数据、穿过各种网络的信号以及网络链 接420上的和穿过通信接口 418的信号是传输信息的载波的示例性形式。
计算机系统400可以通过网络(一个或多个)、网络链接420和通信 接口 418发送消息并接收数据,包括程序代码。在互联网示例中,服务器 430可通过互联网428、 ISP 426、本地网络422和通信接口 418发送用于 应用程序的请求代码。根据本发明, 一个这类下载的应用程序提供此处描 述的传输协议连接密钥。
因为代码被接收和/或存储到存储设备410或其他非易失性存储器中供 以后运行,所以处理器404可运行收到的代码。通过这种方式,计算机系 统400可以载波的形式获得应用程序代码。
5.0扩展和替代
在前述说明中,参考本发明的具体实施方式
描述了本发明,但是显 然,在不脱离本发明的更宽精神和范围的前提下,可对其进行各种修改和 变更。因此,说明书和附图应被视为解释性而非限制性的。
权利要求
1.一种方法,包括在建立在数据通信网络中的连接的第一端点处接收和存储多个密码;选择用于认证所述连接上的数据段的第一密码;从第二端点接收所述连接上的数据段,其中所述数据段包括被所述第二端点自动增加的序列值;确定所述序列值是否与指定特征相匹配,若是,则从所述多个密码中选择下一密码用于认证后续的数据段。
2. 如权利要求l所述的方法,其中所述指定特征是TCP序列号的指定 数目的绕回的发生。
3. 如权利要求1所述的方法,其中所述指定特征是大于从所述第二端 点接收的初始序列号的指定数目。
4. 如权利要求1所述的方法,其中所述指定特征是初始连接窗大小值 的指定倍数。
5. 如权利要求1所述的方法,其中所述连接是传输控制协议(TCP) 连接,并且其中所述序列值是TCP序列号。
6. 如权利要求1所述的方法,其中所述第一密码和所述下一密码是用 于执行TCP段的基于哈希的消息认证的哈希算法密钥值。
7. 如权利要求1所述的方法,其中所述连接是流传输控制协议 (SCTP)连接,并且所述序列值是SCTP传输序列号(TSN)。
8. —种在电信网络中自动改变连接的两个端点的每个端点处的消息认 证密钥的方法,所述方法包括计算机实现的以下步骤在建立在所述网络中的传输控制协议(TCP)连接的第一端点处接收 和存储多个密码;选择用于认证所述连接上的数据段的第一密码;从第二端点接收所述连接上的TCP段,其中所述数据段包括所述第二 端点确定的TCP序列号;确定所述序列号是否与指定特征相匹配,若是,则从所述多个密码中选择下一密码用于认证后续的数据段;其中所述指定特征是以下之一TCP序列号的特定数目的绕回;大于 从所述第二端点接收的初始序列号的特定数目;以及初始连接窗大小值的 特定倍数。
9. 一种在电信网络中自动改变连接的两个端点的每个端点处的消息认 证密钥的方法,所述方法包括以下步骤测试在所述连接上的多个数据段的每一个中收到的序列值; 当所述序列值与指定特征相匹配时,从多个存储的消息认证密钥中选 择下一消息认证密钥用于认证后续收到的数据段。
10. 如权利要求9所述的方法,其中所述指定特征是TCP序列号的指定数目的绕回的发生。
11. 如权利要求9所述的方法,其中所述指定特征是大于从所述第二端点接收的初始序列号的指定数目。
12. 如权利要求9所述的方法,其中所述指定特征是初始连接窗大小 值的指定倍数。
13. 如权利要求9所述的方法,其中所述连接是传输控制协议(TCP) 连接,并且其中所述序列值是TCP序列号。
14. 如权利要求9所述的方法,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的哈希算法密钥值。
15. 如权利要求9所述的方法,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的MD5哈希算法密钥值。
16. 如权利要求9所述的方法,其中所述连接是流传输控制协议 (SCTP)连接,并且所述序列值是SCTP传输序列号(TSN)。
17. —种被配置用于在电信网络中自动改变连接的端点处的消息认证 密钥的设备,所述设备包括用于测试在所述连接上的多个数据段的每一个中收到的序列值的装置;用于当所述序列值与指定特征相匹配时,从多个存储的消息认证密钥 中选择下一消息认证密钥用于认证后续收到的数据段的装置。
18. 如权利要求17所述的设备,其中所述指定特征是TCP序列号的指定数目的绕回的发生。
19. 如权利要求17所述的设备,其中所述指定特征是大于从所述第二 端点接收的初始序列号的指定数目。
20. 如权利要求17所述的设备,其中所述指定特征是初始连接窗大小 值的指定倍数。
21. 如权利要求17所述的设备,其中所述连接是传输控制协议 (TCP)连接,并且其中所述序列值是TCP序列号。
22. 如权利要求17所述的设备,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的哈希算法密钥值。
23. 如权利要求17所述的设备,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的MD5哈希算法密钥值。
24. 如权利要求17所述的设备,其中所述连接是流传输控制协议 (SCTP)连接,并且所述序列值是SCTP传输序列号(TSN)。
25. —种被配置用于在电信网络中自动改变连接的端点处的消息认证 密钥的设备,所述设备包括处理器;网络接口,耦合到所述处理器并耦合到所述网络,用于接收来自所述 网络的分组流;计算机可读介质,耦合到所述处理器,并包含一个或多个存储的指令 序列,所述指令被所述处理器执行时,导致所述处理器执行以下步骤 测试在所述连接上的多个数据段的每一个中收到的序列值; 当所述序列值与指定特征相匹配时,从多个存储的消息认证密钥中选 择下一消息认证密钥用于认证后续收到的数据段。
26. 如权利要求25所述的设备,其中所述指定特征是TCP序列号的指 定数目的绕回的发生。
27. 如权利要求25所述的设备,其中所述指定特征是大于从所述第二 端点接收的初始序列号的指定数目。
28. 如权利要求25所述的设备,其中所述指定特征是初始连接窗大小值的指定倍数。
29. 如权利要求25所述的设备,其中所述连接是传输控制协议 (TCP)连接,并且其中所述序列值是TCP序列号。
30. 如权利要求25所述的设备,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的哈希算法密钥值。
31. 如权利要求25所述的设备,其中所述第一密码和所述下一密码是 用于执行TCP段的基于哈希的消息认证的MD5哈希算法密钥值。
32. 如权利要求25所述的设备,其中所述连接是流传输控制协议 (SCTP)连接,并且所述序列值是SCTP传输序列号(TSN)。
全文摘要
公开了用于切换传输协议连接密钥的方法。一种在电信网络中自动改变连接的两个端点的每一个处的消息认证密钥的方法包括测试连接上的多个数据段的每一个中收到的序列值;当序列值匹配指定的特征时,从多个存储的消息认证密钥中选择下一消息认证密钥用于认证后续接收的数据段。
文档编号H04L9/16GK101297516SQ200680040176
公开日2008年10月29日 申请日期2006年10月18日 优先权日2005年10月28日
发明者施瑞航·巴格, 林·韩, 米特什·德拉尔, 约翰·C·王, 阿纳恩萨·拉迈阿, 阿莫·卡里 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1