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