我发现了 Acer 无线键盘 SK-9662(FCC ID: H4IKB9662)无线协议中使用的弱加密。这种弱加密使攻击者能够轻松监控和记录按键,并注入任意按键。
该键盘使用德州仪器 CC2545 芯片,通过 Nordic Semiconductors 开发的 Enhanced Shockburst 协议传输数据。载荷由 12 个字节组成,第一个字节似乎是常量值(在我的测试中为 0x48)。第二个字节是修饰键字节(ctrl、shift 等),第三和第四个字节是消费类按键和电源控制按键。第五到第十个字节是按键代码。第十一个字节作为校验和,第十二个字节是用于加密的随机数。
载荷加密首先从无线电噪声中生成一个随机字节。固件中存储的另一个字节(keyvalue)用作 AES 的密钥。密钥和随机字节都被零填充到 128 位,并发送到 CC2545 上的 AES 协处理器。AES 协处理器配置为使用空 IV 的 CBC 模式。AES 协处理器的输出将称为 xorkey。载荷的前十一个字节与 xorkey 中对应的字节进行异或。随机字节是载荷的最后一个字节,以便接收方解密载荷。
载荷的解密与加密类似。载荷的第十二个字节(随机值)与 keyvalue(接收方事先已知)一起用于生成 xorkey,并与加密载荷进行异或。
由于仅使用一个字节的 AES 密钥,这种加密方案很容易被绕过。由于密钥仅限于 256 个可能的值,因此可以在几秒钟内轻松暴力破解该密钥。此仓库中的 python 脚本演示了对捕获的加密数据包进行暴力破解解密。
要利用此漏洞,攻击者必须能够捕获 2.4 GHz 无线电流量。这要求物理上非常接近目标键盘。然而,一旦捕获到单个数据包,就可以在几秒钟内暴力破解 AES 密钥,并实现实时键盘记录和按键注入,从而访问受害者的计算机。一个流行的无线黑客工具 jackit(https://github.com/insecurityofthings/jackit)可以扩展,以支持在廉价的 2.4 GHz USB 加密狗上嗅探附近的 SK-9662 键盘并注入按键。
SK-9662 键盘是过时产品。该键盘不存在更新机制,用户应停止使用该易受攻击的键盘。Acer 建议更换为更新的键盘产品。