0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用DeepCover MAXQ1050安全微控制器保护您的设计免受恶意软件的侵害

星星科技指导员 来源:ADI 作者:ADI 2023-03-06 14:52 次阅读

恶意软件注入已成为嵌入式系统的关键威胁。实现基于非对称加密的安全启动是针对此类攻击的最佳保护。本应用笔记描述了这种安全启动的关键原理,并解释了如何使用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 对本摘要进行签名。相同的流程适用于固件更新,但固件加载不适用于制造设施。人们还会注意到私钥永远不需要离开软件设计中心

poYBAGQFjZyAYq8lAABkM-yh99c110.gif


图1.跨设备生命周期阶段的安全启动流。

虽然非对称加密提供了关键优势,但它确实需要密集的计算资源。通过软件在大型软件上计算 SHA-x 非常耗时。RSA 或 ECDSA 签名也需要资源,尤其是在主系统微控制器没有乘数的情况下。

另一个挑战是公钥及其证书的完整性。可以想象,公钥不需要保密。公钥可以透露给任何人,因为它只允许验证。但是,攻击者可以尝试用个人公钥替换原始公钥。如果此替换成功,设备将对攻击者私钥签名的软件进行身份验证。为了避免这种情况,必须保护公钥、完整性。换句话说,我们必须保证它不会被修改或替换。

为什么使用MAXQ1050进行安全启动?

DeepCover MAXQ1050安全微控制器满足这些要求。图2所示为嵌入式器件实现MAXQ1050安全启动的典型框图。

pYYBAGQFjZ2ABrb2AAAor_o5Arw189.gif


图2.MAXQ1050安全微控制器用作安全协处理器的典型框图

由于MAXQ1050具有嵌入式安全哈希引擎,可加速固件哈希的计算,从而缩短器件启动时间。MAXQ1050还可以执行快速ECDSA或RSA签名验证,因为它具有用于模块化算术运算的MAA硬件加速器。

MAXQ1050执行图1“现场使用”部分所示的步骤。除了固件的哈希计算和数字签名验证之外,MAXQ1050还通知主系统微控制器和/或电源管理ICPMIC)固件认证状态。实现示例包括:

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,可以满足这些高级安全要求。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7541

    浏览量

    151302
  • 处理器
    +关注

    关注

    68

    文章

    19254

    浏览量

    229630
  • PCB
    PCB
    +关注

    关注

    1

    文章

    1795

    浏览量

    13204
收藏 人收藏

    评论

    相关推荐

    MAXQ30微控制器的模块化幂运算时序

    32位DeepCover安全微控制器MAXQ1050MAXQ1850和MAXQ1103)为执
    的头像 发表于 01-12 11:30 1321次阅读
    <b class='flag-5'>MAXQ</b>30<b class='flag-5'>微控制器</b>的模块化幂运算时序

    MAXQ1103 高性能RISC安全微控制器

    MAXQ1103 高性能RISC安全微控制器 概述 MAXQ1103微控制器是一款低功耗32位R
    发表于 01-26 16:18 848次阅读

    MAXQ1050 安全USB微控制器

    MAXQ1050是一款低功耗设计的安全微控制器的USB安全令牌和智能卡阅读应用程序需要基于证书或者其他公共密钥加密方案
    发表于 04-11 10:57 2998次阅读

    MAXQ612/MAXQ622低功耗、16位MAXQ微控制器

    MAXQ612/MAXQ622低功耗、16位MAXQ®微控制器设计用于通用遥控、消费类电子和白色家电等低功耗产品。两款器件均采用低功耗、高
    发表于 05-28 11:47 1322次阅读
    <b class='flag-5'>MAXQ</b>612/<b class='flag-5'>MAXQ</b>622低功耗、16位<b class='flag-5'>MAXQ</b><b class='flag-5'>微控制器</b>

    MAXQ1050数据资料

    MAXQ1050为低功耗 安全微控制器 ,设计用于需要认证或其它公钥加密的USB安全令牌和智能卡读卡应用。器件采用高度可靠的
    发表于 08-10 09:59 74次下载
    <b class='flag-5'>MAXQ1050</b>数据资料

    MAXQ1050评估套件和面向MAXQ30入门的CrossStudio编译

    for the MAXQ1050 RISC microcontroller. The example presented in this article uses the Rowley CrossStudio for the MAXQ30 compiler to dem
    发表于 05-15 10:47 162次下载
    <b class='flag-5'>MAXQ1050</b>评估套件和面向<b class='flag-5'>MAXQ</b>30入门的CrossStudio编译

    MAX32590 DeepCover ARM926EJ-S处理内核的安全​​微控制器

    DeepCover安全微控制器(MAX32590)提供了一个可互操作的,安全的,并符合成本效益的解决方案来构建信任的设备
    发表于 11-15 11:57 1358次阅读

    MAXQ1741 DeepCover磁卡读取安全微控制器

    DeepCover安全微控制器MAXQ1741)是一个低功耗微控制器,集成了一个自适应的低功耗三轨磁磁条读卡
    发表于 01-23 11:41 920次阅读

    MAXQ1850-KIT DeepCover安全微控制器(MAXQ1850)评估套件

    DeepCover®嵌入式安全方案采用多重先进的物理安全机制保护敏感数据,提供最高等级的密钥存储安全保护
    发表于 05-16 17:46 1963次阅读

    安全微控制器用户指南

    安全微控制器家庭保护用户应用软件免受盗版和篡改。 这些设备提供不同程度的安全性,从简单的访问预防
    发表于 04-12 14:39 0次下载
    <b class='flag-5'>安全</b><b class='flag-5'>微控制器</b>用户指南

    MAXQ1050的评估套件和面向MAXQ30入门的CrossStudio编译

    MAXQ1050的评估套件和面向MAXQ30入门的CrossStudio编译
    发表于 10-31 10:14 14次下载

    MAXQ1061加密控制器保护存储安全

    MAXQ1061是用于嵌入式设备的DeepCover®加密控制器DeepCover嵌入式安全方案采用多重先进的物理
    的头像 发表于 10-09 05:00 3753次阅读

    DeepCover加密控制器MAXQ1061

    MAXQ1061 DeepCover加密控制器 MAXQ1061 DeepCover加密控制器
    发表于 03-26 16:48 594次阅读

    如何学会让主机免受恶意软件侵害

    知道如何保护主机免受恶意软件侵害是使用者一直关注的问题,各种类型的恶意
    发表于 01-21 16:54 482次阅读

    使用 DeepCover MAXQ1050 安全微控制器保护的设计免受恶意软件侵害

    发表于 11-17 12:42 0次下载
    使用 <b class='flag-5'>DeepCover</b> <b class='flag-5'>MAXQ1050</b> <b class='flag-5'>安全</b><b class='flag-5'>微控制器</b><b class='flag-5'>保护</b><b class='flag-5'>您</b>的设计<b class='flag-5'>免受</b><b class='flag-5'>恶意</b><b class='flag-5'>软件</b><b class='flag-5'>侵害</b>