DDS 安全硬件(硬件)方式 - SGX:第 1 部分(概述)
多部分的第 1 部分系列
保护关键任务工业物联网环境需要从边缘扩展到云、跨系统和供应商的安全性。作为 OMG DDS 安全标准的主要作者,RTI 在定义要求和环境方面发挥了主导作用,这些要求和环境是保护分布式环境所必需的。 DDS 安全插件为线上数据提供了强大的、以数据为中心的安全机制。 RTI Connext DDS Secure 是经过验证的、值得信赖的连接框架,它通过灵活、细粒度的安全保护系统,以实现从设备到云的最佳性能和效率。
然而,我们认识到安全是一个复杂的问题。虽然 RTI 在 Connext DDS 软件框架中创建了高级安全性,但我们的研究团队正在寻找其他领域,以将更强大的安全性引入 IIoT。考虑到这一点,我们很高兴与您分享 RTI Research 的一些工作,因为他们探索了新的和创新的安全方法。
在本博客系列中,我们的安全专家 Jason Upchurch 将目光从软件转向硬件机制,这些机制为关键应用程序处理其数据的不可信系统提供安全性。本着推动安全极限的精神,他在 RTI Connext® DDS Micro 和安全插件的背景下探索了英特尔 SGX®。
让我们开始吧。
什么是新交所及其重要性?
SGX 或 Software Guard Extensions 是英特尔 ISA(指令集架构)的扩展,它提供了一个 TEE(可信执行环境)来运行包含敏感数据的应用程序。虽然英特尔 ISA 确实没有主导工业物联网 (IIoT),但它在服务器机房中确实有市场份额,并且服务器机房经常被并入各种 IIoT 架构中。更重要的是,这些服务器机房数据处理应用程序更有可能成为恶意用户的高价值目标,因为与传统的 IIoT 端点相比,它们可能拥有更多的受保护数据访问权限。因此,新交所可以很好地帮助保护 IIoT,或者至少是其中的一部分。让我们探讨为什么 SGX 对 DDS 用户和其他需要高安全性环境的应用程序开发人员很重要。
图 1:Connext DDS 保护 SGX 空间内部
有线安全可能还不够
首先,让我们看一下爱丽丝和鲍勃分享秘密的经典学术示例。故事从爱丽丝和鲍勃的会面开始,然后是狡猾的夏娃在网络上截获消息,最后是一种行之有效的分享秘密的方法。这是安全通信的基础,即使 Eve 拦截了所有消息。在进行了数次世界上最大的入侵调查之后,我可以肯定地说,我从未见过“夏娃”在线路上拦截加密消息并收集秘密。我也可以肯定地说,“夏娃”几乎总能得到她想要的秘密。这些看似矛盾的陈述都可能是真实的,因为网络加密是强大的,因此很少成为攻击目标。
为了研究这个问题,让我们看看这样一个场景,Eve 坐在 Alice 和 Bob 之间,可以随意听到甚至操纵消息。该场景假设 Alice 和 Bob 彼此信任他们共享的秘密;然而,这一假设在实践中被证明存在严重缺陷。图 2 中的教科书图表实际上说明了这个问题,因为 Alice 似乎在没有任何技术的情况下与 Bob 远距离通信。
图2:教科书Alice和Bob的交流
实际情况是使用某种形式的设备使 Alice 和 Bob 能够进行通信,这就是我们的假设使我们变得更好的地方。在计算机安全中,有一个称为可信计算库 (TCB) 的概念。用最简单的术语来说,TCB 是您必须信任以确保某种处理安全的所有组件(单独的和作为系统的),包括软件。在我们经典的 Alice 和 Bob 场景中,我们试图保护远距离的秘密共享。 Alice 确实假设相信 Bob 会与他分享秘密,但她也信任他(和她的)计算环境。在实际场景中,这是由来自不同制造商的数百个组件组成的集合,它们 (a) 可能运行具有数百万行代码的操作系统; (b) 充满了由您不认识的人编写的应用程序; (c) 可能连接到一个面向公众的网络,该网络允许攻击者和自动传播恶意软件的免费访问权限随意攻击系统。至少可以说,这些系统远非值得信赖。
...这种情况类似于在纸墙的房子上建造一扇带有精致锁的钢门。
当推荐一些新的更好的加密方案来加密网络通信时,它是计算机安全社区中许多人愤世嫉俗的幽默来源。毕竟,可以毫不费力地从源或目标中提取秘密,完全清晰,完全不用担心加密。我一直认为这种情况类似于在纸墙的房子上建造一扇带有精致锁的钢门。
那么该做什么呢?工业中当前的方法主要集中在寻找实现关键任务、认证和/或测量每个组件以及将它们与系统中的其他组件隔离所需的最小可行组件(硬件和软件)。在非常基础的层面上,这种方法缩小了 TCB 并验证没有添加或修改 TCB 内部的组件。
端点(以及中间的每一点)的安全
需要注意的是,虽然并非微不足道,但我们在计算方面已经达到了可以构建安全计算环境的地步。问题是当前的市场需求是丰富的计算环境,而这与安全的环境不一致。即使在 IIoT 中,对丰富计算环境的需求也不总是因为它们提供的大量功能,而是因为它们很受欢迎并且得到了很好的支持,因此开发和维护的成本要低得多。因此,大型 TCB 问题会进入可以用另一种方法保护的设备中。为了解决这个问题,业界已经开始构建在单个设备中提供丰富的操作系统和(以某种方式)分离的可信执行环境 (TEE) 的系统。
大多数 TEE 设计本质上是在单个设备上并行运行两个操作系统。富操作系统处理常见任务,安全操作系统处理敏感任务。 TEE 设计允许在两者之间切换。该开关通常是硬件支持和强制执行的。常见的信任机制(例如信任链加载根)用于安全端,以确保不会引入未经授权的代码。
新交所完全不同。即使是安全端 TCB 也可能非常大。信任根仅确保程序在加载时不变。因此,它的安全性取决于每个加载程序(包括最小操作系统)的软件验证技术,以及其受信任的启动过程。英特尔着手从根本上最小化 TCB。启用 SGX 的处理器中的攻击面是 CPU 和应用程序。在 SGX 环境中没有需要信任的操作系统、固件、管理程序、其他硬件或 BIOS。唯一必须信任的软件是应用程序本身。 SGX 提供了一种方法来确保该应用程序的可信加载,其方式与正常的可信启动大致相同,不同之处在于信任链只有 3 个链接(根证明、CPU、应用程序),而不是传统安全中的相当长的链启动系统。
图 3:SGX 环境中的攻击面
我一直在试验 Intel SGX 和 DDS+Security。我的目标是在启用 SGX 的 vanilla Ubuntu 16.04 的受保护区域中运行 DDS 应用程序。这个想法是 DDS 受保护的线路通信将到达 Ubuntu 操作系统,然后传递到 SGX 保护的空间。 DDS 保护将在受保护空间内移除。然后,该保护区内的应用程序可以对数据进行操作,该区域对操作系统和系统上存在的任何恶意用户/软件都是不透明的。由于此操作对操作系统来说是不透明的(CPU 保护/加密的组合),因此可以使用 SGX 空间内的 Connext DDS Secure 保护结果并通过线路传递。因此,除了 CPU 和应用程序之外,不会向操作系统或系统的任何部分公开数据。系统管理员或对系统具有 root(或 root+)访问权限的攻击者无法横向访问应用程序数据,特权攻击无法访问 SGX 空间。
这是深入探讨该主题的多部分系列的第 1 部分。有关此主题的更多信息,请直接与我联系。
物联网技术