适用于物联网应用的可信MCU

电子说

1.3w人已加入

描述

随着物联网技术通过智能设备联网实现更高的智能,继续使我们的生活更加舒适,保护这些设备存储和传输的信息变得越来越重要。嵌入式MCU是基于物联网产品的核心,选择合适的MCU是满足客户当前和未来需求的关键。

专为物联网应用设计的MCU需要具有足够的处理能力、基于硬件的安全性和软件算法,以提供安全可靠的解决方案。安全MCU应提供多级安全元素,以支持各种安全算法,如高级加密标准(AES)、数据加密标准(DES)和安全哈希算法(SHA)。MCU需要提供完整的安全链、安全启动过程、基于硬件的信任根、硬件中的真随机数生成功能以及用户应用代码身份验证等功能。开发人员还需要考虑,当在硬件中实现安全功能时,与等效的固件实现相比,所需的时间和精力更少。本文重点介绍了MCU所需的关键安全功能,以便为开发人员设计安全的物联网系统奠定坚实的基础。

嵌入式

[图1|安全层]

安全启动

安全启动过程是安全嵌入式 MCU 支持的最关键要素。这是一个引导过程,可确保仅在设备上执行经过身份验证的代码。安全启动有助于防止在系统启动过程中将恶意和未经授权的代码加载到设备中。使用闪存存储固件的嵌入式MCU可以利用安全的启动过程来确保未经授权的用户无法修改固件代码。安全启动通过在启动过程中添加加密检查来保护系统,并且可以通过多种方式实现,包括数字签名,受信任的闪存加载程序,启动文件的加密等。应用程序固件身份验证是安全启动的重要组成部分。

安全启动采用信任链方法(参见图 1)。它从安全根开始,例如ROM或闪存中受设备信任的不可修改代码。然后,此代码对另一段代码进行身份验证。新经过身份验证的代码对任何后续代码进行身份验证,依此类推,从而创建信任链。它的工作原理很简单:你信任A,A信任B,所以你信任B。

嵌入式

[图2 |安全实施链]

为了说明构建信任链概念,请考虑以下序列(参见图 2),该序列用于使用 PSoC 6 BLE(一种来自 Cypress 的嵌入式 MCU)实现信任链,该 MCU 专为物联网应用而设计:

信任代码的根在ROM代码中,因此无法修改。根使用 AES-CMAC 消息身份验证对存储在监控闪存 (SFlash) 中的闪存引导代码进行身份验证。

成功通过身份验证后,控制权将传递给 Flash 启动代码。现在,Flash 引导是安全引导过程中信任链的一部分。

Flash 引导代码使用数字签名验证存储在主闪存中的用户应用程序。

成功验证数字签名后,控制权将转移到应用程序。

安全启动使用 ROM 例程在闪存中对用户数据进行身份验证。安全启动是一个涉及加密的过程,它允许物联网设备开始执行经过身份验证的,因此受信任的软件。这可确保系统从已知的受信任状态打开电源。安全启动流程需要分两个步骤完成。在第一步中,ROM 引导通过比较存储在 eFuse 中的加密代码来验证闪存引导,以计算加密值。在第二步中,闪存启动使用存储在 SFLASH 中的公钥验证应用程序的数字签名。

基于硬件的安全性

对于许多物联网应用来说,安全性只是一个必须与能源效率、可靠性和低成本相平衡的考虑因素。在许多情况下,基于硬件的方法提供了最有效、最可靠且最具成本效益的方法来确保安全性。硬件比使用主处理器的等效软件方法消耗更少的功率。基于软件的安全性的另一个问题是,如果没有基于硬件的安全性,使用集成威廉希尔官方网站 来保护系统,IP可能会被盗。这只是物联网应用的MCU具有复杂的集成硬件安全功能的原因之一,例如加密块,代码保护IP和其他基于硬件的机制。

基于硬件的安全性还消除了应用软件补丁来持续保护系统的需要。与固件实施相比,基于硬件的安全性还具有以更低的功耗提供更快的性能的额外好处。例如,图 3 中所示的 IoT 处理器具有一个加密块,该块提供硬件实现和加密功能的加速。要传输的数据在传输之前使用加密算法进行加密。只允许使用处理器间调用访问此加密块,并且不允许在寄存器级别直接访问以确保安全性。此加密硬件块执行重要功能,例如:

对称密钥加密和解密

断续器

消息身份验证代码 (MAC) 函数

真随机数和伪随机数

循环冗余校验

各种实用程序功能,如启用/禁用、中断设置、标志等

嵌入式

[图3|具有加密硬件和安全启动的可编程 SoC 架构]

