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

【源码】基于C++和MQTT框架的远程证明系统

项目简介

这是一个基于C++编程语言和MQTT通信协议的远程证明系统,用于验证物联网设备的完整性和安全性。系统通过接收和验证设备的证明(Attestation)请求,提供安全认证和授权服务。项目包含防火墙(Firewall)和验证器(Verifier)两部分,分别处理来自设备的消息与验证设备的证明请求。

项目的主要特性和功能

  1. 设备证明:接收设备证明请求,验证设备固件完整性、配置和运行状态,防止设备被篡改或受恶意软件攻击。
  2. 消息处理:接收并处理设备的各类消息,如配置请求、护照请求、数据消息等,并根据设备状态和配置做出响应。
  3. 加密和签名:运用RSA算法和SHA - 256哈希进行数字签名和加密,保障消息和数据的机密性与完整性。
  4. 数据库管理:使用SQLite或MySQL数据库存储和管理设备信息,如设备状态、配置、序列号等。
  5. 命令行接口:提供命令行参数解析器,便于用户通过命令行设置参数和启动程序。
  6. MQTT通信:采用MQTT协议进行设备间通信,支持设备远程证明和状态更新。

安装使用步骤

安装依赖

根据项目需求,安装必要的库和依赖,包括C++编译器、MQTT库(如Paho MQTT)和数据库驱动(如SQLite或MySQL)。 bash $ $SEDIMENT/utils/install-libraries.sh 注意:mbedtls 3.1.0和mqtt C及C++库需要单独安装。

编译项目

使用C++编译器编译项目,生成可执行文件。 bash $ cd $SEDIMENT $ mkdir build; cd build $ cmake ..; make 若需要支持MySQL,请添加-DMYSQL_ENABLED=ON选项。

配置服务器

默认情况下,服务器配置文件位于configs/boards目录下。可编辑这些文件更改服务器设置。 bash $ $SEDIMENT/build/firewall -c fw.cfg

运行服务器

在不同的终端窗口中运行防火墙和验证器。 bash $ $SEDIMENT/build/firewall $ $SEDIMENT/build/verifier

测试配置

在同一台Ubuntu PC上运行所有组件进行测试。 bash $ $SEDIMENT/build/firewall $ $SEDIMENT/build/verifier $ $SEDIMENT/build/prover 设备连接后,终端应显示服务器与设备之间的消息交换。

下载地址

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