WirelessHART网络是一种安全的网络系统。WirelessHART的MAC层和网络层都提供了安全服务。MAC层结合使用了循环冗余校验(Cyclic Redundancy Check,CRC)和消息完整性代码(Message Integrity Code,MIC),从而能提供跳到跳的数据完整性的服务。尽管CRC的能力有限,但是它目前仍然是一种被广泛使用的技术。发送方和接收方都使用了CCM模式和AES-128块加密算法来产生和验证MIC。网络层采用了各种密钥以提供端到端的加密和数据完整性的服务。WirelessHART安全体系定义了四种密钥:
1)当没有网络密钥的时候,公共密钥被用来产生MAC层的MIC。
2)网络密钥被所有的网络设备共享,并被网络设备用来产生MAC层的MIC。
3)入网密钥对于每个网络设备而言都是的。在设备加入网络过程中,入网密钥被网络管理器用来认证正申请入网的新设备。
4)会话密钥由网络管理器创建。会话密钥对于两个网络设备间的端到端连接都是一个的,它被用来提供端到端的加密和数据完整性的服务。会话密钥又可进一步分为单播密钥和广播密钥。单播密钥和广播密钥在如何存储和使用随机数(Nonce)方面是非常困难的。
如下图描述了在以下两种不同的场景下如何使用这些密钥:①一个新的网络设备想加入网络;②已存在的网络设备正在与网络管理器通信。在第1个场景中,入网设备将需要使用公共密钥来产生MAC层帧头中的MIC,还需要使用入网密钥来产生网络层MIC并加密入网请求报文。在入网设备被认证后,网络管理器将为该设备产生一个会话密钥,并将其通过启动包发送给该设备。这样网络管理器和该入网设备间的会话就被安全地建立了。在第2个场景中,在MAC层方面,网络密钥被用于数据链路协议数据单元(Data-Link Protocol Data Unit, DLPDU)的认证;在网络层方面,会话密钥被用于认证和加密数据报。