ARAN(Sanzgiri et al.,2002)相比于无线传感器网络更多的是为自组织网络所设计的。虽然它是可扩展的,并且足以适用于很多传感器网络应用,但是它是基于非对称加密的,因此它不能很好地适应典型传感器节点的硬件约束条件。另外一个不同于安全传感器网络路由协议的重要特点是,ARAN需要一个可信的证书服务器来同时完成节点认证和向它们发放临时证书。可信证书服务器的公钥对于每个节点是已知的。此外,ARAN假设存在一种当节点申请证书时对节点进行认证的机制。协议中并没有说明是何种机制。
ARAN为认证、完整性和不可抵赖性提供了相应的机制。当节点A首次接入网络或者需要一个证书来进行路由发现时,它将向可信服务器T发出证书请求。服务器T首先认证节点A,并在之后向其发送一个证书:
这里,certificateA={IPA,KA+,t,e}<KT->。其中IPA是节点A的IP地址;KA+是A的公钥;t是证书的生成时间;e是证书的过期时间;KT-是T的私钥。
拥有一个有效证书的节点S可以为另一个节点D通过广播路由发现数据包(RDP)来开始一次路由发现:
这里的NS是一个新鲜值,它是序列号,即源节点S每执行一次路由发现操作时就单调增加新鲜值,这样来确保期望从目的节点D所回复的消息新鲜性。
当节点接收到一个RDP消息时,它首先对消息进行解密,然后记录发送消息的邻居节点,作为消息源节点的下一跳节点。如果这个节点接收到了关于这个RDP消息的回复消息,它就将回复发送给记录中的邻居节点。最终,它使用自身的私钥加密消息,添加自身的证书,并广播消息。
注意到每个中间节点都要解密接收到的消息,并且用自己的私钥再次加密,在发送之前将自身的证书加入消息中。为了解密消息,节点需要接收消息来源的邻居节点的公钥。公钥存在于添加入消息的证书中,证书由可信服务器的私钥加密。每个节点都知道可信服务器的公钥,证书由可信服务器加密后颁发,这已在前面说过。例如,如果节点C接收到由节点B发送的RDP消息,由节点C广播的消息是这样的:
每个节点都要对路由中的前一节点进行认证,因为消息在每一跳时都进行了签名。另外,RDP消息中不含有跳数信息或者源路由记录。因此,恶意节点没有机会通过隧道或者修改路由序列号、跳数或源路由来改道传输(Redirect Traffic)。(www.xing528.com)
当目的节点D接收到路由中最后一个节点发送来的路由发现消息时,假设它为C,它将首先验证源的签名,之后准备一个回复消息(REP),并将其单播至C:
像RDP消息一样,REP消息同样被加密和解密,例如被所有的中间节点签名。每个中间节点也都对添加入消息的证书进行替换。传送REP消息到源节点S和传输RDP消息的主要区别在于,REP消息并非进行广播,而是通过每个中间节点单播到传输RDP消息时所记录的下一跳节点的。
当源节点S接收到REP消息时,它将验证目的地的签名和新鲜值,之后就完成了路由建立。每个中间节点都通过路由表维持路由机制。当在现存的路由中,没有流量发生的时间大于路由的生存周期时,这一路由在路由表中就失效了。当接收到的消息将在一个失效的路由中被发送时,节点将生成一个错误消息(ERR),并将其发送到朝源节点的反向路径的下一跳节点。错误消息也会在节点发现链路由于节点移动等原因被破坏时发送出去。每个错误消息都进行了签名,并进行单播。中间节点C向另一节点B发送错误消息的格式如下:
这一消息在发送至源节点的过程中不会被修改。当它到达了源节点时,这一路由也会被源节点释放。
和路由一样,证书也可以被撤销。要撤销证书,可信证书服务器将广播一个宣布撤销证书的消息:
撤销消息将被存储,直到被撤销的证书到期。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。