来源:RedisConf 2020 organized by Redis Labs and https://www.anjuna.io/redis-solution
翻译:Wen Hui
转载:中间件小哥
为什么需要硬件级别的安全技术
内部人员已经对企业IT构成了主要威胁。尽管大多数企业已经采取措施来保护IT系统免受最终用户的侵害,但是具有不受限制的访问权限和资格证书的内部人员可能更加危险。黑客也可以让他们的侵入看起来像内部人员所为。
由于在软件层面防止IT内部威胁的方法和技术具有严重的局限性,所以现在几乎所有主要的硬件和云供应商都在尝试硬件级别的安全技术。Secure Enclaves提供了一种更全面、安全的解决方案,可以保护数据、应用程序和存储不受内部和第三方的攻击,无论是在企业内部数据中心、私有云还是在公共云中。
什么是Secure Enclaves
Secure Enclaves(也称为Trusted Execution Environment或TEE)是安全计算的核心。Secure Enclaves是内置在CPU中与安全相关的指令代码集。它们保护使用中的数据,因为Secure Enclaves仅在CPU中动态解密,然后才针对Secure Enclaves内运行的代码和数据进行解密。
Secure Enclaves通过将应用程序代码和数据与没有访问权限的任何人隔离,并对其内存进行加密,从而在每台服务器上提供CPU硬件级隔离和内存加密。在Secure Enclaves内运行时,任何其他实体都无法访问应用程序代码和数据。具有root权限或physical权限的内部人员都无法访问内存。 甚至guest操作系统,系统管理程序或主机操作系统上的特权用户也被阻止。借助附加软件,Secure Enclaves也可以对存储和网络数据进行加密,以实现简单的全栈安全性。 Intel和AMD的所有新CPU都内置了Secure Enclaves硬件支持。

l Intel: Software Guard Extensions(SGX)是一组CPU指令,可以提高应用程序代码和数据的安全性,从而提供了更多的保护,防止泄露或修改。SGX enclaves内部的应用程序与运行在同一系统上的其他应用程序以及主机操作系统和虚拟机管理程序隔离。Secure Enclaves的内存已加密,可以防止物理攻击。Intel SGX提供对密钥的访问,这些密钥可以保障安全地存储数据,因此只有运行特定应用程序的Secure Enclaves才能读取它。SGX还能通过远程证明向其他方证明该应用程序在真正的Intel硬件上的Secure Enclaves中运行,而且已经更新了最新的微代码以确保其安全性。
l AMD: Secure Encrytion Virtualization(SEV)是AMD的硬件加速内存加密技术,用于保护使用中的数据。它依靠嵌入到内存控制器中的加密引擎以及用于密钥生成和管理的安全处理器,对整个虚拟机的内存进行加密。

如何应用Secure Enclaves
Intel SGX和AMD SEV都是在CPU硬件中实现的一组功能,应用这些功能需要软件解决方案。
到目前为止,应用Secure Enclaves是比较复杂的,需要对应用程序进行大量重写,使其与Secure Enclaves配合使用。另外,每个芯片提供商都有自己的SDK。这个领域有几种开源方案,包括来自Asylo,Open Enclaves和Intel SGX的产品,不过还是需要重新编译每个应用程序以及使用SDK。
这一次Redis Labs和Anjuna就分别介绍和演示了基于Secure Enclaves技术的Redis数据加密。Anjuna的解决方案不用改动Redis就能使其运行在基于CPU的Secure Enclaves中。Anjuna还提供了Redis运行在Secure Enclaves所需的其他功能,比如远程证明,以确保Redis仅在为其分配的主机上运行。下面就简单介绍一下Anjuna的解决方案。

l 在没有启用Secure Enclaves时,Redis的数据没有加密,因此可以通过core dump这种非常规途径获取Redis的数据信息:

而且RDB文件里的数据也是没有加密的:

l 在启用Secure Enclaves之后,无法再通过core dump的途径获取Redis数据信息了:


同时RDB文件里的数据也被加密了:

l Secure Enclaves对Redis的性能还是影响不小的,所以要根据应用场景来决定是否启用。下面是Redis在Intel SGX和AMD SEV环境下的性能数据:


网友评论