转载路径:
https://mp.weixin.qq.com/s?__biz=MzU4NjMxNjA2NQ==&mid=2247484003&idx=1&sn=3142d85d631d1e02a06fe6e8aa103e41&chksm=fdfc622dca8beb3bc118cf334e0a5a9bf0bbf85f4f9b5f9bf50cb37821bf8af85225b104a7be#rd
嵌入式设备总是容易受到攻击。近年来发生的变化是黑客能够访问这些设备。由于使用无线网络连接它们,用于保护工业控制器和类似设备的网络的空气缺口已经被填补。介绍了无线网络的便利和灵活性增加,但他们也为黑客们提供一种简单的方式来发动攻击。需要的是对攻击进行强化的设备,使用多种技术来支持高安全性。
安全性加强关键是一组基本构建块一起使用时,拒绝黑客攻击和保持完整。一个无线支持的设备需要确保它能够维护自己的代码和数据的控制,并支持与远程终端的私有通信,这些远程终端可以提供可信的认证。
对设备进行身份验证的一个例子就是中间人攻击。这是一种攻击,黑客可以截获两个合法设备之间的通信,监听对话,并修改他们接收到的数据包,以获得对一个或两个设备的秘密或入口的访问。对支持wi - fi的设备使用的常见攻击是创建一个访问点,它将伪装成合法路由器,将操纵数据转发到实际访问点和设备本身。使用这种技术,攻击者可以学习所需的接入码执行成功登录,或者他们可能注入虚假数据或恶意软件导致设备故障。
因此,受保护的对话是重要的,它指出加密的使用,使窃听对一个潜在的攻击者来说更加困难。但是,加密支持极大地简化了创建安全设备的工作。
在每个安全的物联网设备的中心,都需要一个信任的根。这是一组嵌入式设备的功能,可以完全信任计算机的操作系统和软件。在今天的设备中,信任的根是通过使用公共密钥基础设施(PKI)加密技术来保证的——这种机制使人们能够检查任何设备的真实性以及其操作的有效性。
今天,PKI对于在高度分布式环境中成功开发密码学至关重要。PKI是围绕着使用不对称的加密密钥对创建的。一个是可以自由分发的公钥,用来加密发送给私钥持有者的消息。与对称密钥系统相比,跨公共网络传输公共密钥的能力大大提高了基于加密的安全性的可伸缩性。
由于对称系统对加密和解密使用相同的密钥,所以密钥必须始终对未授权的用户保密。这使得向用户交付可信的密钥非常困难,因为他们必须使用替代的、高信任的通道进行通信,以获得密钥。
在PKI下,只有私钥的持有者才能解密公开密钥持有者发送的消息。因此,必须保持秘密的关键。然而,PKI支持的协议意味着没有需要发送给另一个用户的私钥。所有通信通过使用公钥可以支持使用私钥和证书进行数字签名。
PKI事务可以计算密集型的,很难实现在嵌入式系统中。然而,使用专用的协同处理器将减轻处理主处理器的密钥和加密数据的负担。这种协处理器是在德州仪器SimpleLink CC3220无线微控制器上发现的。CC3220解决方案结合了无线收发机,TCP / IP网络和加密引擎具有微处理器基于ARM®皮层®m4单片机。
德克萨斯仪器CC3220无线单片机的框图
图1:CC3220的框图。
传输层安全(TLS)协议几乎在因特网上普遍使用,基于PKI,防止窃听和帮助防止中间人攻击。但是,有了PKI核心,就有可能不仅仅是消息加密和保护。核心可以与精心设计的硬件特性结合使用,从而为嵌入式系统构建信任的根,从而确保设备只能运行经过授权的代码,并遵循该方法,只与网络中的其他授权设备进行通信。
信任根背后的思想是,只有由受信任方签名的代码才能在引导时运行,并且代码不能被更改,除非是由相同的可信方。引导代码的关键因素是,它使用PKI技术进行数字签名,创建一个与代码本身内容绑定的散列值。这个签名过程通常由设备制造商执行,他们首先获得或生成一个基于pki的数字证书,该证书由制造商的私钥保护。用于此过程的数字证书通常来自由高信任代理生成的根证书。根证书支持指向一个核心可信实体的派生证书树的生成——这是一个很难让攻击者妥协的信任链。
当加载到设备中并使用匹配的公钥进行分析时,代码签名需要匹配二进制精确的内容。对软件的任何更改都会将哈希标记为无效,并且该设备应该拒绝从该映像启动。这有助于防止对存储图像的操作进行攻击以插入恶意代码。
公共代码验证密钥需要存储在安全内存中,以及该设备自己的私有密匙,它将用于生成可信密钥对,以便与其他设备进行通信。这种设施可在CC3220上使用。除了为代码验证密钥和本地系统的私钥提供安全存储之外,该设备还提供了可信的根证书目录,可用于验证设备制造商或服务操作人员提供的其他数字签名的真实性。
需要从服务器发送的代码更新和其他安全数据可以使用类似的过程进行验证,如图2所示。首先,服务器生成一个公共/私有密匙对,并将公共版本交付给设备。这是用来生成临时密钥对的。派生的公钥传输到应用服务器。加密的文件可以通过不安全的通道传输,比如wi - fi和在设备上解密一次,它的签名可以进行最终的真实性检查。
用于向设备交付安全内容的流程示意图(单击全称)
图2:用于提供安全的内容的过程和设备。
任何未经授权的代码或数据更新可以拒绝,如果签名不匹配。此外,该设备还可以防止在更新过程中由重置引起的攻击。潜在地,一个安装了部分固件的设备可能会变得容易受到攻击,因为当它重新启动时,软件处于一个不确定的状态。CC3220,触发自动回滚后复位,确保只有完全安装和认证固件可以运行。
CC3220提供了进一步的篡改检测和保护功能。理想情况下,信任的根使用PKI操作将可信区域从自身扩展到系统的其他元素,例如在执行之前签名和检查的应用程序代码。但是,在工厂中可能会引入恶意代码,或者需要运行各种服务,包括装载不受信任的代码。另一种情况可能是黑客获得物理访问设备和引进自己的代码直接操作内存总线。CC3220中的一个安全警告计数器可以跟踪访问违规行为,比如试图使用无效或不安全令牌来读取或写入文件。当系统达到预先设定的安全警报限值时,设备就会被锁定。要从锁定状态恢复,设备必须恢复到其出厂设置和代码库。
德州仪器的安全特性图CC3220全尺寸(点击)
图3:CC3220的安全特性。
在像CC3220这样的设备上拥有一个硬件加密引擎的优点是,在它可以测试其他的引导软件的来源之前,处理器不需要装载潜在的不受信任的代码来运行PKI算法。加密和安全函数的代码不仅是由一个专门的网络处理器执行运行与主Cortex-M4核心,它存储在ROM所以不能修改由攻击者——甚至有物理访问系统。
结论
这个结果是一个高度安全的无线微控制器的基础,它可以实现IoT的承诺,它是一个安全、安全但灵活的智能控制环境。有软件开发人员需要采取额外的措施来避免开放安全漏洞,但通过使用加密只和沟通与信任方,攻击者获得设备的概率大大降低。
转载路径:
https://mp.weixin.qq.com/s?__biz=MzU4NjMxNjA2NQ==&mid=2247484003&idx=1&sn=3142d85d631d1e02a06fe6e8aa103e41&chksm=fdfc622dca8beb3bc118cf334e0a5a9bf0bbf85f4f9b5f9bf50cb37821bf8af85225b104a7be#rd