好的,經過兩個月的努力,我決定放棄。 “在 TEE 中進行 Groth16 可信設置並獲得一個遠程證明,證明有毒廢物已被銷毀”的項目未能成功。下面會簡要說明。 提到這裡只是因為我不想讓任何人因為認為我仍在進行這項工作而不敢參與,事實上我已經不再進行了。
簡而言之: - 目前唯一能做到這一點的 TEE(據我所知)是 TDX,因為它具備所需的加密 RAM 保證。(請記住,對於這個項目,僅僅知道正確的代碼在 TEE 中運行是不夠的,您還需要知道物理攻擊者在機器上無法在儀式期間轉儲 RAM 並了解有毒廢物)。 - TDX 遠程驗證簽署了 "MRTD",這是一個哈希值,如果 VM 映像的任何字節發生變化,該哈希值也會改變。 - 因此,未來的審計員/用戶要驗證 TDX 在受信設置期間運行了正確的代碼(特別是在任何自動化的情況下),他們需要能夠重現該 MRTD 哈希,這反過來又需要從人類可讀的源代碼以逐位可重現的方式重建 VM 映像。 - 我無法以逐位可重現的方式創建 GCP 映像。(即使是一個超簡單的映像,只需啟動並打開 SSH 端口,實際上什麼都不做)。
我不確定這是否可以使用現有的現成工具來實現。這可能需要調整現有的工具。 StageX 非常有幫助,因此我建議盡可能多地使用它。當你需要任何目前不通過 StageX 層可用的東西時,問題就來了。因為那時你需要從源碼構建你所需的任何東西(因為下載 tarball 而不自己構建是供應鏈風險)。 而且我發現以逐位可重現的方式從源碼構建/編譯 _大多數_ 軟體是極其耗時、困難且脆弱的。在許多情況下,我甚至無法做到 *任何*。
我建議在僅包含哈希固定的 StageX 層的 Docker 容器內進行任何所需的軟體構建。這種技術給了我最大的效益。
3.3K