项目简介
本项目围绕“Verdeckte Kommunikation durch Seitenkanaleffekte auf ARM - Prozessoren”展开,专注于研究和探索基于 ARM 处理器的隐秘通信渠道,实现了借助以太网帧在同一核心或跨核心之间进行数据传输的功能。
项目的主要特性和功能
- 支持同一核心(SC)和跨核心(CC)两种通信模式。
- 通过修改 CPU 性能事件实现同步,设定阈值判断接收数据状态。
- 包含接收器和发送器,可进行以太网帧的数据传输。
- 利用共享内存完成数据传输并验证。
- 拥有数据分析和可视化工具,便于进行性能评估与误差分析。
安装使用步骤
环境准备
Arch 系统
bash
sudo pacman -Syu
sudo pacman -Syu gcc make python python-pip
pip install numpy matplotlib scipy
Ubuntu 系统
bash
sudo apt update
sudo apt install gcc make python3 python3-pip
pip3 install numpy matplotlib scipy
编译
在项目目录下执行以下命令:
bash
make
执行
同一核心(SC)模式
终端 1:
bash
taskset 0x1 make runreceiver "ARG1=[FR/FF]" "ARG2=[interval in ns]" "ARG3=SC"
终端 2:
bash
taskset 0x1 make runsender "ARG1=[FR/FF]" "ARG2=[interval in ns]"
跨核心(CC)模式
终端 1:
bash
taskset 0x1 make runreceiver "ARG1=[FR/FF]" "ARG2=[interval in ns]" "ARG3=CC"
终端 2:
bash
taskset 0x4 make runsender "ARG1=[FR/FF]" "ARG2=[interval in ns]"
使用方法
- 先在终端 1 执行接收器程序,接收器会计算推荐的 CPU 周期阈值,计算结束后等待用户输入阈值。
bash threshold: [user input]
- 用户输入阈值后,接收器开始监听缓存,等待发送器发送第一个以太网帧。
- 在终端 2 执行发送器程序,发送器准备好通过指定方法(ARG1)发送以太网帧,等待用户输入要发送的字符串,输入长度超过 1500 字符时,仅发送前 1500 字符。
bash Message: [user input]
- 在终端 1 会显示接收到的字符串及以太网帧的其他信息,一次执行过程中发送器和接收器可传输多个帧。
验证说明
本项目实现的方法已使用缓存模拟器进行测试,对于侧信道攻击的实现,建议先使用缓存模拟器测试以验证方法的正确性,使用的缓存模拟器可在 https://git.cs.uni - bonn.de/boes/vlsg_sidechannel_proto 找到。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】