语音助手可以被各种恶意语音命令操纵,但现有的攻击需要附近的扬声器来播放攻击命令。在本文中展示了即使在没有扬声器可用的情况下,也可以利用电子设备内部的电容器来播放恶意命令,即将电容器转换为扬声器,并将其称为 CapSpeaker。本质上,由于逆压电效应,电容器会发出声学噪声,即改变电容器两端的电压会使其振动,从而发出声学噪声。强制电容器播放恶意语音命令具有挑战性,因为:
(1) 作为扬声器的电容器的频率响应在可听见的声音范围内表现不佳,
(2) 无法直接控制电容器两端的电压来操纵它们的发出声音。
为了克服这些挑战,使用基于 PWM 的调制方案将恶意音频嵌入到高频载波上,例如 20 kHz 以上,并且创建了可以在电容器上感应正确电压的恶意软件,以便 CapSpeaker 播放所选的恶意命令。对 2 个 LED 灯(一个修改过的一个和一个商业的)和 5 个受害设备(iPhone 4s、iPad mini 5、Huawei Nova 5i 等)进行了广泛的实验。评估结果表明,CapSpeaker 在最远 10.5 厘米的距离是可行的,触发智能手机接收语音命令,例如“开门”。具体工具已开源:https://github.com/USSLab/CapSpeaker
0x01 简介
电容器是电子设备中无处不在且不可或缺的组件,因为用于稳压、滤波等。特别是多层陶瓷 (MLC) 电容器由于其高能量密度和低成本而占据主导地位,据报道,每年消耗的 MLC 电容器数量约为一万亿 (1012) 个。众所周知,MLC 电容器会产生烦人但良性的高音噪音,但没有人通过此类电容器产生声音。在本文中研究了利用带有内置电容器的商品电子设备向 Apple Siri、小米Art音箱等语音助手注入恶意语音命令的可行性。
CapSpeaker攻击可以通过转换非电子设备(例如灯)来注入语音命令。旨在向扬声器发出声音。一个问题是“电容器如何产生声音?”潜在的物理原理表明,由于陶瓷材料的逆压电效应,电容器会发出声学噪声,即电容器两端的电压导致电容器以与电压信号相同的频率振动。因此,电容器可以以与扬声器类似的方式产生声音,即将电流转换为声音信号。
为了产生恶意语音命令,设想在制造阶段,攻击者可以将恶意软件安装在 LED 灯中,如下图所示。该程序可以是普通应用程序的修改版本,例如,简单的亮度控制应用程序,具有在灯电路内的电容器上感应“正确”电压的能力,并使电容器产生嵌入“开门”的恶意声音。因此,CapSpeaker 可以机会性地触发智能手机内附近的语音助手来执行意外命令。
CapSpeaker 的设计充满希望但也充满挑战,它面临着两个挑战。 1)如何播放人声?人声的频率主要在 4 kHz 以下,但电容器在 4 kHz 以下的频率响应太低而无法发出声音。电容器的峰值频率响应范围在 10 kHz 和 90 kHz 之间,在此范围内电容器可以产生很大的声音,但超出了人声的主要范围。 2)如何连续控制电容器两端的电压以产生所需的声音?商业设备通常封装良好,没有访问控制接口来与电容器交互。
为了应对上述挑战,首先进行实验和模拟,以分析决定产生声音强度的因素。实验涉及与由信号发生器控制的开关连接的 MLC 电容器,由此可以控制电容器两端电压的频率和幅度。发现 MLC 电容器的声音强度和频率直接由电容器两端电压变化的幅度和频率决定,但几乎不受电容或电容器组老化类型的影响。使用 COMSOL对焊接在印刷电路板 (PCB) 上的 MLC 电容器进行的仿真表明,PCB 尺寸和材料、电容器位置和数量也会影响产生的声音强度。因此,给定一个电子设备,攻击者应该能够通过精心制作的电压信号产生所需的声音。
尽管低频响应低于 4 kHz,但为了通过 CapSpeaker 注入人声,将恶意语音命令调制在高频带载波上,例如 ≥ 20 kHz,其中电容器具有峰值频率响应并产生响亮的声音。这种解决方案的好处是CapSpeaker 可以产生听不见的语音命令,但挑战在于让受害设备解调语音并提取嵌入式命令。通过利用麦克风 的非线性,设想可以解调和提取调制命令。为了使攻击可行,必须通过平衡电容器的频率响应和麦克风的峰值非线性之间的权衡来仔细选择载波频率,将载波频率的选择建模为优化问题。由于无法直接改变电容器两端的电压,设计了一种程序级控制机制来间接操纵电压,即依靠高级编程指令来控制设备的外围负载。此外发现由于硬件限制,不可能通过幅度调制连续调制电压电平,采用脉冲宽度调制 (PWM) 来控制平均电压,从而连续控制声音的强度。因此,通过简单地在电子设备上运行恶意软件来设法产生恶意语音命令。
0x02 MLC电容的声音原理
2.1 电容器如何产生声音
2.1.1 扬声器如何发声?
从根本上说,扬声器将输入的电信号转换为机械振动以产生声音。大多数商用设备,例如智能手机、笔记本电脑和智能扬声器,都使用电动扬声器,主要由振膜、音圈、永磁体和支架组成,如下图a所示。当电流通过音圈时,会产生与永磁体的磁场相互作用的磁场,从稳定的永磁体向自由运动的音圈施加安培力。因此,流经音圈的交流电流将驱动振膜振动并将运动转换为声压级 (SPL)。假设磁铁产生的磁感应强度为𝐵,线圈中流动的电流为𝐼,线圈的匝数为𝑁,线圈的周长为𝐿,电流的直流和交流分量为𝐼𝐷𝐶和𝐼𝐴𝐶 分别。那么,施加在线圈上的安培力可以表示为:
只有交流分量引起线圈振动,振动频率𝑓与施加在音圈上的电流信号的频率𝑓相同,产生频率为𝑓的声音。
2.1.2 电容器如何产生声音
笔记本电脑、智能手机、LED灯等电子设备都配备了AC/DC或DC/DC电力电子元件,不可避免地会产生纹波信号等高频干扰。电容器在过滤不必要的信号和通过减轻电压过冲或下冲来稳定电压供应方面发挥着重要作用。随着当今电子设备高度紧凑的趋势,MLC电容器由于其低成本和小体积而在电子设备中占据主导地位。
MLC 逆压电:MLC电容器是使用陶瓷材料作为电介质的定值电容器。如上图b所示,MLC 电容器由多个交替的陶瓷和金属层组成,分别充当介电层和电极。陶瓷具有逆压电特性,即外加电场可以产生机械应变力。不失一般性,将机械应变力表示为 𝐹 = 𝑝𝐸,其中 𝑝 是压电常数,𝐸 是电场, 分别。 𝐸 可以通过 𝐸 = 𝑈 /𝑑 计算,其中 𝑑 是两个电极之间的距离,𝑈 是电容器两端的电压。 𝑈包含直流分量𝑈𝐷𝐶和交流分量,即𝑈𝐴𝐶𝑐𝑜𝑠2𝜋𝑓𝑡,因此,MLC电容器上推导出的机械应变力可以表示为:
类似于 Equ 表示的安培力的公式,MLC电容器中的机械应变力𝐹包含电压信号的频率𝑓分量,它驱动MLC电容器以频率𝑓振动。此外,𝐹与𝑈𝐴𝐶成正比。鉴于电容器两端的电压具有单一频率有 Δ𝑉 = 2𝑈𝐴𝐶,其中 Δ𝑉 是电容器两端电压的峰峰值幅度,即最高电压和最低电压之间的差。
评论:由于逆压电效应,MLC 电容器可以产生声音。声音的频率取决于施加在电容器上的电压信号的频率,其强度由电压的峰峰值幅度、压电常数𝑝和印刷电路板 (PCB) 布局等决定。将在下一节详细阐述这些影响因素。
2.2 MLC电容声音的影响因素
在商业产品中,MLC 电容器被焊接到电路板上。除了压电常数之外,产生的声音还会受到 PCB 布局、MLC 电容器和施加的电压信号的影响。为了量化这些影响,在 COMSOL 软件中进行了仿真并进行了实际实验。经验证的因素包括电压频率、PCB 尺寸、MLC 电容器位置、MLC 电容器数量和 PCB 材料,如下表所示。
2.2.1 COMSOL 仿真
首先,利用流行的基于物理仿真工具的仿真软件 COMSOL 研究了难以通过实验控制的因素,这些因素包括 PCB 尺寸、电容器位置、电容器数量和 PCB 材料。
设计了一个有限元模型来模拟焊接在 PCB 上的电容器的场景,如下图所示。MLC 电容器,由中间的 0805 封装尺寸的立方体表示,被包裹起来使用高铅锡合金焊点焊接在 PCB 上的两块铜板之间。所有这些组件都被一个空气区域包围,该区域是一个边长为 40 厘米的立方体。
COMSOL 内部材料库支持这些材料和设置。对于每个模拟用电压激发电场,从而导致压电陶瓷的振动。压电陶瓷的振动通过焊点驱动PCB的振动。这些固体物质会推动周围的空气作为结构声学的边界,最终产生声音。通过使用选项卡中列出的默认设置参数测量距离电路板 5 cm 处的声场分布。电容电解液为锆钛酸铅(PZT-4),输入电流频率为30 kHz,PCB尺寸为4×4 cm,电容位于电路板中心,PCB材料为玻璃棉板。
2.2.2 真实世界实验
除了 COMSOL 仿真之外,还对具有各种电容值、封装、电压和输入信号频率的 MLC 电容器进行了实验。如下图所示,实验装置由带有 20 V 电源适配器、金属氧化物半导体场效应晶体管 (MOSFET) 和设置为 10 Ω 的滑动变阻器的电路组成。 MOSFET 作为一个开关来控制电容器两端的电压以产生低/高电压电平,RIGOL DG811 [5] 信号发生器用于以方波作为控制信号来控制 MOSFET。为了验证 MLC 电容器的频率响应,以 88 Hz 的步长从 0 Hz 扫描到 96 kHz,并使用 Aigo R6611 录音机在 5 cm 的距离处记录产生的声音。录制的声音由 SYBA FG-EAU02A 声卡处理。
2.2.3 结果
根据上述参数的 COMSOL 仿真和实验,分别报告了输入电压信号、MLC 电容器和 PCB 的结果。
施加电压信号。在 COMSOL 中测量了 PCB 上 MLC 电容器在不同电压频率下产生的声音,结果如下图所示。观察到频率响应峰值在 30 kHz 频段为 32.03 dB,低于 5 kHz小于 -11.08 dB,表明 MLC 电容器极难在人类可听频带中产生声音(如果可能的话)。请注意,实际焊接在 PCB 上的电容器的峰值频率响应约为 80 kHz,这与仿真结果不同,如下图所示。这是因为 PCB 尺寸和材料模拟和现实世界的实验设置是不同的。
通过将电压信号 Δ𝑉 的峰峰值幅度从 4 V 更改为 20 V 来测量 SPL。结果(如上图所示)表明,当 Δ𝑉 大于6 伏。 电容器电容和封装。在实际实验中评估了具有各种电容和封装的电容器,电容器两端电压的峰峰值幅度为 Δ𝑉 = 20 V。有以下观察结果。 1) 对于电容器电容,上图(左)表明 SPL 与电容值几乎保持不变。原因可能是,虽然具有较高电容的 MLC 电容器具有额外的层,但来自逆压电效应的力主要取决于所施加电压的峰间幅度。 2) 对于 MLC 电容器封装,即 0603、0805 和 1206,上图(中)显示具有各种封装的电容器的 SPL 几乎保持不变,即在大于 20 kHz 的频率下最多为 2.5 dB。
PCB尺寸和材料。为了研究在 COMSOL 中 PCB 尺寸和材料是否会放大电容器产生的声音,选择了三种典型的 PCB 尺寸(即 1×1 cm、4×4 cm 和 10×10 cm)并模拟了具有各种弹性的 PCB 材料,同时施加 30 kHz 电压信号。有以下观察。 1) PCB 尺寸的结果,如上图所示,1×1 cm 板产生的声音最强,而 10×10 cm 板产生的声音最弱。这是因为来自电容器的振动会被较小的 PCB 以较大的幅度放大,反之亦然。 2)为了模拟具有各种弹性的 PCB,改变了 PCB 的杨氏模量。较高的杨氏模量映射到弹性较小的板,即较硬。下图中的结果表明,材料的弹性越高,PCB 产生的声音就越强。
PCB上的电容位置。在 COMSOL 仿真中,将 MLC 电容器放置在 PCB 的不同位置,例如 (0,0) cm、(0,-1) cm、(-1,-1) cm 和 (-1, 0) cm,其中坐标原点是 PCB 的中心。下图中的结果表明电容器的位置会影响 SPL。有趣的是,当电容器位于 PCB 的左下方和中央时,产生的 SPL 高于中下方和左中位置的 SPL。
总之,虽然设备的电容和电容器封装以及 PCB 特性可能或多或少地影响产生的声音,但对于给定的电子设备,这些因素是固定的。因此,电容器产生的声音强度基本上是由输入电压信号决定的。为了提高所产生声音的声压级,应仔细设计电压信号以匹配电容器的频率响应。
2.3 语音助手及其漏洞
麦克风是一个非线性元件,它的输出包含输入的平方和更高阶项,因此它可以产生谐波和叉积。 DolphinAttack 首次实施了这种硬件属性的利用。这项工作利用 AM 调制来创建嵌入在超声波载体中的恶意语音命令。形式上,假设基带信号为𝑚(𝑡) = 𝑐𝑜𝑠(2𝜋 𝑓𝑚𝑡),AM 载波频率为𝑓𝑐,则送入麦克风的调制信号可表示为:
借助麦克风的非线性,输出信号包含𝑓𝑚和线性项𝑓𝑐、𝑓𝑐-𝑓𝑚、𝑓𝑐+𝑓𝑚。经过低通滤波器后,语音信号的输出只包含𝑓𝑚。因此,攻击者可以成功地将语音命令注入到具有听不见的超声波信号的语音助手中。
0x03 威胁模型
攻击者的目标是利用CapSpeaker,即电子设备中的电容,将恶意语音指令注入语音4中,数字表示电容的物理尺寸,例如0805封装的电容,表示其长度和宽度分别为 0.08 英寸和 0.05 英寸。智能手机、智能手表和智能扬声器上的助手,例如 Siri、Google Now、Amazon Echo。请注意,可以利用 CapSpeaker 将声音注入其他涉及麦克风的应用程序中,例如麦克风。欺骗音频/视频对话,电话。然而,在本文中专注于攻击语音助手,假设如下:
恶意软件注入:攻击者可以安装恶意软件或篡改设备的固件(例如 LED 灯)来操纵其负载,即其功耗。恶意软件可以嵌入到具有隐藏功能的普通应用程序中,例如在LED灯的亮度控制程序中恶意操纵LED亮度。一旦打开设备并执行程序,就会生成所需的声音并将其注入附近的设备以造成恶意后果。
无法直接访问受害者的语音助手:假设攻击者无法直接访问受害者的语音助手。他不能安装恶意软件、更改设备设置,也不能物理接触它。但是他知道语音助手的设备和嵌入式麦克风型号,因此他可以获得相同型号的设备来收集必要的信息,以确保攻击成功。
靠近受害者的语音助手:不失一般性,假设受害者的语音助手设备(例如,智能手机)靠近带有电容器的设备,例如 LED 灯。
0x04 喇叭设计
4.1 概述
CapSpeaker 本质上是预装在电子设备中的恶意软件。对于给定的恶意语音命令,CapSpeaker 将通过执行高级编程指令在设备内部 PCB 上的电容器上感应精心制作的电压信号。其中 CapSpeaker 由两个模块组成:信号制作模块和 GPIO 控制模块,信号制作模块创建一个包含恶意语音命令的中间信号,同时驱动 GPIO 控制模块感应电容发出声音。选择的语音命令。如下图所示,对于给定的“开门”命令,LED 灯内的 CapSpeaker 将执行以下操作。
1) 信号加工模块选择所需的载波频率,最终可以从电容器中感应出响亮的声音,并将语音命令的基带信号调制到载波上。
2) 电容器两端的电压由通用输入/输出 (GPIO) 间接控制,这是将微控制器连接到外围设备的标准接口。因此,GPIO 控制模块根据信号处理模块产生的调制信号切换控制 LED 灯的 GPIO,从而在电容器上感应出所需的电压。
4.2 制作攻击信号
信号处理模块解决了两个问题: 1) 选择合适的载波频率进行调制,使攻击信号听不见,但与电容器的频率响应相匹配。 2)考虑到设备硬件和软件的限制,利用可行的调制方案将语音命令调制到选定的载波频率上。
4.2.1 选择载波频率
载波频率直接决定 CapSpeaker 的攻击性能,它应该最大限度地提高受害者语音助手接收到的语音命令的信噪比 (SNR),同时确保生成的语音命令对人类来说是听不见的.用 𝑓𝑃𝑊 𝑀 表示载波频率,需要考虑的因素包括电容器的频率响应、麦克风的非线性特性和攻击的听不见性。
电容器的频率响应:将电容器的频率响应定义为响应于峰峰值幅度的单频电压信号的语音信号幅度。根据 COMSOL 仿真和真实世界实验的发现,电容器的频率响应在人类可听频带中非常弱,并且出现了强烈的频率响应20 kHz 以上。例如,考虑在 1uf 电容器上通过实际实验获得的频率响应曲线,如下图中的橙色线所示,则载波频率的选择应在 20 kHz 以上和 80 kHz 以下。
麦克风的非线性:CapSpeaker 利用麦克风的非线性来解调听不见的语音命令。然而,非线性特性的频率响应随频率而变化。为了验证非线性解调后麦克风的频率响应,使用 ViFa Ultra SoundGate分别在 iPhone 4s、iWatch 和 Redmi K30 Ultra 上对麦克风的非线性特性进行了实验测试。使用正弦波作为基带信号,并将其调制到各种频率的载波上。对于 iPhone 4s 智能手机,将上图中随着载波频率的增加解调后接收到的声音的归一化强度绘制为蓝线。趋势是接收信号强度随着载波频率的增加而降低,[2 kHz,20 kHz]和[27 kHz,38 kHz]频段表现良好,归一化强度大于0.6。这一发现与 DolphinAttack中的一致。
无法听到:此外,载波频率的选择要保证攻击的隐蔽性。由于可听声音的频带在 20 Hz 和 20 kHz 之间,如上图的灰色阴影区域所示,载波频率应在 20 kHz 以上,以确保听不见。
总之,CapSpeaker 必须同时考虑电容器的频率响应、受害者麦克风的非线性特性以及可听性,以找到可行的载波频率。例如,根据上图绘制的 iPhone 4s 的数据,可行的载波频率范围应为 27 kHz 至 38 kHz。实际上,攻击者可以提前获取受害设备的 LED 灯和典型频率范围的信息。
4.2.2 基于 PWM 的调制
选择合适的载波频率后,需要一种调制方案将基带信号调制到载波上。典型的调制方案包括幅度调制(AM)、频率调制(FM)等,其中 AM 调制很流行,并在 DolphinAttack中用于生成听不见的语音命令。但是,CapSpeaker 不能使用 AM 调制方案,因为受害设备,即 LED 灯或其他物联网设备,无法输出细粒度的信号。相反,可控通用输入/输出(GPIO)只能输出两个电平,即“低”电平或“高”电平,商用智能设备通常为0 V和5 V。因此采用脉冲宽度调制 (PWM) 方案,它只需要两级输出电压。 PWM 调制原理如下图所示,其中基带信号的平均值通过快速开关来控制,从而调制到载波频率上。在实现中,开关由仅具有低或高电压电平的 GPIO 输出引脚控制。
语音命令信号和调制信号在时域和频域中都绘制在前图中。 PWM调制后,推导的信号包括基带信号𝑓𝑚,载波信号𝑓𝑃𝑊𝑀𝑀和一些谐波频率,例如𝑓𝑃𝑊 + +𝑓𝑚,𝑓𝑃𝑊 -𝑓𝑃𝑊 -𝑓𝑚,𝑓𝑃𝑊 +2𝑓𝑚,等。请注意表明基带𝑓𝑚存在于这个阶段,但由于电容器在低频时的频率响应差,幅度极低。PWM调制的实现可以参考Matlab工具箱(https://www.mathworks.com/help/physmod/sps/pulse-width-modulation.html )。
4.3 GPIO 控制
在导出 PWM 调制信号后,下一步是在受害设备上执行恶意软件以生成攻击信号。回想一下,像 LED 灯这样的商用设备没有可访问的编程接口来直接控制电容器两端的电压,只能依靠高级编程指令来控制连接到外围负载的 GPIO。为了保证恶意软件的隐蔽性,恶意软件不应影响设备的正常功能,例如亮度控制功能。
物联网设备的大多数微控制器单元(MCU)都支持PWM输出控制,PWM广泛用于实现各种功能,例如显示器的亮度控制、风扇电机的速度控制、加热器的温度控制、和扬声器的音量控制。因此,CapSpeaker 可以使用 PWM 输出控制来调整电容器两端的电压,其方式与控制 LED 灯的亮度类似。为了在受害设备上运行 CapSpeaker 恶意软件,利用了 MCU 上现成的硬件 PWM API,该 API 通常由定时器实现和控制。假设 PWM 波形的周期为𝑇,占空比为𝐷。然后通过在活动状态期间将 GPIO 输出设置为 1 来实现具有参数 𝑇 、𝐷 的 PWM 波形,反之亦然。
对于计算资源受限的物联网设备,面临的挑战是 PWM 调制支持的最大载波频率受到 MCU 时钟周期的限制。例如设置中的 MCU 是 ESP-WROOM-32D,它不能支持实时细粒度(即 32 kHz)PWM 计算。因此,为了在精度和实现之间取得平衡,将占空比增加到每两个 PWM 周期以减少计算开销。假设恶意语音命令的占空比轨迹是𝐷𝑢𝑡𝑦[0]、𝐷𝑢𝑡𝑦[1]、𝐷𝑢𝑡𝑦[2]…,选择𝐷𝑢𝑡𝑦[0]、𝐷𝑢𝑡𝑦[2]、𝐷𝑢𝑡𝑦[4]… 设置PWM占空比值。当然,具体的PWM调制方案可以根据受害设备的计算能力进行配置。
信号在不同阶段如何变化:受害设备(即 LED 灯)发出信号后,受害语音助手将接收到攻击信号并由于非线性效应对其进行解调。前图绘制了从原始语音命令信号到 PWM 调制信号、LED 灯发射信号和语音助手最终接收信号的时域和频域信号。即使最终收到的语音指令信号与原来的不一样,即解调后的信号有2𝑓𝑚分量,语音助手仍然大概率能识别出来。在评估部分,提供了对注入语音命令的识别率的详细评估。
4.4 验证 PWM 调制
为了验证 PWM 调制方案有效性的有效性,使用了一个 1uF 的电容器。按照实验设置生成攻击信号。唯一的区别是记录器被 iPhone 4s 智能手机取代。使用在线文本转语音网站将“打开飞行模式”转换为语音命令。使用算法1将 PWM 调制信号转换为执行的程序指令。 1. 从 iPhone 4s 麦克风解调后接收到的语音命令的频谱图绘制在下图b 中,其表现出与图b 中所示的原始信号相似的模式,表明 PWM 调制方案的有效性。
0x05 实施与评估
5.1 实验设置
使用了一个自行实现的 LED 灯和一个商业灯来验证 CapSpeaker 的性能。前者用于测试 CapSpeaker 在各种距离、环境噪声等下的性能。商用 LED 灯产品用于验证针对现成产品而不是自行实现的产品进行攻击的可行性,列出下表中。
自行实现的LED灯原型:使用一组 LED、一个 LED 驱动器和一个 MCU 板实现了 CapSpeaker 的原型,如上图所示。使用了 11 个串联的 LED,每个 LED 的功率为 3 W。 LED 驱动器是一种商用现货 (COTS),额定电流为 700 mA,用于驱动 LED。该驱动器由 48 V DC 适配器供电,并具有用于调节 LED 亮度的调光接口。使用了 ESP-WROOM-32D MCU,该 MCU 广泛用于小米灯 1S等商用产品中,通过调光接口控制驱动板。由于 MCU 的 I/O 端口电流有限,使用基于三极管的放大电路来驱动 LED 驱动板。随后开发了一种恶意软件,它可以生成 32 kHz PWM 波和 PWM 调制的 3 种不同的语音命令。
商用智能LED灯:为了验证 CapSpeaker 对商业产品的有效性,使用了小米 Lamp 1S。 LED 灯也使用 ESP-WROOM-32D MCU。有 42 个 LED,每个 LED 的功率为 0.5 W。由于逆向工程灯固件需要大量工作,将其电路板替换为相同型号的 MCU(ESP WROOM-32D),并且为了方便起见,恶意软件已预先植入 MCU 内。其他硬件组件保持不变。商用 LED 灯设置的详细规格可参考上表。
在这两种设置下,将受害者的语音助手(例如智能手机、智能手表和平板电脑)放置在各种设置(例如距离、环境噪音、其他设备的影响等)的 LED 灯附近,以及受害者的麦克风。语音助手正对着 LED 灯接收攻击信号。
5.2 评价指标
为上述设置下的 CapSpeaker 评估定义了 3 个指标:
• 识别成功率𝑅𝑐 = 𝑁𝑐/𝑁,其中𝑁 是攻击次数,而𝑁𝑐 是语音助手正确识别命令的数量。
• 响应率𝑅𝑟 = (𝑁𝑐 +𝑁𝑤)/𝑁,其中𝑁𝑤 是可以响应但被错误识别为任何其他命令的命令数。
• 最大攻击距离𝐷𝑚𝑎𝑥,即可以成功识别命令的最大距离。
5.3 距离和方向的影响
为了评估 CapSpeaker 在每个位置生成的恶意语音命令的有效性,使用了自行实现的 LED 原型(在前表中)和在后表中的实验设置。 使用可执行的语音命令,包括“打电话给我的妻子”、“开门”或“打开飞行模式”,在不同距离测量 iPhone 4s 的识别成功率和响应率。在每个距离连续测试每个命令 20 次,环境噪声为 30 dB。其余实验设置参数为默认值。
识别率与距离:上图显示了结果。完全不透明的条表示正确识别的语音命令的比例,而透明的条表示错误识别的语音命令的比例(但仍激活语音助手)。识别成功率𝑅𝑐和响应率𝑅𝑟可以分别从完全不透明条和透明条的最高值获得。结果表明,识别成功率随着距离的增加而降低,自主实现的LED灯设置下的最大攻击距离可以达到10.5 cm,三个命令的识别成功率都在80%以上。随着距离的增加,无论是识别率还是让语音助手响应率都逐渐降低。这是因为,在较远的距离,LED 灯发出的语音命令会衰减,并会受到环境噪声的干扰。
识别率与方向:从 LED 驱动板的不同方向测试了 28 个不同位置的最大攻击距离。将对应于每个方向的最大攻击距离的点拟合到表面,并绘制表面在不同方向的等高线图,如上图所示。LED 驱动板位于距表面 0 厘米的高度。图的中心。每个点的高度值表示该点表面的高度。结果表明,CapSpeaker可以在各个方向都成功,即使由于产生的声场不均匀而导致最大攻击距离在各个方向上发生变化,这与图5中的模拟一致。
5.4 语音助手的影响
除了 iPhone 4s,还尝试了其他几款语音助手。总共测试了 10 款设备,包括智能手机、智能手表、平板电脑和扬声器。环境噪声级为 30 dB。对于每个设备,预先选择了性能最好的载波频率,并保持设备的麦克风朝向 LED 驱动板。测量了每个设备的最大攻击距离,并记录了在最大攻击距离下使用的语音命令。结果如下表所示。显示除了iPhone 4s外,华为nova 5i Pro也可以成功攻击的范围为9厘米,iPad mini 5可以成功攻击的范围为3.5厘米。请注意,华为 Nova 5i Pro 和 iPad Mini 5 均于 2019 年发布,分别售出 200 万台和 4000 万台。此外,iWatch 和 Redmi K30 Ultra 可以在很近的范围内成功攻击。这是因为这两个设备的麦克风非线性不如其他设备那么重要。当电容器可以发出更强的声音时,例如使用更高的功率负载,可以成功攻击更多的设备。
5.5 背景噪声的影响
控制背景噪音:为了证明 CapSpeaker 对背景噪声具有鲁棒性,在不同的环境声压级设置下进行了一组实验。噪音的主要来源是空调和服务器冷却风扇。通过将攻击设备放置在不同位置来控制声压级,并使用 BENETECH GM1357 声级计测量 LED 驱动板附近的 SPL。下图给出了环境噪声对应 SPL 下的最大攻击距离之间的关系。结果表明,最大攻击距离随着噪声声压级的增加而线性减小。参考了一个分贝表显示了 SPL 和响度之间的比较。发现30分贝相当于晚上安静的卧室,40分贝相当于安静的图书馆,50分贝相当于一个普通的家,60分贝相当于1米处的对话语音。因此得出结论,CapSpeaker 在家庭环境中平均可以实现大于 3 cm 的攻击距离。对于家庭环境安静的受害者,CapSpeaker 甚至可以达到大于 10 厘米的距离。
附近有干扰设备:除了背景噪声的影响,在实践中调查了受害设备附近其他干扰设备的影响,因为其他电器具有可以产生声音的电容器和电感器。分别在距离 LED 驱动板 50 厘米处使用了冷却风扇、笔记本电脑、路由器和显示器,并测试了最大攻击距离。 所有 4 个设备都在运行,它们相对于 LED 原型的位置如下图所示,并且它们的声压级预先测量,下表显示了结果。可以发现,只有冷却风扇对最大攻击距离有显着影响,因为风扇发出的噪音与语音命令的频率有重叠。笔记本电脑和显示器对 CapSpeaker 的影响很小,即最大攻击仅降低 1 厘米。
5.6 电感的影响
与 MLC 电容器因电压变化而振动类似,电感器也会因电流变化而振动。因此,需要确认LED驱动板的声音主要是由电容发出的,而不是由电感发出的。下图显示了用于本次调查的 LED 驱动板。板上有3个MLC电容和1个电感。使用热风枪去除电感器。为了使驱动板工作,使用一根长导线连接电感器,但将其放置在距离 LED 驱动板 60 厘米的位置,如下图所示。长导线的引入电阻仅为 0.023 Ω。电路,可以省略。 LED 电路由 48 V 电源适配器供电,LED 驱动器的负载是前文使用的 LED 阵列。使用 20 kHz 至 39 kHz 的扫频方波(以 1 kHz 为步长)来驱动 LED 驱动板。
结果如上图所示。蓝色和橙色线显示了 (1) 板上电感器和 (2) 远处电感器情况的频率响应。情况 (2) 表示电容器的频率响应,而情况 (1) 是电容器和电感器的组合频率响应。结果表明,去除电感后,频率响应在幅度和频率上都有显着变化。没有电感,声音的幅度更大,最佳频率从26 kHz左右偏移到34 kHz左右。这表明电感器确实可以发出声音,但其声音强度与电容器相比较弱。去掉电感后声音变强的原因是去掉电感后PCB的共振发生了变化,即PCB的重量变轻了,变得更有弹性。因此得出结论,MLC电容是LED驱动板的主要声音来源,电感的存在可以通过改变PCB谐振频率来干扰产生的声音。
5.7 各种载荷的影响
为了验证是否可以通过使用更大的负载(即更大的电流或更高的电压变化)来增加攻击距离,测试了 5 种不同负载的最大攻击距离。该实验基于实验设置。 随着LED驱动板的输入电流信号变化。具体来说,在电源电压恒定的情况下,通过控制串联 LED 的数量来获得各种输入电流。分别串联了15、14、13、12、11个LED,产生的输入电流分别为0.164 A、0.239 A、0.307 A、0.35 A、0.41 A。测试了每个电流的最大攻击距离,结果如下图所示。随着电流的增加,最大攻击距离也相应增加。这放弃了通过使用更高的功率负载来获得更高攻击距离的机会。
5.8 商用智能LED灯评价
除了自行实现的 LED 原型之外,还验证了 CapSpeaker 针对商用 LED 灯的可行性。商业产品是小米 1S 灯。为了减轻固件逆向工程的负担,直接将其 MCU 板替换为相同型号之一(ESP-WROOM-32D),并提前将恶意软件植入新的 MCU 板中。实验在 30 dB 噪声环境中进行。
PWM调制实现:商用 LED 实验的唯一关注点是 PWM 调制方案的设置。在这里,使用了 ESP-WROOM-32D MCU 内部的 LED PWM 控制器模块来生成 PWM 信号。 PWM 控制器模块已经在 MCU 中实现,主要用于控制 LED的强度。为了实现 PWM 信号的高分辨率,选择 APB_CLK 作为内部时钟源,因为它的时钟频率(80MHz)高于 REF_TICK(1MHz)。
结果:如上图所示,商用 LED 灯可以成功完全响应,并使受害者的语音助手,即 iPhone 4s Siri 识别“开门”语音命令。最大攻击距离可达3.2厘米,即灯泡外壳到智能手机的距离。此外,商用灯还可以攻击其他语音助手。华为 Nova 5i Pro 的最大距离为 2.9 厘米,iPad mini 5 的最大距离为 0.5 厘米。
0x06 讨论
6.1 对策
在硬件层面,保护 CapSpeaker 的一个简单方法是避免使用 MLC 电容,而是使用电解电容或钽电容。但是,电解电容太大了。随着电子设备的小型化趋势,设备并不总是有足够的空间来使用电解电容器。尽管钽电容器的尺寸很小,但它们价格昂贵且存在故障风险。因此,MLC电容是不可替代的。为了减少 MLC 电容器发出的声音,一种可行的方法是将 MLC 电容器安装在中介层上,以减少将传递到 PCB 基板的振动量。另一种方法是通过添加两个由铁合金和 Ni/Sn 制成的金属“腿”来制造 MLC 电容器,以将电容器振动与电路板隔离。
在软件层面,检测机制可以识别良性 PWM 控制程序中存在恶意内容的可能性。例如,在 LED 的亮度控制和加热器的温度控制中,PWM 波的占空比在正常情况下不会发生剧烈变化,而 CapSpeaker 会连续快速地上下改变占空比。因此,可以通过监控占空比变化的频率和幅度来检测 CapSpeaker。
6.2 替代潜在“说话者”
除了电容器,电感器和变阻器也广泛用于商业电子设备中,也可以产生声音。
电感器:电感器通常由缠绕在线圈上的绝缘线组成,它是一种无源两端电气元件,当电流流过它时,它会在磁场中存储能量。电感的结构类似于扬声器,因此线圈可以根据输入电流而振动。为了研究使用电感器攻击语音助手的可行性,按照下图所示的实验设置,使用单一电感器和具有相同类型电感器的DC-DC转换器制作了攻击语音命令。PWM 波的频率设置为 50 𝑘𝐻𝑧。这两种设置都可以成功让 iPhone 4s 识别攻击命令“打开飞行模式”。然而,实际上,当前大多数电子设备都使用金属一体成型型电感器,其产生的声学信号被减弱到原始声音的 1/10。
变阻器:与电感器类似,变阻器由线圈制成,由于磁场的排斥力,可以产生电流变化的声音。为了验证,对变阻器进行了单独的实验,电路中没有 MLC 电容器或电感器。扫频得到变阻器产生的声音的频率响应,频率响应约为5 dB,低于电容。请注意,在对 MLC 电容器的实验中,将变阻器放置在房间外以避免变阻器的干扰。
6.3 限制
CapSpeaker 的攻击距离为 10.5 cm,需要目标设备在附近,可以通过更高的电压信号来增加攻击距离,可能在功率更大的电子设备中,例如功率更高的 LED 灯、大米炊具。尽管如此,这项工作的目标是提高对此类攻击的认识,因为人们倾向于将智能手机放在桌子上以及其他设备(例如灯)附近。
0x07 结论
在本文中证明了 MLC 电容器产生的声学噪声可能看起来是良性的,但它们可以被操纵以向附近的语音助手注入恶意语音命令,称之为 CapSpeaker 攻击。在研究了影响 MLC 电容器产生的声音强度的因素后,发现 MLC 电容器在可听范围内产生的声音比可听范围内的声音要好得多。因此,CapSpeaker 将恶意语音命令调制到听不见的频率载波以利用高频响应,并利用麦克风的非线性特性自动解调嵌入恶意语音命令的 PWM 调制信号。在智能 LED 灯上实施 CapSpeaker 攻击,并通过各种语音命令、接收设备、环境噪声水平以及电容器与接收器之间的距离来评估 CapSpeaker 攻击的性能。结果表明,iPhone 4s可以在10.5厘米的距离内成功识别恶意语音命令。鉴于语音助手的发展趋势,这项工作旨在提高对此类漏洞的认识。
参考资料::https://dl.acm.org/doi/abs/10.1145/3460120.3485389