技术热线: 4007-888-234

嵌入式开发如何选择安全性高的微控制器

更新时间: 2020-01-06
阅读量:2282

要使设备安全有效的运行,需要开发人员选择一种包含特定硬件和软件特性的微控制器。这些特性包括真正的随机数生成器,也可以是安全的库。下面让我们来分享一下嵌入式开发人员如何利用好微控制器中包含的硬件和软件。

QQ截图20191223134103.png

使用真随机数生成器(TRNG)

许多加密和通信过程要求开发人员将随机数作为加密的初始向量。在过去,开发人员依靠伪随机数和其他技术来生成这些值。使用TRNG可以帮助开发人员消除生成随机数的复杂方法,并利用快速、高效且能够提供真正随机数的硬件。

使用加密硬件加速器(AES、SHA)

在资源有限的设备上运行加密软件库可能需要大量的处理工作。寻找一个包含硬件加密加速器的微控制器有几个优点,如加快加密和解密,同时减少代码空间。如果要为实时微控制器增加安全性,必须使用加密硬件加速器。

使用Arm TrustZone硬件架构

Arm TrustZone是一个新的硬件特性(实时处理器的新特性),包括在Cortex-M23和Cortex-M33处理器中。TrustZone本质上是为安全处理创建和内部防火墙,它可以帮助开发人员将他们的软件分为安全和不安全两块区域。在开发过程中,TrustZone可用于创建信任根、安全更新、安全引导等许多其他用例。

使用安全的内部存储

一个安全的微控制器需要包括安全的内部存储。内部存储用于存储公钥和私钥,并确保不应该使用它们的应用程序组件不能访问任务关键数据。

使用内存保护单元(MPU)

内存保护单元可用于隔离线程并使它们在自己的内存空间中运行。如果一个线程试图访问它自己的空间之外的内存位置,或者另一个线程试图访问它的空间,则会抛出异常。使用MCU来保护内存可以确保恶意代码无法访问系统。

检查MCU是否准备好了安全元件

安全元件对于有兴趣创建安全设备的开发人员非常有用。确保将安全元件集成到处理器中,或者可以轻松地将安全元件添加到系统中。

检查可用的安全库

对于所选的安全处理器,要确保有安全启动库、安全固件更新库和其他可用的加密库。值得注意的是,使用这些不同的硬件组件并不一定保证系统绝对安全。然而,确实有很多工具可用来以有效地保护微控制器。

以上就是英锐恩单片机开发工程师分享的有关嵌入式开发如何选择安全性高的微控制器。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机、运算放大器和模拟开关。