无线传感器网络密钥分配及认证实验.docVIP

  • 47
  • 0
  • 约6.16千字
  • 约 18页
  • 2015-09-24 发布于安徽
  • 举报

无线传感器网络密钥分配及认证实验.doc

无线传感器网络密钥分配及认证实验 无线传感器网络密钥分配及认证实验 【实验内容】 使用ESPOT实现无线传感器网络中的密钥分配和认证功能。实验分两部分进行:(1)无线传感器网络的软件仿真;(2)利用ESPOT节点实际部署。实验前请参考光盘中的“无线传感器网络软件支持”,安装好相关的软件。 ESPOT节点实际部署需要NetBeans开发平台,用到了一个ESPOT基站,还有若干个(大于2个)普通节点,基站用于给普通节点分发密钥,节点间可以实现认证操作。基站可以与PC连接,通过PC来控制基站,同时观察本次实验的实现过程,查询节点的信息等。 无线传感器网络密钥分配及认证实验 【实验原理】 密钥分配原理 本实验采用基于KDC(密钥分发中心)的对称密钥管理方案,其基本思想:每个传感器节点与KDC共享一个密钥(预共享密钥),在这里基站S可以作为KDC。KDC保存和所有节点的共享密钥,如一个节点要和另一个节点通信,它需要向KDC发出请求,然后KDC产生会话密钥,并将其传给相应的节点。节点A、B和KDC均可以由传感器节点来实现,用于采集数据,KDC拥有无线协调以及分发密钥的功能。 图3.8.21基于KDC的会话模型 密钥分发可分以下四步进行: 1):A向基站S请求与B通话; 2):基站S给A回复包含密钥的信息; 3):基站S给B发送包含密钥的信息; 4):A和B利用基站分发的密钥进行通信。 A(或B)与基站S间的通信要用它们的预共享密钥对数据进行加解密操作,其中加密与解密互为逆过程。A,B间的通信则需用基站分发的密钥对数据进行加解密操作,基站与PC机连接后可进行交互性的查询。 单向认证协议 当节点A请求与节点B(基站S也可看成一个节点)通信时,需要进行单向认证(即节点B对节点A的身份进行认证)来保证通信的安全,。单向认证的算法描述如下: 1) 节点A产生一随机数,并利用会话密钥(若B为基站,则为预共享密钥)对进行加密得; 2) A向B请求认证并发送和; 3) B收到A发送的和后,用密钥对进行解密得到; 4)B验证与是否相等?若相等则A通过了B的认证,A与B之间可通信,反之则B拒绝对A的认证。 它的流程图如图2所示。 图3.8.22单向认证流程图 双向对称认证协议 双向认证协议其实就是两个单向认证的过程,它的前提是KDC已对相互通信的两节点A与B分配了会话密钥,它实现节点A与节点B的相互认证。双向认证的算法可描述为: 1)节点B发送一随机数给节点A。 2)A根据接收到的以及自己产生的计算出,并发送,给B。 3)B根据接收到的计算,同时验证是否与相等,若相等则B成功认证了节点A,然后把发送给A。 4)节点A根据接收到的,验证是否等于,如相等则A成功认证了节点B。至此,双向认证成功。 其中与分别代表节点B与节点A自己产生的随机数,||代表连接符(串接符),代表A,B间的会话密钥。是一种使用密钥的单向加密函数,MAC(Message Authentication Code)即消息认证码。 双向认证的流程图如图3所示。 图3.8.23双向认证的流程图 图3.8.24实验的流程图 本实验的总流程图 假设节点A请求与节点B通信,则A将B的相关信息及自身信息发送至基站,请求基站分发密钥。基站在接收到请求信息时首先对该请求节点A进行一次认证(单向认证),认证通过后基站随机选取一随机数作为密钥(A与B的会话密钥),并用其与节点A的预共享密钥加密发送给请求的节点A, A在接收到基站的回复信息后,用其与基站的预共享密钥进行解密,便得到与节点B的会话密钥。 基站将密钥信息发送给请求节点A后,立即向节点B用密文发送A的相关请求信息及会话密钥,节点B用与基站的预共享密钥解密该信息,即可得到与A的会话密钥。至此,A与B的会话密钥分配完成,之后A与B进行双向认证,认证成功后A与B即可用基站分发的会话密钥进行安全通信。其流程图如图4所示。 无线传感器网络密钥分配及认证实验 【实验环境】 WindowsXP系统,ISES客户端 【实验步骤】 安装JDK 从实验工具箱下载本实验所需工具。 双击运行“jdk-6u7-windows-i586-p.exe”。默认值安装。 图3.8.25安装JDK 拷贝apache-ant 将 “apache-ant-1.8.0”文件拷贝到硬盘中。例如“D:\IS\Ises\espot-cd\apache-ant-1.8.0” 设置环境变量(注意分别系统变量与用户变量) 图3.8.26环境变量设置 新建用户变量=ANT_HOME 值= D:\IS\Ises\espot-cd\apache-ant-1.8.0 图3.8.27新建ANT_HOME变量 新建系统变量=JAVA_HOME 值= C:\Program Files\Java

文档评论(0)

1亿VIP精品文档

相关文档