Kapkitka/unconventional-cybersecurity-vulnerabilities
GitHub: Kapkitka/unconventional-cybersecurity-vulnerabilities
该项目通过低成本DIY工具系统性评估生物声学、光学和电动力学三种非常规侧信道音频窃听攻击的实际可行性与信号质量。
Stars: 0 | Forks: 0
# 非常规网络安全漏洞 —— 通过生物声学、光学和电动力学 exploit 进行未授权的信号重建
--- 🇬🇧 英文版本请见下方 ---
## 项目概述
本研究分析了三种非常规的 side-channel 攻击,这些攻击能够在不使用传统监控方法的情况下拦截音频信号。目的是利用低成本的“自己动手做”(DIY)工具,实证评估这些攻击载体在家庭环境中的可行性,并首次提供系统性的比较表征,涵盖重建音频信号的质量、可懂度以及实际可行性。
## 攻击载体
研究方面集中于物理复现三种不同的方法:
* **生物声学 exploit:** 一种用于从埋入弹道凝胶中的模拟植入物收集数据的生物混合注射设备,包括对外部因素的分析。
* **光学 exploit:** 通过对高频视频录像中表面微振动进行重建并提取音频信号,实现声音的光学再现。
* **电动力学 exploit:** 改变音频接口的用途,将标准扬声器转换为能够捕获声音的麦克风。
## 工程与仓库内容
本仓库包含完整的低成本的 DIY 工程实现,证明了此类大规模攻击的可行性:
* **`/experiment-01`, `/experiment-02`, `/experiment-03`** – 实验期间生成的音频录制和数据集,确保结果可完全复现。
# 实验 01:植入式侦察设备
此文件夹包含 **实验 01** 的数据集、重建的音频录音和可视化的频谱图。在该实验中,评估了通过模拟弹道凝胶中植入物的生物混合注射设备进行未授权音频信号恢复的过程。
## 仓库内容
数据集严格分为三个主要类别:`Sample`、`Inside`(受控室内环境)和 `Outside`(室外环境条件)。
### /Sample
包含实验期间播放的原始源信号,这些信号旨在被 phantom 装置内的模拟音频植入物捕获。
* **`/Records`**:3 个参考音频文件(`chirp.wav`、`conversation.wav`、`tone.wav`)。
* **`/Spectrograms`**:与每个音频文件对应的可视化频率分析表示(`.png`)。
### 2. /Inside(室内环境)
在受控室内条件下收集的数据,分为两个实验变量:
* **`/Depth`**:分析植入物在弹道凝胶中物理深度的影响。
* **`/Records`**:包含 4 种信号类型(*chirp、tone、ref (参考)、conversation*)在 3 种植入深度下的音频录音(`.wav`):
* `_deep`(深度部署)
* `_medium`(中等深度部署)
* `_shallow`(浅层部署)
* *文件名示例:* `chirp_deep.wav`
* **`/Spectrograms`**:每种深度变化对应的频谱图(`.png`)(例如 `chirp_deep.png`)。
* **`/Distance`**:分析沿地面测量的音源距离(厘米)的影响。
* **`/Records`**:4 种信号类型在 5 种不同距离下的音频录音(`.wav`):`_10`、`_50`、`_150`、`_300` 和 `_600` cm。
* *文件名示例:* `chirp_10.wav`
* **`/Spectrograms`**:每种距离变化对应的频谱图(`.png`)(例如 `chirp_10.png`)。
### 3. /Outside(室外环境)
* 包含与 `/Inside` 目录**完全相同的目录结构、信号类型和文件命名约定**。此子文件夹代表了在真实世界的室外环境噪声和外部因素下对整个实验的复制。
## 技术细节
* **音频格式:** 无损波形音频文件格式(`.wav`)
* **可视化格式:** PNG(便携式网络图形)格式的频谱图,用于声学特征验证。
# 实验 02:视觉麦克风
该实验研究通过分析高频视频录像中捕获到的薯片袋表面微振动来实现声音的光学重建。通过使用基于金字塔的图像分析处理细微的像素波动来重建音频信号。
## 仓库内容
此实验中使用的数据分为两个主要类别:用于播放的源样本以及在不同物理配置下的实际恢复尝试。
#### `/Sample`
包含实验期间用作声源的高质量原始音频文件。
* **`/Records`**:参考音频文件(`Mary.wav`、`Melody.wav`、`Octave.wav`、`Piramid.wav`)。
* **`/Spectrograms`**:每个样本的可视化频率分析表示(`.png`)。
#### `/Attempts`
包含声音恢复尝试的结果,按源素材和环境测试进行分类。
* **`/Melody`, `/Octave`, `/Piramid`**:使用不同音频源以及不同的袋子/声源物理配置进行的恢复尝试。
* **`/Records`**:摄像机拍摄的薯片袋视频录像。
* `*_under`:声源放置在袋子正下方。
* `*_distance`:声源放置在离袋子一定距离处。
* `*_inside`:声源放置在袋子内部。
* **`/Recovered`**:根据视频数据重建的音频文件。
* `denoised_*`:经过额外降噪处理的信号。
* **`/Spectrograms`**:恢复音频的可视化表示(`.png`)。
* **`/Test`**:环境和算法验证数据。
* 包含由 **MIT**(麻省理工学院)提供的样本录音。
* 来源:[MIT Visual Microphone 数据](https://people.csail.mit.edu/mrub/VisualMic/#data)。
## 外部工具
此实验中的声音重建得益于 Visual Microphone 算法的开源实现。
* **重建软件:** 本项目使用了由 **Joel Jose** 提供的实现。
* 源代码:[由 joeljose 提供的 Visual-Mic](https://github.com/joeljose/Visual-Mic)
* **研究参考:** 该方法论基于 MIT 计算机科学与人工智能实验室 (CSAIL) 的基础研究:
* *Davis, A., Rubinstein, M., Wadhwa, N., Mysore, G. J., Durand, F., & Freeman, W. T. (2014). The Visual Microphone: Passive Recovery of Sound from Video.*
# 实验 03:将扬声器转换为麦克风
此文件夹包含 **实验 03** 的工程原型、源代码和实验数据。研究展示了如何利用廉价的微控制器(Arduino Uno)和基础运算放大器,将标准扬声器秘密地改装为麦克风。
## 项目概述
实验通过利用扬声器的电动力学特性,调查了拦截声学信号的可行性。通过使用定制的信号调理电路以及 Arduino Uno 上优化的 ADC(模数转换器)设置,我们证明了扬声器可以捕获可懂的音频。
## 仓库内容
### /Programs
硬件和软件实现:
* `sketch_apr30a.ino`:配置了自定义 ADC 预分频器和高速采样设置的 Arduino 固件,这是高频音频重建所必需的。
* `main.py`:基于 Python 的终端应用程序,用于与硬件接口、处理传入的比特流并保存重建的音频。
### /Records & /Spectrograms
数据分为两个研究阶段:
#### 第一阶段:传感器与运算放大器对比分析
位于 `/Speaker_1`、`/Speaker_2` 和 `/Speaker_3` 中。此阶段评估了三个不同的扬声器作为麦克风时的效率。
* **硬件变量:** * **运算放大器:** LM358(通用型) vs. MCP6002(现代 Rail-to-Rail)。
* **配置:** 反相 vs. 同相。
* **命名约定:** `[OpAmp]_[Config]_[Signal].wav`
* *示例:* `LM_invert_conversation.wav`(LM358,反相配置,语音信号)。
#### 第二阶段:有效范围与距离可行性
位于 `/Distance`。此阶段侧重于最稳定的传感器(扬声器 2),以确定能够恢复可懂信号的最大距离。
* **测试参数:** 距离分别为 5、150、300 和 600 cm。
* **配置:** 仅使用同相(基于第一阶段的优化)。
* **命名约定:** `[OpAmp]_noninvert_[Signal]_[Distance].wav`
* *示例:* `MCP_noninvert_chirp_300.wav`(MCP6002 在 3 米处)。
### /Sample
包含实验期间用作音频源的原始参考信号(`chirp`、`tone`、`conversation`),确保在实验 01 和 03 之间的一致性。
## 主要研究目标
* **带宽分析:** 使用 50 Hz – 10 kHz 的 chirp 信号来确定频率响应的极限。
* **可懂度评估:** 评估通过电动力学 exploit 捕获的人类语音的清晰度。
* **硬件优化:** 量化运算放大器和电路拓扑的选择如何影响未授权窃听的范围。
# 非常规网络安全漏洞
用于评估低成本 DIY side-channel 攻击的研究数据、脚本(Python、MATLAB)和 Arduino 固件:包括生物声学、光学和电动力学音频信号重建。
## 项目概述
该论文分析了三种非常规的 side-channel 攻击,这些攻击能够在不使用传统监控方法的情况下拦截音频信号。目的是利用低成本的 DIY(自己动手做)工具,实证评估这些攻击载体在家庭环境中的可行性,并首次提供系统性的比较表征,涵盖重建音频信号的质量、可懂度以及实际可行性。
## 评估的攻击载体
研究方面集中于物理复现三种不同的方法:
* **生物声学 exploit:** 一种用于从埋入弹道凝胶中的模拟植入物收集数据的生物混合注射设备,包括对外部因素的分析。
* **光学 exploit:** 通过对高频视频录像中表面微振动进行重建并提取音频信号,实现声音的光学再现。
* **电动力学 exploit:** 改变音频接口的用途,将标准扬声器转换为能够捕获声音的麦克风。
## 工程与仓库内容
本仓库包含完整的低成本的 DIY 工程实现,证明了此类大规模攻击的可行性:
* **`/experiment-01`, `/experiment-02`, `/experiment-03`** – 实验期间生成的音频录制和数据集,确保结果可完全复现。
# 实验 01:生物声学 exploit(生物混合注射设备)
此文件夹包含 **实验 01** 的数据集、重建的音频录音和可视化的频谱图。在该实验中,评估了通过模拟弹道凝胶中植入物的生物混合注射设备进行未授权音频信号恢复的过程。
## 目录结构与数据集命名
数据集严格分为三个主要类别:`Sample`、`Inside`(受控室内环境)和 `Outside`(室外环境条件)。
### /Sample
包含实验期间播放的原始源信号,这些信号旨在被 phantom 装置内的模拟音频植入物捕获。
* **`/Records`**:3 个参考音频文件(`chirp.wav`、`conversation.wav`、`tone.wav`)。
* **`/Spectrograms`**:与每个音频文件对应的可视化频率分析表示(`.png`)。
### 2. /Inside(室内环境)
在受控室内条件下收集的数据,分为两个实验变量:
* **`/Depth`**:分析植入物在弹道凝胶中物理深度的影响。
* **`/Records`**:包含 4 种信号类型(*chirp、tone、ref (参考)、conversation*)在 3 种植入深度下的音频录音(`.wav`):
* `_deep`(深度部署)
* `_medium`(中等深度部署)
* `_shallow`(浅层部署)
* *文件名示例:* `chirp_deep.wav`
* **`/Spectrograms`**:每种深度变化对应的频谱图(`.png`)(例如 `chirp_deep.png`)。
* **`/Distance`**:分析沿地面测量的音源距离(厘米)的影响。
* **`/Records`**:4 种信号类型在 5 种不同距离下的音频录音(`.wav`):`_10`、`_50`、`_150`、`_300` 和 `_600` cm。
* *文件名示例:* `chirp_10.wav`
* **`/Spectrograms`**:每种距离变化对应的频谱图(`.png`)(例如 `chirp_10.png`)。
### 3. /Outside(室外环境)
* 包含与 `/Inside` 目录**完全相同的目录结构、信号类型和文件命名约定**。此子文件夹代表了在真实世界的室外环境噪声和外部因素下对整个实验的复制。
## 技术细节
* **音频格式:** 无损波形音频文件格式(`.wav`)
* **可视化格式:** PNG(便携式网络图形)格式的频谱图,用于声学特征验证。
# 实验 02:光学 exploit(视觉麦克风)
该实验研究通过分析高频视频录像中捕获到的薯片袋表面微振动来实现声音的光学恢复。通过使用基于金字塔的图像分析处理细微的像素波动来重建音频信号。
## 目录结构与数据集命名
此实验中使用的数据分为两个主要类别:用于播放的源样本以及在不同物理配置下的实际恢复尝试。
#### 1. `/Sample包含实验期间用作声源的高质量原始音频文件。
* **`/Records`**:参考音频文件(`Mary.wav`、`Melody.wav`、`Octave.wav`、`Piramid.wav`)。
* **`/Spectrograms`**:每个样本的可视化频率分析表示(`.png`)。
#### `/Attempts`
包含声音恢复尝试的结果,按源素材和环境测试进行分类。
* **`/Melody`, `/Octave`, `/Piramid`**:使用不同音频源以及不同的袋子/声源物理配置进行的恢复尝试。
* **`/Records`**:摄像机拍摄的薯片袋视频录像。
* `*_under`:声源放置在袋子正下方。
* `*_distance`:声源放置在离袋子一定距离处。
* `*_inside`:声源放置在袋子内部。
* **`/Recovered`**:根据视频数据重建的音频文件。
* `denoised_*`:经过额外降噪处理的信号。
* **`/Spectrograms`**:恢复音频的可视化表示(`.png`)。
* **`/Test`**:环境和算法验证数据。
* 包含由 **MIT**(麻省理工学院)提供的样本录音。
* 来源:[MIT Visual Microphone 数据](https://people.csail.mit.edu/mrub/VisualMic/#data)。
## 外部工具与致谢
此实验中的声音重建得益于 Visual Microphone 算法的开源实现。
* **重建软件:** 本项目使用了由 **Joel Jose** 提供的实现。
* 源代码:[由 joeljose 提供的 Visual-Mic](https://github.com/joeljose/Visual-Mic)
* **研究参考:** 该方法论基于 MIT 计算机科学与人工智能实验室 (CSAIL) 的基础研究:
* *Davis, A., Rubinstein, M., Wadhwa, N., Mysore, G. J., Durand, F., & Freeman, W. T. (2014). The Visual Microphone: Passive Recovery of Sound from Video.*
# 实验 03:电动力学重新利用(扬声器转麦克风 exploit)
此文件夹包含 **实验 03** 的工程原型、源代码和实验数据。研究展示了如何利用廉价的微控制器(Arduino Uno)和基础运算放大器,将标准扬声器秘密地改装为麦克风。
## 项目概述
实验通过利用扬声器的电动力学特性,调查了拦截声学信号的可行性。通过使用定制的信号调理电路以及 Arduino Uno 上优化的 ADC(模数转换器)设置,我们证明了扬声器可以捕获可懂的音频。
## 仓库内容
### /Programs
硬件和软件实现:
* `sketch_apr30a.ino`:配置了自定义 ADC 预分频器和高速采样设置的 Arduino 固件,这是高频音频重建所必需的。
* `main.py`:基于 Python 的终端应用程序,用于与硬件接口、处理传入的比特流并保存重建的音频。
### /Records & /Spectrograms
数据分为两个研究阶段:
#### 第一阶段:传感器与运算放大器对比分析
位于 `/Speaker_1`、`/Speaker_2` 和 `/Speaker_3` 中。此阶段评估了三个不同的扬声器作为麦克风时的效率。
* **硬件变量:** * **运算放大器:** LM358(通用型) vs. MCP6002(现代 Rail-to-Rail)。
* **配置:** 反相 vs. 同相。
* **命名约定:** `[OpAmp]_[Config]_[Signal].wav`
* *示例:* `LM_invert_conversation.wav`(LM358,反相配置,语音信号)。
#### 第二阶段:有效范围与距离可行性
位于 `/Distance`。此阶段侧重于最稳定的传感器(扬声器 2),以确定能够恢复可懂信号的最大距离。
* **测试参数:** 距离分别为 5、150、300 和 600 cm。
* **配置:** 仅使用同相(基于第一阶段的优化)。
* **命名约定:** `[OpAmp]_noninvert_[Signal]_[Distance].wav`
* *示例:* `MCP_noninvert_chirp_300.wav`(MCP6002 在 3 米处)。
### /Sample
包含实验期间用作音频源的原始参考信号(`chirp`、`tone`、`conversation`),确保在实验 01 和 03 之间的一致性。
## 主要研究目标
* **带宽分析:** 使用 50 Hz – 10 kHz 的 chirp 信号来确定频率响应的极限。
* **可懂度评估:** 评估通过电动力学 exploit 捕获的人类语音的清晰度。
* **硬件优化:** 量化运算放大器和电路拓扑的选择如何影响未授权窃听的范围。
标签:Arduino, MATLAB, Python, UML, 侧信道攻击, 无后门, 物理安全, 硬件安全, 逆向工具, 音频信号重建