# OSR-303
**Repository Path**: osr-tech/osr-303
## Basic Information
- **Project Name**: OSR-303
- **Description**: OSR-303硬件安全评估板
- **Primary Language**: C
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2024-11-07
- **Last Updated**: 2025-04-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OSR-303 硬件安全评估板
> 如果该实验平台对您的研究和实验有帮助,可在论文中引用本工程,并推荐给其他人,我们不胜感激!
OSR-303 硬件安全评估板是专为硬件安全实验定制的开发评估板,可快速搭建侧信道、故障注入实验环境,进行相关内容的学习与实验。
OSR-303评估板主核心是ARM Cortex-M4架构的STM32F303RCT6芯片。评估板搭载串口和调试功能,只需要USB线即可实现上位机通信、程序下载、调试等功能,大大简化环境搭建复杂度。
OSR-303的主要参数如下表所示:
| 微处理器 | STM32F303RCT6 |
| :------- | :------------ |
| 工作电压 | 5V |
| Flash | 256KB |
| 晶振 | 8MHz |
## 硬件接口
评估板上的接口说明如下表所示,接口对应的位置如下图对应序号所示。
| 序号 | 接口 | 说明 |
| :--- | :----------------- | :-------------------------------------------------------------------- |
| 1 | USB接口 | 提供5V工作电压,与PC连接,用于调试、下载和UART数据传输通信 |
| 2 | 独立SWD接口 | 用于程序下载调试,可外接独立的ST-Link使用 |
| 3 | 独立串口 | 用于上位机通信,可外接独立的串口使用 |
| 4 | GPIO接口 | 引出32个GPIO接口,丝印对应MCU芯片的引脚 |
| 5 | 触发输出接口 | 3个触发输出接口,丝印对应MCU芯片的引脚 |
| 6 | 时钟切换开关 | 进行内部时钟和外部时钟的切换 |
| 7 | 外部时钟输入接口 | 外部时钟输入接口(用于时钟故障注入实验) |
| 8-9 | 侧信道功耗采集接口 | 8为采样电阻靠近MCU侧功耗采集接口,9为8接口经过放大后的信号输出接口 |
| 10 | 外部电源输入接口 | MCU核心外部供电输入接口 |
| 11 | 核心供电切换开关 | MCU核心供电可由开发板内部提供或通过接口10外部提供,通过开关11进行切换 |
| 12 | 复位开关 | 用于程序复位 |
| 13 | Bootloder引脚 | 用于选择芯片的启动模式,默认主闪存启动 BOOT0 = 0 |
正常使用时,开关位置应为:
| 开关 | 默认值 | 说明 |
| :--- | :------- | :------------------------------- |
| SW5 | 内部供电 | 一般不需改变 |
| SW7 | 内部时钟 | 一般不需改变 |
| SW4 | 0 | 该开关调整BOOT0模式,保持为0即可 |
## 侧信道采集
功耗采集原理是在MCU芯片的供电干路上串联采样电阻,MCU芯片运算过程中,电流流过采样电阻,在采样电阻两端产生压降,采集电阻压降可反映MCU芯片的功耗情况。
OSR-303中的`RF7`和`RF8`可用于电压功耗曲线采集,`RF7`为经过信号放大模块后的输出端。一般来说,使用`RF7`接口采集即可。
推荐使用`PicoScope`示波器进行侧信道采集,设备控制脚本见[pico3000](https://gitee.com/osr-tech/pico3000)。
## 电压短路故障注入
电压短路故障注入在MCU运行时,将其核心电压和地进行瞬时短路,从而干扰MCU的正常运行,产生错误。使用[PowerShorter](https://gitee.com/osr-tech/powershorter)可实现短路故障注入。
将`PowerShorter`的`+`接到`JP3`(任一引脚),`-`连接到`JP4`(任一引脚),配置触发即可实现电压短路故障注入。
## 电磁故障注入
电磁故障注入在MCU运行时,产生瞬时电磁脉冲,从而干扰MCU的正常运行,产生错误。使用[PowerShorter](https://gitee.com/osr-tech/powershorter)和EMPluse可实现电磁故障注入。
将`PowerShorter`的`E1或E2`接到`EMPulse`,配置相关参数即可产生电磁脉冲。电磁脉冲干扰到MCU正常运行不能工作时,需要用到PowerShorter上继电器对目标进行硬复位。
## 时钟故障注入
时钟故障注入在MCU运行时,引入非法的时钟毛刺,从而干扰MCU的正常运行,产生错误,将开发板时钟选择开关`SW7`选择为外部时钟,通过`RF2`接入外部时钟故障注入设备即可。