浅谈物联网应用中的密钥安全

物联网

775人已加入

描述

  物联网设备对不良行为者来说是一个特别容易受到攻击的目标,因为物理安全——大多数安全策略的关键——对于物联网应用来说通常是不可能实现的。随着工程师寻求锁定物联网设计,加密和身份验证等安全机制通常会获得最大的关注。然而,如果没有强大的密钥安全性,即使是最全面的安全策略也可能会受到损害。结合使用设计技术和专用 IC 进行安全密钥管理,设计人员可以为物联网应用建立更高安全性的基础。

  物联网设备甚至缺乏传统互联网应用程序提供的可疑保护。虽然基于 Web 的应用程序的资产可能依赖于与生产数据中心相关的物理安全性,但物联网应用程序依赖于大量物理设备的分散,这些设备通常位于易于访问、不受保护的位置。因此,不良行为者可以轻松获得这些设备并在闲暇时进行攻击。

  事实上,对传统连接应用程序的成功攻击不太可能来自直接渗透,而更有可能来自社交黑客或 Heartbleed 等零日攻击。相比之下,与传统的基于 Web 的应用程序相比,物联网设备较少受到基于社交的攻击,但它们的物理暴露为更直接的攻击提供了机会。

  硅制造商可以保护设备免受复杂的攻击,例如差分功率分析。此外,制造商可以实施基于硬件的安全措施,使成功渗透的时间和资源成本超过可能带来的收益。对于物联网,更大的威胁向量在于加密密钥的保护故障,这些故障是由于将密钥存储在不安全的内存中、通过易于访问的硬件接口传输密钥值,甚至是使用具有可预测模式的“随机”数字生成器创建的密钥值。

  关键重要性

  在社交或零日漏洞利用之外,受损密钥是最隐蔽的攻击媒介之一。有了合法密钥,不良行为者可以获得受信任的状态,从而绕过旨在排除未经授权用户的所有安全措施。防火墙、虚拟专用网络和身份验证机制等的正常保护将在出现受损但有效的安全凭证时消失。

  密钥是每种特定加密方法的基础,每种加密方法都完全依赖于密钥的保护。密码学家早就明白密钥安全的根本重要性。在一篇预示物联网安全挑战性质的论文中,19 世纪的荷兰密码学家 Auguste Kerckhoffs 观察到密码系统即使落入敌人手中也应该保持安全。唯一真正的秘密是钥匙本身。

  加密密钥保护本身就是一个行业,但数据中心中使用的硬件安全模块 (HSM) 等密钥管理单元对于物联网设备的现场部署来说过于昂贵和庞大。相反,半导体制造商提供基于集成到 MCU 和专用安全设备中的安全机制的有效解决方案。基于硬件的机制的性质差异很大,但这些机制是由专用硬件引擎或相关软件库执行的关键加密操作的基础。

  区域保护

  半导体正在通过集成到 MCU 中的更广泛的合适功能来应对物联网安全问题。德州仪器(TI ) 提供了一种直接的方法,该方法利用了集成在 MSP430FRxx FRAM MCU 系列成员(例如MSP430FR69721 MCU)中的 FRAM 的灵活性。借助这款 MCU,开发人员可以通过将软件和关键数据(例如加密密钥)放置在 IP 封装 (IPE) 区域中来保护它们。一旦受到保护,特定 IPE 区域内的数据只能由该区域内的代码访问(图 1)。

 

mcu

 

  图 1:TI MSP430FR69721 FRAM MCU 提供 IP 封装 (IPE) 区域,仅允许同一 IPE 区域内的软件代码访问 IPE 区域内的数据。TI 在其自己的安全引导加载程序 (SBL) 实用程序中使用了这种方法,该实用程序在加载过程中重新配置 IPE 区域访问权限。(图片由德州仪器提供)

  使用这种方法,开发人员可以将加密密钥连同他们的算法放在同一个 IPE 区域中并将其锁定,以防止通过 JTAG 调试器、引导加载程序、DMA 甚至直接寄存器读取进行任何外部访问。与闪存不同,FRAM 不需要预擦除或充电泵进行写入,而且它拥有几乎无限的耐用性。因此,开发人员可以使用类似于 Diffie-Hellman 的公钥协议来使用加密方法,这些协议会定期生成和丢弃秘密数据,包括安全会话密钥、数据加密密钥或消息验证码。TI MSP430FR69721 还包括片上 AES 加密协处理器和真随机数种子,提供快速生成安全密钥所需的所有功能。

  对于要求使用没有集成密钥管理功能的 MCU 的物联网设计,Atmel 的ATECC508A CryptoAuthentication IC 提供了一种有效的解决方案。ATECC508A 代表主机 MCU 处理安全密钥交换机制,使用其集成的安全密钥存储和用于执行 ECDH(椭圆曲线 Diffie-Hellman)和 ECDSA(椭圆曲线数字签名算法)的内置引擎。 除了电源和接地引脚外,该器件仅使用两个额外引脚用于串行数据和串行时钟输入,以连接主机 MCU。ATECC508A 专为低功耗运行而设计,提供了一种近乎直接的解决方案,可通过安全密钥管理功能补充基于 MCU 的设计(图 2)。

 

mcu

 

  图 2:Atmel ATECC508A CryptoAuthentication IC 将安全密钥存储与加密功能相结合,可通过 2 线硬件接口简化向任何 MCU 添加公钥加密功能。(图片由爱特梅尔提供)

  公钥协议在物联网中特别有效,其中设备需要通过一种根本无法真正安全的介质进行安全通信。使用这些协议,通信伙伴实际上在不安全的连接上建立了一个共享秘密,并在会话期间使用它,甚至仅用于个人数据传输。因为每笔交易都可能应用一组新的密钥,所以窃听者无法挖掘传输以尝试重新创建密钥。

  TI MSP430FR69721 MCU 和 Atmel ATECC508A 等器件非常适合动态创建和丢弃密钥。尽管如此,物联网应用程序可能依赖于不同的安全策略。例如,一种常见的安全方法依赖于永久存储由制造商在发货之前或由开发人员在部署之前生成的加密密钥或其他秘密。

  永久存储

  对于需要永久密钥存储的应用,设计人员可以利用Microchip Technology PIC24FJ256GB410 MCU 和 Atmel AT88SC6416C等器件中的安全一次性可编程 (OTP) 存储器。OTP 存储器特别有效,因为它可以在工厂或安装前在现场轻松编程。然而,一旦写入,OTP 数据既不能通过软件命令或硬件复位清除,也不能通过重新编程器件来擦除。

  Microchip PIC24FJ256GB410 MCU 在其集成加密引擎的深处嵌入了一个 OTP 存储器阵列(图 3)。对于加密/解密操作,注册 CRYKEY 存储操作的加密密钥。寄存器 CRYTXTA 和 CRYTXTB 用作操作的输入,而 CRYTXTC 存储最终输出。数据只能从 MCU 的特殊功能寄存器或 OTP 阵列写入 CRYKEY,但放置在该寄存器中的任何数据都不能通过任何运行时操作读回 - 从而确保任何关键数据的安全性。

 

mcu

 

  图 3:Microchip Technology PIC24FJ256GB410 MCU 的集成加密引擎可以使用作为安全事务的一部分动态创建或永久存储在设备的一次性可编程 (OTP) 存储器中的密钥执行加密/解密操作。(图片由微芯科技提供)

  OTP 内容只能由 CRYKEY 寄存器访问。事实上,MCU 不包括在任何操作模式下将数据从 OTP 存储器读取到任何用户可访问的存储器空间。实际上,验证 OTP 存储器是否已正确编程的唯一方法是确认使用 OTP 的加密操作是否产生预期结果。

  对于使用具有这些安全功能的 MCU 的设计,Atmel AT88SC6416C 提供了类似的功能。作为 Atmel CryptoMemory 系列的成员,AT88SC6416C 是一个 8 KB EEPROM,配置为 16 个 512 字节区域,并具有集成加密功能。除了 8 KB 安全读/写内存外,该设备还提供了一个 OTP 分区,用于永久、安全的密钥存储。工程师可以为设备的 16 个 512 字节区域中的每一个配置不同的访问权限,或者将它们组合成更大的分区。此外,设备可以配置为对设备和主机之间交换的所有数据进行加密。

  工程师可以利用简单的硬件和软件接口在设计中集成 AT88SC6416C 或 CryptoMemory 系列的其他成员。在硬件方面,CryptoMemory 设备使用两线接口连接到 MCU,甚至可以使用与 2 线串行 EEPROM 相同的引脚排列。对于软件编程,这些设备接受一个四字节指令,包括一个命令、两个对应于地址(或子命令)的字节,以及一个包含与命令相关的数据字节数的字节。

  CryptoMemory 设备支持用于写入和读取用户区域、数据和设备密码以及验证身份验证和加密的命令。因此,例如,写入数据将涉及指定要使用的用户区域:

  B4 03 00 00

  在哪里:

  B4 表示这是系统写操作

  03表示这是一个选区操作

  00 表示选择的区域(本例中为区域 0)

  在这种情况下,该指令中的最后一个字节的值为零 (00),因为这种类型的指令没有与之关联的附加数据字节。

  现在选择区域 0,下一条指令允许将数据写入该区域:

  B0 00 00 0B 5A 6F 6E 65 20 30 20 44 61 74 61

  在哪里:

  B0 表示这是一个用户区写操作

  00 00 表示写的起始地址

  0B 表示要写入的字节数

  其余字节是要写入区域 0 的数据值,从地址 0 开始。

  使用这种方法,即使是设备初始化等相当复杂的操作也可以解析为简单的字节序列流(图 4)。

 

mcu

 

  图 4:Atmel 的 CryptoMemory 设备使用简单的字节序列来读取和写入数据以及执行更复杂的操作,例如身份验证和加密验证。此处,此序列初始化 CryptoMemory 设备(本例中为 Atmel AT88SC0104C)。以星号开头的行是注释。(来源:爱特梅尔)

  结论

  随着物联网的发展,安全威胁将考验开发人员确保物联网应用程序受到保护和物联网设备数据不受破坏的能力。尽管随着威胁的出现,安全机制和策略将继续发展,但每项安全措施最终都取决于底层加密密钥的保密性。通过利用能够提供关键安全性的 MCU 和专用 IC,开发人员将为提高物联网安全性奠定基础。

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

全部0条评论

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

×
20
完善资料,
赚取积分