首页 理论教育 按需安全路由:ARIADNE技术解析

按需安全路由:ARIADNE技术解析

时间:2023-06-22 理论教育 版权反馈
【摘要】:ARIADNE是一种安全动态源路由协议。当ARIADNE路由发现使用TESLA时,每一跳认证“路由请求”中的信息。ARIADNE假设每个通信源节点S和目标节点D共享消息认证码密钥KSD和KDS,并且每个节点拥有一个TESLA单向密钥链,所有节点都知道其他节点的密钥链中的第一个密钥。当源接收到“路由回复”消息时,它将验证每个密钥和消息认证码值的有效性。在这之后,路由被维护在“路由缓存”中直到接收到“路由错误”消息。

按需安全路由:ARIADNE技术解析

ARIADNE是一种安全动态路由协议(Hu et al.,2005)。它通过利用多种方法,例如TESLA、消息认证码(MAC)和数字签名,提供安全的路由发现和维护服务。当ARIADNE路由发现使用TESLA时,每一跳认证“路由请求”中的信息。目标缓存“路由请求”,直到中间节点释放其TESLA密钥之后才发回一个“路由回复”。之后,它就完成源节点和中间节点的认证,并将“路由回复”按传输“路由请求”的路径原路反向发回。

ARIADNE假设每个通信源节点S和目标节点D共享消息认证码(MAC)密钥KSDKDS,并且每个节点拥有一个TESLA单向密钥链,所有节点都知道其他节点的密钥链中的第一个密钥。

ARIADNE路由发现过程始于一次“路由请求”,它包括以下字段:

1)路由请求:一串表明数据包是路由请求包的码字;

2)源节点;

3)目的节点;

4)id:路由请求的标识;

5)时间间隔:对传输数据包到目的地所需时间的悲观估计;

6)哈希链:路由中所有节点生成的哈希值;

7)节点列表:路由中节点的列表;

8)MAC列表:路由中每个节点所计算出的消息认证码(MAC)值的列表。

源节点分配源、目的地节点、id和时间间隔,并且它们在数据包到达目的地节点D之前不会改变。哈希链、节点列表和消息认证码(MAC)列表在每一跳时都发生改变。源节点S首先按下式计算哈希链:(www.xing528.com)

在计算了h0之后,源节点将初始化节点列表和消息认证码(MAC)列表为空表,并广播“路由请求”消息:

每个接收到路由请求的节点,首先检查其缓冲区的<sourceid>字段。如果这一请求已经被接收,则丢弃新来的请求。节点也将检查时间间隔。如果间隔时间还有很长时间到来或者与之相关的密钥已经被泄漏,那么数据包将会被丢弃。否则,接收数据包的节点将修改哈希链hi。假设A为距离源节点S一跳距离的节点。它将这样计算h1

h1=HAh0) (12-3)

它同时也会通过TESLA密钥链中的下一个密钥KAti来计算它的消息认证码(MAC)值,将其地址和消息认证码(MAC)值加入“路由请求”消息,并进行广播:

这一过程将被每个中间节点重复进行。例如,第三个中间节点C计算其哈希链和消息认证码(MAC)值,广播“路由请求”消息如下:

当目的节点接收到“路由请求”时,它将通过确定密钥在所规定的时间间隔内还没有被泄漏,来检查请求的有效性,最终的哈希链等于

式中,an是位于位置n的节点地址,同时在节点列表中存在n个节点。如果这些条件都成立,请求就是有效的。之后目标节点D计算目的地消息认证码(MAC)值MD,准备一个“路由回复”消息,并将其沿着通过“路由请求”消息的节点列表中的单跳序列逆向得到的源路由返回。

在反向路径中,每个节点都要等待直到它能够公开自己的TESLA密钥。之后它将自己的TESLA密钥添加进去,并按反向路径发送到下一跳。

当源接收到“路由回复”消息时,它将验证每个密钥和消息认证码(MAC)值的有效性。如果它们有效,它将接受“路由回复”消息。否则消息将被丢弃。在这之后,路由被维护在“路由缓存”中直到接收到“路由错误”消息。当某个中间节点B试图向路由中下一跳节点C发送消息失败时,就会生成如下的“路由错误”消息,它将沿着反向路径被送回源节点S

MB通过使用在时间ti后被公开的下一个TESLA密钥978-7-111-34574-9-Part02-59.jpg,设为错误消息中先前字段的MAC值。反向路径中的每个节点都要等待,直到检测到错误的节点在时间ti之后公开其下一个TESLA密钥。如果公开的密钥验证通过MAC值,路由就从“路由缓存”中被移除。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