几乎所有的基于单片机的嵌入式系统 - 汽车,无人机,U盘,车库开门器,数码相机,甚至是消耗品,例如打印机墨盒 - 很容易受到安全攻击。所用物联网(IOT)为切入点,在越来越多的记录在案的安全漏洞已经提出在设计界的物联网连接的设备的安全意识。通常情况下,故事涉及违规,影响消费者和最终用户。然而,其他类型的安全威胁,至少同样重要的设计工程师 - 大多数涉及盗窃,篡改或销毁知识产权。因特网可能已经成为最流行的入口点的基于MCU的系统,但它是远离唯一的一个。无抵押或担保不足的诊断端口一直是潜在的脆弱 - 汽车行业发现主要是通过“调谐”社区的活动。任何无线(或有线)通信链路还可以被用作入口点。即使是独立的MCU设备(或其关联ROM)受到篡改和IP盗用。在其他技术中,反向工程专家已经开发的技术中,使芯片的掩模层被小心地研磨,直到ROM层露出。通过仔细分析其中的开关被炸毁,其中所含的固件代码可以推断。 MCU供应商都报以多种方法增强安全运行他们的设备的固件。尽管这些措施使固件更安全,落实这些要求系统设计团队了解他们的工作 - 并且正确地实现它们。这涉及到额外的精力,时间和系统材料的清单(BOM)成本。计算机密集的安全措施,如数据加密,可能需要更强大的MCU。
安全策略
因为他们是比较容易实现的,几乎免费的软件解决方案往往被视为一个有吸引力的选择。有时它们是足够的,但如通常的“快速,廉价,容易”的解决方案的情况下,它们携带更多的风险。安全算法的关键部件,如加密密钥,存储在MCU的现有存储器资源,例如EEPROM或闪存。然而,如果存储器设备本身是不安全的,关键的信息仍然处于危险之中。另外还有,该算法本身可以具有实施错误,使得它容易受到攻击的可能性。基于软件的解决方案的一个流行变体是添加基于硬件的安全的系统的客户端,并使用安全软件在主机侧。这个硬件 - 这可以在客户端MCU或在附加的芯片存在 - 用于存储加密密钥和执行某些安全算法的一些或全部。关键数据是由逻辑和物理机制,它们通常保密由生产的组合的保护。这种做法是对人在这方面的中间人攻击,有效的防御。因为在主机侧密钥存储在一个不安全的资源,它们仍然可以进行改动或盗窃。即在硬件中完全实现的MCU安全提出防篡改密钥存储在系统的每一个临界点,包括加密,并执行在硬件安全算法为好。实现基于硬件的MCU安全性的流行方法是由MCU供应商提供专门设计的处理器和外设。实现各有不同,但通常是安全处理芯片组提供较低的性能,并增加BOM成本。
硬件加密
Microchip的技术提供了硬件安全纳入它的一些流行的PIC器件通过在MCU集成了加密引擎。该引擎还执行身份验证,以防止人在中间的攻击。两个例子是在16位的PIC24F“GB2”和32位PIC32MZ。除了添加的安全性,在发动机积分卸载从执行加密算法在软件的任务的MCU。 Microchip的硬件引擎可以在顺序或并行地执行加密和认证。内部描述符为基础的DMA被用于安全关联的数据分组和指针的高效编程。智能状态机调度基于协议的选择和数据包边界的加密引擎。主要功能包括:批量密码和散列引擎,集成的DMA来卸载处理,对每一个缓冲区描述安全关联和并行执行某些功能的能力。图1示出了算法和性能指标为PIC32MZ。该性能指标给出的指示加密速度和多少的CPU减负的积累相比,软件执行的算法。
扩展内存选项图1:Microchip Technology的集成加密引擎支持8个安全算法。 (Microchip的技术提供)Microchip提供的DM320006-C入门套件的32位加密引擎设备和DM240314演示套件的16位器件。
德州仪器公司最近推出了一种新的方法,以嵌入式微处理器与内存的MSP430 FRAM微控制器家族的新成员使用铁电随机存取存储器(FRAM)代替闪存。 FRAM结合了闪存和SRAM的属性。如Flash,它是非易失性的但像SRAM它提供快速,低功耗写道。它改写续航能力大于1015次循环。储存在FRAM的数据是扭转工程攻击比闪存/ EEPROM不易受到由于它能够辐射和电磁场阻力。此外,它的功率和存取速度都优于闪烁。 FRM写入速度为13 KB是10毫秒相比1秒为Flash,测定其平均有功功率(测量为16位字的访问)是100μA/ MHz的相比Flash的230μA/兆赫。它的辐射和电磁场的阻力使FRAM在防止利用显微镜和电压操纵物理攻击尤为可贵。在这些类型的攻击,黑客试图改变,而不是试图当它被转移到修改数据应用程序代码本身。为了实现这一目标,他们首先获得应用程序代码的图像时,反向工程,最后在系统内成功地覆盖一个修改的版本。 FRAM抵抗显微镜攻击,因为该位写入和读取线被物理上位于极化分子,这意味着脱层叠的芯片有可能破坏存储的内容的任一侧。防止电压操作在很大程度上得到由于FRAM写周期的速度。在这些攻击,输入电压到所述设备被操纵外的标准范围编程位细胞蛮力。它难以提供欠压和过电压保护电路,可以操作,而不是编程的EEPROM比特单元所需要的时间更长。但是,因为FRAM写入快得多,该保护电路可以被配置为创建安全回写电路,以使FRAM以正确完成写入处理。
保护编程接口
MSP430 FRAM微控制器还必须确保它们是有吸引力的切入点黑客所使用的设备编程接口,一个有效的手段。通常情况下,这些是JTAG接口和引导装入(BSL),它主要用于固件升级。通过编程的FRAM保险丝签名,TI的FRAM微控制器可以使用安全JTAG密码或完全禁用它。当JTAG端口处于关闭状态,对设备的访问可能只是使用BSL,这需要一个密码,读出或接收数据。密码是中断矢量表的内容。 MSP430的FRAM设备,提供不正确的密码,将导致整个FRAM码区域被质量擦除。增加密码强度的另一种方法是通过填充任何未使用的地址空间与有效地址值中断向量表或创建一个双跳表使其难以进行强力攻击。 TI提供MSP-EXP430FR5739开发套件的MSP430 FRAM器件。董事会与许多TI低功耗RF无线评估模块兼容。
安全密钥管理器
另一种选择 - 这一个由Atmel公司提供 - 实现了加密的安全性与廉价的芯片,存储密钥,密码和其他数据的EEPROM。安全密钥管理器使用各种物理和逻辑机制,例如一个随机数发生器,使该装置的防篡改,也能够实现认证以及加密的。因为它们是独立的设备,它们消除100%来自MCU的计算负担。整个系统设计时也显著削减,因为大多数crypto-和保护,计划工作是事先由芯片厂商完成。爱特梅尔的CryptoAuthentication ATSHA204系列器件提供了此选项,设计团队。该芯片使用由消息认证码(MAC)和基于散列的消息认证码(HMAC)选项增加了SHA-256散列算法。其他功能包括:
•256位密钥长度
•存储多达16个加密密钥
•保证唯一的72位序列号
•内部,高品质的随机数发生器(RNG)
•4.5 KB的EEPROM用于密钥和数据
•512位OTP(一次性可编程)位的固定信息
•多个I / O选项
独特的72位的序列号是实施多的ATSHA204的功能是至关重要的。使用由设备支持的加密协议,主机系统或远程服务器可以证明该序列号是既真实的和没有拷贝。该ATSHA204的生成高质量的随机数的能力所使用的设备的加密协议以及其他安全战略。灵活的指令集简化实施防伪防克隆保护,固件知识产权保护和验证,安全的数据存储,用户密码检查,和会话密钥交换的任务。
认证
一个有效的战略打击山寨产品是实现认证流程,与实际产品的工作配件。在常见的配件,如电缆,插件,电源和电池使山寨产品也没用,他们揭露了假冒的性质。同样的,山寨的配件不能与原来的产品配合使用。复印机配件总是导致收入损失,但未经授权的附件如电池或医疗装置,它并不能完全满足的规格也可造成严重的危害。添加一个安全密钥管理器系统在客户端是实现高安全级别的第一个步骤。额外的安全性可以通过包括在主机系统中的ATSHA204如图2,主机生成随机挑战为客户端(附件),并评估其响应而获得。一个附加的安全性的好处是从这一事实,因为在使用其ATSHA204生成的主机的挑战,即使主处理器不知道它的响应而得。从安全功能隔离处理器允许使用廉价的非安全强化处理器不提供一个薄弱点,通过它,攻击者可以提取系统的秘密。
图2:包括同时在配件和主机安全密钥存储提高了系统级的安全。 (Atmel公司提供)
固件验证
虽然许多安全威胁可以花费一个公司收入或损害其品牌,一个设计工程师担心最多的就是试图复制或损坏的MCU固件,它通常存储在Flash中。一个有效的防御是一个安全的启动过程,以确保只有真正的固件可以在系统上运行。安全靴使用存储在闪存连同引导代码对验证码或签名来实现。签名是在制造或代码更新时创建,并且是加密散列函数的输出 - 一种不可逆的算法“凝结”的引导代码成紧凑的,但独特的数据报,在长度通常32-128个字节。图3示出的计算和密钥存储如何卸载到一个硬件密钥管理器件(ATSHA204)。
图3:安全开机保护的MCU固件的一个很好的方式。 (Atmel公司提供)在系统启动时,启动序列的一部分需要安全设备,以验证陪同引导代码签名。仅当验证成功就会运作程序来执行,并且允许系统以正常的方式操作。即使由单一的比特修改操作方案将需要一个新的验证签名。这两个代码的图像和下载的媒体文件,可以使用加密密钥可以是只用于单一身份验证系统来存储。
结论
为响应安全漏洞和山寨产品的激增,MCU供应商所提供的在他们的芯片基于硬件的安全解决方案。虽然比基于软件的解决方案成本更高,他们更困难 - 如果不是不可能的 - 即使是最持久的入侵者打败。解决方案包括嵌入式密码引擎存储器技术,例如FRAM隔离恶意干扰在MCU该自主安全芯片。然而,还有就是,没有一个放之四海而皆准的解决办法。设计团队必须为他们的应用程序最适合的安全策略。