嵌入式设备一直很容易受到攻击。近年来发生的变化是黑客访问这些设备的能力。由于使用无线网络互连它们的增长,用于保护工业控制器和类似设备的网络中的气隙已被填补。引入无线网络是为了增加便利性和灵活性,但它们也为黑客发起攻击提供了一种简单的方法。需要的是能够抵御攻击的设备,使用多种技术来支持高安全性。
安全强化的关键是一组基本构建块,当它们一起使用时,可以拒绝黑客攻击并保持完整性。启用无线的设备需要确保它能够保持对自己的代码和数据的控制,并支持与远程端点的私有通信,这些端点可以提供必要的可信认证。
设备身份验证必不可少的一个例子是中间人攻击。这是一种攻击,其中黑客拦截两个合法设备之间的通信并窃听对话,并更改他们收到的数据包,以获取对其中一个或两个设备的机密或条目的访问权限。针对启用了 Wi-Fi 的设备的常见攻击是创建一个伪装成合法路由器的接入点,将 *** 纵的数据转发到真正的接入点和设备本身。使用此类技术,攻击者可能会了解执行成功登录所需的访问代码,或者他们可能会注入导致设备出现故障的虚假数据或恶意软件。
因此,受保护的对话很重要,这表明使用加密技术使潜在攻击者的窃听变得更加困难。但是,密码学支持极大地简化了创建安全设备的工作。
每个安全物联网设备的中心都需要有一个信任根。这是计算机 *** 作系统和软件可以完全信任的嵌入式设备中的一组功能。在当今的设备中,信任根是通过使用公钥基础设施 (PKI) 加密来保证的——这种机制可以检查任何设备的真实性及其 *** 作的有效性。
如今,PKI 对于在高度分布式环境中成功利用密码学至关重要。PKI 是围绕创建非对称使用的加密密钥对而构建的。一种是可以自由分发的公钥,用于加密发送给私钥持有者的消息。与对称密钥系统相比,跨公共网络无风险传输公钥的能力大大提高了基于加密的安全性的可扩展性。
由于对称系统使用相同的密钥进行加密和解密,因此必须始终对未经授权的用户保密。这使得向用户提供受信任的密钥变得极其困难,因为他们必须使用替代的、高度信任的渠道进行通信才能获得密钥。
在 PKI 下,只有私钥的持有者才能解密公钥持有者发送的消息。因此,密钥必须保密。但是,PKI 支持的协议意味着永远不需要将私钥发送给另一个用户。所有通信都可以通过使用公钥和使用私钥进行数字签名的证书来支持。
PKI 事务可能是计算密集型的,这可能使其难以在嵌入式系统中实现。然而,使用专用协处理器将减轻处理来自主处理器的密钥和加密数据的负担。德州仪器(TI) SimpleLink CC3220 无线微控制器上提供了这种协处理器。CC3220 解决方案将 Wi-Fi 收发器、TCP/IP 网络和加密引擎与基于 ARM® Cortex®-M4 MCU 的微处理器相结合。
图 1:CC3220 的框图。
互联网上几乎普遍使用的传输层安全 (TLS) 协议基于 PKI,可防止窃听并有助于防止中间人攻击。但是,使用 PKI 核心,可以超越消息加密和保护。该内核可以与精心设计的硬件功能结合使用,为嵌入式系统建立信任根,确保设备只能运行授权代码,然后只能与网络中其他地方的授权设备通信。
信任根背后的想法是,只有已由受信任方签名的代码才允许在启动时运行,并且该代码只能由同一受信任方更改。引导代码的关键因素是它使用 PKI 技术进行数字签名,创建一个与代码本身内容相关的哈希值。此签名过程通常由首先获得或生成受制造商私钥保护的基于 PKI 的数字证书的设备制造商执行。用于此过程的数字证书通常源自由高信任机构生成的根证书。
当加载到设备中并使用匹配的公钥进行分析时,代码签名需要与二进制文件的内容精确匹配。对软件的任何更改都会将哈希标记为无效,并且设备应拒绝从该映像启动。这有助于防止以 *** 纵存储图像为中心插入恶意代码的攻击。
公共代码验证密钥需要与设备自己的私钥一起存储在安全内存中,它将用于生成可信密钥对以与其他设备进行通信。CC3220 上提供了这样的功能。除了对代码验证密钥和本地系统的私钥进行安全存储外,该设备还提供受信任的根证书目录,可用于验证设备制造商或服务运营商提供的其他数字签名的真实性。
需要从服务器发送的代码更新和其他安全数据可以使用类似的过程进行验证,如图 2 所示。首先,服务器生成一个公钥/私钥对并将公共版本传递给设备。这用于生成临时密钥对。派生的公钥被传输到应用服务器。加密文件可以通过不安全的通道(例如 Wi-Fi)传输,并在设备上解密一次,然后对其签名进行最终的真实性检查。
图 2:用于向设备提供安全内容的过程。
如果签名不匹配,任何未经授权的代码或数据更新都可能被拒绝。此外,保护设备免受涉及更新过程中重置引起的中断的攻击。潜在地,具有部分安装固件的设备可能容易受到利用软件在重新启动时处于不确定状态的攻击。在 CC3220 上,重置后会触发自动回滚,以确保只有完全安装且经过认证的固件才能运行。
CC3220 提供进一步的篡改检测和保护功能。理想情况下,信任根使用 PKI *** 作将受信任区域从自身扩展到覆盖系统的其他元素,例如在执行前签名和检查的应用程序代码。但是,有可能在工厂引入恶意代码,或者运行各种服务的需要涉及加载不受信任的代码。另一种情况可能是黑客获得对设备的物理访问权限,并通过直接 *** 纵内存总线引入自己的代码。CC3220 中的安全警报计数器跟踪访问违规,例如尝试使用无效或不正确的安全令牌读取或写入文件。当系统达到预定义的安全警报限制时,设备将被锁定。要从锁定状态中恢复。
图 3:CC3220 的安全特性。
在 CC3220 等设备上安装硬件加密引擎的优势在于,处理器无需加载可能不受信任的代码即可运行 PKI 算法,然后它就可以测试引导软件的其余部分的来源。加密和安全功能的代码不仅由与主 Cortex-M4 内核一起运行的专用网络处理器执行,而且存储在 ROM 中,因此攻击者无法修改它——即使是对系统具有物理访问权限的攻击者。
结论
结果是高度安全的无线微控制器的基础,它可以兑现物联网的承诺,成为一个安全、安全但灵活的智能控制环境。软件开发人员需要采取其他措施来避免打开安全漏洞,但通过使用加密和仅与受信任方通信,攻击者获得设备访问权限的可能性大大降低。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)