一位安全研究人员剖析了 LoRaWAN 技术,该技术得到了 Orange 和 Bouygues Télécom 的特别支持。他发现了各个层面的大量缺陷:协议、软件、硬件。
未来的物联网前景光明,将特别依赖低速无线电通信,使得数公里距离内的多个传感器互连成为可能,同时尽可能限制能源消耗。如今有两种技术相互竞争:法国公司 Sigfox 的技术和 LoRa(远程)联盟的技术,该联盟的成员包括 Orange 和 Bouygues Télécom。但这些技术真的安全吗?
去年二月,Digital Security 的安全研究员 Renaud Lifchitz 调查了西格福克斯,在此过程中发现一整套或多或少的关键缺陷,例如消息拦截或身份盗窃。值此大会召开之际硬件.io9 月 20 日至 21 日在海牙举行的会议上,研究人员提出了第二项研究,这次的重点是依赖 LoRa 调制技术的 LoRaWAN 网络。
Renaud Lifchitz 讨论 LoRaWAN 加密攻击pic.twitter.com/yEsi5rCZdN
—hardwear.io (@hardwear_io)2016 年 9 月 22 日
这一分析再次表明,我们的物联网安全水平还远未达到令人满意的水平,至少对于某些用途而言是这样。与 Sigfox 一样,可以拦截消息并冒充构成 LoRaWAN 网络的设备。
然而,从纸面上看,故事的开头很顺利。事实上,LoRaWAN 技术默认对来自连接到应用程序服务器的对象的所有消息进行端到端加密。所有消息也在连接的对象和 LoRaWAN 网络服务器之间进行签名。这些操作依赖于两个不同的密钥:用于加密的 AppSKey 和用于签名的 NwkSKey。
不幸的是,执行这种加密的方式并不是最佳的,并且为部分或全部解密攻击打开了大门。与人们在阅读时可能相信的相反联合体的某些介绍文件,消息未采用 128 位 AES 加密。该算法用于生成一系列密钥(“密钥流”)。然后,它们将以 XOR(“异或”)形式对消息的每个块进行编码,这是一种超经典的数学运算。
简单的异或编码
第一个结果:加密消息的大小与未加密消息的大小完全相同。“因此,可以根据消息的长度来区分消息,如果消息非常重复,这会很有用””,雷诺·利夫奇茨解释道。
每次对象连接到网络时,该密钥流不仅会重置,而且还可以使其与先前通信会话的密钥流相同。“然后我们可以重播已经发送的消息,”研究人员继续说道。但还有更好的。如果我们捕获遵循相同密钥流的两个异或消息并将它们异或在一起,我们就能够部分解密它们(我们以纯文本形式获得它们的差异)。
另一个攻击向量:如果我们知道消息的内容,就有可能恢复密钥流。通过重放此密钥流,我们可以破译后续消息。所有这些都相当乏味,但对于坚定的攻击者来说非常有用。
盗窃和内存转储
除了这些协议弱点(这些弱点很重要,因为它们很难纠正)之外,研究人员还发现了软件和硬件实现中的缺陷。因此,某些网关未经身份验证,很容易冒充它们。“每个网关都会定期向服务器发送一个名为 Gateway EUI 的标识符号,这很容易知道。您所需要的只是一个发送相同号码但更频繁的网关来替换真正的网关””,雷诺·利夫奇茨强调道。
一些运营商设置的网络服务器也可以直接在互联网上访问。要查看这一点,只需在黑客搜索引擎 Shodan 上进行搜索即可。
在连接对象方面,Renaud Lifchitz 估计大约 50% 的设备拥有内存不受保护的 LoRa 芯片。“只需连接到串行端口或调试端口即可恢复所有内存,包括加密密钥”,他解释道。如果这些端口不可用,通常可以通过测量位于 LoRa 芯片旁边的微控制器的功耗变化来提取密钥。“这些通常是 Arduino 兼容平台,其中 AES 加密以某种简单的方式实现,允许进行相关计算。但这仍然需要数学技能”,研究人员强调。
为了限制风险,幸运的是有解决方案:系统地发送固定大小和二进制的消息,使用防篡改硬件平台(安全元素)来存储和保护连接对象上的加密密钥,限制频谱的使用,为不同的对象选择不同的密钥。每个对象等希望供应商能够在 LoRaWAN 网络在公众中广泛普及之前实施这些好的建议。