ZIGBEE EXPLOITED The good, the bad and the ugly
https://www.blackhat.com/docs/us-15/materials/us-15-Zillner-ZigBee-Exploited-The-Good-The-Bad-And-The-Ugly-wp.pdf
机器翻译而来
摘要。
物联网(物联网)是一种新兴的趋势。物联网涉及到数字和无线技术在物理对象和系统中的集成,特别是那些历史上没有连接的技术,这些技术应该使我们的日常生活变得简单和方便。连接物联网设备的最广泛使用的无线技术之一是ZigBee标准。这种新兴技术需要跟上客户对廉价、长寿和可用设备的需求。除了用户和行业的认可外,安全也是一个主要的挑战。然而,由于担心可用性降低或限制,或者担心破坏向后兼容性,安全性常常被牺牲或忽略。
本文介绍了ZigBee的实际应用安全措施,指出了其中存在的不足,介绍了一个可用于ZigBee通信自动审计的软件框架和ZigBee安全服务的实现方法,并对其进行了利用。
导言。
物联网被认为是互联网革命的下一个阶段。将现实世界中的物理对象与虚拟世界连接起来,使任何时间、任何地点和任何东西都能进行交流。(Santucci 2010,第11页)。
设备之间的通信主要是通过无线信道进行的,这就带来了各种安全问题。其中一些弱点是新的,但大多数实际上已经存在了很长时间。一个理想的短期上市时间,以及向后兼容性和未来的校对考虑导致了已知问题的持续存在。ZigBee标准是物联网设备间无线通信的主流标准之一。尽管ZigBee标准的创建考虑到了安全性,但低的单位成本和可用性以及兼容性因素会导致安全控制的执行不力,这会带来安全风险。随着消费者准备、可编程无线电系统和具有足够计算能力的低成本设备的提供,软件无线电(Sdr)领域正在经历快速增长,使研究人员能够审计传统wifi以外的无线通信。本文重点介绍了ZigBee实现中的主要安全风险,这些设备受到影响,并描述了对启用ZigBee的设备进行的实际评估的结果。ZigBee标准ZigBee是ZigBee联盟(包括三星、飞利浦、摩托罗拉、德州仪器等公司)开发的个人区域网络标准,目的是为短程应用提供低成本、低功耗、双向、可靠的无线通信标准。(ZigBee Alliance 2008,第29页)。
该标准完全开放,并于2003获得电气和电子工程师协会(Ieee)的批准。ZigBee的协议栈基于IEEE802.15.4。选择ZigBee的优点是电池寿命长、支持网络中的大量节点(高达65000)、部署简单、成本低和全局使用。(Kaur&Sharma,2013年)(ZigBee联盟,2014年)ZigBee被用于以下领域(ZigBee联盟,2014年):
遥控。
输入装置。
家庭自动化。
楼宇自动化。
卫生保健。
电信业务。
零售服务。
智能能源。
ZigBee堆栈由四层组成:(ZigBee Alliance 2008,第35页)。
物理层(PHY)。
介质访问控制层(MAC)。
网络层(NWK)。
应用层(APL)。
IEEE802.15.4-2003标准适用于物理层(PHY)和介质访问控制层(MAC)这两个最低层。另外两个层由ZigBee协议栈定义。从安全的角度来看,网络和应用层具有最高的相关性,因此在下一章中将更详细地描述。
ZigBee安全。
ZigBee标准包括复杂的安全措施,以确保密钥建立、安全网络、密钥传输和帧安全。(ZigBee Alliance 2008,第419页f)。这些服务在网络和应用程序支持子层(APS)上实现,APS是应用层的一个子层。ZigBee协议基于“开放信任”模型。这意味着所有协议栈层相互信任。因此,密码保护只发生在设备之间。每个层负责各自帧的安全性。ZigBee网络的安全性是基于它们的加密密钥。可以区分两种类型的安全密钥。(ZigBee Alliance 2008,第422页)。
网络密钥被用来保护广播通信。这个128位密钥在网络中的所有设备之间共享.。信任中心通常存储多个网络密钥,但只有一个网络密钥是活动网络密钥。当前活动网络密钥由序列号标识,并可由设备的NWK和APL层使用。设备必须通过密钥传输或预安装获得网络密钥.。链路密钥用于保护应用层上的单播通信。这个128位的密钥只在两个设备之间共享.。链接密钥是通过密钥传输、密钥建立或预安装(例如,在工厂安装期间)获得的,并且只能由APS子层使用。网络层安全ZigBee网络层通过使用AES加密(AES CCM模式)保证传输帧的完整性和加密,密钥长度为128位,并使用密码块链接消息认证码(CBC-MAC)确保其完整性。(ZigBee Alliance 2008,第423页)
应用程序支持子层安全性如果需要保护由APS层发起的帧,则APS层负责对帧进行适当的保护。APS层允许帧安全基于链路密钥或网络密钥。如果应该使用主动网络密钥进行帧保护,则APS层首先检查该帧是否在NWK层上受到保护。如果是这样的话,帧就被传递到NWK层,并且在NWK层上执行帧保护。APS层还负责为应用程序和ZDO提供密钥设置、密钥传输和设备管理服务。(ZigBee Alliance 2008,第424页)ZigBee标准对ZigBee装置的安全性规定如下:“ZigBee安全架构提供的安全级别取决于对称密钥的安全保存,取决于所使用的保护机制。以及密码机制和相关安全策略的正确实现。对安全架构的信任最终会减少到对密钥材料的安全初始化和安装的信任,以及对密钥处理和存储的信任。“。(ZigBee Alliance 2008,第420页)。
如前所述,ZigBee安全性是基于这样的假设:密钥是安全存储的,设备预先装载对称密钥,因此它们永远不会未经加密而传输。但这一政策也有例外。如果非预先配置的设备加入网络,则可以不受保护地发送单个密钥并启用加密通信。这种一次性传输不受保护的密钥会导致短时间的可利用性,攻击者可以在此时间框架内嗅探密钥。由于安全依赖于加密密钥的安全保存,因此,这种密钥截获将导致严重的安全威胁,并危及整个网络的安全。即使时间似乎很窄,攻击者也可以使用干扰技术来欺骗用户启动工厂重置或其他重新连接的方式,从而重新建立攻击时间框架。另一个例外是由于某些类型的设备,如电灯开关或温度传感器的低成本性质。由于它们的能力有限,不能假定硬件是防篡改的.。因此,如果攻击者能够对此类设备进行物理访问,则可能会访问秘密密钥材料和其他特权信息,以及访问安全软件和硬件。(ZigBee Alliance 2008,第420页)。
ZigBee应用程序简介。
ZigBee网络上设备之间通信的关键是应用程序配置文件的使用。应用程序配置文件是消息、消息格式和处理操作的协议,使开发人员能够使用驻留在不同设备上的应用程序实体创建可互操作的分布式应用程序。这些应用程序配置文件使应用程序能够发送命令、请求数据以及处理命令和请求。由于ZigBee设备可能是一个多用途的设备,因此会创建不同的配置文件,以允许不同供应商的设备使用这些预定义的配置文件进行适当的通信。ZigBee家庭自动化公共应用程序配置文件(HAPAP)–一个配置文件的示例–将是家庭自动化配置文件。此ZigBee配置文件允许一系列设备类型交换控制消息,以形成无线家庭自动化应用程序。这些设备被设计用来交换众所周知的信息来实现控制,例如打开或关闭灯,向照明控制器发送光传感器测量,或者如果占位传感器检测到移动,则发送警报消息。这意味着,如果制造商希望设备与其他制造商的其他认证设备兼容,则设备必须实现此配置文件的标准接口和实践。为了提供这种互操作性,所有ZigBee家庭自动化设备都应该实现所谓的启动属性集(SAS)。从安全的角度来看,以下两个属性特别重要:
默认信任中心链接密钥。
0×5A 0×69 0×67 0×42 0×65 0×65 0×41 0×6C 0×6C 0×69 0×61 0×6E 0×63 0×65 0×30 0×39。
注意:链接键以Littleendian格式列出。
默认链接键连接。
0×01(真)。
此标志允许在启动时使用默认链接键联接作为后备情况。
默认TC链接密钥“ZigBeeAlliance09”的使用给网络密钥的保密性带来了很高的风险。家庭自动化公共应用程序配置文件声明:“在连接设备未知或没有与其关联的特定授权的情况下,应使用默认TC链接密钥传输当前网络密钥。这就允许在这样的情况下,也可以使用与设备特别相关的可选预配置的链接密钥。“。(ZigBee Alliance 2013,第44页)由于如上所述,ZigBee的安全高度依赖密钥材料的保密,因此依赖加密密钥的安全初始化和传输,因此必须将这种默认回退机制视为关键风险。如果攻击者能够使用默认的TC链接密钥嗅探设备连接,活动网络密钥就会受到破坏,整个网络通信的机密性也会被视为已泄露。这可能是一个较低的风险,如果只使用灯泡,但由于暖通空调系统和门锁也使用家庭自动化配置文件,这一配置文件要求的影响大大增加。
ZigBee轻型链路剖面图(ZLL)。
ZigBeeLightLink(ZLL)配置文件在柜台外,消费者照明应用领域中定位设备和功能。(ZigBee Alliance 2012,第1页)ZLL中的设备应使用ZigBee网络层安全。在经典的ZigBee调试中,一个非ZLL设备被连接到一个没有信任中心的ZLL网络中,在认证时使用一个预先安装的链接密钥来保护网络密钥的传输。ZLL预装的链接密钥是所有认证的ZLL设备共享的秘密.。它将只分发给经认证的制造商,并受保管合同的约束。此外,如果APS消息的解密与上述密钥一起失败,ZLL设备将尝试使用已知的默认信任中心链接密钥来解码APS消息。与HAPAP一样,ZLL配置文件还指定“ZigBeeAlliance09”作为SAS中默认的信任中心链接键,并要求支持不安全的连接作为后盾。这也导致了相同的脆弱的初始密钥交换。即使制造商实现了安全密钥交换,并分发了适当的密钥材料,外部攻击者也有可能通过选择性干扰干扰网络连接,然后等待不安全的连接来访问交换的密钥材料。
由于每个连接到ZLL网络的ZLL设备都应使用ZLL主密钥来导出活动网络密钥,因此,掌握ZLL主密钥的知识使攻击者能够截获密钥交换并获取当前的活动网络密钥。这样攻击者就可以控制ZigBee网络中的所有设备。由于ZLL主密钥据推测已经在互联网上泄露(例如在reddit和一些在线论坛上),因此ZLL设备的安全性必须被视为受到了损害。除了泄露的密钥,ZLL设备还支持一个名为“Touchlink调试”的功能,它允许设备与控制器配对。由于使用默认和公开的TC链接密钥,设备可以被“窃取”。测试表明,业余无线电硬件使用普通偶极子(RasperryPI扩展板)天线已经允许Touchlink委员会从几米之外,而出于安全原因,这应该只能在附近工作。使用专业的无线电设备将使这样一个成功的设备接管的距离更远。
一种新的ZigBee安全测试工具。
由于ZigBee提供了一些非常具体的安全服务和攻击向量,因此开发了一个工具,使安全研究人员、测试人员和开发人员能够检查他们产品的安全服务的配置和实现。与ZigBee测试的其他工具不同,它使测试人员能够检查加密的网络,并自动执行ZigBee特定的测试,例如网络离开/连接、重置到工厂默认值或搜索不安全的密钥传输。SecBee是基于替罪羊-无线电和杀手蜜蜂,但大大增强了功能,并修正了这些工具的一些限制。
现实世界的评估和查明的脆弱性。
为了验证ZigBee安全在现实世界设备中的实施情况,使用新开发的ZigBee安全测试工具SecBee对家庭自动化系统、智能照明解决方案和ZigBee启用门锁进行了评估。对每个评估设备的实际安全性分析表明,这些解决方案是为易于设置和使用而设计的,但缺乏安全配置的可能性,并且执行了允许外部各方嗅探交换网络密钥的脆弱设备配对过程。即使利用该漏洞的时间非常有限,让用户发挥作用也很容易避免这种情况。ZigBee通讯可以很容易被干扰。由于ZigBee是为低功率通信和节能而设计的,这可以很容易地通过在目标ZigBee信道上发送噪声来实现,从而防止通信的成功。典型的用户会注意到连接丢失,因此只需执行重新配对过程来解决此问题。针对用户级别,攻击者可以强制执行重解析并嗅探传输的网络密钥。这将使攻击者能够完全控制系统,因为解决方案的安全性完全依赖于此密钥的保密。此外,被测试的家庭自动化系统无法重置或更改应用的网络密钥,因此,即使用户注意到网络中不需要的行为,也绝对不可能将入侵者锁定在外。此外,在11个月的时间框架内也无法确定自动钥匙轮换。智能照明解决方案也容易受到来自任何外部方的设备接管。在不知道活动密钥的情况下,有可能窃取灯泡并将它们连接到一个假网络中。攻击者只需向灯泡发送“重置到工厂默认”命令,然后等待灯泡搜索ZigBee网络加入。灯泡将连接到第一个可用的网络,而不需要任何用户的进一步交互。无需按下按钮或类似的按钮。灯泡总是发送信标请求寻找一个新的网络加入。
此外。应该注意的是,不推荐使用无线通信系统来进行安全应用,例如监视,因为简单的干扰很容易干扰通信,而且没有经过测试的设备实现像心跳消息这样的功能来向中心设备提供有关实际情况的信息。现状。随着无线电硬件的价格越来越低,硬件是公开可用的,并且存在着提供在无线网络上执行攻击所需的必要功能的开源工具,这种攻击场景变得越来越有可能发生。第一次真实世界事件将公之于众只是时间问题。
结语。
ZigBee标准提供的安全特性可以被认为是非常强大和健壮的。ZigBee加密基于著名的AES数据加密和数据认证算法。安全性取决于加密密钥的保密性以及加密密钥的安全初始化和分发。ZigBee家庭自动化系统的主要风险是实施失败和不足。在ZigBee无线网络中实现安全特性的主要限制因素还有有限的资源。节点以电池供电为主,计算能力和内存容量有限。因此,安全必须满足执行方面的一些先决条件,这些先决条件如下:
设备篡改:ZigBee是针对低成本的应用程序,节点硬件可能无法抵抗篡改。如果入侵者从没有防篡改措施的操作网络中获取节点,则可以简单地从设备内存中获取实际密钥。如果检测到篡改,则抗篡改节点可以删除包括安全密钥在内的敏感信息。
密钥传输:不应使用默认的TC链接密钥,因为此密钥被视为公共知识,并提供与未加密密钥传输相同级别的安全性。
密钥设置:密钥建立期间使用的主密钥应通过带外通道分发.。例如,可以将带有预配置主键的贴纸附加到设备上,并在设备安装期间由用户输入。
密钥旋转:通信的安全性取决于网络密钥和链路密钥的保密性。网络密钥应定期更换。
密钥管理应以在有意义的时间内或在一定数量的消息之后更改网络密钥的形式进行。否则,已知的明文或对AES安全的其他攻击可能是可能的。
用灯泡甚至门锁进行的测试表明,测试设备的供应商实现了所需认证的最小功能,包括默认的TC后备键。没有实现其他选项,也没有提供给最终用户。
另外,正如ZLL配置文件所要求的那样,也依赖于仅分布在有限的人群中的密钥的保密性,这是一种已知已失败的安全方法。特拉维斯·古斯斯皮尔展示了对ZigBee硬件的成功攻击,以提取密钥(固特异2009,第1F页),因此如果没有适当的硬件,密钥保密不应成为ZigBee产品安全架构的基础。