好的,经过两个月的努力,我决定放弃。 “在TEE中进行Groth16可信设置并获得远程证明以确认有毒废物已被销毁”的项目未能成功。下面会有简要总结。 提到这一点只是因为我不想让任何人因为认为我仍在进行这个项目而不愿意继续努力,实际上我已经不再参与了。
简而言之: - 目前唯一能够做到这一点的 TEE(据我所知)是 TDX,因为它具备所需的加密 RAM 保证。(请记住,对于这个项目,仅仅知道 TEE 中运行的是正确的代码是不够的,您还需要知道物理攻击者在机器上无法在仪式期间转储 RAM 并了解有毒废物)。 - TDX 远程证明对 “MRTD” 进行签名,这是一个哈希值,如果 VM 镜像的任何字节发生变化,它也会改变。 - 因此,为了让未来的审计员/用户验证 TDX 在受信任的设置期间是否运行了正确的代码(尤其是在任何自动化的方式下),他们需要能够重现该 MRTD 哈希,而这又需要以逐位可重现的方式从人类可读的源代码重建 VM 镜像。 - 我无法以逐位可重现的方式创建 GCP 镜像。(即使是一个超级最小的镜像,仅仅启动并打开 SSH 端口,实际上什么也不做)。
我不确定现有的现成工具是否可以做到这一点。可能需要对现有工具进行调整。 StageX 非常有帮助,所以我建议尽可能多地使用它。当你需要任何当前通过 StageX 层无法获得的东西时,问题就来了。因为那时你需要从源代码构建你所需的任何东西(因为下载 tarball 而不自己构建是一个供应链风险)。 而且我发现以逐位可重现的方式从源代码构建/编译 _大多数_ 软件是极其耗时、困难且脆弱的。在许多情况下,我甚至无法做到这一点 *完全*。
我建议在一个仅由哈希固定的 StageX 层组成的 Docker 容器内构建任何所需的软件。这种技术给了我最大的收益。
3.32K