Time1 |MIC1,其中MIC1 =H(IDj IDs N1 Nonce1 I Time1),Message1为注册请求消息,ID u为用户身份,ID 3为管理端身份,N1为认证请求消息标示号,Nonce i为随机数,Time i为时间戳,MIC 完整性校验码;
[0061]2)安全管理端接收到,计算 MIC2= H(IDU| IDs N1 Nonce1 Time1),判断[(^与MIC 2是否相等,若相等则产生随机数Nonce2,并利用收到的Nonce1生成用户与安全管理端的会话密钥Ku,s,回复响应消息并保存至信息库;
[0062]3)使用任意注册用户进行登录,安全管理端在信息库中查找该用户信息,若信息库中查找到该用户注册信息,则登陆成功,否则,登录失败,不能进行以下授权操作;
[0063]4)用户登录成功后,向安全管理端发送授权请求消息Message3 =IDuI IlDsI N3 E1 Time3 | MIC3,E1= E (K u,s,IDU| | IDs | Rs)为授权请求消息,N3为授权请求标识号,E1为发送的授权请求消息,E 1= E(KU,S,IDj I IDS| Rs)为,Rs为网络的资源集合;
[0064]5)安全管理端收到此8犯863后给用户分配相关资源信息,同时产生用户与网关之间的会话密钥Ku,n,回复授权响应信息Message= IDS| IDn| N4 E2 E3 Time4 !MIC4,其中E2= E(KU,S,IDj IlDsI IgacI |Ku,J Time4) ,E3= E(K s,n, IDU| |IDS| IgacI I Ku,n),其中 Ks,n 为安全管理端与网关之间的预共享密钥,Gac是授权证书结构体;
[0065]6)用户收到安全管理端发送的访问响应后,解密E2存储授权证书消息Gac和Ku,n并保存E3;
[0066]7)用户向网关发起访问请求 Message5= IDU| IDn N5 E4 E3 Time5 | MIC5,其中已4访问请求消息44= E(Ku;n, IDU| IDn |gac| Nonce3);
[0067]8)网关收到如8犯865后,利用Ks,n解密E3从而认证用户ID u,得到与用户的共享密钥Ku,n以及授权证书G Ac,根据!^,解密E 4,得到Nonce3W及用户相关资源的属性证书g ac;
[0068]9)根据授权证书Gac执行访问控制判定,查询授权证书,确认用户是否已被授权,若判断合法,则查询属性证书信息库,判断其访问操作是否可行,若可行,则网关回复访问请求响应消息并发送给消息至安全管理端,并在安全管理端显示访问控制测试结果。
[0069]3.密钥管理测试
[0070]IPv6传感网中,节点存储的密钥包括加入密钥、个体密钥和全网密钥,网关处存储全网密钥。密钥建立在IPSec中的IKE安全关联阶段协商完成,测试管理系统与节点之间的密钥存储在网关上,密钥更新过程则由测试管理系统发起实施,所以该测试系统对网关的功能进行的测试。
[0071](I)密钥建立功能测试
[0072]本部分主要测试IPv6传感网节点在完成IKE安全关联过程后能否成功与网关建立正确密钥,依据《传感器网络信息安全通用技术规范》附录A中对传感网密钥建立的描述对本协议栈的密钥建立功能进行测试验证。密钥建立功能测试具体步骤如下:
[0073]I)安全管理端构造密钥获取请求命令分别下发至网关和节点;
[0074]2)网关和节点收到密钥获取请求命令后对其进行解析,并将当前的会话密钥作为载荷构造密钥获取响应发送至安全管理端;
[0075]3)安全管理端收到节点和网关密钥获取响应后对其进行解析,对比两者的密钥信息,检查是否一致,若一致,则在安全管理端上显示密钥获取成功,若长时间未收到节点或网关返回的密钥获取响应、响应信息解析错误或解析后节点与网关返回的对密钥信息不一致,则显示密钥获取失败。
[0076](2)密钥更新功能测试
[0077]本部分主要测试IPv6传感网节点与网关之间能否正确进行密钥更新。依据《传感器网络信息安全通用技术规范》附录A中对传感网密钥更新的描述对本协议栈的密钥更新功能进行测试验证。密钥更新功能测试具体步骤如下:
[0078]I)安全管理端构造密钥获取请求命令下发至网关;
[0079]2)网关收到密钥获取请求后对其进行解析,将当前与对应节点之间的对密钥作为载荷构造成密钥获取请求响应发送至安全管理端,安全管理端得到网关和节点之前的对密钥 KEY-1 ;
[0080]3)安全管理端构造密钥更新请求命令并发送至网关;
[0081]4)网关收到密钥更新命令后对其进行解析,利用密钥更新算法生成新的密钥信息,并将密钥更新命令下发到对应节点;
[0082]5)节点将更新的密钥作为密钥更新请求响应返回至网关,网关对比先前更新的密钥与节点更新的密钥是否一致,如果一致,记为KEY-2,否则,重新下发网关的密钥更新命令;
[0083]6)安全管理端构造密钥获取请求命令下发至网关;
[0084]7)网关解析密钥获取请求后,将当前对应节点之间的对密钥KEY-2作为载荷构造成密钥获取响应发送至安全管理端;
[0085]8)安全管理端解析网关返回的密钥获取响应,与之前的对密钥KEY-1进行对比,若KEY-1与KEY-2相同,则更新密钥失败,否则成功,并在安全管理端上显示密钥更新功能测试结果。
[0086]4.AES-CCM*加密校验功能测试
[0087]MAC层安全功能主要依据IEEE802.15.4中AES算法的CCM*模式对MAC层的流出帧、流入帧进行加解密校验,从而保障IPv6无线传感网点到点的通信安全。该测试系统主要为了测试IPv6传感网MAC层对流出帧和流入帧的安全处理是否符合标准要求。根据《IEEE802.15.4低速无线个域网(WPAN)媒体访问控制和物理层规范》中安全规范对传感网数据安全的描述对本协议栈的MAC层加/解密校验进行测试验证。MAC层安全功能测试具体步骤如下:
[0088]I)网关和节点中同时部署AES算法的CCM*操作模式,在安全管理端中集成的基于AES-CCM* 标准的第三方测试软件 Wireless HART CCM Security Utility 软件;
[0089]2)在安全管理端配置需要测试的安全等级,在本测试案例中选择MAC层安全级别为0x05,安全属性为ENC-MIC-32,将该等级作为数据安全处理命令下发至节点和网关;
[0090]3)被测节点设备收到安全处理命令后,在MAC层选择《IEEE802.15.4低速无线个域网(WPAN)媒体访问控制和物理层规范》中安全规范中定义的安全等级,将明文A经过AESCCM*操作模式进行加密校验后生成的密文M发送至网关;
[0091]4)网关收到密文M后首先将该报文转发至安全管理端,安全管理端存储该密文M ;
[0092]5)网关在转发该密文的同时,利用网关中集成的AES算法的CCM*操作模式,将该密文M进行校验,解密,并将计算出来的明文A1转发至安全管理端;
[0093]6)安全管理端收到么1后,将A1、密钥材料、安全等级输入Wireless HART CCMSecurity Utility软件中,获取经过该软件加密校验的密文M1;
[0094]7)安全管理端对比生成的M1和收到的密文M,如果一致,则说明传感网中集成的AES-CCM*符合《IEEE802.15.4低速无线个域网(WPAN)媒体访问控制和物理层规范》定义的AES-CCM*算法;否则,不符合规范,并将测试结果显示在安全管理端。
[0095]安全功能测试结果分析:
[0096]在安全功能测试过程中,若第一个测试步骤结果成功,则继续进行下一个测试步骤,直到所测功能测试结束;若测试过程中出现测试失败,则立即结束该功能测试,并将测试结果发送给安全管理端。安全管理端对测试结果进行分析,自动生成一份测试报告发送给客户端供用户参考。
[0097]二、攻击检测
[0098]1.重放攻击
[0099]重放攻击检测指接收方通过检测接收的信息包,判断信息包是否为已经接收过的信息包,若接收方发现信息包重复,则认为网络中存在重放攻击者,并产生报警信息;若接收方未发现信息包重复,则该信息包为非重放信息。以往的重放攻击检测方案主要采用时间戳和挑战-应答机制,但是只在关键信息加上单个时间戳,这样并不能保证所遵循的协议可以抵抗重放攻击,本系统在结合以往对重放攻击检测方法的基础上进行了一定的改进,并提出一种在发送方添加时间信息,在网关和安全管理端处构建重放检测的机制,实现对重放攻击的防控。具体测试步骤如下所示:
[0100](I)发送方(模拟攻击节点)构建重放攻击报文;
[0101](2)在时间同步的基础上,发送方在应用层获取数据被创建的时间信息Createtime,同时使用与网关共享的应用层数据加密密钥加密时间信息Createtime ;
[0102](3)发送方在MAC层获取消息发送时间信息SendTAIttime,同时使用与网关共享的MAC层数据加密密钥加密时间信息SendTAIttime ;
[0103](4)发送方利用上述信息构建消息完整性校验码MIC。
[0104](5)接收方(网关)检测报文
[0105]a)接收方构建时间窗口结构如图4所示,滑动时间窗口的大小设定为T,左窗口的值为 T_left,右窗口 的值