通过更智能的设计促进嵌入式安全

描述

  今天,闪电般快速、日益互联的世界为我们提供了为我们每天使用的嵌入式系统显着增加价值的机会。

  当今快如闪电、日益互联的世界为我们提供了为我们每天使用的嵌入式系统显着增加价值的机会。然而,同样的连接也可能对作为嵌入式系统基础的物联网应用程序和设备的完整性构成威胁。解决方案?更智能、更安全的设计。一旦奠定了坚实的基础,连接互联网的嵌入式和物联网设备就可以确保长期安全并保护网络,即使个别节点受到损害。为了达到所需的安全级别,必须预测和解决多种威胁:实现这一目标的一个很好的工具是 Microsoft 的 Azure Sphere 及其嵌入式 Pluton 安全子系统。

  物联网安全要点

  物联网设备安全的一个基本要求是确保系统正确集成。由于黑客是出了名的足智多谋,并且乐于利用任何和所有弱点,因此必须保护设备免受未经授权的修改和入侵。智能 OEM 可以通过分层安全性降低其对受损系统的脆弱性。例如,黑客用来渗透系统的一种常用机制是缓冲区溢出。它允许黑客利用存储在内存之外并分配到网络缓冲区的数据,这有时会导致代码被目标系统无意中执行。从黑客的角度来看,这是个好消息。它不仅提供了他们可以上传新的可执行映像的点,

  安全启动机制是避免此问题的好方法。它通过确保只有授权方提供的可执行文件能够运行来提供关闭潜在攻击的方法。实现安全引导机制的一个基本要求是非易失性内存区域在制造后被视为只读 - 这包含引导加载程序代码,该代码强制处理器检查加载到系统中的引导映像的完整性。如果完整性检查失败,则设备将无法启动,直到提供有效的启动映像。有效的完整性检查将制造商 ID 与设备自己的 ID 相结合,确保加载到闪存中以供下次启动使用的代码使用使用本地存储的唯一 ID 生成的哈希进行签名。为防止可能用于查找此 ID 的攻击,

  硬件信任根

  对于设计界的所有成员来说,安全性正日益成为一个重要问题。例如,在最近的一次路测审查中,element14 社区成员 David Long 指出 Pluton 安全子系统的信任根是作为 Azure Sphere 模块的核心部分实现的,可通过 Newark 获得,这是关键功能之一。

  硬件信任根是运行安全敏感操作的受保护区域。它通过实现对片上代码和数据存储器具有唯一访问权限的安全处理器来提供针对物理篡改和远程攻击的保护。加密密钥和其他安全数据存储在这些区域中,并且信任根被配置为不允许从外部访问这些元素。安全处理器通常由加密处理器和真随机数生成器 (TRNG) 支持,以加速这些操作和真随机数生成器 (TRNG),该生成器用于生成在信任根之外运行的软件和系统,以确定它们是否应该有权访问系统资源。

  有了硬件信任根,设备不仅有可能保护自己和它发送的任何数据,而且可以证明它是向云中的其他物联网设备或服务器发送可信数据的合法设备。这反过来又有助于提高安全性,因为设备可以拒绝与任何没有可接受凭据的网络连接设备互动。这也降低了缓冲区溢出和类似攻击首先通过的可能性。Pluton 安全子系统有助于控制本身可能受到损害的外围设备的操作。处理器内的防火墙可防止对敏感功能的未经授权的访问以及潜在黑客使用假冒外围设备接管系统的企图。

  软件或远程设备可以通过证明来证明其身份或真实性。通常,这是在基于公钥基础设施 (PKI) 机制的协议的帮助下处理的。在 PKI 下,消息使用公钥加密,可以在不损害协议的情况下自由分发,因为只有相应的私钥才能解密消息。此类私钥将存储在信任的安全内存的硬件根中,并且通常在制造过程中加载。

  通信安全

  当设备想要建立通信或证明其身份时,它将使用协议来使用这些私钥中的一个或多个生成证书和签名。签名和认证协议将随机值(理想情况下在 TRNG 的帮助下创建)与私钥相结合,以创建会话密钥等值,会话密钥在短时间内使用一次,然后被丢弃,以避免黑客拦截消息并重新创建他们在所谓的重放攻击。一旦创建,PKI 协议确保私钥永远不需要在安全区域之外访问。

  在 Azure Sphere 的情况下,两个核心私钥是由设备上的 Pluton 子系统在制造过程中生成的,之后甚至无法被软件直接读取。从私钥派生的所有消息都是由 Pluton 子系统中的加密处理器创建的。这弥补了许多系统中的关键弱点,在这些系统中,私钥是在外部生成并编程到设备中,从而产生了拦截的可能性。

  下一个问题是确定设备首次出现在网络中时密钥是否有效。Azure Sphere 通过生成匹配的公钥来实现这一点:一个用于证明,一个用于用户定义的安全服务。这些公钥在制造时提供给 Microsoft,供其 Azure 云服务使用。设备中还存储了使用 PKI 机制生成的数字证书,用于检查声称来自 Azure 服务器的消息。

  当 Azure Sphere 设备连接到云时,它会根据存储在安全内存中的 Azure 创建的证书检查消息来验证服务器的身份。此时,设备需要向服务器验证自己的身份,这是使用远程认证协议完成的任务。在 Azure Sphere 系统中,识别的不仅仅是设备,还有它运行的代码。这是通过基于在安全启动过程中发现的代码序列的加密哈希创建会话密钥来执行的。这些值使用私钥签名,用于由板载加密处理器生成的证明。由于 Azure 服务可以根据设备在其数据库中的公钥生成相应的公钥,因此它可以验证它已使用授权固件启动的设备身份。

  对设备进行身份验证的云服务的可用性还有其他好处:例如,在 Azure Sphere 下,当发现设备是真实的并且运行正确的软件时,它会提供一个证书,该证书与它自己存储的结合使用时凭据,可以提供给其他在线服务和设备以证明设备的身份。该证书的有效期大约为一天,这限制了攻击的可能性并强制设备定期展示其健康状况,以保持与物联网服务的连接。

  如果设备没有通过安全启动过程,那么它就无法获得一个证书,让它作为一个有效的、经过身份验证的系统运行,并将与 IoT 断开连接。此外,身份验证失败提供了一种纠正这种情况的方法,并且可以允许设备连接到 Azure 服务,以便下载和安装真实且最新的启动映像。这提供了额外级别的保护,以防止利用旧版本真实固件中的弱点进行的攻击。

  element14 社区成员 Rodrigo Sim 将 Microsoft Pluton 安全子系统描述为 Azure Sphere 生态系统的基础,并指出 Pluton 有一个专用核心用于加速加密任务,例如使用 SHA2 进行散列、椭圆曲线加密 (ECC) 和 AES 加密。所有这一切使 Pluton 能够为基本操作系统和用户应用程序提供安全启动和远程证明。专用核还可以控制其他核中外设的访问。

  尽管对互联网连接的支持现在实际上是许多嵌入式系统设计人员的要求,但所构成的威胁是可以控制的。通过 Azure Sphere 等平台,互联网连接提供了比未连接设备更强大的解决方案。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分