几乎所有基于MCU的嵌入式系统 - 汽车,无人机,USB记忆棒,车库门开启器,数码相机,甚至是打印机墨盒等耗材 - 都容易受到安全攻击。
越来越多的记录在案的安全漏洞使用物联网(IoT)作为切入点,提高了物联网连接设备的设计社区的安全意识。通常,这些故事涉及影响消费者和最终用户的漏洞。但是,其他类型的安全威胁对设计工程师来说至少同样重要 - 而且大多数涉及盗窃,篡改或破坏知识产权。
互联网可能已成为基于MCU的系统中最受欢迎的切入点,但它远非唯一的。无担保或安全性不足的诊断端口一直容易受到攻击 - 因为汽车行业很大程度上是通过“调谐器”社区的活动发现的。任何无线(或有线)通信链路也可用作入口点。即使是未连接的MCU设备(或其相关ROM)也会受到篡改和IP盗窃。在其他技术中,逆向工程专家已经开发出一些技术,其中芯片的掩模层被小心地磨平,直到暴露出ROM层。通过仔细分析哪些交换机已被烧断,可以推断出其中包含的固件代码。
MCU供应商已采用多种方法来响应,以增强运行其设备的固件的安全性。虽然这些措施使固件更加安全,但实施它们需要系统设计团队了解它们的工作方式 - 并正确实施它们。这涉及系统物料清单(BOM)的额外工作量,时间和成本。计算机密集型安全措施(如数据加密)可能需要功能更强大的MCU。
安全策略
软件解决方案通常被认为是一种极具吸引力的选择,因为它们相对容易实现且几乎免费。有时它们已足够,但通常情况下是“快速,便宜,简单”的解决方案,它们会带来更多风险。安全算法的关键组件,如加密密钥,存储在MCU的现有内存资源中,如作为EEPROM或Flash。但是,如果存储设备本身不安全,则密钥信息仍然存在风险。算法本身也可能存在实施错误,使其容易受到攻击。
基于软件的解决方案的一个流行变体是为系统的客户端添加基于硬件的安全性并使用软件安全性在主机方面。该硬件 - 可以存在于客户端MCU或附加芯片中 - 用于存储加密密钥并执行部分或全部安全算法。关键数据受逻辑和物理机制的组合保护,这些机制通常由制造商保密。这种方法可以有效防御中间人攻击。由于主机端密钥存储在不安全的资源中,它们仍然可能被更改或被盗。完全由硬件实现的MCU安全性将防篡改密钥存储放置在系统的每个关键点,包括加密,并执行硬件中的安全算法。
实现基于硬件的MCU安全性的一种流行方式是MCU供应商提供专门设计的处理器和外围设备。实施方案各不相同,但通常安全处理芯片组可提供更低的性能并增加BOM成本。
硬件加密
Microchip Technology通过在MCU上集成加密引擎,为其一些常用的PIC器件提供硬件安全性。该引擎还执行身份验证以防止中间人攻击。两个例子是16位PIC24F“GB2”和32位PIC32MZ。
除了增加安全性之外,集成引擎还可以将MCU卸载到软件中执行加密算法的任务.Microchip的硬件引擎可以执行加密和验证顺序或并行。基于内部描述符的DMA用于安全关联数据和分组指针的有效编程。智能状态机根据协议选择和数据包边界调度加密引擎。
主要功能包括:批量密码和哈希引擎,集成DMA到卸载处理,每个缓冲区描述符的安全关联以及执行能力一些函数并行。
图1显示了PIC32MZ的算法和性能指标。与在软件中执行算法相比,性能指标可以指示加密速度和获得的CPU卸载量。
引擎/算法性能因子
(Mbps/MHz)最大Mbps
(PBCLK5 = 100 MHz)DEC 14.4 1440 TDES 6.6 660 AES-128 9.0 900 AES-192 7.9 790 AES-256 7.2 720 MD5 15.6 1560 SHA-1 13.2 1320 SHA-256 9.3 930
Microchip为其32位加密引擎器件提供DM320006-C入门套件,为其16位器件提供DM240314演示套件。
德州仪器(TI)最近推出了一种新的嵌入式MCU存储器方法,其新系列MSP430 FRAM MCU使用铁电随机存取存储器(FRAM)代替Flash。 FRAM结合了Flash和SRAM的属性。与Flash一样,它是非易失性的,但与SRAM一样,它可以提供快速,低功耗的写入。它的重写耐久性大于1015个周期。
由于其对辐射和电磁场的抵抗力,FRAM中存储的数据比Flash/EEPROM更不易受到逆向工程攻击。此外,它的功率和访问速度优于闪存。
13 KB的FRM写入速度为10 ms,而闪存为1 s,其测得的平均有功功率(16位字访问测量)为100μA/MHz与闪存的230μA/MHz相比。
它对辐射和电磁场的抵抗力使FRAM在使用显微镜和电压操纵防止物理攻击方面特别有价值。
在这些类型的攻击中,黑客试图改变应用程序代码本身,而不是在传输数据时尝试修改数据。为了实现这一目标,他们首先获得应用程序代码的图像,对其进行反向工程,最后在系统中成功覆盖修改后的版本。
FRAM抵抗显微镜攻击,因为位写入和读取线实际位于任何一侧极化分子,这意味着芯片的去层可能会破坏存储器的内容。
主要由于FRAM写周期的速度,可以防止电压操作。在这些攻击中,器件的输入电压在标准范围之外被操纵,以通过强力对位单元进行编程。很难提供欠压和过压保护电路,其工作时间长于编程EEPROM位单元所需的时间。但是,由于FRAM写入速度要快得多,因此可以将此保护电路配置为创建安全的回写电路,以允许FRAM正确完成写入过程。
保护编程端口
MSP430 FRAM MCU还具有保护用于对器件进行编程的端口的有效方法,这些端口是黑客的有吸引力的切入点。通常,这些是JTAG接口和引导带加载器(BSL),主要用于固件升级。通过在FRAM中编程熔丝签名,TI的FRAM MCU可以使用密码保护JTAG或完全禁用它。禁用JTAG端口时,只能使用BSL访问设备,BSL需要密码才能读出或接收数据。
密码是中断向量表的内容。在MSP430 FRAM设备上,提供错误的密码将导致整个FRAM代码区域被大量擦除。增加密码强度的另一种方法是使用有效的地址值填充中断向量表中任何未使用的地址空间,或者通过创建双跳表使得执行暴力攻击更加困难。
TI提供适用于MSP430 FRAM器件的MSP-EXP430FR5739开发套件。该板与许多TI低功耗RF无线评估模块兼容。
安全密钥管理器
另一种替代方案 - 由Atmel公司提供的另一种方案 - 通过存储密钥,密码的廉价芯片实现加密安全性和其他数据在EEPROM中。安全密钥管理器使用各种物理和逻辑机制,例如随机数生成器,使设备防篡改,并且还能够实现身份验证和加密。
因为它们是自治设备,所以它们会删除来自MCU的100%的计算负担。由于大多数加密和保护方案的工作都是由芯片供应商提前完成的,因此整体系统设计时间也大大缩短。
Atmel的CryptoAuthentication ATSHA204系列器件为设计团队提供了此选项。这些芯片使用SHA-256哈希算法,该算法由消息认证码(MAC)和基于哈希的消息认证码(HMAC)选项增强。其他功能包括:
256位密钥长度
最多16个加密密钥的存储
保证唯一的72位序列号
内部高质量随机数发生器(RNG)
用于密钥和数据的4.5 Kb EEPROM
512位OTP(一次性可编程)用于固定信息的位
多个I/O选项
独特的72位序列号对于实现ATSHA204的大部分功能至关重要。使用设备支持的加密协议,主机系统或远程服务器可以证明序列号是真实的而不是副本。
ATSHA204生成高质量随机数的能力也被设备的加密协议使用至于其他安全策略。灵活的命令集可以简化实施防伪和反克隆保护,固件IP保护和验证,安全数据存储,用户密码检查和会话密钥交换的任务。
Authentication
一种有效的策略来对抗模仿产品是为与真实产品配合使用的配件实施认证过程。当电缆,插件,电源和电池等常见配件使仿制产品无用时,它们会暴露其伪造品质。
同样,仿制配件也无法与原始产品配合使用。模仿配件总会导致收入损失,但是未经完全符合规格的未经授权的配件(如电池或医疗设备)也会造成严重伤害。在客户端向系统添加安全密钥管理器是实现高级别安全性的第一步。
通过将ATSHA204包含在主机系统中可以获得额外的安全性,如图2所示。主机生成客户端(附件)的随机挑战并评估其响应。
由于主机的挑战是使用其ATSHA204生成的,因此即使主机处理器也不知道其响应,因此可以获得额外的安全优势。将处理器与安全功能隔离,可以使用廉价的非安全加固处理器,而无需提供攻击者可以通过其获取系统秘密的弱点。
图2:在附件和主机上包括安全密钥存储可提高系统级安全性。 (由Atmel公司提供)
固件验证
虽然许多安全威胁可能会损害公司收入或损害其品牌,但设计工程师最担心的是尝试复制或破坏MCU的固件,这是通常存储在Flash中。有效防御是一种安全启动过程,可确保只有正版固件才能在系统上运行。
安全启动是使用存储在闪存中的验证代码或签名以及启动代码实现的。签名是在制造或代码更新时创建的,并且是加密散列函数的输出 - 一种不可逆算法,它将引导代码“压缩”为紧凑但唯一的数据报,通常长度为32-128字节。图3说明了如何将计算和密钥存储卸载到硬件密钥管理设备(ATSHA204)中。
图3:安全启动是保护MCU固件的绝佳方法。 (由Atmel公司提供)
在系统启动时,部分引导顺序要求安全设备验证引导代码附带的签名。只有在验证成功时才会执行操作程序,并允许系统以正常方式运行。即使用一位修改操作程序也需要新的验证签名。代码图像和下载的媒体文件都可以使用加密密钥进行存储,加密密钥只能在单个经过身份验证的系统上使用。
结论
为了应对安全漏洞和模仿产品的激增,MCU供应商正在提供硬件 - 基于芯片的安全解决方案。虽然比基于软件的解决方案成本更高,但即使是最持久的入侵者也难以打败它们 - 如果不是不可能的话。解决方案包括嵌入式加密引擎,内存技术(如FRAM),以及将MCU与恶意干扰隔离开来的自主安全芯片。但是,没有一个通用的解决方案。设计团队必须为其应用程序创建最合适的安全策略。
-
mcu
+关注
关注
146文章
16977浏览量
350214 -
嵌入式
+关注
关注
5068文章
19008浏览量
302950 -
德州仪器
+关注
关注
123文章
1686浏览量
140563
发布评论请先 登录
相关推荐
评论