开发一个安全的、可以高效运行的连接设备需要开发人员选择一个包含特定硬件和软件功能的微控制器,这些功能的范围可以从真正的随机数生成器到安全库。让我们来看看嵌入式开发人员应该考虑在其安全微控制器中使用的硬件和软件的几个技巧。
技巧1 – 包括一个真随机数生成器 (TRNG)
许多加密和通信过程要求开发人员包含一个随机数作为加密的初始向量。过去,开发人员依靠伪随机数和其他技术来生成这些值。拥有 TRNG 有助于开发人员消除生成随机数的复杂方法,并利用快速、高效且可以提供真正随机数的硬件。
技巧2 – 使用加密加速器(AES、SHA 等)
在资源受限的设备上运行加密软件库可能是极其密集的处理。寻找包含硬件加密加速器的微控制器有几个优点,例如加速加密和解密以及减少代码空间。如果你要为实时微控制器增加安全性,加密加速器是必须的。
技巧3 – 考虑用于Cortex-M的Arm TrustZone
Arm TrustZone是Cortex-M23和Cortex-M33处理器中包含的一项新硬件功能(实时处理器的新功能)。TrustZone 帮助嵌入式开发人员将他们的软件分为安全和非安全世界,TrustZone 可用于创建信任根、安全更新、安全启动以及许多其他用例,TrustZone 本质上为安全处理创建了内部防火墙。
技巧4 – 利用安全的内部存储
安全的微控制器需要包括安全的内部存储,内部存储用于存储公钥和私钥,并确保不应该使用它们的应用程序组件无法访问关键任务数据。
技巧5 – 不要跳过内存保护单元 (MPU)
内存保护单元可用于隔离线程并使它们在自己的内存空间中运行,如果一个线程试图访问它自己空间之外的内存位置,或者另一个线程试图访问它的空间,则会抛出异常,拥有 MCU 来保护内存可以确保恶意代码无法访问系统。
技巧6 – 检查MCU是否已准备好安全元件
安全元素对于有兴趣创建安全设备的嵌入式开发人员非常有用。确保安全元件已集成到处理器中,或者可以轻松地将安全元件添加到系统中。
技巧7 – 查看可用的安全库
到目前为止,我们已经了解了我们希望在微控制器中包含的几个不同的硬件功能。我们还需要确保使用精美的安全微控制器,有软件可以运行所有安全功能,这意味着对于选定的安全处理器,请确保有安全启动库、安全固件更新库和其他可用的加密库。
结论
包括所有这些不同的硬件组件并不一定能保证你将拥有一个安全的系统,但是,它们确实确保嵌入式开发人员可以使用正确的工具以高效和有效的方式正确保护微控制器。