安全计算两个设备之间的基于时间的长度的方法和设备的制作方法

文档序号:7638217阅读:147来源:国知局
专利名称:安全计算两个设备之间的基于时间的长度的方法和设备的制作方法
技术领域
本发明 一般涉及通信网络,更具体地涉及所述网络中的安全。
背景技术
基于时间的长度(time-based distance)通常用于网络领域中,并且被测量 为两个设备之间分组传输的持续时间。标准因特网协议、因特网控制消息协 议(RFC 792; http:〃www.ietf.org/rfc/rfc792.txt)存在,并且允许以毫秒计算两个 主机之间的长度。相关的命令被称作"ping",并且基于时间的长度叫做"往 返时间(round trip time, RTT)。该基于时间的长度例如被用来决定两个设备是 否在本地附近(local proximity)。
图1图解说明了网络100中的本地附近的概念。网络100包括两个局域 网(LAN),通过因特网130相互连接的LANL1 110和LANL2 120。 LANL1 110包括设备A 112和设备C 114,这两个设备都在图解说明本地附近的圓圈 116内,即,在该圓圈内的设备被认为靠近参考点,在这种情况下是设备A。 LANL2 120包括设备B 122,其位于圓圈116的外面,是指它不能被认为靠 近设备A。
现有技术中,设备A确定设备B是否在其紧密的附近的普通方法是基于 时间的持续时间的。设备A向设备B发送一系列ping命令并且测量相关的 RTT。只要设备A获得小于给定界线(例如,7ms)的RTT,它就考虑设备B在 其本地附近。如果不是,则在大于这个界线的RTT——通常是50或100之后, 它认为是设备B不在其本地附近。
存在其他方法,其中,设备A不直接确定设备B是否靠近它。例如,设 备A可以将消息发送给设备,从而仅其本地附近的设备接收它。 一种典型的 方法是以低生存时间(Time-To-Live, TTL)发送消息的。这些消息可以仅通过 有限数量的(即,TTL)网络节点。
然而,"ping"解决方案提供低级的安全性。设备A无法确保对其ping
命令的响应来自设备B且因此它测量的时间长度涉及设备B。攻击者(位于 LAN Ll中)可以阻挡对LAN LI外部的设备的所有ping并且代表它们应答。 然后认为所有那些设备都在其本地附近。这个失败是由于现有技术中缺少安 全性引起的。
该问题的基本解决方案是使用标准密码方式验证ping响应设备A发送 口令(challenge)(以其ping命令到设备B)并且等待响应。当接收它时,它可以 检查仅设备B可能已计算该响应。例如,设备A可以向设备B发送随机数, 并且设备B例如通过标记它来-睑证它。设备A然后才交-验验证代码。在第二示 例中,设备A加密口令并且将其发送给设备B ,设备B以解密的口令进行答 复。
为了证明ping响应起源于它,设备B必须在应答设备A之前执行密码 计算。所述计算所需的时间可能从一个设备变化到另一个设备,并且对低资 源设备非常重要。如果是相反的情况,则计算时间可能导致设备A考虑到低 资源设备不在其本地附近。这明显不是一直令人期待的。自然,设备A将增 加所述界线,使得低资源设备具有执行计算和响应的时间。然而,如此做通 常意味着本地附近以外的高资源设备将被认为在之内,这通常是不令人愉快 的。
WO 2004/014037描述了 一种保证第一设备和第二设备之间的验证的长 度测量的方法。第一设备验证第二设备,与第二设备交换秘密,并且将用于 距离测量的信号发送到第二设备。第二设备然后根据该口令修改接收到的信 号,并且返回修改的信号。 一旦接收到修改的信号,第一设备测量往返时间, 并且检验接收到的信号根据交换的秘密而修改。如将理解的,WO 2004/014037 可被看作为之前的基本解决方案的实现,并且遭受至少一些缺陷。
因此,可以理解的是,需要一种安全计算基于时间的长度并且与设备资 源无关的方法。本发明提供了这样的方法。

