首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 修改 / 通过代理连接的主机之间的安全邻居发现

通过代理连接的主机之间的安全邻居发现

阅读:278发布:2022-05-23

专利汇可以提供通过代理连接的主机之间的安全邻居发现专利检索,专利查询,专利分析的服务。并且主机通过代理连接时提供用于在主机之间保护邻居发现(ND)信令安全的方法、代理和主机。第一主机发送包括基于第一主机的地址的第一签名的原始ND消息。代理去除第一主机的地址,并在 修改 的ND消息中替代为其自己的地址。随后,代理在新字段中放置第一主机的地址的副本,并构建基于代理自己的地址和新字段的代理签名。新字段和代理签名添加到修改的ND消息。第二主机从代理接收修改的ND消息并验证代理签名。第二主机重构原始ND消息内容,并随后验证第一签名。,下面是通过代理连接的主机之间的安全邻居发现专利的具体信息内容。

1.一种在通过代理连接的主机之间的安全邻居发现的方法,所述方法包括以下步骤:
-在所述代理从第一主机接收预期发往第二主机的邻居发现ND消息,所述ND消息包括所述第一主机的因特网协议IP地址、所述第一主机的第二层地址及至少部分基于所述第一主机的所述第二层地址的所述第一主机的第一签名;
-在所述代理通过以下方式修改所述ND消息:
-将所述第一主机的所述第二层地址改写为所述代理的第二层地址;
-插入至少部分基于所述代理的所述第二层地址的所述代理的第二签名;以及-向所述第二主机发送所述修改的ND消息。
2.如权利要求1所述的方法,还包括以下步骤:
-在所述第二主机接收所述修改的ND消息;
-在所述第二主机验证所述第二签名;以及
-在所述第二主机将所述代理的所述第二层地址与所述第一主机的所述IP地址相关存储。
3.如权利要求2所述的方法,还包括以下步骤:
-在所述第二主机验证所述第二签名前,从信任锚点获得所述代理的公共密钥。
4.如权利要求2所述的方法,还包括以下步骤:
-在所述代理从所述第二主机接收数据分组,所述数据分组包括所述第一主机的IP地址和所述代理的所述第二层地址。
5.如权利要求1所述的方法,其中:
-在所述代理修改所述ND消息还包括:从所述ND消息将所述第一主机的所述第二层地址复制到另外的消息字段中。
6.如权利要求5所述的方法,还包括以下步骤:
-在所述第二主机接收所述修改的ND消息;
-在所述第二主机验证所述第二签名;
-通过将所述代理的所述第二层地址改写为所述第一主机的所述第二层地址,在所述第二主机重构所述ND消息;
-验证所述第一主机的所述第一签名;以及
-在所述第二主机将所述代理的所述第二层地址与所述第一主机的所述IP地址相关存储。
7.如权利要求1所述的方法,其中:
-所述代理的所述第二签名还基于所述第一主机的所述IP地址、所述第二主机的IP地址、所述第一主机的所述第二层地址及所述第一主机的所述第一签名。
8.如权利要求7所述的方法,其中:
-所述代理的所述第二签名基于所述ND消息的完整信息字段。
9.一种在主机中安全接收邻居发现ND消息的方法,所述方法包括以下步骤:
-在所述主机中接收包括代理的第二层地址、对等主机的第二层地址、所述对等主机的签名及所述代理的签名的所述ND消息;
-通过使用所述代理的公共密钥,验证所述代理签名;
-通过将所述代理的所述第二层地址替换为所述对等主机的所述第二层地址,修改所述ND消息;
-通过使用所述对等主机的公共密钥,验证所述对等主机的所述签名;以及-将所述代理的所述第二层地址存储为用于与所述对等主机通信的第二层地址。
10.一种在通过代理连接的主机之间的安全邻居发现的装置,所述装置包括:
-用于在所述代理从第一主机接收预期发往第二主机的邻居发现ND消息的部件,所述ND消息包括所述第一主机的因特网协议IP地址、所述第一主机的第二层地址及至少部分基于所述第一主机的所述第二层地址的所述第一主机的第一签名;
-用于在所述代理通过以下方式修改所述ND消息的部件:
-将所述第一主机的所述第二层地址改写为所述代理的第二层地址;
-插入至少部分基于所述代理的所述第二层地址的所述代理的第二签名;以及-用于向所述第二主机发送所述修改的ND消息的部件。
11.如权利要求10所述的装置,还包括:
-用于在所述第二主机接收所述修改的ND消息的部件;
-用于在所述第二主机验证所述第二签名的部件;以及
-用于在所述第二主机将所述代理的所述第二层地址与所述第一主机的所述IP地址相关存储的部件。
12.如权利要求11所述的装置,还包括:
-用于在所述第二主机验证所述第二签名前,从信任锚点获得所述代理的公共密钥的部件。
13.如权利要求11所述的装置,还包括:
-用于在所述代理从所述第二主机接收数据分组,所述数据分组包括所述第一主机的IP地址和所述代理的所述第二层地址的部件。
14.如权利要求10所述的装置,其中:
-用于在所述代理修改所述ND消息的部件还包括:用于从所述ND消息将所述第一主机的所述第二层地址复制到另外的消息字段中的部件。
15.如权利要求14所述的装置,还包括:
-用于在所述第二主机接收所述修改的ND消息的部件;
-用于在所述第二主机验证所述第二签名的部件;
-用于通过将所述代理的所述第二层地址改写为所述第一主机的所述第二层地址,在所述第二主机重构所述ND消息的部件;
-用于验证所述第一主机的所述第一签名的部件;以及
-用于在所述第二主机将所述代理的所述第二层地址与所述第一主机的所述IP地址相关存储的部件。
16.如权利要求10所述的装置,其中:
-所述代理的所述第二签名还基于所述第一主机的所述IP地址、所述第二主机的IP地址、所述第一主机的所述第二层地址及所述第一主机的所述第一签名。
17.如权利要求16所述的装置,其中:
-所述代理的所述第二签名基于所述ND消息的完整信息字段。
18.一种在主机中安全接收邻居发现ND消息的装置,所述装置包括:
-用于在所述主机中接收包括代理的第二层地址、对等主机的第二层地址、所述对等主机的签名及所述代理的签名的所述ND消息的部件;
-用于通过使用所述代理的公共密钥,验证所述代理签名的部件;
-用于通过将所述代理的所述第二层地址替换为所述对等主机的所述第二层地址,修改所述ND消息的部件;
-用于通过使用所述对等主机的公共密钥,验证所述对等主机的所述签名的部件;以及
-用于将所述代理的所述第二层地址存储为用于与所述对等主机通信的第二层地址的部件。
19.如权利要求18所述的装置,还包括:
-用于在第二层连接上发送ND响应的部件;
-用于在存储器中存储所述主机的第二层地址和私有密钥的部件;以及-用于从所述存储器读取所述私有密钥和所述主机的所述第二层地址,用于将所述私有密钥用于做出基于所述主机的所述第二层地址的所述主机的签名,用于做出包括所述主机的所述第二层地址和所述签名的所述ND响应,以及用于请求所述第二层连接发送所述ND响应的部件。

说明书全文

通过代理连接的主机之间的安全邻居发现

技术领域

[0001] 本发明涉及用于安全地代理发现消息的方法、代理和主机。

背景技术

[0002] 在分组交换计算机网络中,诸如主机和路由器等节点使用邻居发现(ND)信令来确定已知位于附接链路上的邻居的链路层地址。为允许网络在单一链路外存在,通常使用桥接器连接不共享共同链路的子网。ND代理提供一种用于将多个链路桥接成单个网络的方法。为此,它们修改通过它们的ND信令。因特网任务工程组(IETF)发布了题为“邻居发现代理(ND代理)”(′Neighbor Discovery Proxies(ND Proxy))的一个请求注解(RFC)RFC4389,该注解描述了一种方法,借助于该方法多个链路层段桥接成通过代理的单个段。RFC4389指定因特网控制消息协议(ICMP)邻居请求(Neighbor Solicitation)和邻居通告消息(Neighbor Advertisement messages),这些消息用于允许在桥接器任一侧的主机交换寻址信息,以在因特网协议(IP)地址与媒体访问控制(MAC)地址之间形成绑定,MAC地址也称为链路层地址或第2层地址。图1(现有技术)示出包括两个子网110和150的简单网络100,这两个子网通过充当ND代理180的桥接器连接。子网110包括第一链路层连接130,在该连接上连接了诸如第一主机120等多个主机。类似地,子网150包括第二链路层连接170,在该连接上连接了诸如第二主机160等多个主机。ND代理180包括连接到第一和第二链路层130和170每个层的端口。到这些链路层之一的每个连接包括MAC地址。
因此,第一主机120具有在第一链路层130上的MAC地址,第二主机160具有在第二链路层
170上的MAC地址,并且ND代理180具有两个MAC地址,每个链路层上一个MAC地址。为使第一主机120连接到第二主机160,在最初不知道第二主机160的MAC地址的情况下,第一主机120广播包括第一主机120的IP地址和MAC地址及第二主机160的IP地址的邻居请求消息。ND代理180接收此邻居请求消息,并且可在内部高速缓存中存储第一主机120的MAC地址。在将消息内的第一主机120的MAC地址替代为在第二链路层170上ND代理180的MAC地址后,它在第二链路层170上转发邻居请求消息。第二主机160在邻居高速缓存中将第一主机120的IP地址与第二链路层170上ND代理180的MAC地址相关存储。第二主机160随后通过放置在第二链路层170上的邻居通告消息做出响应,该消息包括第二主机160的IP和MAC地址并可选地包括第一主机120的IP地址和ND代理180在第二链路层170上的MAC地址。ND代理180检测第二主机160的邻居通告消息,将第二主机160的MAC地址替换为在第一链路层130上其自己的MAC地址,当包括ND代理180自己在第二链路层170上的MAC地址时将该MAC地址替换为第一主机120的MAC地址,并在第一链路层
130上转发邻居通告消息。第一主机120在邻居高速缓存中将第二主机160的IP地址与第一链路层110上ND代理180的MAC地址相关存储。在以后任何时候,如果第一主机120需要通过使用第二主机160的IP地址与第二主机160通信,则其邻居高速缓存将指示:任何消息或分组需要向ND代理180在第一链路层130上的MAC地址发送。类似地,如果第二主机160需要通过使用第一主机120的IP地址与第一主机120通信,则第二主机160的邻居高速缓存将指示:任何消息或分组需要向第二链路层170上ND代理180的MAC地址发送。
[0003] 题为“安全的邻居发现(SEND)”(SEcure Neighbor Discovery(SEND))的RFC3971指定一种用于保护邻居发现信令安全,防止诸如邻居请求和邻居通告消息中地址的恶意修改(欺骗)等特定威胁的方法。SEND协议提供一种保护ND信令安全,以便接收节点能检测ND分组是否已被篡改的方式。数字签名用于保护与邻居发现有关的消息。签名保护消息的完整性,并通过使用证书来鉴定其发送方的身份以证明消息发送方的身份。实际上,每个消息包括基于发送方的私有密钥和发送方的地址的签名。在接收端,可通过使用发送方的公共密钥验证签名,通过使用向接收端和发送方均已知和信任的信任锚点的查询,向接收端证明发送方的公共密钥的合格。签名的验证证实了发送方的地址。
[0004] 图2(现有技术)示出RSA签名的一种格式。RSA签名200基于熟知的Rivest-Shamir-Adleman(RSA)算法,并且在SEND中指定。RSA签名200添加到ND信令消息。比特标志270提供有关RSA签名200的格式的信息。包括在RSA签名200中的字段包括:
[0005] ·类型210:IETF指配的值,设为等于12。
[0006] ·长度200:以8个八位字节为单位的RSA签名200(包括图2中的所有参数)的长度。
[0007] ·预留230:16比特字段,预留供将来使用。
[0008] ·密钥散列240:128比特字段,包含用于构成RSA签名200的公共密钥的安全散列标准-1(SHA-1)散列的最高有效(最左侧)128比特。
[0009] ·数字签名250:可变长度字段,包含公共密钥加密标准(PKCS)签名,该签名在以下八位字节序列上使用发送方的私有密钥构成:
[0010] 1.128比特CGA消息类型标记值,专定义用于SEND协议。
[0011] 2.128比特源地址字段,来自受SEND协议保护的ND信令消息的IP报头。
[0012] 3.128比特目的地地址字段,来自IP报头。
[0013] 4.8比特类型、8比特代码和16比特校验和字段,来自受保护消息的因特网控制消息协议(ICMP)报头。
[0014] 5.ND代理消息报头,从ICMP校验和字段后的第一八位字节开始并继续直至ND代理特定参数但不包括ND代理特定参数。
[0015] 6.RSA签名200前的所有ND代理特定参数。具体而言,这些参数包括发送ND消息的节点的链路层地址,并且在ND消息是另一ND消息的回复的情况下,这些参数也可包括消息预期向其发送的节点的链路层地址。
[0016] ·填充260:包含填充的可变长度字段。
[0017] 在RSA签名200前的所有消息参数包括在数字签名250的计算中。因此,接收节点在验证签名时将立即检测到可能尝试更改这些消息参数中的一些参数的任何“中间人”攻击。
[0018] SEND和ND代理基本上不兼容,这是因为它们基于冲突的需求。一方面,如现在所指定的一样,SEND假设通告IP地址的节点是IP地址的拥有者,并且拥有用于基于通告的IP地址生成数字签名的私有密钥。另一方面,通过ND代理,最初通告其IP地址并基于那些IP和MAC地址创建了数字签名的节点的MAC地址在ND消息内被替换为代理的MAC地址。在接收端不能根据原始通告节点的MAC地址验证其数字签名,这是因为该MAC地址已被改写。存在ND代理时,接收端上的SEND协议将推断一些恶意节点可能已篡改原始ND信令,而实际上,修改了原始ND信令的是合法代理。指定“ND代理”并在SEND RFC3971发布后在
2006年4月发布的RFC4389明确表明,无机制可用于保护代理邻居发现过程。代理操作使得RSA签名失效,导致接收ND消息的具SEND能的节点丢弃此类消息,或者将它们视为不安全。

