首页 能链洞察 区块链百科

SGX(Ⅰ)| 基于可信硬件的安全计算

SGX(Ⅰ)| 基于可信硬件的安全计算

发布时间:2020.11.06
过去的十年,为了保护敏感代码和数据,可信执行环境(TEE)发展迅速。各类CPU供应商都推出了他们的TEE方案,例如ARM TrustZone、Intel SGX和AMD SEV,以创建一个安全的执行环境。其中,Intel SGX可以说是目前TEE商用方案中使用最广泛的子集之一。本系列将聚焦介绍SGX的基本技术原理,并结合当前可信计算领域存在的安全问题,解析该技术在安全方面的优势及其应用需求。

资源价值的最大化,
在于有效建立信任。


今天各类应用程序需要处理大量的用户私密信息,如用户名、密码、信用记录、加密密钥和健康记录等。

虽然在大多数情况下,操作系统的职责是执行安全策略,以消除私密信息被泄露给其他用户和应用程序。

例如,操作系统可以防止未经授权的用户或应用程序访问其他用户的文件或其他应用程序的内存空间。与此同时,即使操作系统本身受损,应用程序也会应用额外的保护机制,例如数据加密,以免受恶意程序的攻击。

然而,在大多数计算机系统中仍然存在一个显著的漏洞,即可以应用许多保护机制来增强安全性,但实际上没有任何策略来保护用户程序的数据免受特权软件的访问和篡改。这导致用户只能被动地相信供应商的可靠性, 以及管理人员不会窃取自己的私密数据。

SGX

为了防御这种攻击,英特尔SGX便是一种为满足可信计算需求而开发的技术,旨在通过“反向沙盒”机制增加软件的安全性,为用户的秘密数据提供更高级别的保护。

这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave(飞地)中,保护其不受恶意软件的攻击。

简而言之,Intel SGX提供了一组额外的CPU指令来创建enclaves,即由硬件保护的区域,即使在特权操作系统面前,也能确保机密性和完整性。

SGX

本质上来说,相较于前文介绍过的零知识证明/同态加密等方式,SGX取决于打破硬件的困难程度,而不是打破一道数学题的困难程度。在特性方面,依托于可信计算基,SGX几乎支持多维度数据的绝大部分运算范式。



但在理解SGX究竟是如何确保数据安全,以及与现有技术有哪些不同之处前,我们先以浏览HTTP网页为例,做简要的类比理解。

以前,当我们打开一个HTTP网页时,浏览器将与远程服务器的传输控制协议(TCP)建立连接,并通过它发送一个纯文本HTTP请求,然后服务器发送一个纯文本回复。

在这个过程中,数据包通过的任何中间节点都可以拦截、读取或修改数据包。这被称为中间人攻击,它允许攻击者模拟网站并拦截流量。此外,服务器无法控制数据的使用方式。这意味着一旦数据离开终端用户的设备,它是完全可见的,并且可以一直修改。这并不是我们所期待的结果。

为了解决这个问题,一个更安全的HTTP版本即HTTPS诞生了,它在TCP和HTTP层之间插入了一个TLS层。

当我们打开一个HTTPS网页时,浏览器将建立一个到远程服务器的TCP连接,并使用它来启动TLS协议(传输层安全协议)。在握手过程中,远程服务器端将向浏览器发送一个证书链,浏览器将对该证书链进行验证。

首先,它检查链中的根公钥是否在浏览器的受信任根列表中。然后浏览器继续检查证书链本身,即检查服务器的证书是不是这些信任根签发的或者信任根的二级证书机构颁发的。这整个过程是通过密钥建立信任,该密钥还可用于加密浏览器和服务器之间的实际传输数据。如果所涉及的密钥都没有泄露,该协议可以防止中间人攻击。

这个过程可以总结为:
通过证书确保远程服务器端的真实身份;
通过加密确保攻击者不会篡改传输中的数据。


但是请注意,此过程仅在连接本身中建立信任并确保其安全。如果运行的服务器向其他方披露数据,那么所有的加密都将变得毫无意义。因为加密的通信流必须在服务器进程中解密,然后解密的数据将公开给服务器机器上运行的所有程序。这完全超出了客户端的控制。

解决这个问题的一种方法是将服务器端流量处理放到硬件安全模块(HSM)中。这种设备提供物理保护,防止对流经的数据进行篡改。SGX便可以理解为安装在英特尔CPU上的迷你HSM,但它更进一步。

因为即使我们做了所有这些,客户端必须相信网站确实使用了这些HSM。也就是说,除了提供内存隔离与保护安全属性,SGX架构还支持远程认证和密封等功能,用于安全软件应用和交互协议的设计。关于这个架构的完整过程,我们下篇继续聊……

*本文图片来源于网络,仅供学习交流使用,不具任何商业用途,图片版权归原作者所有,如有侵权还请联系我们,谢谢!