安卓固件修改工具_STM32安全固件更新的安全挑战

3b46e75d1b88dafedbe2dfca2160997d.png

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

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. 介于新旧之间的版本

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

782087ebbc6091909245917f7986b237.png

点击链接观看更多相关课程

电堂科技​c.51diantang.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值