littlebot
Published on 2025-03-27 / 3 Visits
0

【源码】基于Rust和Python的nrf52840安全启动测试项目

项目简介

本项目聚焦于nrf52840开发板,涵盖测试引导加载程序、密钥生成和镜像签名工具以及裸机测试应用程序。核心目的是为nRF52840的HW加密加速器生成Rust绑定,借助硬件加速的ECDSA算法测试固件镜像的认证或验证,同时评估CC310在nRF板上的优缺点。

项目的主要特性和功能

  1. Rust绑定生成:运用rust - bindgen为nRF52840的HW加密加速器(ARM CryptoCell 310)生成Rust绑定。
  2. 固件签名验证:采用硬件加速的ECDSA算法对固件镜像进行认证或验证。
  3. 性能评估:分析CC310在nRF板上处理速度、内存占用等方面的优缺点。

安装使用步骤

前提条件

已下载本项目源码文件,且具备以下环境: - 安装Rust和Python 3.x。 - 安装OpenSSL库。 - 安装pyocd或OpenOCD工具。

操作步骤

  1. 分别编译引导加载程序和固件项目,按引导加载程序memory.x文件指定的内存布局进行闪存。
  2. 将固件镜像闪存到设备,加载到内存偏移地址0x8000处。
  3. 重置设备,开发板运行引导加载程序,验证固件并跳转到地址0x8000,实现LED闪烁。

签名步骤

  1. 使用signatures文件夹中的Python脚本生成ECC密钥对(私钥和公钥)。
  2. 利用私钥和最终构建产物XX - blinky.bin(位于目标目录的examples文件夹)生成固件签名。
  3. 使用pyocd将生成的签名闪存到开发板地址0x82d0,示例命令:pyocd flash -t nrf52840 --base - address 0x82d0.\REAL_raw64byte_sig_gen_from_openssl.bin

下载地址

点击下载 【提取码: 4003】