发明内容

[0019] 具有允许通过桥接器、代理或路由器以安全方式代理邻居发现消息的方法、代理和主机,这将有明显的优点。
[0020] 因此,本发明的一个广泛目的是提供用于在主机通过代理连接时保护主机之间邻居发现(ND)信令安全的方法、代理和主机。本发明提供一种方法,通过该方法,ND代理能将任何ND消息中的链路层地址替换为其自己的链路层地址。接收此类修改的通告的节点验证ND代理是否已得到执行更改的授权。对于此验证,节点根据颁发给ND代理的证书来授权此类更改。虽然ND代理修改通过代理的ND消息的原始内容,由此破坏任何始发主机签名,但本发明的代理通过在修改前将原始内容移到新消息字段中而保留原始内容。代理将代理签名添加到通过其的ND消息,允许接收主机验证修改的ND消息的合法性。接收主机可使用新消息字段重建ND消息的原始内容,由此修复始发主机签名。
[0021] 本发明的第一方面涉及一种保护通过代理连接的主机之间邻居发现安全的方法。方法在代理从第一主机接收打算送给第二主机的邻居发现(ND)消息时开始。ND消息包括因特网协议(IP)地址、第一主机的第二层地址和至少部分基于第一主机的第二层地址由第一主机构建的第一签名。代理修改ND消息,先将第一主机的第二层地址改写为代理的第二层地址。代理还通过插入代理的第二签名来修改ND消息。代理签名至少部分基于代理的第二层地址。代理随后向第二主机发送修改的ND消息。
[0022] 本发明的第二方面涉及保护通过代理连接的主机之间邻居发现安全的方法的变型。该方法包括多个另外的步骤。代理将第一主机的第二层地址复制到修改的ND消息的另外字段中,并且在代理的第二签名的计算中使用该另外的字段。第二主机在接收修改的ND消息时,验证代理的第二签名。第二主机可还通过将代理的第二层地址改写为第一主机的第二层地址,将ND消息以其原始形式恢复。因此,第二主机可验证第一主机的第一签名。第二主机将第一主机的IP地址与代理的第二层地址相关存储。
[0023] 本发明的第三方面涉及一种在主机中安全地接收邻居发现(ND)消息的方法。方法在主机接收ND消息时开始,该消息包括代理的第二层地址、对等主机的第二层地址、对等主机的签名及代理的签名。主机通过使用代理的公共密钥,验证代理签名。随后,主机通过将代理的第二层地址替换为对等主机的第二层地址来修改ND消息。这允许主机通过使用对等主机的公共密钥来验证对等主机的签名。在验证两个签名后,主机将代理的第二层地址存储为用于与对等主机通信的第二层地址。
[0024] 本发明的第四方面涉及一种代理。代理具有用于从第一主机接收邻居发现(ND)消息的第一个第二层连接。代理也具有处理器,处理器从第一个第二层连接接收ND消息,随后从ND消息读取包括至少一个原始地址的第一字段和包括第一主机的第一签名的第二字段。处理器随后通过从收到的ND消息将至少一个原始地址复制到第三字段来修改ND消息。随后,它在第一字段中将至少一个原始地址之一改写为代理的地址。处理器插入基于代理的地址且基于至少一个原始地址的代理的第二签名。处理器随后指示第二个第二层连接向第二主机发送修改的ND消息。
[0025] 本发明的第五方面涉及一种主机。主机包括存储器,存储器存储对等主机的公共密钥、代理的公共密钥和用于与对等主机通信的链路层地址。主机进一步具有用于在链路上从代理接收邻居发现(ND)消息的第二层连接。ND消息包括代理的第二层地址、对等主机的第二层地址、对等主机的签名及代理的签名。在主机中,处理器通过使用代理的公共密钥来验证代理的签名。随后,处理器通过将代理的第二层地址替换为对等主机的第二层地址来修改ND消息。处理器进一步通过使用对等主机的公共密钥来验证对等主机的签名。在这些验证后,处理器在存储器中将代理的链路第二层地址存储为用于与对等主机通信的第二层地址。附图说明
[0026] 为更详细地理解本发明,了解它的其它目的和优点,现在可结合附图,参照以下说明,其中:
[0027] 图1是包括通过充当邻居发现代理的邻居发现代理连接的两个子网的简单网络的现有技术表示;
[0028] 图2是Rivest-Shamir-Adleman签名的格式的现有技术表示;
[0029] 图3示出包括通过安全的邻居发现代理连接的两个子网的示范网络;
[0030] 图4a、4b和4c示出描述本发明的方法的示范步骤的序列图;
[0031] 图5示出根据本发明的一些方面,计算代理签名的示范方法;
[0032] 图6示出根据本发明的一些方面的简化邻居发现消息内容;
[0033] 图7示出根据本发明的一个方面构建的示范代理;以及
[0034] 图8示出根据本发明的一个方面构建的示范主机。