发明内容
在第 一方面,本发明致力于一种在第 一设备安全计算到网络中的第二设 备的基于时间的长度的方法。第 一设备发送第 一消息给第二设备并且作为响 应接收第二消息,并且基于第一消息的发送时间和第二消息的接收时间来计 算时间长度。第一设备也接收其他消息,所述其他消息包括加密(cryptographically)链接到下列之一 的验证数据至少第 一 消息、至少第二消 息、以及至少第一消息和第二消息;并且检验所述验证数据。
在优选实施例中,如果所计算的基于时间的长度在预定界线以下,则第 一设备还发送消息以请求包括验证数据的其他消息。
在另一优选实施例中,所述第一消息包括第一密码元素,所述第二消息 包括第二密码元素,并且所述验证数据是基于所述第一密码元素和所述第二 密码元素计算的。
有利地,所述密码元素是随机数,并且所述验证数据是使用所述随机数 计算的函数的结果,所述函数是个秘密。同样有利地,第一设备向第二设备 发送第四消息以便让其知道已经开始所述方法,并且生成所述第一密码元素。 进一步有利地,第一设备等待预定时间,从而给所述第二设备完成生成所述 第二密码元素的时间。
在替换的实施例中,第一设备计算验证数据,并且其中发送给所述第二 设备以请求包括第二设备的验证数据的所述其他消息的消息包括第 一设备的 第一验证数据。
在又一优选实施例中, 一旦成功检验所述验证数据,笫一设备还使对所 述第二设备的基于时间的长度的计算有效。
在第二方面,本发明致力于一种在网络中的第二设备对用于在第一设备 安全计算到第二设备的基于时间的长度的协议响应的方法。第二设备从第一 设备接收第一消息,所述第一消息请求对基于时间的长度的计算的响应。响 应第一消息,它发送第二消息。第二设备然后计算验证数据,所述验证数据 加密地链接到下列之一至少第一消息、至少第二消息、以及至少第一消息 和第二消息;和向第 一设备发送包括验证数据的第三消息。
在第三方面,本发明致力于一种第一设备,其被适配成安全计算到网络 中的第二设备的基于时间长度,所述第一设备包括输入/输出单元,被适配 成发送第一消息到第二设备;和从第二设备接收响应第一消息而发送的第 二消息。所述第一设备还包括处理器,被适配成基于第一消息的发送时间 和第二消息的接收时间计算时间长度。所述输入/输出单元还被适配成接收包 括验证数据的其他消息,所述验证数据加密地链接到下列之一至少第一消 息、至少第二消息、以及至少第一消息和第二消息;和所述处理器还被适配 成检验所述验证数据。
在优选实施例中,所述输入/输出单元还被适配成只要所计算的基于时
间的长度在预定界线以下,就发送消息以请求包括-验_〖正数据的其他消息。
可能有利地是,所述处理器还被适配成计算第一设备的验证数据,并且 所述输入/输出单元还被适配成在发送给第二设备的消息中包括第 一设备的 验证数据,以请求包括第二设备的验证数据的其他消息。
在又一优选实施例中,所述处理器还净皮适配成生成第一密码元素;和 基于第一加密元素和第二加密元素检验验证数据,所述验证数据被加密地链 接;以及所述输入/输出单元还被适配成在第一消息中包括第一加密元素; 和接收第二消息中的第二加密元素。
在第四方面,本发明致力于一种第二设备,其在网络中被适配成响应在 第一设备发起的协议,用以安全计算到第二设备的基于时间的长度。所述第 二设备包括处理器,被适配成计算验证数据,所述验证数据加密地链接 到下列之一至少第一消息、至少第二消息、以及至少第一消息和第二消息; 和输入/输出单元,被适配成从第一设备接收第一消息,响应于第一消息, 发送第二消息至第一设备;和向第一设备发送包括验证数据的第三消息。
在优选实施例中,所述输入/输出单元还被适配成从第一设备接收消息, 所述消息包括由第 一设备计算的验证数据。所述处理器还被适配成检验接收 到的验证数据,并且只要接收到的验证数据被成功检验就计算它自己的验证 数据。


