曾用以保护工业控制器等设备的网络空隙目前已被填补,这得益于无线网络应用的增长。无线网络的引入提高了便利性和灵活性,但同时也为黑客攻击提供了便捷之道。无线网络的发展也伴随着黑客窃取信息的能力在提高,而嵌入式设备一直都极易受到攻击。因此,我们需要使用多种手段支持高级安全性,以强化防止攻击的设备。
安全强化的核心是一套基本构建块,当它们一起使用时,可以抵御黑客攻击并保持完整性。一个启用无线的设备需要确保它可以维护自己的代码和数据的控制权,并支持与能提供必要认证以获得信任的远程端点的私有通信。
设备认证之所以至关重要的一个例子是中间人攻击。这是一种黑客截取两个合法设备间通讯、监听对话并篡改它们收到的数据包,以获取秘密或进入一个或两个设备的攻击。一个常见的对Wi-Fi设备的攻击是创建一个伪装成合法路由器的接入点,该接入点会向真实的接入点和设备自身转发被篡改的数据。通过这样的技术,攻击者可能会学习到执行成功登录所需的访问代码,或者他们可能会注入错误的数据或malware导致设备出现故障。因此保护好对话是至关重要的,这也指明了我们需要使用加密技术来让未经授权的监听者难以实施攻击。
每一个安全的物联网设备的中心都需要有一个可信根。这是嵌入设备中一套可以被计算机的操作系统和软件充分信任的功能。在当今的设备中,可信根是通过使用公钥基础设施 (PKI) 加密技术保证的,这是一种检查任何设备的真实性和其操作有效性的机制。PKI建立在生成一对在使用中非对称的加密键的基础上。一个是可以自由分发并用于加密发送给私钥持有者的消息的公钥。通过在公共网络上无风险地传输公钥,可以大大提高基于加密的安全性的可扩展性,这相比对称密钥系统有着巨大的改进。
由于对称系统使用同一个密钥进行加密和解密,因此必须始终保密该密钥以防止未经授权的用户获取。这使得把可信密钥送达用户变得非常困难,因为他们必须使用其他的、具有高信任度的通信渠道来获得密钥。
在PKI下,只有私钥的持有者可以解密由公钥的持有者发送的消息。因此,密钥必须保密。然而,PKI支持的协议意味着永远无需向其他用户发送私钥。所有通信都可以通过使用公钥和使用私钥数字签名的证书来支持。PKI交易可能会对计算能力要求极高,这使得其在嵌入式系统中的实施变得困难。然而,使用专用的MCU会减轻处理器和加密数据的主处理器的负担。
几乎在整个网络中都被使用的传输层安全协议 (TLS) 也是基于PKI的,它可以防止未经授权的监听并帮助防止中间人攻击。然而,有了PKI核心,我们可以通过加密和保护信息,超越仅是防御。这个核心可以和设计良好的硬件特性相结合,对嵌入式系统建立一个可信根,确保设备只能运行经过授权的代码,并只能和网络中的其他经过授权的设备通信。
可信根背后的思想是,只有被可信方签名的代码才被允许在引导时运行,而且代码除了由同一可信方更改之外不能被更改。引导代码的关键因素是它是使用PKI技术进行数字签名的,这生成了一个与代码内容本身关联的散列值。这个签名过程通常由设备制造商执行,制造商首先获取或生成一个被制造商的私钥保护的基于PKI的数字证书。用于这一过程的数字证书通常是由一个高信任度机构生成的根证书派生出的。根证书支持生成一系列派生证书,它们指向一个核心可信实体 – 这是一个对攻击者来说难以妨碍的信任链。
当代码被加载进设备并使用匹配的公钥分析时,代码签名需要精确地匹配二进制文件的内容。对软件的任何更改都会使散列值无效,设备应拒绝从该图像引导。这有助于防止以操作存储图像以插入恶意代码为中心的攻击。
观看公共代码验证密钥的人需要把它存储在安全内存中,以及设备自身的私钥,它将用于生成与其他设备通信的可信密钥对。除了代码验证密钥和本地系统的私钥的安全存储外,设备还提供了一个可被用于验证由设备制造商或服务运营商提供的其他数字签名真实性的可信任根证书目录。
代码更新以及需要从服务器发送的其他安全数据可以使用类似的流程进行验证。首先,服务器生成一个公钥/私钥对并发送公钥版给设备。这个被用于生成一个临时的密钥对。衍生出来的公钥被传输到应用服务器。加密的文件可以通过一个不安全的频道比如Wi-Fi传输,并在设备上解密,然后可以进行最后的真实性检查。
如果签名不匹配,任何未经授权的代码或数据更新都可以被拒绝。此外,设备被保护免受可能涉及重置期间的中断的攻击。一个拥有部分安装的固件的设备可能会因为在重新启动时软件处于不确定状态而变得易于攻击。在重置后会触发自动回滚以确保只有完全安装并认证过的固件才能运行。
理想情况下,可信根使用PKI运算将可信区的覆盖范围从自身扩展到系统的其他元素,例如被签名并在执行前检查过的应用代码。然而,恶意代码可能在工厂被引入,或者需要运行各种服务导致非信任代码被加载。另一种情况可能是黑客获取设备的物理访问权并通过直接操作内存总线来插入他们自己的代码。一个安全警报记数器追踪访问违规行为,比如尝试使用一个无效或不正确的安全令牌读取或写入文件。当系统达到预定义的安全警报限制时,设备将会被锁住。要从锁定状态恢复,必须将设备恢复到工厂设置和代码库。
在设备上有一个硬件加密引擎的优势是处理器无需加载可能不受信任的代码来运行PKI算法,然后再测试引导软件的来源去运行其余部分。加密和安全功能的代码不仅由一个并行运行于主Cortex-M4核心的专用网络处理器执行,它还存储在不能被具有物理访问系统能力的攻击者修改的ROM中。
通过这个方法,我们有了一个极高安全性的无线微控制器的基础,这个控制器可以实现物联网的承诺,即安全、保护良好但灵活的智能控制环境。软件开发人员需要采取额外措施以避免打开安全漏洞,但通过使用加密和仅与可信任方通信,大大降低了攻击者获取对设备的访问权的可能性。