具体实施方式

[0035] 下面将专门参照优选实施例的各种示范使用和方面,描述本发明的创新示教。然而,应理解,此实施例只提供本发明的创新示教的许多有利使用的少数示例。通常,本申请说明书中所做的陈述不一定限制本发明的各个所要求保护方面的任何方面。另外,一些陈述可适用于一些发明性特征但不适用于其它特征。在附图的描述中,类似的标号表示本发明的类似要素。
[0036] 根据本发明,明确分离地址所有权和地址通告的色。标准邻居发现(ND)代理的正常操作在因特网任务工程组(IETF)请求注解(RFC)编号4389中定义。本发明提供安全的邻居发现(SEND)代理,该代理包括用于确保接收节点能区分修改原始ND消息的经授权SEND代理和进行相同操作的恶意节点的另外特征。这由通过使用经授权SEND代理的密钥为其签名而修改ND消息来实现。经授权的SEND代理也优选在签名的和修改的ND消息中包括它替换的ND消息的原始内容;这能由接收节点用于进一步验证。SEND代理的签名可包括在称为代理签名信息(PSI)的新信息字段中。签名是在消息中存在的ND代理信息字段上执行,包括来自原始ND消息的Rivest-Shamir-Adleman(RSA)签名字段。PSI附在消息中,优选作为最后的信息字段附上。代理签名具有与图2所示RSA签名的类似格式,有一些例外:首先,它具有相区别的类型值,不同于图2的类型210的值。其次,由于数字签名优选基于PSI前的所有ND代理特定参数,因此,在PSI内的数字签名优选部分基于RSA签名本身。
[0037] 也提供了使用SEND代理来允许以安全方式代理ND消息的方法和能够使用PSI的主机。
[0038] 在本发明的上下文中,SEND代理可包括桥接器、路由器、交换器或任何其它分组转发装置。SEND代理可连接具有类似或不同物理和/或链路层属性的子网。在一个示例中,SEND代理可连接两个相区别的以太网子网。在另一示例中,SEND代理可桥接在无线局域网(WLAN)和蜂窝无线电网络之间。主机可包括任何最终终端(end-terminal)、最终用户装置、路由器、应用服务器及诸如此类。主机可包括带有相关联的链路层地址和链路层属性的一个或多个物理连接。例如,个人计算机可能包括以太网连接和WLAN连接,任一连接可在本发明的上下文中使用。主机也可包括使用蓝牙TM和蜂窝连接两者的移动终端。
[0039] 在本发明的描述中,术语“第2层”、“链路层”和“媒体访问控制(MAC)”可交换使用。
[0040] 现在参照附图,其中,图3示出包括通过SEND代理380连接的两个子网310和350的示范网络300。网络300包括根据本发明的一些示教构建的节点。两个子网310和350每个支持一个主机,分别为第一主机320和第二主机360。当然,子网310和350能支持数量大得多的主机,并且SEND代理380能为多个子网提供互连。图3已简化以便于说明本发明。第一主机320经由具有媒体访问控制(MAC)地址MAC_H1的端口连接到子网310。类似地,第二主机320经由MAC地址MAC_H2连接到子网350。由于SEND代理380具有到两个子网的连接,因此,它具有两个MAC地址MAC_P1和MAC_P2,它们分别连接到子网310和350。第一主机310、第二主机360及SEND代理380之间的交互相对于以下附图进行描述。
[0041] 图4a、4b和4c示出描述本发明的方法的示范步骤的序列图。图4a、4b和4c的序列中涉及第一主机和第二主机320和360以及相对于图3的描述引入的SEND代理380及信任锚点400。添加信任锚点400到图3的网络允许包括主机320和360及信任基础设施内的SEND代理。
[0042] 方法可选择性地在步骤403开始,在该步骤中,知道它将需要通过SEND代理380与其它主机通信的第一主机320可请求来自信任锚点400的、用于SEDN代理380的安全证书。如果这样,信任锚点400在步骤406利用SEND代理380的证书做出响应,包括SEND代理380的公共密钥。类似地,第二主机360可选择性地在步骤409请求来自信任锚点400的SEND代理380的证书。如果这样,信任锚点在步骤412利用SEND代理380的安全证书做出响应。当然,第一主机和第二主机可在存储器中将信任锚点400的安全证书的其副本保持更长的时间段。步骤403-412因此无需在每次执行图4a、4b和4c的序列时重复进行。
[0043] 在步骤415,第一主机320希望进入与第二主机360的通信。即使当第一主机和第二主机在更早时间已在通信中的情况下,也可能有最好是再次执行ND过程的情况,如下所述,这是因为例如第二主机360可能修改了其第2层连接。第二主机360修改其第2层连接的一个示例将是在以太网连接断开(unplugged)并且WLAN连接接管第二主机360的业务时。由于第一主机和第二主机位于不同的子网上,因此,简单ND过程不可用,并且发现信令需要通过连接两个子网的桥接器、提供桥接功能的SEND代理380传送。在步骤418,第一主机320构建RSA签名。RSA签名可以是常规式,并且例如可根据图2的RSA签名格式200构建。RSA签名可根据各种各样的参数构建,至少包括源链路层地址(SLLA),这是第一主机320的MAC地址MAC_H1。在步骤421,第一主机320在子网310的链路上通过使用具有地址MAC_H1的端口发送邻居请求消息。在子网310的同一链路上连接的SEND代理380利用其自己的MAC地址MAC_P1检测邻居请求消息。在步骤424,SEND代理380构建代理签名以便在向第二主机360转发修改的邻居请求的步骤中使用。该代理签名被添加到根据上述PSI格式的、修改的邻居请求。
[0044] 如图4a的步骤424中一样构建代理签名的方式的细节在图5中示出,图5示出了根据本发明的一些方面,计算代理签名的示范方法。图5的方法还相对于根据本发明的一些方面、示出简化的邻居发现消息内容的图6进行描述。参照图6,ND消息600包括发起ND消息的主机(源主机)的原始地址字段610和RSA签名620。原始地址字段610还包括源主机的MAC地址612、源主机的IP地址,也称为源IP614及ND消息预期向其发送的主机的目的地地址,也称为目的地IP616。图6所示的其它字段包括补充地址字段630和代理签名640,这些字段将在下面涉及。图5的方法在步骤500SEND代理380接收ND消息、例如如图4a的步骤421中的邻居请求消息时开始。在步骤510,SEND代理380从ND消息读取源MAC地址612。在步骤520可选择性地在补充地址字段630中复制源MAC地址612,由此修改ND消息600。随后,在步骤530,SEND代理380还通过在原始地址字段610中写入其自己的MAC地址以改写源MAC_612来修改ND消息。SEND代理380自己的MAC地址例如可以是MAC_P2,如图3所示,这是与第二主机360在同一子网上的SEND代理380的第2层地址。在步骤540,SEND代理380计算代理签名640,并将它添加到修改的ND消息。此签名优选是SEND代理380的RSA签名,优选根据PSI格式构建。优选的是代理签名640基于ND消息的完整信息字段,包括如在步骤530修改的原始地址字段610和源主机的RSA签名620。
签名也优选基于补充地址字段630。当然,代理签名640也可基于其它参数。
[0045] 回到图4a、4b和4c的序列,在SEND代理380在步骤424构建了代理签名640后,SEND代理380在步骤427通过使用其具有地址MAC_P2的端口,将消息放在第二子网350的链路层上,向第二主机360转发修改的邻居请求消息。在子网350的同一链路上连接的第二主机360经由其自己的具有MAC地址MAC_H2的端口接收修改的邻居请求消息。此时,第二主机360可能以前在可选步骤409和412获得了SEND代理380的证书。如果在接收修改的邻居请求后证书在第二主机360中不存在,则第二主机360在步骤430和433获得证书。随后,在步骤436,第二主机360通过使用在SEND代理380的证书中包含的SEND代理380的公共密钥来验证SEND代理380的RSA签名。此验证允许第二主机360断定修改的邻居请求由合法的节点发送。在SEND代理380是第二主机360已知的受信任基础设施的一部分时,在步骤436SEND代理RSA签名的验证足以使第二主机360认为修改的邻居请求的全部内容是有效的。该过程随后可直接在步骤445继续。然而,如果第二主机360不完全信任SEND代理380,则它也可验证邻居请求最初是由合法节点发起。为此,第二主机360可执行步骤439和442。在步骤439,第二主机360通过将现在存在于原始地址字段610中的SEND代理380的MAC地址改写为在补充地址字段630中发现的值,重构原始邻居请求消息。例如,可从补充字段630读取值MAC_H1,并将其作为源MAC 612返回到原始地址字段。
在步骤442,验证第一主机320的RSA签名620;由于邻居请求的原始源MAC地址612已返回到消息中的其原始位置,因此,此验证可能提供。
[0046] 在步骤445,假设第二主机360对通过SEND代理RSA签名,或通过验证第一主机320的RSA签名进行的修改的邻居请求的验证感到满意,它在邻居高速缓存中将代理的MAC地址、例如MAC_P2与第一主机320的IP地址关联存储。以后,它将使用此地址对与第一主机320通信。如果第二主机360以前具有第一主机320的高速缓存条目,则步骤445由高速缓存条目的更新组成。第二主机360随后在步骤448构建RSA签名。如在步骤418中的情况一样,此RSA签名可以是常规式,并且可根据图2的RSA签名格式200构建。RSA签名可至少部分基于第二主机360的目标链路层地址(TLLA)构建,该地址是第二主机360的MAC地址MAC_H2。在步骤451,第二主机360在子网320的链路上通过使用具有地址MAC_H2的端口发送邻居通告消息。在子网320的同一链路上连接的SEND代理380利用其自己的MAC地址MAC_P2检测邻居通告消息。在步骤454,SEND代理380构建另一代理签名640以便在向第一主机320转发修改的邻居通告的步骤中使用。如图5所示的方法再次用于构建代理签名640。从步骤454开始,作为例如TLLA MAC_H2等源MAC 612包含在原始邻居通告中的第二主机360的原始MAC地址被移到修改的邻居通告中的补充字段630,并且SEND代理380自己的MAC地址改写邻居通告的源MAC 612。SEND代理380自己的MAC地址例如可以是MAC_P1,如图3所示,这是与第一主机320在同一子网上的SEND代理380的第2层地址。也基于两个地址字段610和630的当前内容添加代理签名640。如在修改的邻居请求的情况一样,修改的邻居通告包括优选根据PSI格式的代理签名640。
[0047] 在SEND代理380在步骤454构建了代理签名640后,SEND代理380在步骤457通过使用其具有地址MSC_P1的端口,将消息放在第一子网310的链路层上,向第一主机320转发修改的邻居通告消息。在子网310的同一链路上连接的第一主机320利用其自己的MAC地址MAC_H1检测修改的邻居通告消息。此时,第一主机320可能以前在可选步骤403和406获得了SEND代理380的证书。如果在接收修改的邻居通告后证书在第一主机320中不存在,则第一主机320在步骤460和463获得证书。随后,在步骤466,第一主机320通过使用在证书中包含的SEND代理380的公共密钥来验证SEND代理380的RSA签名。此验证允许第一主机320断定修改的邻居通告由合法的节点发送。可选的是,第一主机320也验证邻居通告最初是由合法节点发起。为此,第一主机320可执行步骤469和472。在步骤469,第一主机320通过将源MAC 612字段改写为在补充地址字段630中发现的值,例如,值MAC_H2,重构原始邻居通告消息。在步骤472,验证第二主机360的RSA签名620;由于邻居通告的原始源MAC地址612已返回到消息中的其原始位置,因此,此验证有可能提供。在步骤475,第一主机在邻居高速缓存中将例如MAC_P1等代理的MAC地址与第二主机360的IP地址关联存储或更新。
[0048] 现在将参照示出根据本发明的一个方面构建的示范代理的图7,描述代理的一个示范构造。代理700包括处理器710和至少两个第2层连接720和730。代理700可包括存储器(未示出),但为描述本发明,代理700的操作可以是无存储器的。如连网装置领域中所熟知的一样,本发明的代理700可还包括在常规代理、桥接器或转换器中找到的多出许多的要素。为便于说明,本文未示出这些另外的要素。
[0049] 处理器710例如可包括任何商用可编程处理器。第2层连接720和730每个可实现为一个单一装置或者不同的装置以便接收(输入)和发送(输出)信令、消息和数据。代理700连接到多个主机;用于将代理700连接到主机的方式可不同,例如可提供与一个主机的通信的一个第2层连接可能在以太网链路上,而到另一第2层连接上的另一主机的连接可能在异步传送模式(ATM)链路上。因此,代理700可包括用于在不同类型的多个链路上连接的多个装置。为便于陈述本发明,只示出了两个第2层连接。
[0050] 在操作中,代理700在例如第2层连接720等第一第2层连接上、在MAC地址MAC_P1上接收来自第一主机的ND消息。ND消息可以是ND请求或ND通告。第2层连接720通知处理器710。处理器710通过先从ND消息读取包括第一主机的原始MAC地址的第一字段和包括第一主机的第一签名的第二字段来修改ND消息。处理器710将第一主机的MAC地址复制到第三字段,该字段添加到修改的ND消息。处理器710随后在第一字段中将第一主机的MAC地址改写为另一第2层连接730的MAC地址,即,MAC_P2。处理器710最后在修改的ND消息中插入代理700的第二签名,该签名基于在其当前值中的第一字段、基于第一签名且基于第三字段。处理器710随后请求第二第2层连接730在第二链路上向第二主机发送修改的ND消息。
[0051] 图8示出根据本发明的一个方面构建的示范主机。主机800包括第2层连接820、处理器810和存储器840。由于主机800可表示各种各样的不同装置,因此,它可还包括显示器、键盘鼠标、若干另外的处理器及许多其它组件(未示出)。处理器810可专用于ND信令,或者也可支持主机800的其它任务。存储器840是能电擦除和重新编程以及可实现为例如闪存或数据存储模非易失性存储器或永久性存储器。第2层连接820可实现为一个单一装置或者不同的装置以便接收(输入)和发送(输出)信令、消息和数据。主机800可包括不止一个第2层连接。因此,为便于说明对图8进行了简化。
[0052] 存储器840永久性地或半永久性地存储与主机800本身有关的信息845。这包括例如第2层连接820的第2层地址MAC_Hn、分配到主机800的IP地址、用于计算RSA签名的主机800的私有密钥和公共密钥及诸如此类。如本领域所熟知的一样,分配到主机800的IP地址可以是永久性的,或者可以由主机800当前连接到的网络分配。存储器400也可在表847中存储诸如代理、路由器和其它主机等其它节点的IP地址、链路层地址和公共密钥。存储器400还可存储如本领域熟知的其它数据。
[0053] 在操作中,如果主机800需要发起与另一主机的通信,则它需要获得用于与该主机通信的链路层地址。它可先通过诸如路由查找表等熟知的方式获得该主机的IP地址。为获得引导向另一主机的该链路层地址,它需要在其第2层连接820上发送ND请求。ND请求包括MAC_Hn地址,该地址又成为用于此事务的源链路层地址(SLLA)。处理器810从存储器840读取SLLA、此主机800的IP地址和另一主机的IP地址及主机800的私有密钥。处理器基于这些和其它参数构建RSA签名,并且指示第2层连接820将ND请求放置在它附接到的第2层链路上。
[0054] 第2层连接820可接收ND请求消息。它将此ND请求及其内容转发到处理器810。如果ND请求包括PSI,则处理器810将它检测为关于如下的指示:由始发主机发起的ND请求已被代理修改以及在ND请求中包括的链路层地址是代理的MAC地址而不是始发主机的原始地址。处理器810从表847读取代理的公共密钥。如果找到代理的公共密钥,则将它用于验证PSI中包括的代理签名。如果此验证失败,则只需丢弃ND请求。否则,处理器810可优选从PSI读取发起了ND请求的主机的SLLA。通过在ND请求内将代理的MAC地址改写为始发主机的SLLA,处理器810可随后验证始发主机的RSA签名。RSA签名的验证要求处理器810从表847读取始发主机的公共密钥。假设RSA签名有效,则处理器810在表847中存储代理的MAC地址及始发主机的IP地址,由此在表847内创建用于始发主机的高速缓存条目。处理器随后从存储器840读取主机800自己的第2层地址MAC_Hn,并将它放置在ND通告消息中目标链路层地址(TLLA)字段内。代理的MAC地址、主机800的IP地址及其它参数也放置在ND通告中。处理器810计算RSA签名并将它插入ND通告中。处理器810随后请求第2层连接820将ND通告放置在第2层链路上。
[0055] 第2层连接820可接收ND通告。它将此ND通告及其内容转发到处理器810。如果ND通告包括PSI,则处理器810将它检测为关于如下的指示:由做出响应的主机(responding host)发起的ND通告已被代理修改以及在ND通告中包括的MAC地址或链路层地址是代理的地址而不是做出响应的主机的原始TLLA。处理器810从表847读取代理的公共密钥。如果找到代理的公共密钥,则将它用于验证PSI中包括的代理签名。如果此验证失败,则只需丢弃ND通告。否则,处理器810可优选从PSI读取发起了ND通告的主机的TLLA。通过将代理的MAC地址改写为做出响应的主机的TLLA,处理器810随后可验证做出响应的主机的RSA签名。RSA签名的验证要求处理器810从存储器840读取做出响应的主机的公共密钥。假设RSA签名有效,则处理器810在存储器840中存储代理的MAC地址及做出响应的主机的IP地址。
[0056] 虽然在附图中显示且在上面的详细说明中描述了本发明的方法和代理的优选实施例的多个方面,但是,将理解本发明并不限于公开的实施例,而是在不脱离如随附权利要求陈述和定义的本发明的精神的情况下,能够进行多种重置、修改和替代。
相关专利内容
标题 发布/更新时间 阅读量
修改图表 2020-05-11 305
修改命令 2020-05-11 446
修改带式胶带 2020-05-13 179
修改比特流 2020-05-12 695
修改对话窗口 2020-05-13 593
修改液笔 2020-05-11 350
引导过程修改 2020-05-13 886
修改笔 2020-05-11 82
错字修改笔 2020-05-12 309
错字修改笔 2020-05-12 675
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