
从历史上看,大多数员工都使用Logitech无线键盘和鼠标。 浣熊安全小组再次输入密码,我们想知道:绕过无线键盘的安全机制有多困难? 该研究揭示了允许访问输入数据的体系结构缺陷和软件错误。 根据削减-我们做了什么。
为什么选择罗技?
我们认为,Logitech输入设备属于最高质量和最方便的设备。 我们拥有的大多数设备都基于Logitech Unifying解决方案-这是一个通用的加密狗接收器,最多可以连接6个设备。 所有Logitech Unifying兼容设备均标有相应徽标。 一个易于使用的应用程序使您可以控制无线键盘与计算机的连接。 例如, 此处详细介绍了将键盘连接到Logitech dongle-receiver的过程以及该技术本身。

罗技统一加密狗接收器
键盘可以成为攻击者的信息来源。 考虑到可能的威胁,罗技(Logitech)负责安全性-它在无线键盘的无线电通道中使用AES128加密算法。 攻击者在这种情况下可以访问的第一个想法是,在链接过程中通过空中传输关键信息时会对其进行拦截。 毕竟,如果您有按键,则可以截获键盘无线电信号并将其解密。 但是,用户很少(甚至从来没有)必须将键盘与Unifying过程相关联,并且带有扫描收音机的黑客将不得不等待很长时间。 此外,拦截程序本身并非一切都那么简单。 在2019年6月的最新研究中,安全专家Marcus Mengs在网络上发布了一条消息 ,内容涉及发现Logitech USB加密狗的较旧固件中的漏洞。 它允许具有物理访问设备权限的攻击者获取无线电信道加密密钥并注入击键(CVE-2019-13054)。
我们将讨论来自Nordic Semiconductor的Logitech SoC NRF24加密狗安全性研究。 让我们从无线电频道本身开始。
如何“广播”无线电频道中的数据
为了对无线电信号进行时频分析,我们在频谱分析仪模式下使用了基于Blade-RF设备的SDR接收器(也可以在此处阅读)。

SDR Blade-RF设备
我们还考虑了以中频记录无线电信号正交信号,然后使用数字信号处理方法对其进行分析的可能性。
俄罗斯联邦国家无线电频率委员会允许使用2400–2483.5 MHz频率范围内的短距离设备。 这是一个“人口众多”的区域,您无法满足任何条件:Wi-Fi,蓝牙,各种遥控器,安全系统,无线检测器,带键盘的鼠标和其他无线数字设备。

2.4 GHz频带频谱
该范围内的干扰环境相当复杂。 尽管如此,罗技仍然可以通过结合使用NRF24收发器中的增强型ShockBurst协议和频率自适应算法来提供可靠,稳定的接收。
根据NRF24北欧半导体规范的定义,该范围内的信道位于整数MHz位置-频率网格中共有84个信道。 当然,Logitech同时使用的频道数较少。 我们已经确定使用至少四个。 由于所用信号频谱分析仪的视野有限,因此无法确定所用频率位置的准确列表,但这不是必需的。 使用两位频率调制GFSK以1 Mbaud的符号速率,以突发模式(通过短时打开发送器)从键盘到加密狗接收器发送信息:

临时表示键盘无线电信号
接收器使用接收的相关原理,因此在发送的数据包中存在前同步码和地址部分。 没有应用干扰编码;数据主体使用AES128算法加密。
通常,Logitech无线键盘的无线电接口可以被表征为具有统计复用和频率自适应功能的完全异步。 这意味着键盘发送器切换通道以发送每个新数据包。 接收器既不知道发送时间也不知道频道,仅知道它们的列表。 借助绕过和收听频率的公认算法以及增强的ShockBurst确认机制,接收器和发送器在通道中相遇。 我们没有调查频道列表是否为静态。 它的变化可能是由于频率自适应算法引起的。 在使用该范围的频率资源时,可能会猜到与跳频方法(工作频率的伪随机调整)相近的情况。
因此,在时间-频率不确定的条件下,为了保证接收到所有键盘信号,攻击者将需要不断地监视84个位置范围内的整个频率网格,这需要相当长的时间。 从这里可以清楚地看出,为什么将源中通过USB(CVE-2019-13054)进行密钥提取的漏洞定位为注入击键的能力,而不是让攻击者访问从键盘输入的数据。 显然,无线键盘的无线电接口相当复杂,并且在2.4 GHz频带的困难干扰条件下,可在Logitech设备之间提供可靠的无线电通信。
从内部看问题
为了进行研究,我们选择了Logitech K330键盘和Logitech Unifying加密狗之一。

罗技K330
让我们看看键盘内部。 评估板上有趣的元素是Nordic Semiconductor的SoR NRF24芯片。

Logitech K330无线键盘上的SoC NRF24
固件位于内部存储器中,读取和调试机制已关闭。 不幸的是,该固件尚未在开源中发布。 因此,我们决定从另一角度解决问题-研究Logitech加密狗接收器的内部内容。
加密狗接收器的“内部世界”非常有趣。 加密狗易于拆卸,在发行中带有内置的USB控制器,可搭载熟悉的NRF24,并且可以从USB端重新编程,也可以由编程人员直接对其进行重新编程。

罗技不带外壳的加密狗
由于存在使用固件更新工具应用程序的常规固件更新机制(您可以从中提取更新的固件版本),因此无需在加密狗中搜索固件。
完成的操作:从固件更新工具应用程序的主体中提取了固件RQR_012_005_00028.bin。 为了检查其完整性,将加密狗控制器通过循环连接到ChipProg-48编程器 :

