项目简介
这是一个基于C++编程语言和MQTT通信协议的远程证明系统,用于验证物联网设备的完整性和安全性。系统通过接收和验证设备的证明(Attestation)请求,提供安全认证和授权服务。项目包含防火墙(Firewall)和验证器(Verifier)两部分,分别处理来自设备的消息与验证设备的证明请求。
项目的主要特性和功能
- 设备证明:接收设备证明请求,验证设备固件完整性、配置和运行状态,防止设备被篡改或受恶意软件攻击。
- 消息处理:接收并处理设备的各类消息,如配置请求、护照请求、数据消息等,并根据设备状态和配置做出响应。
- 加密和签名:运用RSA算法和SHA - 256哈希进行数字签名和加密,保障消息和数据的机密性与完整性。
- 数据库管理:使用SQLite或MySQL数据库存储和管理设备信息,如设备状态、配置、序列号等。
- 命令行接口:提供命令行参数解析器,便于用户通过命令行设置参数和启动程序。
- 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】