
微控制器中的安全特性涵盖了几个方面,其中包括固件知识产权保护、设备私有数据保护以及服务执行保证。 在物联网的背景下,安全性更加重要。大量联网器件成为了攻击者的主要目标,一些远程攻击通过器件通信通道的弱点对其进行攻击。对于物联网,信息安全的要求从机密性和身份认证扩展到了通信渠道,这些通信渠道往往要求加密。 本文档旨在通过对不同攻击类型采取对策来帮助构建安全系统。在第一部分,在快速概述不同类型的威胁之后,会提供一些典型的攻击示例,以展示攻击者如何利用嵌入式系统中的不同弱点。接下来的几节重点介绍了保护系统免受这些攻击的一套硬件和软件防护。 ; z( m: b& G8 f 最后几节列出了 STM32 系列中可用的所有安全功能,并提供了用于构建安全系统的指南。: w. x7 C* g/ i% I$ { 2 ]8 l% M' a# Q! @4 q2 e. h8 [ 2.概述 2.1 安全保护的目的 # L& U: c( d# A \; T7 ^ 为何需要采取保护措施 微控制器中的安全性是指保护内置的固件、数据以及系统功能。而对于数据保护有需求的场合,尤其是密钥和个人数据最为重要。 固件代码也是重要的资产。如果攻击者能够访问二进制代码,便可对程序进行逆向工程,尝试找到其它漏洞,绕过许可和软件限制。攻击者可以复制任何自定义算法,甚至可以使用它来刷新硬件的克隆。即使是开源软件,也有必要证明代码的真实性,而且并未被恶意固件替代。 9 b3 r6 o7 B) D- @# p& {* l 考虑到系统层面的保护,如环境,包含气体,火灾或侵蚀,检测报警或监控摄像头,拒绝报务攻击(DoS 攻击)是另一种主要威胁。系统功能须具有稳健、可靠的特性。 ( d8 k5 G, ^0 r' g. C1 v 即使安全要求增加了系统的复杂性,也不得低估其地位。如今,越来越多的技术熟练的攻击者将基于微控制器构建的系统做为潜在目标,希望以此实现经济获益。这些收益可能会非常高,特别是在攻击可大规模传播(比如在 IoT环境中)的情况下。即使系统无法达到完全安全,也可以提高攻击的成本。 $ U/ H( F$ e; C! I$ C9 l6 c 事实上,IoT 或智能设备已提高了对安全的要求。互联设备可远程访问,因此对黑客来说极具吸引力。这个连接性本身可能为攻击提供了一个基于协议弱点的入口。一旦成功实施攻击后,一台被破解的设备会破坏整个网络的完整性(请参见下图) 8 y7 J4 F) Q3 f3 Q0 o; f2 `' R ![]() 8 C4 a& |# i \0 b0 q 什么需要被保护 安全不能局限于特定的目标或资产。如果代码二进制文件一旦被公开,则很难保护数据,对应攻击行为和保护机制很难被区分。但是对资产和风险进行汇总仍然非常有用。下表介绍的是被攻击者当做目标的部分资产列表。 1 b6 K* _* Q" H- t3 x6 U ![]() 弱点、威胁和攻击 保护机制需要处理不同的威胁。目的在于消除攻击中可能利用的弱点。 第 3 节 攻击类型中概括介绍了主要攻击类型(从基本攻击到最高级的攻击)。 下面介绍有关安全的三要素: ( i0 n0 z! `0 O% D" A0 J • 资产:需要保护的内容 • 威胁:需要保护器件/用户免于的内容 • 弱点:保护机制中存在的漏洞或缺陷 总而言之,攻击是指一种利用系统漏洞访问资产的实现。 2 c7 B$ a6 [* w f 3.攻击类型 本节介绍微控制器可能面临的不同类型的攻击,从最基本的攻击到非常复杂且成本高昂的攻击。 最后一部分举例介绍针对 IoT 系统发起的典型攻击。 ; p/ U; h9 A7 n7 L4 X% |9 W1 g* N 对微控制器的攻击主要分为以下几类: • 软件攻击:利用软件漏洞(例如错误或协议缺陷)。 • 硬件非侵入性攻击:侧重于 MCU 接口和环境信息。 • 硬件侵入性攻击:直接访问硅片的破坏性攻击 9 S$ V3 C) H3 H& e: B1 o3.1 引言 9 n& Q* x$ D& Q 安全的一条重要规则是攻击总是无处不在。首先,没有任何保护措施能够完全避免意外攻击。无论采取哪种安全措施对系统进行保护,都会在器件使用过程中发现安全漏洞并加以利用。 最后一点需要考虑如何更新设备固件以提高其安全性(请参考第 5.2.2 节 安全固件更新(SFU))。其次,在实验室条件下使用,可检索微控制器内容甚至是设计架构细节。这些技术在 第 3.3 节 硬件攻击 中进行了简短的介绍。 从攻击者的角度来看,如果期望收益/攻击成本之比足够高,那么攻击便有利可图。收益取决于窃取的资产价值以及攻击的可重复性。成本则取决于成功实现攻击所花费的时间和金钱(设备)。 攻击类型 下面对攻击进行了更为详细的分组和分类: - r- a0 u k1 P: z6 ?! F • 软件攻击利用漏洞,协议弱点或不可信的代码片段来执行。对通信渠道的攻击(拦截或篡夺)属于此类。软件攻击是最主要的攻击类型。它们的成本可能非常低。它们可以广泛传播,反复进行,破坏力巨大。无需物理访问器件,即可远程执行攻击。 # ]: o4 c7 g: U4 A9 u" L( B9 J • 硬件攻击需要对设备进行物理访问。最典型的硬件攻击是利用未受保护的调试端口实施攻击。但一般而言,硬件攻击颇为复杂,成本可能非常高昂。进行攻击时需要使用特定的材料,而且对电子工程技能有一定的要求。在板级或芯片级实施的非侵入性攻击不会破坏器件,而在器件硅片级实施的侵入性攻击则会破坏器件封装。在大多数情况下,通过此手段找到一种可用于广泛远程攻击的方法和信息,此类攻击手段才是可利可图的。 7 a- Z1 ^% W) p- S 下表概括介绍了每种攻击类型的成本及使用的技术。 1 A& ?, u) G5 n ![]() |
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
HRTIM 指南
基于STM3的开发环境搭建经验分享
NUCLEO-U545RE-Q评测(2)运行环境建立
NUCLEO-U545RE-Q评测 (3)驱动OLED
NUCLEO-U545RE-Q评测 (6)FFT
NUCLEO-U545RE-Q评测 (5)DAC_DMA
NUCLEO-U545RE-Q评测 (4)ADC_DMA_转换