现在参考附图通过举例来描述本发明的优选特征,其中 图1,在之前已描述,是网络以及本地附近的概念的图解说明; 图2图解说明了根据本发明的方法的优选实施例的流程图; 图3图解说明了根据本发明的方法的替换实施例的流程图;和 图4图解说明了根据本发明的方法的又一替换实施例的流程图。
具体实施例方式
图2图解说明了根据本发明的方法的优选实施例的流程图。所述方法具 有三个一般阶段
1.预计算阶段,其中开始所述方法,并且进行第一密码计算。
2. 两个设备之间的基于时间的长度的测量阶段,在"ping"之类的命令 下交换预计算阶段的结果。
3. 密码检验阶段,其中计算和交换附加的验证数据(加密地链接到在 "ping"消息中交换的结果),并且检验验证。换句话说,要检验对"ping"
命令的响应的发送者是验证数据的发送者,并且进一步检验应答设备的身份。
在此后的描述中,假设设备A212需要安全测量到设备B 216的RTT。 换句话说,设备A发起协议并且设备B对其进行响应。
在一个实施例中,设备A和设备B中的每一个具有由共同信任的实体鉴 定的X.509证书、以及相关的RSA私有密钥。在所述方法开始之前,每个设 备知道该证书以及其他设备的公共密钥。然而,下面描述优选实施例。
设备A212包括用于计算的处理器213和用于通信的输入/输出单元214。 设备B 216也包括用于计算的处理器217和用于通信的输入/输出单元218。
当设备A212向设备B216发送新的测量消息222时,预计算阶段开始。 消息222表示设备A希望进行新的RTT测量。 一旦接收该消息222,设备B 计算224密码元素,最好是对于每个计算来说是新的随机数(Random一B)。设 备A计算226单独的密码元素,最好是对于每个计算来说是新的随机数 (Random—A),并且等待228预定时间来给予设备B用于计算所需的时间。在 优选实施例中,设备A知道设备B计算所需的最大时间,但是,例如,如果 设备A不知道该最大时间,则也可能使用预定的一般时间值。
当设备A将包括其密码元素的消息242发送到设备B时,测量阶段开始, 并且也注释(note)244发送时间。 一旦接收设备A的消息242,设备B以包括 其密码元素的消息246作为响应。设备A接收消息246并且注释248接收时 间。使用发送时间和接收时间,设备A然后计算250到设备B的RTT。然而, 应当注意,在这点上,设备A无法知道据称来自设备B的消息246真正地来 自该设备。
在优选实施例中,当计算250 RTT时,设备A也检验RTT是否在给定 界线以下,即,设备B是否在本地附近。如果不是这种情况,即,如果设备 B不在附近,则没有校验到设备B是消息246的发送者,并且所述方法停止 或重新开始一一此前已经提到,这是普通的发送多达50到100个一系列 ping消息以计算到设备的RTT并且只要一个RTT在某一值以下就停止。如 果已经超过界线,则对于设备A也可以重新开始所述方法,而不接收来自设
备B的响应。然而,如果设备A认为设备B在本地附近,则通过发送指示RTT良好的消息252来要求验证数据,但是验证数据是必需的。在替换实施 例中,没有发送"RTT良好"消息252,并且自动执行剩余的方法。
当设备B或者自动或者响应于"RTT良好"消息252时,密码检验阶段 然后开始,然后计算262所需的-验证数据一一加密地l连接到"ping"消息242、 246,在这种情况下基于设备A和设备B的密码元素一—它是发送给设备A 的消息246的发送者。验证数据最好是由设备B的私有密钥签名的两个密码 元素的串接(concatenation)。计算证明的最优方法使用公用密钥密码,但是其 他方式,例如使用秘密密钥密码也是可能的。设备B然后向设备A发送包括 验证数据的消息264。在优选实施例中,验证数据消息264还包括设备B的 证书(certificate)。
一旦接收该消息264,设备A就检验266验证数据。成功的检验是指响 应于设备A将消息242发送到设备B,来自设备B的消息246真正地来自设 备B。所述检验最好通过检验设备B的证书是允许的证书来执行,即,通过 检验信任的X.509链;解密签名;并且检查结果匹配密码元素Random—A和 Random—B的串接。 一旦成功检验,设备A就使对设备B的基于时间长度的 计算有效。设备A现在保证它已ping到设备B,并且如果RTT良好,则设 备B在其本地附近。
考虑图1中设备B未靠近设备A,并且其中攻击者C(位于LAN Ll中) 能够阻挡所有ping到LANLl外部的设备,并且代替它们应答。当设备A使 用本发明时,设备C无法计算设备B的验证数据,因为它不能处理B的私有 密钥。通过发起协议,传送自己作为设备A,设备C可以从设备B预先获得 验证数据。但是,在这种情况下,设备C将必须预测由设备A生成的密码元 素,而这是不可能的。另外,从设备B获得的验证数据将不会有效,如果设 备C将其发送到设备A,然后将认为设备B不在其本地附近。根据本发明的 方法因此比现有技术的方法更安全。
图3图解说明了根据本发明的方法的替换实施例的流程图。图3图解说 明的实施例类似于优选实施例,并且相同的步骤将由附图标记表示。
在所述方法开始之前,设备B计算并且存储至少一个密码元素,最好是 随机数。
设备A通过计算226在消息242中被发送到设备B的密码元素,开始所述方法。设备A也注释244发送时间。 一旦接收消息242,设备B就<吏用345 其存储的密码元素,并且在消息246中将其发送到设备A。设备A注释248 接收时间,并且计算250往返时间(RTT)。
如果RTT在某一阈值之下,则设备A向设备B发送消息252,以便让其 知道RTT是可接受的以及其需要验证数据。然后设备B按此前描述地计算验 证数据,并且在消息264中将验证数据发送到设备A。设备A然后检验266 验证数据,并且从而校验接收到的"ping"消息246的来源和设备B的身份。
在已发送包括验证数据的消息264之后,如果设备B仅具有一个存储的 密码元素,则它计算368新的密码元素。
图4图解说明了根据本发明的方法的又一替换实施例的流程图。图4图 解说明的实施例类似于优选实施例,并且相同的步骤将由相同的附图标记表 示。
设备A以向设备B发送新的测量消息442,最好包括设备A的证书,来 开始所述方法。设备A和设备B中的每一个计算226、 228密码元素,并且 设备A等待228以便给设备B完成计算的时间。
设备A将包括其密码元素的消息242发送给设备B,并且注释244发送 时间。 一旦接收消息242,设备B就使用其计算的密码元素,并且在消息246 中将其发送给设备A。设备A注释248接收时间,并且计算250往返时间 (RTT)。
如果RTT在某一阈值之下,则设备A计算451验证数据(auth.data—A)以 证明其身份,并且向设备B发送包括验证数据的消息452。消息452也让设 备B知道RTT是可接受的以及设备A需要来自设备B的验证数据 (auth.data—B)。 一旦接收消息452,设备B就检验454从设备A接收的验证数 据,这意味着来自设备A的消息242真正地来自设备A。如果设备B被保证 它被设备Aping,则它按此前所描述地计算262所需的验证数据,并且在消 息264中将验证数据发送到设备A。然后,设备A检验验证数据,且从而校 验"ping,,响应246的来源和设备B的身份。
本发明例如可用于网络上的视频扩散(difflision),以确保仅源的本地附近 的设备接收视频。
因此,能够理解本发明通过提供一种安全计算基于时间的长度而与设备 资源无关的方法对现有^t支术特进行了改进。
应当理解,通过举例完整地描述了本发明,并且在不背离本发明的范围 的情况下可以进行细节的修改。
描述以及(合适的)权利要求书和附图中公开的每个特征可被单独提供或 者以任何合适组合提供。特征可以适当地以硬件、软件或两者组合来实现。 连接可以适用于按无线连接或有线连接来实现,而不必是直接或专用连接。
权利要求中出现的附图标记仅用于举例说明,不对权利要求的范围有限 制作用。
权利要求
1.一种在第一设备(212)安全计算到网络(100)中的第二设备(216)的基于时间的长度的方法,包括步骤发送向第二设备发送的第一消息(242);从第二设备接收响应第一消息而发送的第二消息(246);基于第一消息的发送时间和第二消息的接收时间来计算(244;248;250)时间长度;其特征在于随后的步骤接收其他消息(264),所述其他消息包括加密地链接到下列之一的验证数据至少第一消息(242)、至少第二消息(246)、以及至少第一消息(242)和第二消息(246);和检验(266)所述验证数据。
2. 如权利要求l所述的方法,还包括步骤如果所计算的基于时间的长 度在预定界线以下,则发送消息(252)以请求包括验证数据的其他消息(264)。
3. 如权利要求1或2所述的方法,其中所述第一消息(242)包括第一密 码元素,所述第二消息(246)包括第二密码元素,并且所述验证数据是基于所 述第一密码元素和所述第二密码元素计算的。
4. 如权利要求3所述的方法,其中所述密码元素是随机数,并且所述验 证数据是使用所述随机数计算的函数的结果,所述函数是个秘密。
5. 如权利要求3所述的方法,还包括步骤向第二设备发送第四消息(222)以便让其知道已经开始所述方法; 生成(226)所述第一密码元素。
6. 如权利要求5所述的方法,还包括步骤等待(228)预定时间,从而 给所述第二设备完成生成所述第二密码元素的时间。
7. 如权利要求2所述的方法,其中所述验证数据是第二验证数据,所述 方法还包括计算(45l)第 一验证数据的步骤,并且其中发送给所述第二设备以 请求包括第二验证数据的所述其他消息(264)的消息(252)包括第一验证数据。
8. 如权利要求1所述的方法,还包括步骤 一旦成功检验所述验证数据, 使对所述第二设备的基于时间的长度的计算有效。
9. 一种网络(100)中的第二设备(216)对用于在第一设备(212)安全计算到 第二设备的基于时间的长度的协议响应的方法,包括步骤从第 一设备接收第 一消息(242),所述第 一消息请求对基于时间的长度的 计算的响应;响应所述消息,向第 一设备发送第二消息(246);计算(262)验证数据,所述验证数据加密地链接到下列之一至少第一消 息(242)、至少第二消息(246)、以及至少第一消息(242)和第二消息(246);和 向第 一设备发送包括验证数据的第三消息(264)。
10. —种第一设备(212),被适配成安全计算到网络(100)中的第二设备 (216)的基于时间的长度,所述第一设备包括输入/输出单元(214),被适配成发送第一消息(242)到第二设备;和从第二设备接收响应第一消息(242)而发送的第二消息(246);和 处理器(213),被适配成基于第 一消息的发送时间和第二消息的接收时间计算时间长度; 其特征在于验证数据加密地链接到下列之一至少第一消息(242)、至少第二消息(246)、 以及至少第 一消息(242)和第二消息(246);和 所述处理器还被适配成检验所述验证数据。
11. 如权利要求10所述的设备,其中所述输入/输出单元(214)还被适配 成仅当所计算的基于时间的长度在预定界线以下,发送消息(252)以请求验 证数据。
12. 如权利要求10或11所述的设备,其中所述处理器(213)还被适配成 计算第 一验证数据,并且其中所述输入/输出单元(214)还被适配成在发送给第 二设备的消息(252)中包括第一验证数据,以请求作为第二验证数据的验证数据。
13. 如权利要求10所述的设备,其中 所述处理器还被适配成生成第一密码元素;和基于第一加密元素和第二加密元素检验接收到的验证数据,所述验 证数据被加密地链接;以及所述输入/输出单元还^皮适配成在第一消息(242)中包括第一加密元素;和 接收第二消息(246)中的第二加密元素。
14. 一种第二设备(216),其在网络(100)中被适配成响应在第一设备(212) 发起的、用于安全计算到第二设备的基于时间的长度的协议,所述第二设备 包括处理器(217),被适配成计算验证数据,所述验证数据加密地链接到下列之一至少第一消 息(242)、至少第二消息(246)、以及至少第一消息(242)和第二消息(246);和 输入/输出单元(218),被适配成从第一设备接收第一消息(242),所述第一消息用于请求对基于时间 的长度的计算的响应;响应第一消息(242),发送第二消息(246)至第一设备;和 向第 一设备发送包括验证数据的第三消息(264)。
15. 如权利要求14所述的设备,其中所述输入/输出单元(218)还被适配 成从第一设备接收消息(452),所述消息包括由第一设备计算的验证数据,并 且所述处理器(217)还被适配成检验接收到的验证数据,并且仅当接收到的验 证数据被成功检验时计算它自己的验证数据。
全文摘要
为了提供往返时间(RTT)的安全测量,分离了RTT的计算和验证数据。设备A(212)将消息(222)发送到设备B(216),以便开始方法。两个设备生成(224;226)随机数(Random_A,Random_B),并且设备A等待(228)设备B完成。设备A将它的随机数发送(242)发送给设备B,设备B以它自己的随机数应答(246),并且设备A计算(255)RTT。如果RTT在某一界线以下,则设备A要求(252)设备B计算(262)的验证数据,并且将验证数据发送(264)给设备A,该设备A检验(266)所述验证数据。因此可以安全地计算RTT,而不管设备B的计算资源。也提供了替代的实施例的系统和装置。
文档编号H04L29/06GK101204067SQ200680022190
公开日2008年6月18日 申请日期2006年6月2日 优先权日2005年6月20日
发明者奥利维尔·考泰, 穆罕麦德·卡鲁米, 阿兰·杜兰德 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1