信息安全专题 | 安全存储(1)STM32H7的密钥存储

发布者:温柔的爱情最新更新时间:2023-02-06 来源: zhihu关键字:信息安全  安全存储  STM32H7 手机看文章 扫描二维码
随时随地手机看文章

使用STM32H7 安全新特性实现敏感数据(密钥)的安全存储与使用

密钥的安全存储与使用

安全通信、用户数据加密存储等都离不开密钥,密钥安全存储与使用是嵌入式系统中常见的安全功能需求之一。MCU上对于密钥的保护通常会从几个方面着眼 :

  • 调试端口访问:避免通过调试端口获取密钥,通常通过调试端口保护机制来实现

  • 软件代码访问:禁止任意软件直接读取密钥,避免由于软件漏洞可能带来的密钥被恶意代码获取的风险,可以通过隔离机制来实现

  • 运行期间对密钥使用的保护:如果加解密操作通过软件实现,那么软件隔离机制是方法之一;如果加解密操作可以通过硬件单元完成,那么让密钥只能由硬件直接操作而不允许CPU/DMA访问也是一 种有效的方法

STM32H7新特性提供基于片上Flash的安全存储

  • 调试端口连接可控:在RDP0条件下也可实现对调试端口的保护:上电调试接口即不可连接(类似RDP2的效果);比RDP2更灵活:可以由用户代码控制调试端口访问权限,实现安全调试,并保留修改选项字节的可能性

  • PCROP区域阻断D-Bus访问,防止程序窃取敏感数据

  • 用户片上Flash进一步隔离:保护根密钥不被木马程序盗取

  • CRYP的KEY寄存器具有只写属性:普通代码可以使用它对存储在普通区域的敏感数据密文做解密操作,但是无法拿到密钥本身

PCROP保护的设置和撤销

  • PCROP区域的设置:每个bank可设置一个PCROP区:大小从512字节到整个bank;粒度,256字节;由以下选项字节指定有效范围PROT_AREA_START1/2、*** _END1/2;起始地址 > 结尾地址,保护无效

  • PCROP区域范围只能增大,不能减小,除非撤销区域保护后重新设置范围

  • PCROP区域的撤销:RDP降级 + PCROP范围无效,同时进行;若此时RDP=0,要先升级到RDP1再做降级

  • PCROP区域的保留-由于其他原因需要做RDP降级,但同时想保留PCROP区域里的内容,以及保护效果:区域范围保持不变(起始地址 < 结束地址);DMEP1/2 = 0


STM32H7上的安全存储

▲ STM32H7上的安全存储. 启动代码

▲ STM32H7上的安全存储. 应用代码

▲ 安全STM32H7 安全存储示例

安全存储例程使用说明

  • 解压缩软件包,使用熟悉的IDE分别打开Boot和App两个工程,分别编译

  • App工程可以使用IDE或者熟悉的烧录工具下载

  • Boot工程:Boot工程image,占据片上Flash第一个Sector;密钥恢复函数所在的PCROP区域,也在第一个Sector里面;使用IDE对Boot工程编译即可,得到Boot.hex。不要继续使用IDE来下载

  • 密钥恢复函数的生成和下载:到命令行窗口,分别使用两个脚本生成 “密钥恢复函数”,以及下载密钥 和Boot image到片上Flash的第一个Sector(如下图)

  • 打开串口调试助手:115200波特率,8bit数据位,1bit停止位;无校验位,无流控

  • 启动STM32H753-Nucleo板(复位按键+用户按键)

▲ Boot 工程菜单

密钥的预装载和后续使用

  • 密钥,由运行于安全用户存储区的Boot在上电的时候从PCROP保护区域执行代码,预装到CRYP硬件模块的密钥寄存器,该寄存器具有“WO”属性

  • 在后续的CRYP操作中,HAL驱动不能再去修改密钥寄存器,因而示例程序中的HAL Driver已经做了如下一些修改:仅仅在初始化结构体中,使用空指针赋值pKey是不够的;还需要对初始化结构体中的KeyIVConfigSkip成员进行特别规定,添加新的选项(***_Never)

▲ App工程

▲ 加解密操作的验证

▲ AES-GCM 注意事项

注意事项

  • SEC_AREA没有安全区时,只能由RSS来初始化;有了安全区后,运行在其中的代码可以修改SEC_AREA;STM32CubeProgrammer是无法操作SEC_AREA成功的

  • SECURITY=1,IDE下载可能会失败;要么从STM32CubeProgramer连接后,清零SECURITY;要么修改工程的复位连接方式

