我研究并发现飞地是用私钥签名的,当时在飞地发射时,它将使用随飞地库提供的公钥进行验证。
我的问题是如何在公共密钥出现时信任飞地二进制文件。
在这两者之间,有人可以更改代码并使用他的私钥再次签名,并将他的公钥附加到SIGSTRUCT。
答案 0 :(得分:0)
你是对的。安全区代码可以轻松地进行操作,攻击者可以创建新的签名。执行平台将无法识别此篡改,因为签名对于(篡改)代码是正确的。该平台可以包含一些允许的公钥列表,但是在新交所的威胁模型中,该平台还是对抗性的。
使用远程证明解决了该问题。 受信任的硬件和软件会为创建的安全区生成一个报价,其中包含其测量值(MRENCLAVE)以及其签名者的哈希(MRSIGNER)。有了这些值,远程验证者就可以确保安全区已正确创建,并且未被篡改。
因此,在(成功的)远程证明之前,不应信任(具有秘密)飞地。