【问题标题】:How intel SGX verify the enclave library before launching?英特尔 SGX 如何在启动前验证 enclave 库?
【发布时间】:2018-04-03 16:19:03
【问题描述】:

我研究并发现 enclave 使用私钥签名,并且在 enclave 启动时将使用 enclave 库随附的公钥对其进行验证。

我的问题是如何信任带有公钥的 enclave 二进制文件。

在这两者之间,有人可以更改代码并用他的私钥再次签名,并将他的公钥附加到 SIGSTRUCT。

【问题讨论】:

    标签: sgx enclave


    【解决方案1】:

    你是对的。 Enclave 代码可以很容易地被操纵,并且攻击者可以创建一个新的签名。执行平台不会识别这种篡改,因为签名对于(被篡改的)代码是正确的。该平台可能有一些允许的公钥列表,但在 SGX 的威胁模型中,该平台无论如何都是对抗性的。

    使用远程证明解决了该问题。 受信任的硬件和软件为创建的 enclave 生成​​一个报价,其中包含其测量值 (MRENCLAVE) 及其签名者的哈希 (MRSIGNER)。使用这些值,远程验证者可以确保 enclave 被正确创建并且未被篡改。

    因此,在(成功)远程证明之前,不应信任飞地(带有秘密)。

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 2017-02-28
      • 2018-11-28
      • 2016-10-22
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      相关资源
      最近更新 更多