调试Boot工程 (对PCROP区域代码的调用)

  • Flash保护没有打开时,可以在Boot工程调试PCROP区域里的 “密钥恢复函数”

  • Boot image和 “密钥恢复函数”,在同一个可擦除Sector,由脚本一起烧录

  • 调试Boot image时,需要去掉对应的flash loader设置:三种IDE配置如下

密钥恢复函数

  • 使用脚本把密钥数据转换成 “密钥函数”

  • 把密钥恢复到该函数的调用参数中:fp ((uint8_t *)&(CRYP->K2LR)) // 给CRYP使用;fp(&key[0]) // 用于打印到串口屏幕,供第三方 加解密工具做同样操作,来比对加解密结果

  • 为进一步提高安全性:密钥恢复函数不接受任何参数,固定是把密钥恢复到CRYP密钥寄存器中;参见 “密钥函数” 生成脚本做相应修改


小结

安全STM32H7能够提供片上存储的安全性安全硬件,助力安全存储:

  • 安全用户存储区-选项字节设置,上电即生效

  • PCROP保护-选项字节设置,上电即生效

  • CRYP密钥寄存器WO

  • 调试端口连接可控 — 上电缺省不可连接


关键字:信息安全  安全存储  STM32H7 引用地址:信息安全专题 | 安全存储(1)STM32H7的密钥存储

上一篇:基于STM32MP157的Linux操作系统移植—系统镜像烧写
下一篇:STM32G0实战—DMA

推荐阅读最新更新时间:2024-11-01 18:09

汽车功能安全、预期功能安全信息安全的融合与发展
一、汽车行业三大安全主题 我们都知道汽车行业的三大主题是:功能安全、预期功能安全与信息安全。 功能安全标准是汽车三大安全标准中发布时间最早(2011 年)的标准,它来源于 IEC61508,它的主要内容包括:危害识别与评估、功能安全概念、系统安全概念、软硬件安全概念、验证与确认、生产、运行与维护报废。 在 2018 年新增了半导体、特种车和 SOTIF 相关内容。同时,在 2018 年,根据职能驾驶系统的发展又提出了预期功能安全的概念,其中预期功能安全主要针对的是智能 ADAS 系统。2018 年首次发布,2019 年发布了 PAS 版本,2020 年还有一个没有做好的 CD 版本,此版本并没有为大家广知。 预期功
[汽车电子]
汽车功能<font color='red'>安全</font>、预期功能<font color='red'>安全</font>与<font color='red'>信息安全</font>的融合与发展
信息安全标委会:网联汽车采集相关数据不得乱用
全国信息安全标准化技术委员会秘书处发布《信息安全技术 网联汽车 采集数据的安全要求》标准草案。 基本要求提出,不得基于网联汽车所采集数据及经其处理得到的数据开展与车辆管理、行驶安全无关的数据处理活动;国家行政管理部门对汽车处理数据另有要求的,从其要求。 草案具体对以下几点进行了规定: 未经被收集者单独同意,不得向外传输数据 草案规定,在数据传输上,未经被收集者的单独同意,网联汽车不得通过网络、物理接口向车外传输包含个人信息的数据。将清晰度转换为120万像素以下且已擦除可识别个人身份的人脸、车牌等信息的视频、图像数据除外;网联汽车不得通过网络、物理接口向车外传输汽车座舱内采集的音频、视频、图像等数据及经其处理得到的数据
[嵌入式]
<font color='red'>信息安全</font>标委会:网联汽车采集相关数据不得乱用
苹果手机存储指纹数据安全区被黑客攻破 密钥被公开
 在第三方移动支付服务中, 苹果 支付的安全性比较高,因为苹果在手机中使用了专用的芯片,来存储指纹的安全数据,避免被外部软件或者黑客获取到。过去,安全性也成为苹果推广支付服务最大的卖点之一。 然而日前传来一个不利消息,黑客已经攻破了苹果手机的安全区,获得了加密指纹数据的密钥,未来将会对苹果用户带来怎样的影响,是否会造成海量用户信息被盗,目前尚不得而知。 综合AppleInsider等多家外媒报道,在指纹识别过程中,手机系统需要对用户指纹数据进行比对,而相关的信息以加密方式保存在安全区中。苹果采用专用芯片存储的方法,最大限度避免了机密信息被黑客所攻破。 最近,安全人士准备在新加坡举行一个安全技术大会,名为“Singapore Hac
