该 bug 导致了弱配对,使得远程攻击者有机会获得设备使用的加密密钥,并恢复在“安全”蓝牙连接中配对的两个设备之间发送的数据。
以色列理工学院的科学家 Lior Neumann 和 Eli Biham 发现了该漏洞:
其追溯编号为 CVE-2018-5383,可知蓝牙标准的‘安全简单配对’过程和低功耗蓝牙(Bluetooth LE)的‘安全连接’配对过程都受到了影响。
计算机应急响应小组(CERT / CC)昨晚发布了一份安全通报,其中包含了针对该漏洞的如下说明:
蓝牙利用基于椭圆曲线 Diffie-Hellman(ECDH)的密钥交换配对机制,实现设备之间的加密通信。ECDH 的密钥对,由私钥和公钥组成。且需交换公钥,以产生共享配对密钥。
此外,设备还必须统一所使用的椭圆曲线参数。然而之前涉及‘无效曲线攻击’的工作表明,ECDH 参数在用于计算结果和共享密钥之前,并不总会经过验证。
这样可以减少攻击者获取受攻击设备私钥的工作量 —— 如果在计算被分享的密钥前,并未部署验证所有参数的话。
在某些实施方法中,椭圆曲线参数并非全部由加密算法实现验证。
这使得无线范围内的远程攻击者们,可以通过注入无效的公钥,从而高概率地确定会话密钥。然后这些攻击者可以被动地拦截和解密所有设备信息,或者伪造和注入恶意消息。
苹果、博通、英特尔和高通公司,已经确认蓝牙实施和操作系统驱动程序层面都受到了影响。
万幸的是,前三家公司已经发布了针对该漏洞的修补程序。至于高通,该公司发言人在一封致 Bleeping Computer 的电子邮件中称,他们也已经部署了修复程序。
CERT / CC 专家尚未确定 Android / Google 设备、或者 Linux 内核是否也受到了影响。不过微软表示,自家设备并未受到本次 Crypto Bug 的影响。
负责监督蓝牙标准发展的 SIG 也发表了一份声明:
为了使攻击成功,攻击设备需要处于两个易受攻击的蓝牙设备的无线范围内。如果只有一方设备存在漏洞,则攻击不会得逞。
此外攻击设备需要通过阻止每一次的传输、向发送设备确认,然后在窄时间窗口内将恶意数据包注入接收设备,才能拦截公钥交换。
SIG 表示,该组织已经更新了官方的蓝牙规范,要求所有配对设备验证用于基于密钥的加密蓝牙连接的所有参数,即便当前暂无野外攻击的报道。
至于 CVE-2018-5383 的补丁,将通过操作系统或驱动程序的更新(面向台式机、笔记本电脑、智能手机),或者通过固件来实现(面向物联网 / 智能设备)。