Logitech加密狗电缆到ChipProg 48编程器
为了控制固件的完整性,已将其成功放置在控制器的内存中并可以正常工作,键盘和鼠标通过Logitech Unifying连接到了加密狗。 由于没有针对固件的密码保护机制,因此可以使用标准更新机制来填写修改后的固件。 出于研究目的,我们使用了与程序员的物理连接,因为这种方式的调试要快得多。
研究固件并攻击用户输入
NRF24芯片是基于传统哈佛架构中的Intel 8051计算核心设计的。 对于内核,收发器充当外围设备,并作为一组寄存器位于地址空间中。 芯片文档和源代码示例可在Internet上找到,因此拆卸固件并不困难。 在逆向工程过程中,我们本地化了以下功能:从无线通道接收击键数据并将其转换为HID格式,以通过USB接口传输到主机。 在空闲内存地址中,放置了一个注入代码,其中包括用于拦截控制,保存和还原原始执行上下文的工具,以及一个功能代码。
从无线信道接收的用于按下或释放键的数据包被解密,转换为标准HID报告,并像普通键盘一样发送到USB接口。 作为研究的一部分,对我们来说最有趣的部分是HID报告的一部分,其中包含修饰符标志的字节和带有按键代码的6个字节的数组(有关参考,有关HID的信息在此处 )。
HID报告结构:
// Keyboard HID report structure. // See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december) // "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model" typedef struct{ uint8_t Modifiers; uint8_t Reserved; uint8_t KeyCode[6]; }HidKbdReport_t;
在将HID结构传输到主机之前,注入的代码将取得控制权,将8个字节的本地HID数据复制到内存中,然后以清晰的形式将其发送到边无线信道。 在代码中,它看起来像这样:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~> // Profiling have shown time execution ~1.88 mSec this block of code SaveRfState(); // save transceiver state RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO CE_PULSE(); // Toggle radio CE signal to start transmission RestoreRfState(); // restore original transceiver state //~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
旁信道以我们设定的频率进行组织,具有一定的处理速度和数据包结构特征。
NRF24芯片中收发器的操作基于状态图,增强型ShockBurst协议被有机地输入到该状态图中。 我们发现,在将HID数据传输到主机USB接口之前,收发器处于IDLE状态。 这使得可以安全地重新配置以在侧通道中工作。 注入的代码截取控件,完整保存原始收发器配置,然后将其传输到边信道上的新传输模式。 在这种模式下,增强型ShockBurst确认机制将关闭,HID数据将以明文形式传输到空中。 副信道中数据包的结构如下图所示,波形图是在解调之后和恢复时钟数据同步之前获得的。 选择地址值是为了方便视觉识别包。

突发突发解调信号
数据包到边信道的传输完成后,注入的代码将恢复收发器的状态。 现在,他再次准备好在原始固件的环境下以正常模式工作。
在频率和时频区域中,副信道如下图所示:

副信道的频谱和时频表示
为了测试带有修改后固件的NRF24芯片的运行情况,我们组装了一个支架,该支架包括一个带有修改后固件的Logitech软件狗,一个无线键盘和一个接收器,该接收器是在带有NRF24芯片的中文模块的基础上组装的。

罗技无线键盘收音机拦截图

基于NRF24的模块
在将其连接到Logitech加密狗之后,在正常键盘操作期间的支架上,我们观察到辅助无线电通道中击键时打开数据的传输以及主要无线电接口中加密数据的常规传输。 因此,我们能够直接截获用户的键盘输入:

键盘拦截结果
注入的代码在加密狗固件的操作中引入了一些延迟。 但是,它们太小了,用户看不到。
可以想象,任何与Unifying技术兼容的Logitech键盘都可用于这种攻击媒介。 由于攻击的目标是大多数Logitech键盘随附的Unifying接收器,因此它不取决于特定的键盘型号。
结论
研究结果表明,攻击者可以使用经过考虑的方案:如果黑客用Logitech无线键盘的加密狗接收器代替受害者,则他将能够找到受害者帐户的密码,并承担所有后续后果。 不要忘记,也可以注入击键,这意味着在受害者的计算机上执行任意代码并不困难。
如果攻击者可以通过USB远程修改任何Logitech软件狗的固件,该怎么办? 然后,您可以从附近的加密狗添加中继器网络,并增加爬电距离。 尽管“财务安全”的攻击者拥有具有高选择性系统的现代无线电接收,频率调整时间短且天线方向狭窄的灵敏无线电,但它们仍将使您即使在附近的建筑物中也可以“监听”键盘输入和按键。

专业无线电设备
由于Logitech键盘无线数据通道受到了很好的保护,因此发现的攻击媒介需要对接收者进行物理访问,这极大地限制了攻击者。 在这种情况下,唯一的保护选项可能是对接收器固件使用加密保护机制,例如,在接收器侧验证已下载固件的签名。 但是,不幸的是,NRF24不支持此功能,因此无法在当前设备架构中实施保护。 因此,请保护您的加密狗,因为所描述的攻击版本需要对其进行物理访问。

Raccoon Security是位于火山科学技术中心的专家组成的特殊团队,其领域包括实用的信息安全性,密码学,电路,逆向工程和低级软件的创建。