今日头条
今天的设计人员比以往任何时候都更多地转向无线技术,以使设备能够相互通信。特别是在电池供电的情况下,这意味着我们不再需要在网络节点之间串线,从而使部署更加容易且成本更低。
但是,很大程度上由于历史原因,我们有幸拥有三个独立的短距离无线标准,每个标准都有自己的领域。Wi-Fi 熟悉计算机连接和家庭接入点;蓝牙将配件连接到您的手机或计算机,IEEE 802.15.4 将家庭和其他设备连接到一个强大的网状网络。
这些标准不可互操作。但是,随着蓝牙和 802.15.4 为基于 IP 的流量腾出空间,这种情况正在发生变化。好处是在其他孤立的域之间进行更大的相互通信——尤其是对于物联网。不太明显的是缺点:专注于 IP 的黑客现在可以进入更大的竞争环境。这给这些标准中的每一个都带来了更大的安全负担。这意味着每个协议中的其他层都需要加强其安全性,以确保如果有人通过 IP 突破,则有大量其他防御措施来打击入侵者。
三个堆栈来统治他们
在这三种协议中,Wi-Fi是IP的天然载体。它依赖于物理层和链路层的 802.11,然后实施典型的基于 IP 的堆栈,使用 TCP 或 UDP 作为传输和熟悉的应用程序,如 HTTP、FTP、电子邮件,以及不断发展的物联网家庭标准,如 Apple 的 HomeKit 或 OIC Iotivity。
UDP(用户数据报协议)是一种替代 TCP,主要用于在 Internet 上的应用程序之间建立低延迟和容错连接。UDP 和 TCP 都运行在 Internet 协议 (IP) 之上。
相比之下,蓝牙有一个端到端的完整堆栈,从物理层一直到顶部的应用程序。较新的低功耗蓝牙协议或蓝牙 SMART 最初针对流数据进行了优化,更适合物联网通信,但无法处理 IP 流量。任何基于 IP 的内容都必须在网关中进行转换,然后才能发送到基于蓝牙的设备。
ZigBee 有一个基于 802.15.4 MAC/PHY 层的独特堆栈。除此之外,它不同于 Wi-Fi 和蓝牙,一直到定义应用程序级互操作的 ZigBee 集群库。这意味着这些协议在任何层都没有任何共同点。
图 1:Wi-Fi、ZigBee 和蓝牙低功耗协议栈在任何级别均不共享任何共同元素,从而阻碍了互操作性。
无处不在地利用 IP
然而,这种情况正在发生变化,因为 ZigBee 和蓝牙都采取了措施来适应基于 IP 的流量。虽然这不会改变每个标准现在看到的原始本机协议流量,但它可以让额外的流量更容易地从一个到另一个。
在 802.15.4/ZigBee 世界中,一种新的网络子层协议 6LoWPAN(IPv6 over Low-power Wireless Personal Area Networks)使 IP 流量适应底层 802.15.4 层。它负责 IP 报头压缩、分段和重组以适应 802.15.4 数据包。
Thread 协议是 IPv6 在 802.15.4 无线电上的一种实现;将 UDP 分层作为 6LoWPAN 上的传输层。Thread 和 ZigBee 最近宣布合作,这将使应用程序级别的 ZigBee 集群库能够在 Thread 上运行作为替代方案。
最后,蓝牙 4.2 添加了一个利用 6LoWPAN 的 IP 支持配置文件 (IPSP)。这实现了通信,并为 IPSP 之上的基于 IP 的堆栈铺平了道路,其方式与 ZigBee 相同。虽然 6LoWPAN 最初被设想为在 802.15.4 上实现 IPv6 的一种方式,但它已进一步适应在蓝牙中执行相同的角色。
图 2:现在,三种无线协议中的每一种都具有接受基于 IP 的数据包的方法,这意味着所有三种无线协议都可以在 IP 层之上实现相同的堆栈。
最重要的保护之一是身份验证。虽然身份验证的使用很常见,但通常只在一个方向上完成;节点将在网络上进行身份验证,但网络不会在节点上进行身份验证。为了确保对节点和网络的全面保护,物联网节点必须在应用程序级别对新连接和消息进行身份验证,以便任何安全漏洞的范围都有限。
更大的目标
在这些发展之前,基于 IP 的流量仅限于基于 IP 的网络,这意味着源自 ZigBee 网络的 Wi-Fi 流量保留在 ZigBee 上,而蓝牙流量则保留在蓝牙内。通过向基于 IP 的流量开放所有三个标准,信息可以更广泛地流动;消除了网络之间基于协议的障碍,提高了互操作性。但这些好处是有代价的。6LoWPAN、ZigBee 和蓝牙提供的扩展范围也扩大了攻击者的范围,使他们有可能获得对以前难以渗透的网络的新访问权限。
这是多层安全变得特别重要的地方。不同的层具有必须实施的安全规定,以确保这些新可访问的节点不会成为准备好的目标。要保护的最重要的层是数据链路层、传输层和应用层。第 2 层,即数据链路层,位于 IP 或任何 IP 适配之下,因此每个无线协议都不同。
通过 WPS 等协议的 Wi-Fi 安全性可确保网络内的数据加密。802.15.4 无线电协议使用 AES-128 在数据链路级别提供帧加密。Thread 充分利用了这一点。蓝牙的数据链路层安全提供加密和身份验证。
802.15.4 安全功能通常在硬件中实现,尽管它们对于 ZigBee 不是强制性的。然而,对于 Wi-Fi 和蓝牙,安全功能不是必需的,为了简化操作和最小化成本,可能很容易将它们排除在外。网络互操作性造成的漏洞增加意味着数据链路安全不应再被视为可选项。
在 IP 之上,通常有两个选项:UDP 和 TCP。这些传输协议中的每一个都有一个相关的安全协议。对于 UDP,它是 DTLS;对于 TCP,它是 TLS。TCP 和 UDP 本身不提供安全性。TLS(有时称为 SSL,传输安全的早期版本)提供连接身份验证和会话密钥交换以及数据加密。DTLS 适用于 UDP 的数据报性质,而不是 TCP 的分段性质。
但源自 IP 的流量现在可以流向网络中的任何地方,包括不接受 IP 的节点。因此,还必须实现原生 ZigBee 和蓝牙传输层安全功能。ZigBee PRO 要求在网络和应用程序级别进行加密。传输级加密应该被认为是强制性的。相比之下,原生蓝牙实现仅在数据链路层中具有安全性,在传输层中没有。
应用层
最后是应用程序层,由于应用程序的多样性,因此没有真正的标准。这些可以是 HTTP、电子邮件或任何使用 MQTT 或 CoAP 等消息传递协议在节点之间进行通信的各种 IoT 应用程序。根据其复杂程度,此类协议可能会或可能不会提供额外的内置安全性,因此设计者或架构师有责任构建应用程序级保护。而且,Apple 的 HomeKit、OIC Iotivity 和 Google Weave 等物联网家庭标准也在这一层不断发展。
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !