嵌入式
返回首页

无线传感器网络中一种基于共享密钥的节点鉴别机制

2013-02-25 来源:21IC

0 引言
    在无线传感器网络中,信息的传输都是通过点到点的传输,因此要特别保证信息在传输过程中的安全性以及私密性,防止恶意节点在信息传送过程中中途拦截或者冒充网络中的正常节点,与其他节点进行通信,从而非法获取网络中的信息,甚至利用丢弃数据,自私性不转发等手段破坏节点之间的正常通信。因此,在节点进行数据传输之前,有必要做好必要的安全措施。一方面需要对节点之间传送的数据进行保护,不能以明文形式进行传输。当节点之间进行信息传送时,可以使用全网密钥对信息进行加密,并且使用共享密钥实现安全通信。另一方面,需要保证通信双方的节点是本次通信的节点,而不是网络中的其他节点或者一些恶意节点,这就需要对通信双方的身份进行鉴别。
    针对传感器网络的实际需要以及现有的安全技术,本文提出了一种基于共享密钥的节点鉴别机制,该方案主要利用网络中节点之间共享的密钥,实现了节点之间的身份鉴别。

1 方案设计
   
假设在传感器网络中,节点A需要与节点B进行通信,则节点A与节点B首先要对彼此身份进行鉴别,鉴别过程如下:
    (1)首先,节点A向节点B发送鉴别请求消息Auth Request开始与节点B进行鉴别。鉴别请求消息中还包括节点A产生的一个随机数RA以及节点A的身份标识符IDA和目的节点的身份标识IDB。
    (2)节点B收到节点A的请求后,首先通过IDA查找自己的密钥列表中是否保存了与节点A对应的对偶密钥,若不存在,则终止鉴别;若存在,则产生随机数RB,并利用密钥列表中与节点A预共享的密钥SAB,根据IDA,IDB,RA,RB计算:
    MACAB=HASH(SAB,IDA‖IDB ‖RA ‖RB)
    其中,IDA和IDB分别是节点A和节点B的身份标识;MACAB为节点A与节点B之间的消息鉴别密钥。然后,节点B利用MACAB在本地计算消息鉴别码:
    MAC1=HASH(MACAB,RA ‖RB)
    然后构造消息RA ‖RB ‖MAC1发送给节点A。
    (3)节点A收到节点B的消息后,首先检查消息中的随机数RA是否与自己在第(1)步中发送的随机数RA一致,若不一致,终止鉴别;若一致,节点A计算:
    MACAB=HASH(SAB,IDA‖IDB‖RA‖RB)
    然后利用MACAB在本地计算消息鉴别码:
    MAC2=HASH(SAB,RA‖RB)
    如果MAC2≠MAC1,节点A终止鉴别;如果MAC2=MAC1,则节点A对节点B鉴别成功,并计算MAC3=HASH(MACAB,RB),将RB‖MAC3发送给节点B。
    (4)节点B收到节点A的消息后,检查随机数RB是否与自己在第(2)步中发送给节点A的随机数RB一致,若不一致,终止鉴别;若一致,节点B本地计算消息鉴别码:
    MAC4=HASH(MACAB,RB)
    如果MAC4≠MAC3,节点B终止鉴别;如果MAC4=MAC3,则节点B对节点A鉴别成功。
    然后计算:MAC5=HASH(MACAB,RA),并发送确认消息RA‖MAC5给节点A,用于通知节点A可以进行通信。
    (5)节点A收到节点B的确认消息,节点A计算MAC6=HASH(MACAB,RA),如果MAC6≠MAC5,鉴别失败,终止鉴别;如果MAC6=MAC5,节点A开始与节点B进行会话。

    具体鉴别流程如图1所示。



2 算法分析
2.1 安全性分析
   
从安全性角度,对于本方案,节点在数据传输前,首先通过发送自己的身份标识ID给目的节点,而不是直接发送共享密钥,目的节点通过源节点发送的ID,再从自己的密钥列表中找到与源节点的共享密钥,这样就防止了密钥在传输过程中被攻击者非法截获的可能,并且也可以通过源节点发送的ID来判断是否有其他非法节点冒充;同时目的节点再利用节点之间的共享密钥经过加密以后生成消息校验码,再发送给源节点。源节点接收到消息校验码以后,也可以通过共享密钥生成校验码,而对于其他节点来说,由于不知道两个节点间的共享密钥,因此不能生成相同的校验码,源节点就可以验证目的节点就是自己所要进行通信的节点;而目的节点也同样可以通过只有两个节点才知道的共享密钥生成的校验码对源节点进行认证。通信双方对彼此的身份进行确认以后,两个节点就可以放心地进行下一步通信。有效抵御了传感器网络中一些常见的安全威胁,例如女巫攻击等。
    同时,方案还具有很强的攻击容忍性,任何节点被破坏或俘获以后,都不会影响其他未被俘获节点的通信安全。
2.2 性能分析
   
从性能角度看,在计算效率方面,方案采用了单向Hash算法,相比于非对称密码体制下的节点鉴别和密钥协商协议,该协议的计算量要小得多。而且每个通信节点最多只需要进行3次Hash运算,Hash算法也可以根据网络的实际情况进行选择;在通信负载方面,一次协议运算只需2条消息交互,相比于其他的节点鉴别机制,该协议的通信负载也比较低;从节点存储方面,节点需要存储一张密钥表和目的节点的ID;在方案的扩展性上,新节点在加入网络时就会从密钥池中随机分配到q个密钥,新节点只需要与网络节点建立了共享密钥,就能实现节点的鉴别。

3 结论
   
本文设计了一种基于共享密钥的节点鉴别机制。该方案利用节点之间拥有的共享密钥和节点ID以及生成的随机数生成一个MAC值,节点之间通过各自生成一个MAC值与对方生成并发送的MAC值进行比较,相等则表示鉴别成功。该方案在信息交互和计算量方面都表现较优,成功实现了节点在正常通信之前的身份鉴别,为节点之间下一步的安全通信工作提供了保障。

进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • IGBT模块通过控制门极阻断过电流

  • CCFL的工作原理及电子驱动电路解析

  • 基于M66T旋律发​​生器的电路图解析

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章