【机密计算科普】01:打造机密计算的安全底座

导读:信息时代的发展使得信息安全的重要性尤为突出。对于信息安全的研究可以划分横纵两个维度。纵向上即“做什么”,如软件分析、漏洞挖掘、系统实现、攻击/安全分析、应用协议等等;横向上即“是什么”,覆盖了云计算、终端、物联网、区块链、机密计算等等。其中,由于新的攻击场景出现与威胁模型的不同,对于机密计算和可信执行环境的研究也日渐迫切。

来源:InForSec ’2023网络空间安全国际学术研究成果分享及青年学者论坛张殷乾教授演讲 

一、机密计算的概念

机密计算:一种利用TEE保护运算中的数据的计算方式。它利用TEE提供的加密和隔离的执行环境,对计算中的数据提供保护,防止恶意软件对计算中的数据进行非法访问和篡改,使得计算服务提供商能够以更安全、可信的方式管理机密数据。

信执行环境(TEE):一种由CPU硬件支持的安全隔离机制。能够在应用CPU上通过软硬件协同的方式实现计算环境的隔离以及内存和外部存储的加密,用以防止恶意系统软件的对机密数据的读取和篡改。

可信执行环境在底层的管理系统硬件资源的层面上,伴随着各种不可信组件。因此整个“可信”的执行环境实质上建立在“不可信”的基础之上,难以构建一个底层的、安全的、系统的计算。

二、机密计算的应用——“保护运行中的数据”

2019年,Linux基金会发起一个机密计算研讨社区,致力于向更大范围推广“保护运行中的数据”的机密计算。现有的可信执行环境安全技术,包括内部隔离、内存加密、远程验证等等。

通过“保护使用中的数据”,能够实现对金融数据、医疗数据、个人信息的保护;通过“保护使用的代码和模型”,以可信执行环境为例,能够保护数据、代码的机密性和完整性,进而能够实现对知识产权IP、机器学习模型等等的保护。

机密计算还可与其他研究结合,实现机密的多方计算、机密数据库、机密区块链等等,保护用户隐私和数据流通交易。

三、安全的四个层次

3.1 微架构安全

微架构安全是CPU的通病。2018年出现了新的攻击方式——“熔断”“幽灵”,起初被称为“预测执行性攻击”。

CPU运行时为提高性能,通常会采取乱序执行、预测执行等技术。由于这种加速的机制存在,CPU实际的执行顺序与原本执行顺序不完全一致。瞬态执行漏洞则利用CPU的并发性,在瞬态执行的“时间”或“空间”里,获取泄露的信息,并通过侧信道缓存将窃取到的内存信息编码传递出去。随着了解的深入,我们提出了一个新的概念,叫“瞬态执行漏洞”

瞬态执行漏洞的出现,对机密计算的影响尤为严重。原因有两点:其一是攻击的严重性和多样性,以Intel SGX为例,由于机密计算打交道的系统软件是不可信的,且攻击者往往具有高权限,因而更易遭到多样化的攻击;其二是可信执行环境的“可信根”,实质上是一个存在内存中的“远程验证密钥”,攻击者能够利用瞬态执行攻击偷取到密钥,严重影响了人们对可信执行环境的信任。

我们计划从两个角度应对瞬态执行漏洞。其一,在2020年我们做了一个自动化检测的软件框架,在英特尔商业处理器上测试了22组可能触发瞬态执行漏洞的异常情况,并请求不同的CPU架构运行,最终发现了一些问题存在。这一方法被称为“黑盒模糊测试”

其二,通过侧信道分析,从处理器外部能够看到处理器内部存在问题。我们对开源处理器的源代码进行编译,通过Verilator模拟器转为C代码,并进行分析,最终也发现了一些问题存在,这一方法被称为“白盒模糊测试”

3.2 体系架构安全             

AMD SEV在2017年前后被推出到市场,是一项旨在增强虚拟化环境安全性的技术,其在设计时使用ASID来控制内存、缓存,以及交易安全。

令人费解的是,它的设计允许不可信的系统软件对ASID进行控制或改变。AMD SEV之所以敢于将这样一个关键的变量交由不可信软件控制,是依赖于一种名为“Security by Crash”的机制:一旦ASID被控制或改变,虚拟机系统将会崩溃,从而无法继续进行任何有意义的事情。

而我们的研究认为,即便系统崩溃并且恢复到崩溃之前,仍然有一种攻击方式能够在崩溃之前,恢复并窃取一部分被加密的内存。这一研究公开发布在2021年CCS上,实际研究时间在更早之前,确保不会对AMD造成影响后才公开发布。这篇文章从一个根本的、科研的角度,去挑战质疑和检验企业已有的安全设计,这是我认为文章最具意义的部分。

3.3 系统软件安全            

1. “密文侧信道”。

  • 主流的支持大内存加密的可信执行环境存在同样一个问题,即:在加密的时候,必然有一个确定性的加密方法,同样的明文一定在同一个地方加密到固定的密文上。由于这种一一对应的关系,在某些关键时候,比方说只存在0和1两种状态,就能够通过密文的变化去观测明文的变化。
  • 我们尝试法构筑一种防御,自动化检测上层软件是否存在能够被密文侧信道利用的漏洞,但侧信道问题仍然无法被根除。主流思想上采用软件的方法来防止,比方采用“constant-time cryptography”进行防御,可以保证即便有微架构侧信道的存在,也不能够从可信执行环境或目标软件里偷取到更多信息。尽管如此,在机密计算领域,由于高权限攻击者通过控制系统软件造成侧信道威胁多样化,防御难度更大,如何构建更有效的防御方式仍然是研究者们悬而未决的重要问题。

2. “内存安全”。

  • 通常我们采取随机化的技术对内存安全进行防御,而这一技术在机密计算中可能无法奏效。一是由于机密计算、可信执行环境本身设计的限制,随机化无法完整地实现;二是由于随机化还面临着侧信道攻击的威胁,使得随机化的实现变得更为困难和复杂。

3.“线程并发漏洞”。

  • 传统的线程并发可能会导致数据竞争,不过这一漏洞难以稳定复现,因此也难以被利用。但在可信执行环境中所面临的攻击者具有系统权限,TA能够任意地进行线程调动、中断处理、异常处理,其强大的能力导致线程并发漏洞更容易被利用。
  • 我们尝试将攻击检测的逻辑编到可信执行环境软件内部,在软件运行过程中自我检测是否受到底层系统软件的攻击。与传统研究稍显不同的是,由于可信执行环境内部软件特点及其面临的独特安全问题,必须寻求新的办法去防止高权限系统软件形成的攻击。

3.4 应用协议安全 

针对协议安全隐私问题,包括状态延续漏洞中心化远程验证等等,我们尝试用分析工具验证分布式协议或是SGX程序是否存在问题。此外还将分布式计算、分布式协议跟可信执行环境结合,形成“分布式机密计算”这一新的研究方向。

本账号发布内容均为原创,欢迎转载,转载请注明出处。更多资讯请移步【机密计算前沿技术】服务号,欢迎交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值