对称密钥加密和解密

创建和管理密钥是加密过程的重要组成部分。对于对称密钥,相同的密钥用于加密和解密。AES 是对称密钥加密方法的一个示例。

根据 AES 标准,AES 功能包括一个块密码和一个反向块密码。块密码(AES 指令)将 128 位明文数据块加密为 128 位密文数据块。反块密码(AES_INV指令)将 128 位密文数据块解密为 128 位明文数据块。

安全哈希算法

哈希是一种算法,它接受任何大小的数据并将其转换为固定长度的数据。哈希和加密之间的主要区别在于哈希是不可逆的。SHA 是一系列加密哈希函数,用于保护数据的安全(请参阅图 4)。SHA 由按位运算、模块化添加和压缩函数组成。此函数在执行一系列数学定义的操作后,获取任意长度的消息,并将其减少到固定长度的残差或消息摘要,这保证了消息中的任何更改都将更改哈希值。它用于消息身份验证,方法是传输附加了哈希值的消息,并在收件人端使用相同的算法重新计算消息哈希值。如果哈希值不同,则消息已损坏。这些算法与数字签名算法 (DSA) 或数字签名标准 (DSS) 一起使用。

嵌入式

[图4|沙示例]

消息认证码函数

MAC 方案将密钥与消息一起使用(请参阅图 5)。接收者必须知道密钥才能计算 MAC 值。这有助于消息的接收者验证消息的发送者是否具有共享密钥,并且没有密钥的任何人发送或更改了该消息。首先,发送方计算 MAC 值并将其附加到传输的消息中。收到消息后,将再次计算 MAC,并根据随消息一起传输的 MAC 值进行检查。如果它们不匹配,则接收方知道消息已被更改。哈希算法的一个示例是 SHA,它们可用于生成 MAC 值。即使是像AES这样的分组密码也可以用来产生MAC值。MAC方法既保证了数据的完整性,也保证了真实性。

嵌入式

[图5|苹果电脑示例]

真随机数生成

真随机数生成 (TRNG) 是一项重要的加密功能。TRNG 块生成一个统计上随机的数字,并且基于一些物理随机变化,这些变化无法通过再次运行该过程来复制。将其与伪随机数生成 (PSRNG) 进行比较,后者不是真正的随机数,因为它依赖于初始种子值。如果种子可以复制,则生成的序列也可以复制。高度安全的系统将利用真正的随机数而不是伪随机数的生成。目前,很少有MCU提供基于硬件的TRNG。在某些应用中,PSRNG可能是首选,因此同时具有 TRNG 和 PSRNG 的 MCU 可提供最大的灵活性。

外部存储器安全

为了支持更好的智能和应用,物联网系统需要越来越多的内存。MCU供应商小心翼翼地提供最佳级别的内部存储器,因为芯片尺寸会根据存储器而增加,从而推高成本。为了满足不断增长的内存大小需求,MCU供应商提供了从外部扩展内存的选项。这有助于物联网设计人员根据应用程序要求设计出他们选择的内存大小。但是,这带来了保护存储在外部存储器中的敏感代码和数据并确保只能由身份验证用户访问的挑战。

为了保护外部数据和代码,MCU支持带有外部存储器接口的加密功能。因此,数据在存储在外部存储设备之前可以加密。同样,数据在检索时也会被解密。图6显示了一个安全MCU,其中串行存储器接口(SMIF)具有内置加密功能,可在数据写入外部存储器时保护数据。

嵌入式

[图6|MCU 架构中的串行存储器接口 (SMIF) 模块]

图 7 显示了 SMIF 就地执行 (XIP) 模式。这就是加密组件支持对数据写入进行动态加密和为数据读取进行动态解密的地方。这可确保在将数据存储在外部存储设备之前加密时不会发生敏感数据泄漏。

嵌入式

[图7|西浦模式下的磁共振成像示例]

通信层安全性

低功耗蓝牙 (BLE) 是物联网应用中最受欢迎的无线标准之一。物联网设计人员必须确保通过无线链路进行数据通信是安全的。最新的BLE协议更新配备了多种安全和隐私功能,以涵盖加密,信任,数据完整性和用户数据的隐私。例如,BLE 链路层提供各种加密算法,如 CRC 和 AES,以实现可靠和安全的数据交换(参见图 8)。BLE 无线电也必须设计为支持 BLE 协议提供的这些 BLE 安全功能。增强的加密和身份验证将仅允许受信任的用户跟踪设备位置并自信地配对设备。

嵌入式

[图8|PSoC 6 蓝牙 – 蓝牙子系统框图]

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分