我对英特尔 SGX 中的飞地测量有疑问。从 SignTool源代码(以及手册中的高级描述)来看,似乎测量涉及加载 enclave 文件(ELF 或 PE)。但是加载的结果在不同的平台上是不同的,对吧?我想知道我是否可以从飞地二进制文件中重现一致的飞地测量。
特别是,我正在考虑以下场景:假设我想将一个分enclave.signed.so
发给我的用户,并且我只想为来自该特定飞地的请求提供服务。我想我不能简单地将我平台上的本地测量与用户(可以包含在他们的证明中)进行比较。我应该怎么做?
本质上,问题归结为如何以密码方式链接二进制文件和测量值?似乎有一个悖论:假设我有 enclave 二进制文件,我可以获得它的测量值的唯一方法是加载它。但是,加载过程不受信任(由操作系统完成)!我如何确保我得到的测量值确实是针对那个特定的二进制文件?我一定误解了什么,因为这似乎对新交所的整个有效性至关重要。请纠正我。
谢谢!