Giving State to the Stateless: Augmenting Trustworthy Computation with Ledgers

2019-03-28 206 Words 论文 S g x

Giving State to the Stateless: Augmenting Trustworthy Computation with Ledgers

Gabriel Kaptchuk, Matthew Green, Ian Miers

Network and Distributed Systems Security (NDSS) Symposium 2019

一、Introduction

该篇文章做了一次尝试,将可信计算平台(如 Intel SGX, ARM TrustZone 等)与区块链(如 BTC, ETH) 结合,期望实现无状态的可信计算。背景如下:

  1. 中心化和去中心化网络已经广泛使用,去中心化网络已被证明可以有更长的寿命和更高的可靠性。
  2. 有状态的可信计算环境可能会被攻击(需要外部存储非易失数据、以及监控网络流量等)
  3. 可信计算环境的硬件资源有限,特别是非易失存储资源的有限。

解决办法: 将有状态的可信计算环境(TEE)变更为无状态的TEE。使用类似传统 http 的模式提供计算服务。同时引入分布式账单(Ledger)来记录状态。文章给出了一个Host、TEE 和 Ledger 之间的三方协议,来实现该方案。

对于通常的服务,可以用如下公式形式化描述:P是给定程序,对于输入Ii,当前状态Si和随机代价ri,产生确定输出Oi和新的状态Si+1。

$$ P(I_i,S_i,r_i) \rightarrow O_i,S_i+1 $$

文章对上述模型做了一下修正,以提高安全性:

  1. Attempt 1: 加密程序状态,无法抵御重放攻击
  2. Attempt 2: 使用 Ledger 存储状态信息,也无法抵御回放攻击
  3. Attempt 3: 使用 Ledger 绑定程序的输入。通过向 Ledger 中提交输入,可以解决上述攻击。
  4. Attempt 4: 随机化。为了防止恶意Host 复制程序执行,采用伪随机数发生器,产生随机代价???
  5. Extension 1: 减少 Ledger 带宽 …
  6. Extension 2: 增加公共输入输出
  7. Extension 3: 指定程序

二、模型

文章给出模型的三个参与者:

  1. The Ledger(L):对于给定提交可以给出证明 $\sigma_i$
  2. The Enclave($\epsilon$):无状态可信计算环境
  3. The host application(H): 可能是恶意的。

最终基本模型为:

$$ P(I_i, S_i; r _i) → (O_i, Pub_i, S_i+1)$$

多出一个 $Pub_i$ 为公共消息。(在 Extension 2 中定义)

2.1 Ledger 借口定义

对于 Ledger 需要有一个抗碰撞 Hash 函数 $H_L$,并维护一个 Hash 链。并定义如下两个函数:

  1. Ledger.Post(DATA,CID) -> (POST,$\sigma$)
  2. Ledger.Verify(post, σ) → {0, 1}

2.2 Enclave-Ledger 交互

Enclave 和 Ledger 定义三个接口:

2.1 初始化:Setup($1^\lambda$) → (K,pp)

对于某一个安全参数 $\lambda$ 产生一个存在 Encalve 中的长期密钥 K 和一个提供给 host 和 ledger 的参数 pp。

2.2 ExecuteApplication(pp,P)

这个函数运行于 Host 上。每次用户首先产生输入,并将其 Commit 到 Ledger 中去,而后通过 pp 指定 Enclave,通过 P 制定 Encalve 中执行程序。

2.3 $ ExecuteEnclave_{K,pp}((P, i, S_i, I_i, r_i, σ_i, post_i)) → (S_i+1 , O_i , Pub_i ) $

该程序实际运行于 Enclave 中。验证 i,SI与σi, posti 对应后,执行具体程序 P。

三、具体模型

/images/big4-41.png

/images/big4-42.png

四、应用与组建实现

文中举出了几个具体的协议应用场景,比如 Private Smart Contracts 等。另外还提出了构建 Enclave 和 Ledger 的方案(SGX、Bitcoin),以及对应的 overhead 估计。这里不再赘述。

五、结论

文章的核心贡献在于提出了一个三方交互协议。将状态信息外包给分布式记账、而可信计算平台本身无状态,来实现安全的、有状态的、多步骤的可信计算实现。