第一列表示典型的嵌入式应用。如果嵌入式设备无需接入互联网,不是网络的一部分,则不需要使用加密算法、建立信任关系或密钥存储。但是,仍需注意设备完整性,尤其是在知识产权(IP)保护非常重要的应用中。防止竞争对手读取内部Flash中的程序内容可以保护公司产品的知识产权不受潜在抄袭者的侵害,为了实现此种保护,需要寻找配备内置代码读取保护功能的微控制器。
如果需要进行IoT连接,则需要考虑附加的安全功能,以实现代码和数据保护。在通用微控制器中实现软件安全算法,即可满足安全传送信息所需的所有要求。软件实现的RSA或ECC可以用于建立信任关系,而软件实现的AES可以用于安全传送信息。密钥存储在Flash或RAM中,并且通常使用软件威廉希尔官方网站
进行保护。但是,与由硬件加速的AES实施相比,软件实现的AES算法在安全性上还是略逊一筹。
图2同时列出了将运行软件算法的通用微控制器替换为配备硬件安全功能(如硬件加速的AES加密、真随机数生成器和改进版AES密钥存储)的微控制器的优点。
与软件实现的AES实施相比,硬件加速AES模块的核心优势就是其运行速度要快八倍。同时,硬件AES更加省电(需要的MCU计算更少,因此更省电),占用的程序代码空间也更小。如果能够充分利用微控制器内置的硬件加速AES,就可以更加高效地运行相同的软AES加密算法。
真“随机数发生器(RNG)”是用于创建真随机密钥的软件实现的物理改进版。真RNG使用物理现象(如噪音)来创建随机数,而软件实现则必须依赖算法才能创建随机数。与软件实施相比,真RNG更加不可预测。因此,其安全性更高。
某些微控制器中的附加安全功能可以将AES密钥存储于存储器中仅可通过硬件IP块读取的位置。这样一来,密钥就无法被软件提取。
当黑客无法以物理方式访问嵌入式设备时,配备附加安全功能和软件加密算法的微控制器可以提供出色的解决方案。例子为住宅中的恒温器,您可能会担心有人会通过远程访问它以侵入您的内部网络。但是,您可能不会担心有人闯入您的房子并探测恒温器中的微控制器,从而提取其中的AES密钥。如果有人闯入您的住宅,那么,您所面临的问题比丢失AES密钥要大得多。
另一方面,如果您在房子外面安装了智能仪表,则可能会更加吸引那些想以物理方式攻击和盗取密钥的黑客的注意力。对于电力公司而言,电费收益是其需要保护的重要资产。因此,他们可能将资金花费更多地花费在防篡改安全功能上。
将微控制器与安全
元件相结合可以为您的嵌入式系统提供银行级别的安全性(图2)。安全元件是一个防篡改IC,它可以为密钥和证书提供安全的存储位置;同时通常配备硬件加速RSA和ECC,以实现更快的身份验证。虽然硬件加速AES加密仍由更快的微控制器控制,但是安全元件可以提高设备的完整性并带头建立信任关系和AES密钥保护。
恩智浦
半导体公司的LPC18Sxx和LPC43Sxx微控制器是现有LPC1800和LPC4300系列的扩展。这两款微控制器添加了用于代码和数据保护的硬件功能(图3)。LPC18Sxx和LPC43Sxx系列配备多种高端连接功能,包括以太网、两个高速USB和SDIO(与WiFi模块之间实现最快速的数据连接)。此外,某些版本还支持图形LCD连接。大部分恩智浦LPC微控制器提供代码读取保护(CRP)功能,该功能可用于保护开发者代码。增加的安全功能包括一个AES-128硬件加速器、一个真随机数发生器和两个位于一次可编程存储器中用于存储AES密钥的128位OTPKey。
两个128位一次可编程(OTP)密钥位置有助于防止密钥在受到软件攻击后被远程提取。将密钥(以加密格式)写入OTP后,不可再通过软件或JTAG边界扫描对其进行访问。这些密钥仅可通过内部AES硬件模块访问。
和LPC43Sxx微控制器提供内置Flash(内部512kB至1MB)和无内置Flash版本。无内置Flash版本必须在复位时从外部存储器位置(即外部QSPIFlash)引导,并通过大型内部RAM运行。为了防止代码在引导过程中被他人看到,可以在复位时在QSPI中存储一个加密的图像,LPC18Sxx或LPC43Sxx将会读取此加密图像、通过内置CMAC消息身份验证对其进行验证、使用存储在OTP中的AES模块和128位密钥解密并从内部RAM开始执行已解密的代码。
和LPC43Sxx微控制器适合于任何需要广泛连接和高处理器性能的IoT应用,包括工业控制、工业自动化或诊断应用、智能家居产品(包括恒温器和门禁控制)、汽车售后市场和消费
电子产品(如乐器、打印机和其他联网配件)。另一个典型应用为安全IoT网关(图4)。
在本图中,微控制器通过以太网或基于SPI接口扩展的WiFi,提供配备硬件加速AES的高速加密连接。CypherbridgeSystems是恩智浦的软件合作伙伴,提供适用于LPC18Sxx和LPC43Sxx的IoT和云互联软件开发套件,从而充分利用AES硬件加速的优势。
只需通过I2C接口将恩智浦A7系列安全芯片连接到微控制器,即可添加银行级别的安全性。A7安全芯片将控制硬件加速身份验证,并为云存储所需的永久证书提供安全存储。