AN2604:超越微控制器内置的安全防护:解锁安全元件的更多优势
引言
安全元件是执行加密功能并安全存储密钥和凭证以防篡改的专用 IC,通常用于嵌入式应用,在大多数情况下通过串行总线(如 I2C 或 SPI)连接到主机微控制器。
安全元件的设计初衷是以尽可能少的设计工作量实现系统的升级。安全元件的突出优势在于,它能在不更改处理器和架构的情况下提升系统安全性,从而避免全面重新设计带来的大量工作。
安全元件是否仍有必要?
随着安全需求的增长,大多数微控制器供应商选择在微控制器中嵌入加密和安全功能,例如:
- 数字签名计算和验证
- 加密
- 安全存储
- 随机数生成
如果已经有了这些集成的安全构建模块,额外的安全元件相对于通用微控制器的安全功能来说,是否显得多余?本文的分析表明,这个问题并没有一个简单的答案。让我们看一下二者的异同点。
隔离
一般来说,安全关键型固件应与其他软件隔离,这样做有以下优势:
- 通过隔离,可实现精简且专注于安全防护的固件,与复杂、功能繁多的操作系统分离,从而减小潜在的攻击面。
- 精简的软件结构有助于降低漏洞风险,避免攻击者利用漏洞获取敏感数据或绕过安全机制。
- 提升安全保障,因为较小规模的软件代码便于进行全面审查,而要对整个固件进行代码审查,难度会非常大。
在微控制器中,可通过多种机制实现隔离。Arm TrustZone®是广泛使用的一种机制;MMU 和 MPU也很常见。虽然这些隔离机制很有价值,但能否抵御毛刺攻击等攻击技术,取决于具体的实现方式[1]。此外,硬件隔离要想真正有效,必须配合正确的配置和软件设计。比如,安全区和非安全区的内存边界必须明确划定。配置不当就可能带来安全隐患。
使用安全元件的优势在于,其隔离机制是物理层面的,无法被攻破。微控制器上运行的固件无法干扰安全元件中运行的固件。双芯片架构提供的隔离比依赖微控制器内部机制实现的隔离更为稳健。
也可以将微控制器的内部隔离机制与安全元件相结合。例如,调用了安全元件的安全关键型软件可在 Arm TrustZone 所创建的可信执行环境(TEE)中运行,从而增强整体安全水平。
加密计算的功能考量
目前,大多数实现方案所采用的加密算法都已获得专家社区或权威机构(如 NIST 或 BSI)的认可。如果微控制器和安全元件的加密实现方案均符合相关标准,那么从功能角度来看,二者并无区别。在这种情况下,安全元件所带来的价值可能并未超过微控制器内置的安全功能。不过,同时应当检查实现方案是否合规。例如,NIST 加密算法验证项目(CAVP)可保证 IC 中实现的加密算法符合标准。其他认证方案也能提供类似程度的合规保证。
密钥的安全存储
如上所述,现代加密算法是公开的。事实证明,这种方式优于专有算法。但这也意味着,一旦私钥或密钥泄露,整个安全体系将失效,因为密钥是安全嵌入式系统中最核心的资产。
在微控制器中,密钥通常存储在闪存或 OTP 中。上述逻辑隔离机制能为这些密钥提供保护。
逻辑隔离虽然能提供初步的安全防护,但其强度不及物理隔离。
- 逻辑硬件保护机制可能会被物理攻击攻破,例如通过毛刺或激光束进行故障注入。[1]毛刺攻击不需要昂贵的设备,也不需要高深的理论知识就能实施,因此危害极大。
- 读取闪存或 OTP 内容以访问私钥或密钥,只需使用价格相对低廉的设备即可实现,且无需具备专家级别的高深知识[2]。
相比侧信道攻击或故障注入攻击,虽然读取闪存或 OTP 需要投入更多资金和时间,但并非想象中那样高不可攀。一些大学或研究实验室就配备了扫描电子显微镜等设备,而且相关技术在公开文献中就有详尽说明。[2]通常,如果破解的获益相对于投入成本而言足够高,心存动机的黑客就会投入必要的时间和金钱来试图获取密钥。
相比标准闪存,安全元件在存储安全性方面具有更高的抗攻击能力。例如,ADI 公司的 MAXQ1065 和 DS28S60 具有加密的非易失性存储器(NVM)。得益于强加密技术,攻击者即使读出了 NVM 内容,也无法提取密钥。由于存储器加密密钥本身可能就是提取的目标,因此密钥实际上不是存储在 NVM 中,而是由 ChipDNA®物理不可克隆功能(PUF)生成。所以,读取闪存或 OTP 的技术无法奏效,因为:
- 存储器加密密钥并非存储在 NVM 中
- 芯片未上电时,存储器加密密钥并不存在。
PUF 一旦嵌入微控制器或安全元件中,就能非常可靠地保障密钥或敏感信息的存储安全。如果风险评估显示系统需要具备较强的抵御物理攻击的能力,那么采用基于 PUF 的安全存储方案是理想选择。然而,如果微控制器中没有 PUF,那么添加安全元件可实现高级别的物理攻击防护能力。
轻松将密钥注入最终产品中
某些微控制器具有支持 PUF 的高安全存储器。然而,将密钥注入 MCU 的受保护存储器可能是一个难点。一般来说,为将密钥注入 MCU 中,需要一个具有物理安全防护的设施来操作密钥。并非所有 OEM 都有能力自建安全设施,如果依赖供应商,情况会更加复杂。
ADI 公司提供密钥配置服务,并可代表 OEM 写入密钥。密钥和证书在我们的工厂中进行编程,锁定后发送给 OEM 或授权的供应商。使用预编程的安全元件是为最终产品提供密钥和凭证的简 便方法。
加密计算的健壮性
加密算法的实现即使在功能上是正确的,也可能成为侧信道攻击或故障攻击的目标。
侧信道攻击是指监测加密运算过程中无意泄漏的信号,再运用信号处理技术提取计算所使用的密钥。
对于未加保护的实现方案,业界普遍认为,即便攻击者仅具备中等技术水平(例如在校大学生)并使用廉价设备(如数字示波器),也能在不到一天的时间内成功从微控制器中提取密钥。
无论是硬件还是软件实现的加密算法,都可能遭受侧信道攻击。业界已公开多起针对这两类实现方式的成功攻击事件。MCU 上运行的软件加密库未必不安全,但未采用“安全设计”原则的实现方案本身容易受到攻击。不同产品的抗攻击能力参差不齐,然而微控制器的供应商不一定会披露其产品支持的防护等级。
另一类漏洞是故障注入引发的加密密钥恢复。故障注入是指通过毛刺、激光束或电磁脉冲等手段故意改变 IC 的行为。例如,电源引脚上的毛刺可能会导致时序违规,进而造成加密计算出现错误。熟练的攻击者可以在特定的加密计算步骤中应用毛刺。通过收集多个故障计算样本,并分析其与正常计算的差异,攻击者可以破解出密钥,例如AES密钥[3]。这种方法被称为差分故障分析(DFA)。
安全元件是专门设计的专业 IC,通常采用硬件与软件机制相结合的方式,以实现抵御侧信道攻击和故障攻击的强大防护,保障密钥或私钥不被窃取。
控制执行流程
支持加密和安全防护的应用通常包含决策机制。例如,在用户成功通过身份验证后,会授予该用户访问存储器内容等资源的权限。攻击者往往不会直接攻击加密算法的实现方案,因为这需要专业的密码学知识。相反,他们更可能试图操控决策环节,让程序按照他们期望的方式运行。注入故障以强制测试结果执行错误的分支是一种常见的攻击途径。
其他攻击包括:
- 跳过指令或一组指令
- 操纵程序计数器
- 破坏总线上的地址或数据
后果可能很严重,包括获得特权访问权限、未经授权泄漏密钥和密文、注入恶意软件或一般性的异常行为,最严重的情况可能危及人身安全。
目前已有应对攻击者操纵控制流程的防御手段,主要基于冗余机制实现,具体形式有多种。在软件中,防御手段可以是分支测试重复、冗余指令插入或带有计数器的专用函数调用[4]。在硬件中,防御手段可以包括对状态机进行特定编码或使用冗余寄存器。通常,当攻击者制造漏洞时,冗余分支操作或测试会予以补偿,或将微控制器置于安全状态。
软件防御手段的缺点是实施起来需要专业技能,并且这通常不是自动化的,因此需要额外的研发投入。而且,还会增加代码规模,对性能产生负面影响。安全元件通常会嵌入硬件和软件保护,以防范攻击者操纵控制流程。因此,通过将敏感操作委托给安全元件,应用开发人员可以更好地防范针对控制执行流程的攻击。
结语
本文列出了针对嵌入式系统的几种常见攻击,并概述了微控制器和/或安全元件支持的防御手段。那么,设计中究竟是否需要用到安全元件?
答案不能一概而论。
嵌入式产品安全防护是一种风险缓解策略,旨在保护产品知识产权、客户数据、企业声誉、收入等免受损失。面对不断变化的威胁,嵌入式产品安全防护必须在产品的整个生命周期中持续提供有效的保护。有些产品的使用寿命可能只有几个月,有些则长达数十年,因此不能采用“一刀切”的方法。产品设计人员在实施安全方案时应持审慎保守的策略,以确保产品的安全防护机制能够长久抵御不断演变的威胁。安全元件只是产品安全工具箱中的一个工具,使用与否需由产品开发人员根据具体情况决定。
参考文献
[1] G. F. O. f. I. S. (BSI),“A Study on Hardware Attacks against Microcontrollers”,17 03 2023。[在线]。网址: https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Studies/HardwareAttacks/Hardware-Attacks-Microcontroller.html。[2024 年 5 月 28 日访问]。
[2] S. S. a. C. W. Franck Courbon,“Reverse Engineering Flash EEPROM Memories Using Scanning Electron Microscopy”,CARDIS 2016: Smart Card Research and Advanced Applications,2016 年。
[3] Limited Results,“Nuvoton M2351 MKROM”,2020 年 1 月 12 日。[在线]。网址: https://limitedresults.com/2020/01/nuvoton-m2351-mkrom-armv8-m-trustzone/。 [2024 年 5 月 31 日访问]。
[4]K. H. P. B. Jean-Fran¸cois Lalande,“Soware countermeasures for control flow integrity of smart card C codes”,第 19 届欧洲计算机安全研究研讨会,波兰弗罗茨瓦夫,2014 年。
[5] J. Fruhlinger,“reat modeling explained: A process for anticipating cyber attacks”,CSO,2020 年 4 月。[在线]。网址:https://www.csoonline.com/article/569225/threat-modelingexplained-a-process-for-anticipating-cyber-attacks.html。[2024 年 7 月 25 日访问]。


