AsamoahAlbert/motion-keyword-inference-imu
GitHub: AsamoahAlbert/motion-keyword-inference-imu
基于 IMU 振动信号与一维 CNN 的关键词推断侧信道攻击概念验证,揭示物联网运动传感器的语音隐私泄露风险。
Stars: 0 | Forks: 0
# 基于运动传感器的关键词推断 (IMU)
## 概述
本项目研究了运动传感器捕获的振动信号能否用于推断说出的关键词,而无需直接访问音频。
本项目使用 ADXL345 加速度计来捕获音频播放期间产生的振动数据。1D 卷积神经网络 (CNN) 经过训练,可以将这些振动信号分类到预定义的关键词类别中。
## 核心要点
这项工作表明,运动传感器可以作为**意外的侧信道**,可能会泄露与语音相关的信息。
虽然该方法在受控条件下是可行的,但它凸显了**严峻的泛化挑战**以及**物联网系统中的隐私风险**。
## 目标
- 评估基于振动的关键词推断的可行性
- 比较受控环境与真实环境下的性能
- 分析基于传感器的侧信道泄露带来的隐私风险
## 系统流程
1. 通过扬声器播放关键词音频
2. 使用 ADXL345 传感器捕获振动
3. 时间序列预处理(归一化、分割)
4. 基于 CNN 的分类
5. 在数据集和真实录音上进行评估
## 数据集
- 约 13,000 个带有标签的 IMU 样本(结构化数据集)
- 使用 Raspberry Pi + ADXL345 收集的 100 个真实样本
- 采样率:200 Hz
- 输入格式:3 轴加速度计数据 (x, y, z)
## 模型
- 1D 卷积神经网络 (CNN)
- 激活函数:ReLU
- 正则化:BatchNorm + Dropout
- 损失函数:Cross-Entropy
- 优化器:AdamW
- 批大小:64
- 训练轮数:30
## 结果
### 数据集性能
- 准确率:约 80%
- Macro-F1:约 0.79
### 真实环境性能
- 准确率:约 12%
- 由于环境噪声和信号失真导致性能显著下降
## 分析
- 在受控数据集中表现良好
- 真实环境性能下降的原因:
- 噪声和环境干扰
- 传感器放置位置的差异
- 振动信号传播较弱
- 混淆矩阵和逐标签分析揭示了类别不平衡和误分类模式
- 预测分布显示出对主导类别的偏倚
## 安全影响
本项目表明运动传感器可以作为**意外的侧信道**,可能会泄露与语音相关的信息。
这引发了物联网环境中重要的**隐私和安全问题**,在这些环境中,传感器被广泛部署且通常缺乏严格的访问控制。
## 局限性
- 在真实环境条件下性能显著下降
- 对噪声和环境变化敏感
- 真实世界数据集规模有限
- 训练环境与部署环境之间存在领域不匹配
## 技术栈
- Python
- PyTorch
- NumPy / Pandas
- Matplotlib / Seaborn
- Raspberry Pi 5
- ADXL345 加速度计
## 环境要求
- Python 3.9+
- PyTorch
- NumPy
- Pandas
- Matplotlib
- Seaborn
## 演示
由于数据集大小的限制,未包含原始数据。
可以使用提供的脚本重现该流程。
## 快速开始
```
git clone https://github.com/AsamoahAlbert/motion-keyword-inference-imu.git
cd motion-keyword-inference-imu
pip install -r requirements.txt
python src/train_model.py
```
标签:ADXL345, Apex, CNN, IMU传感器, 一维卷积神经网络, 传感器安全, 侧信道攻击, 信号处理, 关键词推断, 凭据扫描, 加速度计, 振动信号分析, 时间序列分析, 机器学习, 深度学习, 物联网安全, 硬件安全, 语音识别, 逆向工具, 隐私泄露