在同一系统上确定 SGX 飞地 运行
Determine SGX enclaves running on same system
我有两个应用程序 A1 和 A2,它们都创建了自己的飞地 E1 和 E2。
第三个应用程序 A3 连接到 A1 和 A2。 A3 是否可以确定两个飞地 E1 和 E2 是否实际上 运行 在同一系统上?
权威机构提供的签名身份,它在分发之前对 enclave 进行签名。此值称为 MRSIGNER,并且对于使用相同权限签名的所有 enclave 都是相同的。因此,在同一个开发公司中,所有飞地都应具有相同的 MRSIGNER 值,如果它们使用相同的签名身份进行签名的话。
来自开发环境中两个不同 enclave 的 MRSIGNER 值可用于检查两个 enclave 是否属于同一环境。
我不同意 Surenthar 的回答。如果 E1 和 E2 由相同的签名身份签名,则 E1 和 E2 的 MRSIGNER 将始终相同。因为 MRSIGNER 是该身份的哈希值。
如果 A3 也在同一平台上执行,它可以简单地生成飞地 E3 并使用本地证明,这只会对同一平台上的飞地成功。
如果您可以控制 E1 和 E2,那么他们可以使用本地认证来确保两者 运行 在同一平台上。然后 A3 将不得不使用远程证明来确保它可以信任 E1(或 E2)的声明。
我有两个应用程序 A1 和 A2,它们都创建了自己的飞地 E1 和 E2。 第三个应用程序 A3 连接到 A1 和 A2。 A3 是否可以确定两个飞地 E1 和 E2 是否实际上 运行 在同一系统上?
权威机构提供的签名身份,它在分发之前对 enclave 进行签名。此值称为 MRSIGNER,并且对于使用相同权限签名的所有 enclave 都是相同的。因此,在同一个开发公司中,所有飞地都应具有相同的 MRSIGNER 值,如果它们使用相同的签名身份进行签名的话。
来自开发环境中两个不同 enclave 的 MRSIGNER 值可用于检查两个 enclave 是否属于同一环境。
我不同意 Surenthar 的回答。如果 E1 和 E2 由相同的签名身份签名,则 E1 和 E2 的 MRSIGNER 将始终相同。因为 MRSIGNER 是该身份的哈希值。
如果 A3 也在同一平台上执行,它可以简单地生成飞地 E3 并使用本地证明,这只会对同一平台上的飞地成功。
如果您可以控制 E1 和 E2,那么他们可以使用本地认证来确保两者 运行 在同一平台上。然后 A3 将不得不使用远程证明来确保它可以信任 E1(或 E2)的声明。