恶意软件注入已成为嵌入式系统的关键威胁。实现基于非对称加密的安全启动是针对此类攻击的最佳保护。本应用笔记描述了这种安全启动的关键原理,并解释了如何使用DeepCover MAXQ1050安全微控制器实现它。
嵌入式系统安全性日益受到关注。每天都有针对嵌入式系统的新攻击,包括涉及健康或安全的系统。一种类型的攻击是恶意软件注入,即将恶意代码插入网页。一旦攻击者成功使设备运行欺诈性软件,此未经授权的软件就可以:
向外部发送机密数据。如果在医疗行业使用,恶意软件注入可能会导致设备(如便携式心电图机)无意中传输个人健康信息。在更广泛的努力中,恶意软件可以使公众可以访问加密密钥。
强制设备运行不正确。一个著名的例子是Stuxnet病毒,它在感染可编程逻辑控制器(PLC)后,迫使离心机以与预期不同的速度运行。
引发不可预测的设备行为。这包括可能威胁人类生命的行为。
正确安全的引导过程仅允许授权软件在给定设备上运行。因此,即使在更新阶段,它也可以防止恶意软件注入。若要带来高级别的信任,安全启动必须依赖于经过验证的加密算法。然而,这带来了一些挑战:
最合适的算法是不对称算法,需要密集的计算能力。
必须保护与这些算法关联的密钥。
实施必须完美无缺。
在许多系统中,这些要求可能难以实现。但是,增加安全微控制器作为协处理器,如MAXQ1050,可以有效地支持安全启动实现,同时保证非常高的安全性。
固件的身份验证和数字签名
为了确保目标嵌入式设备仅运行授权软件,我们需要提供一种验证所述固件的方法。这意味着确保软件是正版的,并且是由授权实体编写或批准的。向固件添加数字签名(类似于在字母底部添加印章或手动签名)可以实现这一点。
在制造阶段加载的软件应进行数字签名,并且还应应用于每个固件更新。这样,数字签名就可以在设备的整个生命周期内实现信任。
强数字签名必须由加密算法计算。为了带来最高级别的安全性,算法必须是公开的并且经过充分验证。在这里,我们将研究非对称加密算法,即椭圆曲线数字签名算法(ECDSA)和与SHA相关的RSA。
应用于安全启动的非对称加密
基于非对称加密的安全启动的关键原则是,软件开发人员持有用于签名的私钥,而嵌入式设备存储公钥以进行验证。这样做的主要优点(与基于对称加密的安全启动相比)是机密元素(即私钥)永远不会存储在最终产品中。因此,当使用ECDSA或RSA时,攻击者无法检索私钥,即使通过最复杂的侵入性攻击也是如此。秘密只是没有存储在现场设备的任何地方!攻击者可以从设备获得的只是公钥,而使用非对称加密,当只知道公钥时,几乎不可能检索私钥。这是非对称加密的一个基本好处。
图 1 显示了基于非对称加密的安全启动流程。固件真实性通过 ECDSA 或 RSA 进行验证,只要密钥长度足够(RSA 通常为 2048 位,ECDSA 通常为 224 位),它们就提供了极高的信任级别。ECDSA和RSA由SHA-256高效安全地维持。对完整的固件进行数字签名是不切实际的,因此我们计算一个摘要(“哈希值”),该摘要通过 SHA-256 哈希算法的基本属性保证是唯一且不可伪造的。然后通过 ECDSA 或 RSA 对本摘要进行签名。相同的流程适用于固件更新,但固件加载不适用于制造设施。人们还会注意到私钥永远不需要离开软件设计中心。
图1.跨设备生命周期阶段的安全启动流。
虽然非对称加密提供了关键优势,但它确实需要密集的计算资源。通过软件在大型软件上计算 SHA-x 非常耗时。RSA 或 ECDSA 签名也需要资源,尤其是在主系统微控制器没有乘数的情况下。
另一个挑战是公钥及其证书的完整性。可以想象,公钥不需要保密。公钥可以透露给任何人,因为它只允许验证。但是,攻击者可以尝试用个人公钥替换原始公钥。如果此替换成功,设备将对攻击者私钥签名的软件进行身份验证。为了避免这种情况,必须保护公钥、完整性。换句话说,我们必须保证它不会被修改或替换。
为什么使用MAXQ1050进行安全启动?
DeepCover MAXQ1050安全微控制器满足这些要求。图2所示为嵌入式器件实现MAXQ1050安全启动的典型框图。
图2.MAXQ1050安全微控制器用作安全协处理器的典型框图
由于MAXQ1050具有嵌入式安全哈希引擎,可加速固件哈希的计算,从而缩短器件启动时间。MAXQ1050还可以执行快速ECDSA或RSA签名验证,因为它具有用于模块化算术运算的MAA硬件加速器。
MAXQ1050执行图1“现场使用”部分所示的步骤。除了固件的哈希计算和数字签名验证之外,MAXQ1050还通知主系统微控制器和/或电源管理IC(PMIC)固件认证状态。实现示例包括:
MAXQ1050 (通过GPIO)允许PMIC为微控制器供电。
MAXQ1050的GPIO可以连接到主微控制器的复位引脚。只有在验证固件真实性后,才会释放重置。
上述两个选项后跟MAXQ1050在多个GPIO上发送的数字序列。
由于产品的安全存储功能,公钥、关联证书和引用哈希值的完整性得到保证。
以适当的安全级别为目标
产品的预期安全级别通常难以定义 - 达到尽可能高的安全级别通常会导致高昂的开发和制造成本。因此,必须找到权衡。这种权衡通常基于攻击的可能性和成功攻击造成的损害。要确定适当的安全级别,需要考虑许多风险因素,包括:
攻击者的工具:如果攻击者可以使用复杂的设备,例如扫描电子显微镜(SEM)或聚焦离子束(FIB),则可以产生更大的影响。
攻击者配置文件:攻击者可以是单独行动的人,也可以是拥有强大财务支持的黑手党/犯罪组织的成员。
攻击者的动机:攻击者可能期望获得经济利益或仅对其技能的认可。
成功的软件攻击的财务影响。
在本应用笔记中,我们将考虑三种攻击潜力级别:
基本:攻击者能够通过所有软件手段攻击系统,包括恶意软件注入。但是,他/她无法或没有工具修改系统的任何物理特性。
中等:除了软件攻击外,攻击者还可以执行物理攻击,例如探测印刷电路板(PCB)轨道以读取信号,强制数字引脚的电平或从PCB中移除IC。
高:攻击者能够执行高度侵入性攻击,例如对 IC 键合线上的信号进行微探测或对 IC 本身进行微探测。
对于每个级别的攻击潜力,Maxim Integrated都可以实施足够的保护级别:
基本潜力:图 2 中提出的实现提供了足够的保护级别,无需进一步的具体建议。
中等潜力:基本实现提供针对某些攻击的保护(例如,代理将包含系统的串行闪存替换为包含攻击者软件的伪造软件的攻击)。这是因为我们的安全启动序列会检测到任何假冒软件。为了在不增加开发或制造成本的情况下提高系统对硬件攻击的抵抗力,我们建议采取一些布局预防措施。以下是一些示例:
将MAXQ1050连接到PCB内层的PMIC或主系统微控制器的信号走线,以防止信号被轻易访问。这样,攻击者就无法轻松地将它们连接到探测并强制它们。
使用动态信号(即脉冲或脉冲序列)通知主微控制器启动成功。这可以防止攻击者将信号引脚连接到固定电平,例如接地或 VDD.
使用多个带有不同动态信号的引脚通知主控制器启动成功。以攻击者难以同时控制两个引脚的方式路由轨道。
高潜力:针对最复杂的攻击提供保护将包括符合 FIPS 140-2 级别 3 或 4 的实施。此实现应检测任何物理篡改尝试,并通过销毁任何敏感信息立即做出反应,从而使系统无法运行。由于使设备再次可操作需要经过维护阶段,因此仅当安全性超过系统可用性时,才应实施此级别的保护。
MAXQ1050安全微控制器具有自毁输入和可即时擦除的NV SRAM,可以满足这些高级安全要求。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !