图片34
硬件加密技术和安全存储器可以为安全物联网(IoT)设计提供必要的基本功能。然而,一旦部署,物联网设备将面临多种威胁,这些威胁将会破坏这些设备,立即发动攻击,或者产生更微妙、高级的持续威胁。
何谓信任根?为何需要信任根?
密码体制和安全密钥是保证互连设备安全的重要手段,并为更高级别的协议提供了保护数据和通信的基本机制。为了保证系统的安全,开发人员需要解决可能影响嵌入式系统运行和软件运行的漏洞。
在一个典型的嵌入式系统中,由电源故障或关键软件异常引起的系统重置将最终导致从非易失性存储器重新加载固件映像。一般情况下,软件重启是一个重要的安全机制,用来恢复被意外或故意破坏的系统功能。网络互连中,黑客使用各种黑帽子工具破坏软件,安全专家们通常认为应对影响软件执行的入侵行为进行再引导。举例来说,2018年,FBI曾建议用户和企业老板重启路由器,以阻止大规模的黑客攻击。
事实上,重启并不保证系统的完整性。当再引导到固件映像时,系统仍然处于黑客的控制之下。要减少这种威胁,开发人员需要确保他们的软件在信任链上运行,这个信任链是基于启动时建立的信任根,并且扩展到软件执行环境的所有级别。是否能达到这个安全级别关键取决于,确保启动过程是一个受信任的固件。
安全引导时检查固件图像。
在嵌入式系统中,主机处理程序将固件镜像从闪存装入主存储器并开始执行(或直接从带有芯片内执行(XIP)功能的闪存启动)。假如黑客已经窃取了一个固件映像,那么启动过程将导致系统被劫持。
要在启动前验证固件的完整性,开发人员从早期开始使用一个代码签名流程。公钥-密钥对是由安全的设备中的私钥-公钥对,它是由椭圆曲线数字签名算法(ECDSA)等加密稳健算法生成的,用于系统固件图像的签名。虽然私钥从来没有离开这个设备,但是系统的公钥会随着系统一起发送。启动期间,处理程序将使用这个系统的公钥,在使用映像之前验证固件签名。
自然,在上述过程中,公开密钥本身也是易受攻击的,并且在进行扩展时,很容易被未授权的替换。当嵌入系统中的公共密钥仍然不受保护时,黑客可以使用他们自己生成的私钥-公钥对中的公钥替换它。假如他们用自己的相关私钥签署的恶意固件替换了系统的固件图像,那么盗用的固件签名就会经过验证过程,然后继续引导进程,导致系统遭到劫持。
这样,安全系统就依赖于安全设备中预先配置的有效公钥。ATECC608A这类安全IC不仅能安全存储传统安全元件,并可以安全的执行ECDSA等认证算法,实现固件签名认证。
举例来说,主机处理器可以通过一个串口向DS28C36发送一个固件,然后再启动。然后,DS28C36使用之前在安全设施中预先配置的系统公钥,验证固件签名确实是由同一个安全设施中的相关私钥创建的。最终,DS28C36将验证结果发送给主机处理器,并且在签名有效的情况下主机处理器继续装载固件图像。
一个更加安全的启动过程可以保护固件映像,从而避免由于密钥或图像被盗用而引起的问题。安全存储和加密加速器使其具有了高效的安全启动功能,在不断增加的处理器中实现。通过使用这些功能,这样的安全处理程序能够提供所需的信任根来创建系统和应用软件执行的可信环境。