保护物联网 (IoT) 应用免受安全威胁涉及设备和服务器身份验证、敏感数据和知识产权保护以及保护机密性以及设备和通信完整性。例如,考虑一个 IoT 节点设备。此类设备需要具有安全引导加载程序和最新的安全固件,以便通过TLS连接安全地将传感器数据发送到服务器,并将敏感数据存储在闪存中。该等式中的一个关键组件是安全IC,用作应用处理器的配套IC,以确保安全的数据交换并保护数据。
对于这一角色,安全IC有一些不同的选择。传统上,流行的选择是基于可信计算组(TCG) 定义的可信平台模块 (TPM) 标准的芯片。这些分立芯片为消费类 PC 和服务器提供防篡改的加密协处理器。它们旨在通过网络交换数据的计算机之间建立信任,保护用户数据,并安全地存储某些数据(如密钥)。对于那些具有专业知识的人来说,TPM芯片还可用于支持非常复杂的安全策略的实施,这些策略定义了谁可以在何时做什么。由于此用例,TPM 标准的学习曲线相当高。这种复杂性也使得验证系统的安全性变得更加困难。当涉及到小型嵌入式系统时,简单地说,TPM芯片由于其初始设计和平台资源要求而难以集成到物联网领域的简单系统中。
现在,还有另一种安全 IC 选项可用作配套 IC。Maxim的MAXQ1061和MAXQ1062设计用于为小型低成本嵌入式系统提供高安全性证书、密钥和数据安全存储以及安全加密基元。这些紧凑、防篡改的设备是专门为简单的嵌入式连接设备创建的,基于内部、客户和公共加密模块规范的要求。它们可用于将设备集成到公钥基础结构、设备和服务器身份验证、数据的机密性和完整性以及设备完整性。凭借其40个命令集来实现这些目的,IC消除了嵌入式安全不必要的复杂性。其简单的访问控制策略和功能集适用于与 IoT 设备相关的大多数安全方案。在这篇博文中,我们将比较两种选项之间的差异,以证明MAXQ1061和MAXQ1062适用于保护物联网设计等小型嵌入式系统。图2给出了MAXQ1061和MAXQ1062的集成框图。
图2.MAXQ1061/MAXQ1062的集成示例。
为什么使用安全IC?
安全IC为嵌入式系统提供了多种优势,包括:
提高密钥存储的安全性
抵御故障注入和侧信道攻击的安全加密实施
与平台上运行的其他软件严格隔离,因为唯一的交互通道是命令总线
仅靠软件是不够的数据保护和其他安全功能
硬件信任根通过其受信任的行为
减轻主机处理器的安全功能所需的内存占用和计算资源的负担
满足物联网的独特要求 鉴于这些电子设备通常尺寸小,有时甚至是电池供电的性质,为物联网
设计提供安全性涉及一些独特的考虑因素。因此,底层组件的低功耗对于支持延长电池寿命至关重要。MAXQ1061和MAXQ1062的典型待机电流为25μA,远低于基于TPM标准的芯片,后者的电流典型值超过100μA,通常高达300μA。此外,MAXQ1061和MAXQ1062的启动时间为30ms,不用时可以完全断电,但在需要时仍能非常快速地提供。安全IC的足够内部非易失性存储是保存密钥和证书等敏感数据的另一个重要考虑因素。MAXQ1061和MAXQ1062的防篡改内部存储器适用于存储X.509证书、ECDSA密钥对或其他密钥或任意数据。此内部存储被组织为由用户定义的访问控制控制的简单文件系统。基于 TPM 标准的芯片还具有内部、防篡改、非易失性存储,足以满足物联网应用中不典型的大型密钥存储。MAXQ1061和MAXQ1062还支持与嵌入式设计紧密一致的通信协议:器件通过I连接到主机处理器2C 或 SPI 总线。虽然基于TPM标准的芯片也具有SPI接口,但它们具有其他接口,例如LPC,主要用于PC架构而不是嵌入式系统。
TPM芯片的学习曲线更艰难 使用基于TPM的芯片最具挑战性的方面
之一是学习曲线。符合TPM标准的主机端软件庞大而复杂,专用于具有Linux和Windows等操作系统的大型系统。内存占用量在 100KB 到 1MB 范围内。网上可用的编程资源并不多。软件组件包括TCG软件堆栈(TSS),其规范庞大而复杂;符合 TPM 标准的驱动程序,其 API 很复杂且处于非常低的级别;以及功能 API,它具有简单的用法但复杂的安全策略定义。
相比之下,MAXQ1061和MAXQ1062需要非常简单的软件,适合最小的微控制器。主机端软件在源代码中提供,因此可以自定义。由于它是一个 C 语言库,其函数直接映射到设备的命令集,因此您可以使用简单的程序以相对直接的方式实现复杂的用例。这些安全微控制器的主机库通常使用大约 6KB 的代码和 4KB 的 RAM,并且可以为任何小型处理器(如 Arm)构建。皮层-M0.定制的TLS客户端堆栈,例如用于任何类型的微控制器(例如Cortex-M0,类似于高端微控制器的微控制器)和OpenSSL的mbedTL对于运行嵌入式Linux或Windows的大型微控制器,在此库之上提供。TLS 客户端堆栈使用设备的 TLS 功能。
卸载主机处理器 在系统中使用安全 IC 的一个优点是将主处理器
从敏感的加密操作中卸载。TPM芯片与MAXQ1和MAXQ1061支持的低级加密算法比较见表1062。
表 1.支持的低级加密算法
低级加密功能 | 基于 TPM 标准的芯片 | 最大Q1061/最大Q1062 |
---|---|---|
标准加密算法 | 是的 | 是的 |
AES | AES-256 is optional in the TPM 2.0 standard | ECB, CBC, CCM 128/192/256 ECB/GCM 128, fast |
Random Number Generator | SP800-90A, AIS31PTG2 | Designed for SP800-90A SHA256DRBG* |
Key Generation | RSA, ECDSA | ECDSA |
Secure Hash Algorithm | SHA-1, 256 | SHA-1, 256, 384, 512 |
RSA Signature | 2048-bit | No |
RSA Encryption | 2048-bit | No |
ECDSA Signature | NIST P-256 | NIST P-256, 384, 521 Brainpool 256, 384, 512 |
ECDH | Same curves as ECDSA | Same curves as ECDSA |
HMAC | SHA-256 | SHA-256, 384, 512 |
AES based MAC | No | Fast AES-CBC-MAC, AES-CMAC AES-GMAC with 128-bit keys on a dedicated SPI interface |
TLS 1.2 PRF | No | SHA-256-based |
*此随机数生成器标准的设计尚未通过认证。
与TPM芯片相比,MAXQ1061和MAXQ1062运行加密算法的方式在性能方面具有一定的优势。MAXQ1061和MAXQ1062通过SPI提供快速AES引擎,用于AES ECB和AES GCM加密,具有128位密钥,速度高达10MBps。这样,主处理器就不必处理一些对称加密任务了。此外,AES密钥不需要导出到主处理器,在那里它们可能会被侧信道攻击暴露和泄露(导致通过功耗或电磁辐射分析检索密钥)。通过板载快速AES引擎,密钥可以安全地存储在MAXQ1061和MAXQ1062中。相比之下,基于 TPM 标准的芯片没有如此高速的对称加密引擎。
如表1所示,MAXQ1061和MAXQ1062不支持RSA。值得注意的是,RSA正变得越来越不推荐使用,因为与ECDSA相比,长密钥和数字签名可能长达数千位,而ECDSA的密钥和签名只有几百位长。
TPM 芯片不具有处理 TLS 协议的特定功能。它们可以用作基本的加密引擎和长期密钥存储,由某些TLS软件堆栈(如wolfSSL)利用。以执行原子操作,如证书生成、签名验证、AES 加密或解密、HMAC 签名或验证,或 ECDH,具体取决于 TLS 握手和记录处理的需要。使用此类芯片,TLS会话密钥在主机处理器中计算,正如我们所讨论的,主机处理器更容易受到黑客的攻击。在将TLS会话密钥保留在易失性存储器内部的同时,MAXQ1061和MAXQ1062可以处理从握手到安全应用数据交换的完整TLS 1.2会话。通过 TLS 交换应用程序数据时,将使用 TLS 记录层,并使用协商密钥应用加密和签名。设备完全处理此TLS记录层,因此从握手阶段派生的TLS会话密钥可以在芯片内保持安全,并且永远不会暴露在芯片外部。
外部内存加密需要一个对称密钥来加密/解密磁盘数据。对称方法(如 AES)提供速度。安全 IC 必须在加密时保存磁盘加密/解密密钥,仅当 CPU 启动到安全状态时,才会将其释放到主 CPU。对于 TPM 芯片,安全状态是使用在引导过程中更新的 PCR 值确定的。只有这样,TPM 标准芯片才会将密钥释放给主机处理器,主机处理器自行执行磁盘加密/解密,因为芯片缺乏此类操作的速度。但是,密钥在传输到主机处理器时可能会暴露。使用MAXQ1061和MAXQ1062时,安全启动功能和保存磁盘解密密钥的内部存储器对象实现了此过程。一旦平台安全启动,MAXQ1061和MAXQ1062可以选择将密钥传输到外部AES-SPI引擎,并对外部存储器进行高速加密/解密,而不是将密钥传输到主机处理器。使用此功能,可以快速解密外部存储器,而不会暴露解密密钥。
审核编辑:郭婷