图源:stock.adobe.com
嵌入式电子产品在各行各业几乎都无处不在。例如微控制器,不论是用于监控汽车的CAN总线,还是用于读取某物联网设备的传感器数据,亦或是用于控制厨房电器,像这样在日常应用中集成低成本微控制器的能力使得电子产品行业以及涉及电子产品的行业发生了翻天覆地的变化。
但是这些变革给嵌入式设计带来优势的同时,也会将其置于风险之中。嵌入式设计不论是作为更复杂系统的一部分还是作为一个独立系统,其内在本质、灵活性以及可定制性都会使这些系统易于遭受严重的安全风险。
嵌入式系统的设计人员必须时刻关注新出现的网络威胁,开发强劲持久的多层安全解决方案,同时采用软件加密和硬件加密措施。欢迎继续阅读,深入了解嵌入式系统设计人员实施安全加密解决方案所面临的挑战。
嵌入式设计为何面临挑战?
首先,嵌入式系统是为了降低成本。尽管这降低了批量生产的成本,但也严重制约了处理能力和存储能力。严格来说,嵌入式设计的系统资源可能只够运行某个特定任务,但不足以运行额外的恶意软件检测或硬件监控器。
其他嵌入式设计安全挑战包括无法定期更新软件或修复软件漏洞,或对与设计有关的安全风险作出了不正确的假设。嵌入式设备往往是批量生产的,因此一旦漏洞被发现,很容易受到批量攻击。某些嵌入式设计系统的寿命也是设计人员必须要考虑的一个风险因素。
让嵌入式系统易于受到攻击的另一个因素是暴露的输入/输出和编程端口(图1)。某些情况下,输入/输出遭遇不正常的电压尖峰和脉冲会让微控制器出现混乱,黑客有可能趁着这种混乱状态攻入要害系统,如程序内存、私人数据,甚至有可能执行任意代码。暴露的编程端口也会让黑客有机会使用自己的编程设备回读内存的内容或对设备进行重新编程以及插入恶意软件。
图1:微控制器暴露的引脚,使其易于受到硬件攻击。
(图源:xb100/freepik.com)
什么是加密?
就最基本的形式而言,加密就是让数据不被非指定数据接受者所识别的行为。例如,向某网址发送密码后,密码被加密,只有用户和接收网站能够解密数据。
尽管有很多不同类型的加密算法(AES、TLS、XTEA),但几乎所有形式的加密都需要用于加密和解密信息的密钥。没有密钥,加密的信息无法被解密,因此,仅限发送者和接受者拥有密钥,这样才能保护密钥。
加密算法的密钥有两种:非对称和对称。
• 非对称密钥为每个密钥的值都不相同。这种密钥用于双方需要创建一对对称密钥,而任何一方无需将密钥发送给另一方的应用(参见公钥交换)。
• 对称密钥的值相同,用于以更快的速度解密信息。
密钥的长短决定了所加密信息的安全程度。如密钥只有四个字符长,使用暴力破解法尝试四个字符的每一种组合,在不到一秒钟的时间即可破解该密钥。但是,一个256位密钥则相当的长。
目前还没有哪一台人类开发的电脑能够在任何切实可行的时间范围内通过暴力破解256位密钥加密的信息。据说,256位密钥需要电脑计算2.29x1032年才能暴力破解。这说明了完全随机的长密钥的必要性,因为长密码无法被猜出,需要很长时间才能破解。
加密如何帮助设计保持安全?
数据可在以下三种状态中的任何一种状态下存在(储存、传输、处理),任何一种状态下的数据都容易遭到攻击。储存的数据(例如在闪存驱动器上)可能会被黑客复制。传输中(例如RAM和CPU之间)的数据可能被黑客读取。处理中(如CPU中)的数据,如果经过处理的数据停留在内存中,也可能会被黑客获取。
随着在嵌入式设计中添加强劲安全措施的需求日益增长,现在上述每一种状态都有使用加密的安全解决方案。例如,数据存储在内存中时可轻松对其加密,在不同芯片之间传输数据时也可在移动中加密数据,新的加密算法甚至能够在无需解密的情况下处理加密数据。
加密面临着怎样的挑战?
加密系统面临的最大挑战之一就是安全储存密钥的需求。如果黑客攻入加密密钥,那么就能毫不费力地获取使用该密钥加密的任何数据。此外,密钥找回后,密钥不再可信,因此需生成新的密钥。
软件内加密也是一种资源密集型任务。尽管有XTEA之类的算法,但没有哪种算法的安全性能与行业标准加密法(如AES-256和TLS)接近。但此类行业标准加密法需要大量的内存,还依赖处理器来执行复杂的数学运算。
这种耗费大量资源的需求会降低系统的运行速度,使得在移动应用中加密数据不切实际。以性能为代价的强劲加密算法还增加了能耗,因此用于移动应用不切实际。
如何善用硬件?
由于嵌入式设计需要强劲的安全特性,因此硬件安全模块发挥着越来越重要的作用。简单地说,硬件安全模块将安全功能集成到物理电路中,因此释放了系统资源,能将资源集中用于主要应用。使用硬件安全后,工程师们无需再设计很容易包含漏洞的安全算法和线程。
现代微控制器最重要的特性之一就是安全模式启动(Secure Boot)。系统会检查配置位、固件以及系统ROM的状态,还会将使用的签名与一些预定义的签名进行比较。如果发现签名有任何变化,系统则告知有些内容已被篡改。
硬件加密外设在微控制器中司空见惯,无需CPU资源即可在移动中加密和解密数据。这些外设还用于在设备之间加密和解密总线,以使黑客无法通过物理攻击提取数据。
设计人员使用片上加密密钥能够立即在设备擦除所有数据,无需擦除任何内存。检测篡改或干涉的设计很可能会刮损片上密钥,还可能立即让任何加密数据无法恢复。
在嵌入式设计中使用硬件加密插件的一个典型范例就是Maxim Integrated DeepCover加密控制器(图2)。该安全协处理器让可能缺乏密码功能的中央处理器不必再承担复杂的密码功能,包括加密。此款协处理器中集成的加密方法包括带128位和256位密钥的AES、SHA-2计算引擎、真随机数发生器、安全通信支持(包括TLS)、证书存储以及抵御硬件攻击的篡改检测引脚。
图2:Maxim DeepCover加密控制器内部框图
(图源:Maxim DeepCover数据手册)
结语
加密是用于保护知识产权、个人数据以及系统数据的异常强大的工具,但系统的坚固程度取决于其最薄弱的环节。不安全的密钥或糟糕的算法实施可能会让系统完全暴露于风险之中。必须保护好密钥,必须使用硬件安全措施,最重要的是,绝不从零开始定制或创建加密算法。