将可信执行环境与区块链相结合

研究人员探索了应对这些挑战的密码解决方案,如各种零知识证明系统和安全多方计算。然而,这些方法具有显著的性能开销,并且仅适用于计算相对简单的有限用例。一个更具性能和通用性的选项是使用可信执行环境(TEE)。TEE提供了一个完全隔离的环境,可防止其他软件应用程序、操作系统和主机所有者篡改甚至了解在TEE中运行的应用程序的状态。例如,Intel Software Guard eXtensions(SGX)提供了一个TEE的实现。Keystone enclave项目旨在提供开放源码的TEE设计。推动我们系统设计的一个关键观察是,TEE和区块链具有互补性。一方面,区块链可以保证其状态的强可用性和持久性,而TEE不能保证可用性(因为主机可以自行终止TEE),也不能可靠地访问网络或持久性存储。另一方面,区块链的计算能力非常有限,必须公开其整个状态以供公开验证,而TEE产生的开销与本地计算相比最小,并通过远程认证提供机密状态的可验证计算。因此,构建能够同时利用两者的混合协议是很有吸引力的。
挑战
然而,将TEE与区块链协调起来是一项挑战。当两者天真地粘在一起时,就会出现微妙的陷阱。其中一个陷阱来自TEE的一个基本限制:恶意主机可以任意操纵它们的调度和输入输出。因此,TEE可能会在任何时候终止,从而造成失去和/或冲突状态的风险和挑战。TEE中所谓的可信计时器(特别是SGX)实际上只能提供“不早于”的时间概念,这一事实加剧了这个问题,因为恶意主机也可以延迟时钟读取(通过总线传输的消息)。因此,尽管使用区块链检查TEE的状态很有诱惑力,但缺乏可靠的计时器使得TEE很难确定区块链的最新视图。然而,幼稚的状态检查点协议会引发倒带攻击。另一个有趣而危险的后果是,看似无关的攻击向量开始发挥作用。例如,受TEE保护的内容的机密性可能会受到针对区块链的完整性攻击的危害:e。G攻击者可以通过提供伪造区块链来倒带执行并任意发送多个查询,从而绕过TEE强制执行的隐私预算。其他挑战包括容忍受损的TEE、在TEE崩溃时支持健壮且一致的故障切换,以及ENCLEAVE的密钥管理。

猜你喜欢

转载自blog.csdn.net/mlynb/article/details/121393776
今日推荐