云服务:防护嵌入式安全的有效手段

2020-05-06 10:06:23分类:云服务端开发13499

  网络连接一方面能够为嵌入式系统带来巨大好处,另一方面却可能威胁到设备及设备所构建的物联网应用的完整性。然而,这一难题现在可以通过智能设计技术解决。只要使用了正确的基础架构,联网嵌入式和物联网设备就可以利用在线服务确保长期安全地保护网络,即使个别节点在某一时刻遭受攻击。实现所需安全级别是一项极为复杂的工作,幸运的是,市场上涌现出多种有效解决方案,如:Microsoft的Azure Sphere及其嵌入式Pluton安全子系统,可提供一整套措施和工具来应对不同威胁。

  1 实现物联网安全的硬件基础

  物联网设备安全的一个基本要求是保护系统的完整性,这就要求设备的防御措施必须能够防止非授权的修改和入侵。黑客极端狡猾,他们会利用所发现的任一漏洞来尝试攻击系统。OEM厂商则可利用层次化安全策略来增强其系统对网络攻击的抵御能力。例如,缓冲区溢出常常被黑客用来对系统实施渗透入侵,其攻击原理则是利用了内存数据布局。过大的网络数据包可被黑客加以利用,将攻击代码存储在分配给网络缓冲区的内存空间之外,之后目标系统便会无意中执行这些攻击代码。从黑客的角度来看,这为他们提供了一个上传可执行镜像文件的机会。一旦设备重启,便会执行新的镜像文件,如此,黑客就获得了系统的完全控制权,能够窃取机密信息及其他有价值的数据。

  安全启动机制可确保仅运行授权方提供的可执行文件,从而防止各类攻击。实施安全启动机制的一个基本要求是将非易失性内存区域在制造后设置为只读区。这一区域包含引导加载程序代码,可强制处理器检查加载到系统中的启动镜像的完整性。若完整性检查失败,则设备只有获得有效的启动镜像后才能开启。

  校验和是进行完整性检查的最简单机制。然而,它并不会检查启动镜像的来源。如果黑客知道如何根据制造商ID或本该保密的类似共享代码来构造虚假的启动镜像,那么仍有可能成功通过完整性检查。为此,用户需要实现更有效的完整性检查:通过确保使用本地存储的唯一ID生成的哈希数,对加载到闪存中供下次启动使用的代码进行签名,从而将制造商ID与设备自身ID相结合。为了防止可能用于窃取此ID的攻击,设备还需具备一个硬件信任根。
 

云服务:防护嵌入式安全的有效手段
 

  2 硬件信任根

  硬件信任根是用于运行安全敏感操作的受保护区域,这些操作可防御物理篡改和远程攻击。为了实现此类防护,信任根部署了一个安全处理器,该处理器对片上代码和数据内存具有唯一的访问权。加密密钥和其他安全数据都存储在这些区域中,且信任根配置为不允许从外部访问这些内容。安全处理器通常借助加密处理器来加快操作速度,同时利用真随机数生成器(TRNG)来生成在信任根之外运行的软件和系统,以确定它们是否有权访问系统资源。Pluton安全子系统就是硬件信任根的一个示例,该子系统是Azure Sphere模块部署的核心部分,可通过e络盟购买。

  有了硬件信任根,设备不仅能保护自身及其发送的所有数据的安全,还可以证明自身是向网络中其他节点(无论是云中其他物联网设备还是服务器)发送可信数据的合法设备。这有助于进一步提高设备的安全性,因为设备可以拒绝与没有可接受凭证的任何联网设备进行交互。这首先就减少了设备遭受缓冲区溢出和类似攻击的可能性。Pluton还加强了系统内部的安全性,以控制那些可能受到攻击的外围设备的操作。处理器内的防火墙可防止对敏感功能的未授权访问,以及企图利用虚假外设来控制系统的攻击行为。

  认证是软件或远程设备用以证明其身份或真实性的机制。通常,这种认证是根据基于公钥基础设施(PKI)机制的协议来进行的。PKI机制中,消息使用公钥进行加密,因为公钥可以自由分发而不破坏协议,而相应的私钥才能解密消息。因此,此类私钥将存储在硬件信任根的安全内存中,且通常在制造过程中进行加载。

  3 通信安全

  当设备想要建立通信或证明其身份时,它将使用协议通过一个或多个私钥生成证书和签名。签名和认证协议将真随机数生成器(TRNG)生成的随机数与私钥相结合,以创建诸如会话秘钥之类的值,这些值有效期短且使用一次就会被丢弃,以避免黑客拦截消息并重构秘钥实施所谓的重放攻击。一旦创建,PKI协议可确保只在需要的安全区域内访问私钥。

  若使用Azure Sphere,两个主私钥则是由设备本身搭载的Pluton子系统在制造过程中生成,其之后甚至连软件也无法直接读取。可以说,私钥的所有信息均由Pluton子系统内的加密处理器创建,这就克服了众多系统存在的一个重要缺陷,它们的私钥往往是在外部生成并导入设备,无疑增加了被拦截的风险。

  尽管任何设备都可以生成私钥并进行内部存储,但必须确定设备首次出现在网络中时其密钥是否合法有效。Azure Sphere可通过生成匹配的公钥来解决这一问题:一个用于认证,另一个用于用户定义安全服务。这些公钥在设备制造阶段即提供给Microsoft Azure云服务使用。同时,使用PKI机制生成的数字证书也会存储在设备中,这些数字证书可用于验证来自Azure服务器的消息。

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

  运用云服务进行设备身份认证还具备其他多个好处:例如,在Azure Sphere环境下,若设备被证实可靠且软件运行无误,该设备就可获取一个证书。该证书可与设备自身存储的凭证一起提交给其他在线服务和设备以证实其身份信息。该证书的有效期仅约一天,有助于降低设备遭受潜在攻击的风险。这也意味着,若设备需维持与物联网服务之间的连接,设备必须定期证实其健康状况。这种防护级别是单机系统无法实现的,它们一旦遭受物理攻击损害,若不进行手动维护检查将无法修复。

  若设备未通过安全启动过程,客户端设备将无法获得证书,也就无法作为一个合法有效且经认证的系统运行,这样一来,设备将被切断与物联网系统的连接,且其运行方式将无法有效防御黑客攻击。此外,若身份认证失败,也有方法可以用来改变不利情况,即将设备连接到Azure服务,以下载并安装经认证的最新启动镜像。这就为设备提供了更高级别的防护,可防止黑客利用旧版认证固件的漏洞实施攻击。

  实际上,网络连接支持已成为许多嵌入式系统设计人员的一项实际需求。尽管存在一些威胁风险,但却完全可控。通过Azure Sphere等平台,网络连接能够提供较非联网设备更稳健可靠的解决方案。

上一篇:下一篇: