littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于 ARM 处理器的隐秘通信系统

项目简介

本项目围绕“Verdeckte Kommunikation durch Seitenkanaleffekte auf ARM - Prozessoren”展开,专注于研究和探索基于 ARM 处理器的隐秘通信渠道,实现了借助以太网帧在同一核心或跨核心之间进行数据传输的功能。

项目的主要特性和功能

  1. 支持同一核心(SC)和跨核心(CC)两种通信模式。
  2. 通过修改 CPU 性能事件实现同步,设定阈值判断接收数据状态。
  3. 包含接收器和发送器,可进行以太网帧的数据传输。
  4. 利用共享内存完成数据传输并验证。
  5. 拥有数据分析和可视化工具,便于进行性能评估与误差分析。

安装使用步骤

环境准备

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. 先在终端 1 执行接收器程序,接收器会计算推荐的 CPU 周期阈值,计算结束后等待用户输入阈值。 bash threshold: [user input]
  2. 用户输入阈值后,接收器开始监听缓存,等待发送器发送第一个以太网帧。
  3. 在终端 2 执行发送器程序,发送器准备好通过指定方法(ARG1)发送以太网帧,等待用户输入要发送的字符串,输入长度超过 1500 字符时,仅发送前 1500 字符。 bash Message: [user input]
  4. 在终端 1 会显示接收到的字符串及以太网帧的其他信息,一次执行过程中发送器和接收器可传输多个帧。

验证说明

本项目实现的方法已使用缓存模拟器进行测试,对于侧信道攻击的实现,建议先使用缓存模拟器测试以验证方法的正确性,使用的缓存模拟器可在 https://git.cs.uni - bonn.de/boes/vlsg_sidechannel_proto 找到。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】