[安防电子]
STM32H7系列芯片发不出去的hello问题
有人使用STM32H7系列芯片,用到UART做字符串输出时遇到点小问题。这里一起聊聊该问题,并分析问题原因。【注:下面所用IDE乃ARM keil MDK】 事情是这样的,他基于DMA方式通过UART对外发送“Hello”字符串,可无意中发现当该字符串以不同的变量形式提供给函数时结果却不一样。不妨以下面示意的功能代码为例来看。 上图中的主要功能就是基于DMA方式通过UART发送两次字符串,一个字符串是“Hello,STM32-1!”,另一个是“Hello,STM32-2!”,两字符串一字之差以示区别,便于调试。 可是,按照上面写法和默认编译条件,测试发现只有第一个UART发送函数有效,第二个UART发送函数没有相应输出。见
[单片机]
<font color='red'>STM32H7</font>系列芯片发不出去的hello问题
STM32H7教程】第21章 STM32H7的NVIC中断分组和配置(重要)
21.1 NVIC基础知识 NVIC的全称是Nested vectored interrupt controller,即嵌套向量中断控制器。 对于M3/M4/M7内核的MCU,每个中断的优先级都是用寄存器中的8位来设置的。8位的话就可以设置2^8 = 256级中断,实际中用不了这么多,所以芯片厂商根据自己生产的芯片做出了调整。比如ST的STM32F1xx,F4xx和H7只使用了这个8位中的高四位 ,低四位取零,这样2^4=16,只能表示16级中断嵌套。 对于这个NVIC,有个重要的知识点就是优先级分组、抢占优先级和子优先级。STM32F1xx,F4xx和H7都是只使用了这个8位寄存器的高四位 。 从上面的表格可以看出,
[单片机]
【<font color='red'>STM32H7</font>教程】第21章 <font color='red'>STM32H7</font>的NVIC中断分组和配置(重要)
IBM 助力大陆集团实现更高效的数据存储和 AI 训练,打造智能安全的自动驾驶解决方案
北京2024年6月25日 / -- 对大多数人来说,驾驶属于第二天性,其中涉及一系列自动决策。训练 AI 进行自动驾驶需要 PB 级的数据,以便比人类做出同样决策时快 1/10 秒,且让驾驶更为安全。 针对自动驾驶优化的 IT 基础架构 据 世界卫生组织(WHO) 统计,每年约有 135 万人死于道路交通事故,另有 5千万人受伤。为了降低这种风险,欧盟已经要求到 2030 年大力推广自动驾驶汽车。为全自动驾驶提供最佳技术路径的竞赛已经拉开序幕。 大陆集团(Continental)高级驾驶辅助系统 (ADAS) 人工智能主管 Robert Thiel 表示: 在发生严重事故的情况下,高级驾驶辅助系统的反应速度比驾驶员
[汽车电子]
IBM 助力大陆集团实现更高效的数据<font color='red'>存储</font>和 AI 训练,打造智能<font color='red'>安全</font>的自动驾驶解决方案
Atmel面向物联网发布首款支持TLS硬件加密加速和安全存储平台
2016年2月25日,Atmel 公司今日推出业内首款面向物联网(IoT)边缘节点应用的TLS栈硬件接口库。安全强化(Hardening)是一种通过应用附加硬件安全层、去除易受攻击的软件等手段,减少系统安全隐患的方法。Atmel的新硬件TLS(HW-TLS)平台提供的API,支持TLS数据包采用硬件密钥存储和加密加速功能,甚至可在资源有限的边缘节点设计之中应用。HW-TLS是预装了唯一密钥和证书的综合解决方案,可以消除在制造商供应链环节生成安全密钥的复杂工作。 面向OpenSSL和wolfSSL实现的完整安全解决方案 OpenSSL是一套通用的加密库,可支持安全套接层(SSL) 和传输层安全(TLS)协议的开源实现。wolfS
[物联网]
专访奇安信孔德亮:智能汽车面临三大信息安全风险 关乎国家安全
在相关政策引导支持下,我国智能网联汽车市场规模不断提升。2022年上半年,国内具备组合驾驶辅助功能的乘用车渗透率增加至32.4%。作为参考,IDC此前数据显示,2022年第一季度L2级自动驾驶在国内乘用车市场的新车渗透率达23.2%。 随着车联网提速发展,车联网安全边界进一步扩大,网络安全和数据安全重要性凸显。日前,在世界智能网联汽车大会上,奇安信副总裁孔德亮接受新京报贝壳财经专访时表示,随着汽车智能化不断加强,汽车面临的信息安全问题也越来越严重。如果汽车没有得到更好的安全防护,受到的恶意攻击可能增多。 从网络安全角度来看,智能网联汽车主要面临着远程入侵、近距离攻击、接触攻击三个角度的安全风险;而从数据安全角度,智能网联车
[汽车电子]
专访奇安信孔德亮:智能汽车面临三大<font color='red'>信息安全</font>风险 关乎国家<font color='red'>安全</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved