问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【机密计算顶会解读】05:Nimble——机密云服务的回滚保护

创作时间:
作者:
@小白创作中心

【机密计算顶会解读】05:Nimble——机密云服务的回滚保护

引用
CSDN
1.
https://m.blog.csdn.net/WhiteLab_Y/article/details/145926670

导读:本文介绍Nimble,一种能够为运行在机密云服务中的应用提供回滚攻击检测的工具,以保证TEE能够获取最新的状态。

原文链接:Nimble: Rollback Protection for Confidential Cloud Services | USENIX
Nimble: Rollback Protection for Confidential Cloud Services(OSDI‘23)

一、研究背景

云服务提供商通过支持可信执行环境(TEE)的机密虚拟机,向用户提供机密计算服务。TEE能够保护运行中的代码和数据免受外部攻击,但无法保证应用状态的连续性——当TEE发生崩溃或是被恶意重启,其易失性状态丢失,需要从持久存储中恢复丢失的状态,攻击者能够中断该恢复请求并使其返回旧状态。

回滚攻击能造成巨大的危害。以Signal安全值恢复服务为例,用户使用PIN从服务中获取密钥和秘密数据,一个恶意的云服务提供商可以在尝试提供PIN的同时,通过多次停止服务达到暴力破解目的。

二、现有工作中的不足

2.1 在TEE中运行一个BFT协议:

由运行协议的节点保存最新数据,仅需将一小部分可信代码放入TEE中执行,该部分代码的正确性可以保证整个系统和数据的安全性。但是,现有工作尚未集成重配置协议,无法应对节点集的变化。对于云服务提供商而言,重配置协议十分重要,能够在维护和更新的过程中替换崩溃的节点或者迁移健康的节点。

2.2 在TEE中运行一个CFT协议:

如果原始的复制协议支持重配置,那么在TEE中运行一个完整的复制协议(CFT),则同样支持重配置功能。但是,该方法将显著增加TCB的复杂度和大小,对于用户审计代码并不友好。

三、Nimble:支持重配置且降低TCB的回滚攻击检测工具

Nimble的架构如下图所示。Coordinator是连接Client和Endorser的中介,为Client提供了简洁的接口(Update protocol和Read protocol),并由Endorser具体实现安全可靠的接口功能。Coordinator本身运行在TEE外部,基于满足CFT协议的Cloud Storage提供不受信任的状态机服务,该Storage会维护一个账本,用于全量存储应用状态,并以一种链式结构存储状态信息的哈希值,被称为哈希链

Endorser节点运行在TEE中,提供一个可信状态机,节点在初始化时会生成一个密钥用于证明自身身份。在处理Client请求时,Endorser会在内存中存储哈希链的尾端数据,并使用密钥对请求的结果进行签名,然后发送给Coordinator。Nimble假设一个正常的云服务提供商总能保证一定数量的Endorser节点时刻处于正常工作状态,所以Coordinator能够收集足够数量的Response以生成receipt来确保应用读取到的总是最新的状态,并能发现回滚攻击的发生。

除了安全性的保证以外,Nimble实现了对活性的保证,并且为了降低TCB的大小,Nimble将对活性的保证放到了TCB外,虽然不同Endorser节点任何时间的状态都有可能不同,但是在经过一段时间的同步后,Coordinator总能生成receipt。

为了支持重配置,当Endorser节点变化时,会在TEE针对节点变化进行额外的检查并维护一份冗余账本,以保证重配置的正常进行。

四、实验设置及结果

Nimble使用Rust语言实现,基于Rust实现的Endorser运行在SEV-SNP机密虚拟机中,除此之外,作者还使用C++实现了可以运行在SGX中的Endorser。

从下图可以看出,与其他工作相比,Nimble具有较小的TCB,并支持重配置。

下图展示了在HiBench测试中,使用Nimble的应用程序与基线相比,差别不大。

结论:Nimble为使用机密云服务的用户提供了一种高效的回溯攻击检测工具,与之前的工作相比,Nimble在支持重配置的同时,减小了TCB的大小。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号