# 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`接入外部时钟故障注入设备即可。