物联网技术
直播中

发生的方式

8年用户 1190经验值
擅长:处理器/DSP
私信 关注
[问答]

如何使用单芯片将固件安全性添加到物联网设计?

本文将展示如何使用Microchip Technology的单个安全设备,开发人员可以快速实施确保物联网应用程序安全所需的一系列安全机制。

回帖(1)

谢辅仁

2021-6-16 14:21:53
  在日益安全的物联网领域,物联网开发人员在应用程序生命周期的各个阶段都面临着快速开发和更严格安全性的冲突。尽管许多新兴解决方案都带有加密机制,但物联网设计需要能够解决更广泛的安全威胁。
  为了让他们这样做,物联网应用程序需要在设备级别的安全引导和固件更新的基础上建立起信任。
  本文将展示如何使用Microchip Technology的单个安全设备,开发人员可以快速实施确保物联网应用程序安全所需的一系列安全机制。
  物联网安全的诸多威胁
  与任何嵌入式系统一样,物联网设计也面临着不断的威胁。随着黑客利用新的攻击手段,开发人员急于关闭安全漏洞。在部署的设备中,更新IoT固件的需求增加了安全性的潜在弱点。例如,即使使用简单的固件验证检查,也可能使软件暴露。在这种情况下,开发人员可能希望查询一些外部资源进行验证可能会试图用黑客代码替换固件。然而,即使是相对新手,黑客也可以用忽略这种验证检查的代码替换固件。
  单独使用加密来锁定固件并不能确保补救措施。即使是加密也可能会被攻击,例如选择的密文攻击,黑客通过研究目标系统的解密过程来确定加密密钥。这些类型的攻击可能难以缓解,但通过加密进行身份验证被称为有效的防御措施。
  然而,在构建资源受限的物联网设备时,使用传统的基于软件的安全方法的开发者面临增加的复杂性和性能问题。 Microchip Technology的CEC1702密码嵌入式控制器的可用性使开发人员能够在开发过程中尽可能减少额外的工作,同时对设计性能影响最小,从而解决了更高的安全性问题。
  全功能的MCU
  CEC1702旨在支持物联网安全要求的多样性,将ARM®Cortex®-M4F处理器与全面的外设(包括多通道模数转换器(ADC),UART,GPIO,PWM输出,LED接口,多个计数器/定时器以及多个I2C和SPI控制器(图1)。
  
  图1:Microchip Technology CEC1702加密嵌入式控制器将高性能ARM Cortex-M4F内核与通用外设结合在一起,并专门支持认证和加密。
  虽然该设备可以满足典型的物联网设计的功能要求,但其独特之处在于其安全性能。 CEC1702将诸如安全存储和数据保护机制等基本安全特性与多个集成密码引擎相结合。除了多用途的AES(高级加密标准)加密引擎之外,该器件还包括加密Hash引擎和公钥引擎,为多种算法提供硬件支持,包括RSA(被研究得最广泛的公钥算法),椭圆曲线Diffie-Hellman(ECDH)和椭圆曲线数字签名算法(ECDSA)等等。由于硬件安全引擎可以比基于软件的方法快几个数量级执行加密算法,开发人员可以采用强大的加密和认证,而不会影响应用程序的性能。
  在硬件设计层面,开发人员可以使用CEC1702作为物联网设计中的独立MCU,或者通过SPI连接将设备添加到现有的基于MCU的设计中,只需少量额外的工作。对于他们的物联网软件设计,开发人员可以使用CEC1702的加密和认证功能来实现物联网设备和云之间的安全通信。
  除了提供更安全通信的传统需求之外,该设备的安全机制还为更广泛的生命周期安全需求提供关键支持,包括预引导固件身份验证和安全固件更新。凭借其对固件进行身份验证的能力,CEC1702提供了硬件基础,以创建位于连接系统(包括物联网)安全核心的信任基础。
  安全启动
  在一个典型的基于MCU的物联网系统中,CEC1702将通过SPI连接到主机MCU和CEC1702(图2)存储固件的外部闪存。当系统上电时,CEC1702开始运行,保持主MCU复位状态,直到验证用于启动主MCU的应用代码的安全性。
  
  图2:通过共享SPI总线工作,Microchip CEC1702使用其集成的安全机制来确保主机应用处理器仅运行经过验证的固件。
  信任的基础在于CEC1702的安全引导所需的固件认证的顺序方法(图3)。当CEC1702上电时,它首先在工厂运行加载在ROM中的启动固件。由于这个ROM代码不能改变,启动过程中的第一步固有地建立在一个可靠的基础上。尽管开发人员可以选择加载应用程序固件而不进行身份验证或加密,但使用这些安全机制有助于在引导过程结束时保持信任链。使用这些安全机制,CEC1702引导ROM代码对设计在CEC1702上运行的应用程序固件进行身份验证和解密。
  在这个序列的最后一步,CEC1702认证和解密设计在主机MCU应用处理器上运行的应用程序固件。由于代码在每个步骤都经过验证,因此在主机应用程序处理器上运行的最终代码图像是可信的,从而完成了信任基础。
  
  图3:CEC1702启动过程对启动过程中的每个步骤应用验证检查,以建立物联网安全所需的信任基础。
  在安全引导过程中,CEC1702使用集成的Efuse一次性可编程(OTP)存储器中的安全数据,根据固件信封(图4)中包含的信息验证固件。 为了进行身份验证,设备使用Efuse中保存的公钥来验证图像生成期间创建的固件信封的ECDSA签名(如下所述)。 由于该签名是使用客户持有的私钥创建的,因此此阶段的固件验证可确保固件源的合法性。
  
  图4:图像生成过程用每个固件图像包含验证和解密图像所需的安全信息。
  尽管映像加密是可选的,但是如前所述,认证和加密的组合增加了额外的安全保护。 当开发者使用加密的固件时,CEC1702使用ECDH密钥交换在解密阶段跟随认证过程来创建解密密钥。
  在这个过程中,CEC1702使用Efuse中包含的(不同的)私钥作为生成正确的解密密钥的ECDH算法的一部分(图5)。
  
  图5:CEC1702处理ECDH密钥交换机制,使用嵌入式Efuse存储器中保存的数据以及与固件映像一起传输的数据。
  这里,设备将Efuse中保存的NIST P-256曲线生成器点(图5中的Gx,Gy),Efuse中保存的私钥(图5中的s)和公钥(图中的Rx和Ry项4)嵌入到固件信封中以得出用于最终解密固件图像的密钥(图5中的Kx)。
  这种方法的一个明显的优点是底层椭圆曲线方法能够用相对较短的密钥提供非常强大的安全性。
  快速发展
  尽管CEC1702的安全机制非常复杂,但Microchip已经不再那么容易让开发人员充分利用芯片的固件认证和加密功能。该公司的Efuse生成器工具提供了一个简单的界面来指定ECDSA和ECDH键并生成Efuse数据(图6)。生成后,开发人员可以使用任何JTAG编程器对CEC1702 Efuse OTP存储器进行编程。
  
  图6:Microchip Efuse发生器提供了一个简单的界面,用于创建具有用于验证和解密的相关安全数据的固件映像。
  Microchip Technology的SecureIoT1702(DM990012)演示板为硬件开发提供了一个简单的平台,可以快速启动硬件开发。 除了按钮,LED和小型LCD外,该电路板还包含用于存储固件映像的Microchip的SST26VF016 16 Mbit闪存器件。 除了用于串行闪存编程,JTAG调试等的接口之外,该电路板还包含用于支持多种兼容硬件扩展电路板的MikroBUS接头。
  开发人员可以将Microchip ATWINC1500 Wi-Fi咔嗒板连接到演示板上的MikroBUS扩展槽,以快速将SecureIoT1702板连接到Microsoft Azure云(图7)。
  
  图7:开发人员可以使用Microchip SecureIoT1702演示板,ATWINC1500 Wi-Fi扩展和Microchip的SecureIoT1702软件包快速连接到Microsoft Azure云。
  SecureIoT1702演示板已经获得微软认可,成为具有DICE(设备身份合成引擎)硬件支持的Azure认证物联网设备。虽然超出了本文的范围,但是DICE是一个新兴的可信设备标准,它使用验证的不同阶段来指定一个安全的启动过程来构建一个信任基础(见图3)。
  使用Microchip的SecureIoT1702_Azure_IoT_build软件包,开发人员可以通过Azure IoT Hub快速将SecureIoT1702开发板连接到Azure云。与其他新兴的物联网平台产品一样,Azure物联网中心提供认证,设备注册以及将物联网硬件设备连接到Azure云所需的其他服务。该软件包将Azure IoT设备软件开发工具包C语言(SDK)与硬件驱动程序以及mbedTLS完整TLS(传输层安全性)堆栈相结合。
  包中包含的示例软件包括预先配置的根证书,X509证书和私钥,以便开发人员可以轻松地使用Azure云进行身份验证。正如示例软件所示,开发人员只需要进行一些调用即可加载安全数据并开始发送IoT数据(清单1)。使用这种基本设计模式,开发人员可以扩展开发板的功能,甚至可以开始探索使用CEC1702进行安全的无线更新技术。
  结论
  随着物联网进一步深入到更多的应用中,物联网设备安全性差,对物联网和应用构成了重大威胁。 为了提高安全性,物联网开发人员需要采用能够在物联网系统级建立信任基础的安全方法。 开发人员使用传统的安全方法面临相当大的挑战,而不会显着增加设计复杂性并降低整体性能。
  但是,使用Microchip CEC1702加密嵌入式控制器,开发人员可以快速创建建立在可靠信任基础之上的IoT应用程序。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分