0

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

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

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

4

1 回答 1

0

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

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

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

于 2019-01-18T09:51:56.430 回答