固件更新是我们软件生命周期中必须面临的问题。软件生命周期中有多种原因让我们需要固件更新,而固件更新也会带来安全问题,如使用固件更新来攻击电子钱包。

STM32 已经提供了很多的安全技术来应对固件更新的安全挑战。在这里和大家一起探讨,如何利用 STM32 安全技术,软件以及硬件安全技术,进行安全的升级固件。

讲座内容既包括了固件更新的一般原理,以及安全固件更新的额外设计。


安全固件更新离不开安全启动。STM32 安全启动为 STM32 安全固件更新提供了安全的运行环境。


什么是安全固件更新?

固件更新是指部分或者完全替换设备上的软件的操作,包括添加新应用,修改已有功能,或者去修复软件里的问题。安全固件更新,则是以安全的方式去实施固件更新。安全,也就是是防止固件在更新实施过程中被修改,被假冒以及被窃取的威胁。安全的三要素是保密,完整,可用,需要在安全固件更新的准备以及实施过程得到保证。完整可靠属于我们谈到的安全属性里的完整属性。

- 保密

- 完整

- 可靠


新功能带来新弱点,为什么需要固件更新

“离开软件,芯片就是一堆沙子”( Silicon Without Software is Just Sand)。芯片确实是从沙子中来。芯片需要晶圆,晶圆就是纯化的硅,需要从沙子中提炼。但是芯片有了软件,就可以执行各种各样的输入输出与计算,如同黄金般的珍贵。这句话还可以加一句,“离开固件更新,芯片就在回归沙子的路上"。因为,如果没有固件更新,软件不再适合应用场景,或者停止工作,那么这个芯片也可以说重新变成了沙子。


固件更新很重要,可以从以下几个方面理解:

① 固件更新可以解决系统的功能缺陷或者安全漏洞。

软件总是人开发的,人总是不完美的。人类要想在软件中一个Bug 都没有,那几乎是不可能的事情。所以固件更新的一个最重要的用途,就是给开发人员一个修改的机会,在这个产品生命周期内修复系统缺陷。这些缺陷也可以包括安全弱点。

② 固件更新可以给系统提供新功能新价值。

我们的安卓手机,在硬件不变的情况下,新的功能可以通过安装新的App 获得。同样,对于MCU 来说,固件更新可以提供先前所没有的价值。

③ 固件更新可以帮助产品加快进入市场的进度。

完全可以先实现一个最小的完备系统,支持基础性功能,同时带有固件更新的能力。那么 ,产品就可以进入工厂进行制造,不需要等待所有功能完成。这样可以加快进入市场的进度。

④ 固件更新可以降低设备的维护成本

有了固件更新,可以要求所有的设备都运行在某一个版本或者该版本之上。那么,支持的版本个数就减少了 ,从而支持多个版本的成本就可以显著降低。


为什么需要安全固件更新?

固件更新作为一个系统的修改入口,是可以被恶意的攻击者利用。同时,对安全来说,新功能总会带来新弱点,固件更新的自身的功能设计也可能带来新的安全弱点。黑客可以有多中手段对固件更新进行攻击 。

① 攻击固件本身

黑客可以在更新的起点替换固件。如果固件来源不可靠,则固件轻则不能运行,重则运行起来破坏这个设备。同样如果这个固件是不完整的 ,被破坏了,则固件更新了,还能不能运行就是个问号 。如 果固件一部分被注入了恶意软件,则固件更新之后系统就有了后门 ,也就相当于家里进了小偷或者强盗。

② 攻击固件传输的过程

如果在固件传输过程中,没有做到保密,则固件可以被所有人获得。同样,固件在传输过程中也可能被人为修改。

③ 攻击固件烧写的过程

即使我们在固件传输过程采取了固件加密措施,如果设备在烧写固件时,不采取相应的安全防护 ,那么固件的内容还是通过固件更新的过程泄密了。

④ 攻击固件的存储位置

固件的 存储位置对固件更新的安全也有影响 。当然 ,即使没有固件更新,用户固件存储的位置也会对系统安全的作用也不可忽视。

a. 存储在MCU 内部

用户固件可以存储在MCU 内部。存储在MCU 内部,可以很方便的使用MCU 自带的硬件安全技术来保护固件。例如,使用STM32 的RDP 级别2 来防止外部攻击,保护固件的保密,以及固件的完整可靠性。

b. 使用外扩Flash

外扩Flash 会带来极高的风险。攻击者可以将Flash 吹掉,放在读写器上读出Flash 里的内容。同时,外扩Flash 的引脚,会暴露在攻击者的枪口之下,即使固件得到验证后,也不应该直接从外扩Flash 直接执行。攻击者完全可以欺骗安全启动,在执行的一刹那,将外扩Flash 换成不安全的内容(hot-swapping)。

- 攻击固件的版本

就像我们提到的,新的版本可以解决系统的bug。这些bug 可以包含系统可能被攻击者利用的安全弱点。理论上新的版本总是比旧的版本要安全。而攻击者则反其道而行之,他们可以利用旧的版本来替换新的版本,从而降低系统的安全性。

a. 旧的版本

攻击者可以故意利用旧版本来替换新版本。旧版本带有明显的安全漏洞,则攻击者会利用该漏洞作为入口对系统进行攻击。

b. 介于新旧之间的版本

对于离线设备,攻击者可以利用一个有弱点的中间版本,来攻击设备。该中间版本,比设备上的版本新;但是又不是厂 家的最新版本。在这种情况下,设备是很难分辨是否应该要升级。


关键字:STM32  更新 引用地址:STM32安全固件更新的安全挑战

上一篇:STM32G4板卡分享-G431RB开发板之硬件概览
下一篇:STM32安全固件更新的设计与实现

推荐阅读

新浪手机讯 2月27日下午消息,今日在苹果地图App中新增40个中国地标建筑标签,使你更快速找到建筑。上海中心  这些图标以单色描绘了该建筑物主体,并准确标注其地理位置让用户无需搜索地址即可找到地标建筑。  此次苹果主要在北京、上海、广州、深圳四座城市增加40个具有中国代表性的地标建筑。比如位于北京的白塔寺、国家大剧院;位于上海的上海中心...
由于实施了旨在改善客户成果的种种举措,组织正在将人工智能转变为业务上的成果。公司的使命是改善客户体验,使与之有业务往来的人更轻松自如。只要在商业社交媒体网站领英(LinkedIn)上进行快速搜索就可以找到与客户体验管理相关的众多工作。与此同时,客户体验受到了普遍的关注,越来越多的组织正在部署人工智能(AI)工具。调研公司Markets and Mark...
上周五苹果公司股票开盘价为318.79美元,一周过去,数字跌去45.27美元,也就是14.2%,仅为273.52美元。  虽然疫情对苹果运营的影响尚未完全结束,不过库克乐观的发言以及可能会在3月份发布的iPhone 9(iPhone SE 2)或将为苹果公司带来利好。  分析师预计,iPhone 9手机今年将为苹果带来120亿美元(约合840亿元)的收入,大致等价于以399美元...
单片机液晶显示程序硬件电路:51最小系统,没有采用总线方式,直接的I/O形式,包括矩阵键盘,1602液晶,一个数码管,LED4个,蜂鸣器等.//单片机液晶秒表计算器完整修改版本可以实现两种功能的切换,其他功能自行对照代码研究。4*4矩阵键盘,第一排前三列是实现小时分钟秒的加.第二排前三列是实现小时分钟秒的减.当然还可以通过设置矩阵键盘的键值,来实现加减乘除四则...

史海拾趣

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

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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