将固件安全添加到带有单个芯片的物联网设计中---凯利讯半导体

2024-04-30 11:18

本文主要是介绍将固件安全添加到带有单个芯片的物联网设计中---凯利讯半导体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  在越来越安全的IoT环境中,IoT开发人员在应用程序生命周期的所有阶段都面临着对快速开发和更严格的安全性的相互冲突的需求。虽然许多新兴的解决方案都有加密的机制,但物联网的设计需要能够解决更广泛的安全威胁。

  为了让它们这样做,IoT应用程序需要在设备级别上建立与安全启动和固件更新建立的信任关系。

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


  对物联网安全的许多威胁

  与任何嵌入式系统一样,IoT的设计面临着不断的威胁。当黑客们使用新的攻击时,开发人员会迅速关闭安全漏洞。在已部署的设备中,更新IoT固件的需要增加了安全性的潜在弱点。例如,即使使用简单的固件验证检查也会使软件暴露在外。在这种情况下,开发人员可能希望查询一些外部资源来进行验证,可能会发现用被黑代码替换固件的尝试。然而,即使是相对较新的黑客,也可以用无视这种验证检查的代码替换固件。

  单独使用加密来锁定固件无法提供任何可靠的解决方案。甚至加密也会被攻击,比如选择密文攻击,黑客通过研究目标系统的解密过程来确定加密密钥。这些类型的攻击很难减轻,但是使用加密的身份验证被称为有效的防御。

  然而,在构建资源受限的物联网设备时,使用传统的基于软件的安全方法的开发人员会面临额外的复杂性和性能问题。Microchip技术的CEC1702加密嵌入式控制器的可用性允许开发人员在开发过程中很少付出额外的努力来解决高度的安全性问题,并且对设计性能的影响很小。


  全功能的单片机

  旨在支持物联网的安全需求的不同性质,CEC1702结合手臂®皮质®-M4F处理器的外围设备,包括一个多通道模拟-数字转换器(ADC),uart,GPIOs,PWM输出,导致接口,一些计数器/定时器和多个I2C和SPI控制器(图1)。

  微晶片技术CEC1702加密嵌入式控制器示意图


  图1:微芯片技术CEC1702加密嵌入式控制器结合了高性能的ARM cortexm4f核心和通用外围设备,以及对身份验证和加密的专门支持。(图片来源:凯利讯半导体)

  虽然该设备能够满足典型物联网设计的功能要求,但其特点在于其安全性能。CEC1702将安全存储和数据保护机制等基本安全特性与多个集成的加密引擎结合在一起。除了一个多用途的AES加密引擎外,该设备还包括一个crypto哈希引擎和公共密钥引擎,它为多个算法提供硬件支持,包括RSA、椭圆曲线diffie - hellman(ECDH)和椭圆曲线数字签名算法(ECDSA)等。由于硬件安全引擎可以比基于软件的方法执行加密算法的速度更快,因此开发人员可以在不影响应用程序性能的情况下使用强大的加密和身份验证。


  在硬件设计水平上,开发人员可以使用CEC1702作为IoT设计中的独立MCU,或者通过其SPI连接将设备添加到现有的MCU基础设计中,并没有额外的努力。对于他们的IoT软件设计,开发人员可以使用CEC1702的加密和身份验证特性来实现IoT设备和云之间的安全通信。

  除了为安全通信提供更传统的需求之外,该设备的安全机制还为更广泛的生命周期安全需求提供了关键的支持,包括预启动固件认证和安全固件更新。CEC1702具有认证固件的能力,它为建立信任的基础提供了硬件基础,这是连接系统(包括物联网)安全的核心。


  安全启动

  在一个典型的用于单片机物联网系统,通过SPI CEC1702将连接到外部闪存存储固件,主机单片机和CEC1702(图2)。当系统力量,CEC1702开始运行,保持主机单片机复位,直到进行身份验证的安全应用程序代码用于引导主机单片机。

  微芯片CEC1702图


  图2:通过一个共享SPI总线,Microchip CEC1702使用它的集成安全机制来确保主机应用程序处理器只运行经过验证的固件。(图片来源:凯利讯半导体)

  信任的根是CEC1702的序列方法,用于安全启动所需的固件身份验证(图3)。当CEC1702启动时,它首先运行在工厂的ROM中加载的引导固件。由于这个ROM代码不能更改,所以引导过程中的第一步是建立在可信基础上的。尽管开发人员可以选择在不进行身份验证或加密的情况下加载应用程序固件,但是使用这些安全机制可以帮助您在引导过程结束时继续保持信任链。使用这些安全机制,CEC1702引导ROM代码对设计在CEC1702上运行的应用程序固件进行身份验证和解密。

  在这一序列的最后一步中,CEC1702验证和解密了在主机MCU应用程序处理器上运行的应用程序固件。因为每个步骤都验证代码,所以在主机应用程序处理器上运行的最终代码映像是可信的,从而完成了信任的根。

  Microchip CEC1702启动过程示意图(点击放大)


  图3:CEC1702引导过程将验证检查应用到引导过程中的每一个步骤,以建立IoT安全性所需的信任根。(图片来源:凯利讯半导体)

  在安全引导过程,CEC1702使用安全数据综合Efuse一次性可编程(OTP)内存来验证固件固件包中包含对信息(图4),进行身份验证,设备使用公钥Efuse举行验证固件信封的ECDSA签名中创建图像生成(在下面描述)。由于该签名是使用客户所持有的私钥创建的,所以此阶段的固件验证确保了固件源的合法性。

  微芯片图像生成过程图


  图4:映像生成过程将每个固件映像封装到需要对映像进行身份验证和解密的安全信息中。(图片来源:凯利讯半导体)

  虽然图像加密是可选的,但是身份验证和加密的结合增加了前面提到的额外安全保护。当开发人员使用加密的固件时,CEC1702将使用ECDH密钥交换使用一个解密阶段的身份验证过程来创建解密密钥。

  在此过程中,CEC1702使用了Efuse中包含的(不同的)私有密钥作为ECDH算法的一部分,以生成正确的解密密钥(图5)。

  Microchip CEC1702的示意图处理ECDH密钥交换机制


  图5:CEC1702使用嵌入的Efuse内存中的数据和通过固件镜像传输的数据,处理ECDH密钥交换机制。(图片来源:凯利讯半导体)

  这里,设备结合NIST p - 256曲线发生器点(图5)Gx,Gy Efuse举行的私钥(图5)中的年代,Efuse举行和公钥(Rx和Ry术语在图4)嵌入式固件信封中派生的关键(图5)中的Kx用于终于解密固件图像。

  这种方法的一个明显优势是,底层的椭圆曲线方法能够提供非常健壮的安全性和相对短的密钥。


  快速发展

  尽管CEC1702的安全机制非常复杂,但微晶片已经超出了它的范围,使得开发者可以相对容易地充分利用芯片的固件认证和加密功能。该公司的Efuse generator工具提供了一个简单的接口,用于指定ECDSA和ECDH密钥,并生成Efuse数据(图6)。

  微晶片Efuse生成器软件的图像


  图6:Microchip Efuse generator提供了一个简单的接口,用于创建用于身份验证和解密的相关安全数据的固件映像。(图片来源:凯利讯半导体)

  对于硬件开发,Microchip Technology的SecureIoT1702(DM990012)演示板提供了一个简单的平台来启动硬件开发。除了按钮,led和一个小的LCD,电路板还包括了Microchip的SST26VF016 16 Mbit闪存设备,用于存储固件图像。除了用于串行flash编程的头文件,JTAG debug,以及其他的,该板还包括MikroBUS头,用于支持广泛的兼容硬件扩展板。

  开发人员可以将一个微型芯片ATWINC1500 wi - fi clicker板连接到演示板上的MikroBUS扩展槽上,以快速将SecureIoT1702板连接到Microsoft Azure cloud(图7)。

  Microchip SecureIoT1702演示板和ATWINC1500 wi - fi扩展图像


  图7:开发人员可以使用Microchip SecureIoT1702演示板、ATWINC1500 wi - fi扩展和Microchip的SecureIoT1702软件包快速连接到Microsoft Azure cloud。(图片来源:凯利讯半导体)

  SecureIoT1702演示板已经获得了微软的认可,它是一个带有骰子(设备身份合成引擎)硬件支持的Azure认证IoT设备。虽然超出了本文的讨论范围,但对于信任设备来说,骰子是一个新兴的标准,它指定一个安全启动过程,使用不同的验证阶段来构建信任的根(参见图3)。

  使用Microchip的SecureIoT1702_Azure_IoT_build软件包,开发人员可以通过Azure的物联网中心快速将SecureIoT1702板连接到Azure cloud。与其他新兴的物联网平台产品一样,Azure IoT Hub提供了身份验证、设备注册等服务,以及其他需要将IoT硬件设备连接到Azure云的服务。该软件包将Azure IoT设备软件开发工具包C语言(SDK)与硬件驱动程序和mbedTLS全TLS(传输层安全)堆栈结合起来。

  包中包含的示例软件包括一个预配置的根证书、X509证书和一个私有密匙,因此开发人员可以轻松地使用Azure云进行身份验证。如示例软件所示,开发人员只需调用几个调用来加载安全数据并开始发送IoT数据(清单1),使用这种基本的设计模式,开发人员可以扩展该委员会的功能,甚至开始使用CEC1702进行安全的无线更新技术。

  / *设置消息回调,这样我们就可以接收命令。* /

  if(IoTHubClient_LL_SetMessageCallback)(iotHubClientHandle,ReceiveMessageCallback和receivecontext)!= IOTHUB_CLIENT_OK)

  {

  (空白)printf("错误:IoTHubClient_LL_SetMessageCallback ..........失败! \ r \ n”);

  }

  其他的

  {

  (空白)printf(" IoTHubClient_LL_SetMessageCallback…成功。\ r \ n”);

  / *现在我们已经准备好接收命令了,让我们发送一些消息* /

  size_t迭代器= 0;

  做

  {

  如果(迭代器< MESSAGE_COUNT)

  {

  sprintf_s(msgText,sizeof(msgText)," {\"deviceId\ ":\ "myFirstDevice\" \"windSpeed\ ":%。,avgWindSpeed +(rand()% 4 + 2);

  如果(消息(迭代器)。messageHandle = IoTHubMessage_CreateFromByteArray((const unsigned char *)msgText,strlen(msgText))= = NULL

  {

  (空白)printf("错误:iotHubMessageHandle零! \ r \ n”);

  }

  其他的

  {

  MAP_HANDLE propMap;

  消息(迭代器)。messageTrackingId =迭代器;

  (迭代器).messageHandle propMap = IoTHubMessage_Properties(消息);

  (空白)sprintf_s(propText sizeof(propText),“PropMsg_ %族”,迭代器);

  if(Map_AddOrUpdate(propMap,PropName,propText)!= MAP_OK)

  {

  (空白)printf("错误:Map_AddOrUpdate失败! \ r \ n”);

  }

  如果(IoTHubClient_LL_SendEventAsync(iotHubClientHandle,消息(迭代器)。messageHandle SendConfirmationCallback,消息(iterator))!= IOTHUB_CLIENT_OK)

  {

  (空白)printf("错误:IoTHubClient_LL_SendEventAsync ..........失败! \ r \ n”);

  }

  其他的

  {

  (void)printf(“IoTHubClient_LL_SendEventAsync接受消息[% zu],用于传输到物联网中心。”\ r \ n”,迭代器);

  }

  }

  }

  IoTHubClient_LL_DoWork(iotHubClientHandle);

  ThreadAPI_Sleep(1);

  迭代器+ +;

  }(g_continueRunning);

  清单1:Microchip Azure IoT软件包包含了将SecureIoT1702连接到Azure云所需的所有软件,包括演示与Azure物联网中心的事务的示例软件。


  结论

  随着IoT向更多的应用程序扩展,不安全的物联网设备对IoT网络和应用程序构成了重大威胁。为了提高安全性,IoT开发人员需要使用安全方法来在IoT系统级建立信任的根。开发人员在使用常规安全方法时,没有显著增加设计复杂性和降低整体性能,因此面临相当大的挑战。

  然而,使用Microchip CEC1702密码嵌入控制器,开发人员可以快速创建基于信任的IoT应用程序。

这篇关于将固件安全添加到带有单个芯片的物联网设计中---凯利讯半导体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948724

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在