联系我们   Contact

LonWorks 网络安全体系

2014/6/20 15:05:59      点击:

研究建筑智能化系统网络安全体系需要与实际的网络技术相联系,目前常见的建筑智能化系统网络集成技术 LonWorksBACnet KNX/EIB,这三种网络技术在安全性能方面的存在差异,本章研究结果得知除 BACnet 的安全机制较为健全以外,LonWorks KNX/EIB 安全性能差亟待进一步改善。然而,在智能建筑的应用中 LonWorks BACnet  KNX/EIB 的范围更加广泛,基于 LonWorks 技术开发的产品几乎囊括了建筑智能化系统的每一个组成元素,包括 HVAC、照明、门禁、安防、消防等系统[36]。基于此考虑,选择 LonWorks 作为建筑智能化系统网络安全体系研究的网络技术对象。 

5.1   LonWorks 与其他控制网络技术安全性的比较

5.1.1   BACnet 安全缺陷

BACnet 协议提供了有限地保障数据机密性和完整性的安全机制。BACnet 标准[17] 24 条定义了有关安全方面的服务以保障网络中交换数据的完整性、机密性和可用性。这些服务采用对称数据加密标准(DES)作为数据加密算法以及能够产生和分发会话密钥的可信密钥服务器,密钥服务器产生的会话密钥被用来加密两个设备之间传递的数据。然而这些安全机制是不够健全的,存在一些弱点,例如 DES已经被验证不再安全等,因此 BACnet 网络容易遭受中间人攻击,重放攻击等。鉴于此,BACnet 协议的 g 号增补文件[6]对以上安全机制进行了更改,新的机制使用高级加密标准(AES),基于散列函数的消息认证码(HMAC)算法以及可以防范侦听、篡改和伪造的带有时间戳的报文 ID,但仍然存在发送端和接收端身份不能相互验证,密钥管理不善等缺陷。当网络中的节点被攻击者非法替换后,仍然冒充原来的节点与服务器或者和其他节点进行通信,但是由于缺乏某种认证机制,与之通信的其他网络实体无法发现,从而使得攻击者可以顺利进行进一步的破坏。

此外,在密钥管理上存在不足。为了能够与密钥服务器建立安全的连接,网络中的每个节点必须有一个初始密钥,BACnet 标准未定义初始密钥的管理方式。此外,由于没有设定使用时限,重用旧的会话密钥成为可能,使得攻击者有空可钻。

5.1.2   KNX/EIB 安全缺陷

KNX/EIB 协议的安全措施很少,仅仅提供了一种基于明文口令的接入控制模式。该模式用于避免未授权地对设备的管理。模式一共定义了 255 种不同的接入层次,每一层对应有一组 4 字节的密码而且每一层次与一系列的权限相关联,0 号层次拥有的权限最多而 255 号层最少。然而,由于以下的一些缺陷使得此机制的安全保障能力非常有限。首先,用于接入层的密码是明文传输的,缺乏一种有效安全管理这些密码的机制。即使是 KNX 联盟开发的 ETS 管理软件在整个安装过程中仅仅使用一个密码,因此在成功验证后攻击者对传输信息的篡改和插入等破坏数据完整性的行为不能避免。

5.1.3   LonWorks 安全缺陷

为了保障数据的完整性和数据源的真实性,LonWorks 协议在传输层和会话层实行了四步请求/应答(Challenge-Response)机制以抵御篡改和伪造攻击,整个过程如图 5.1:网络实体 A 在其报文 M 中插入验证比特,接收端 B 在收到报文后回复一个 64 位的随机数 N,然后用 HASH 函数 H 和验证密钥 K48 位)将随机数N 与报文 M 计算生成一个 64 Hash 值。A 在收到随机数 N 后也进行同样计算得到 64 位的 Hash 值并回传给 BB 将接受到的 Hash 值与自身计算的 Hash 值作比,从而完成验证[37]

此种请求/应答验证方式存在以下几点缺陷:

发送方通过在消息中设置验证位而初始化验证过程,这意味着发送方和接收方的真实身份无法相互验证。

该验证过程在节点的整个通信过程中并不只是进行一次,而是发送端每发送一个数据包便需要重复一次整个验证过程,即使是每个数据包的接受端是同一个网络实体也不例外,这样导致的结果是大量额外的资源消耗。

此验证机制只能局限于单播和多播。当需要广播时,每一个广播接收节点均需计算一个随机数并发送至广播节点,且广播节点需要对每一个随机数计算 HASH值,假设一个广播组有 n 个节点,那么需要计算 n-1 HASH 值,导致广播节点由于要计算过多 HASH 值而产生额外大量的资源消耗。此漏洞容易让攻击者利用发动 DoS 攻击,如当攻击者利用控制的或者假冒的节点不断地向 LonWorks 网络中的其他节点发起大量鉴别请求,则容易因为网络中充斥大量数据包而导致网络拥塞,从而阻碍正常网络通信,网络安全的可用性方面无法保障。

5.1.4   比较总结

由以上分析可知,LonWorks KNX/EIB 的现有安全机制并不能完全满足建筑智能化系统网络安全的需求。正如第三章所分析的,建筑智能化系统网络所面临的威胁多种多样,而面对如此多的威胁,LonWorks KNX/EIB 均不能成功抵御。

虽然 LonWorks 提供了数据鉴别机制,但是仍然较弱,特别是 LonWorks 使用的加密技术处于保密状态,这本身就阻碍了安全性的提升,此外,LonWorks 使用48 位的密钥,由于长度过短,导致容易遭受破解,因此 LonWorks 的安全最需要进一步的加强。而 KNX/EIB 由于只提供了通过口令形式的接入控制保护,仅仅能够抵御非常有限的安全威胁。

相对来说,BACnet 的安全性更高。BACnet 除了有数据和身份鉴别之外,支持对网络中传输的数据进行加密。更为重要的是,BACnet 的安全问题受到了发布者官方权威机构的关注,并有相关更新安全机制的发布,适时调整了 BACnet 的安全技术,如加密算法由 DES 替换成安全性更高的 AES。但是 BACnet 的还存在如访问控制策略等方面的安全缺陷。

这三种控制网络技术共同存在一个缺陷,那就是缺乏安全有效的初始密码生成和分配机制,然而这对于保障网络系统的安全至关重要。表 5.1 比较了三种技术的安全机制。