Popularne tematy
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Dobrze, po 2 miesiącach solidnych wysiłków, rezygnuję.
Projekt "zrób zaufaną konfigurację Groth16 w TEE i uzyskaj zdalną atestację, że toksyczne odpady zostały zniszczone" okazał się nieudany. Podsumuję poniżej.
Wspominam o tym tylko dlatego, że nie chcę, aby ktokolwiek zniechęcał się do pracy nad tym, myśląc, że wciąż nad tym pracuję, podczas gdy w rzeczywistości już nie.
TLDR:
- Jedynym TEE, które obecnie może to zrobić (AFAICT), jest TDX, ponieważ ma wymagane gwarancje szyfrowanej pamięci RAM. (Pamiętaj, że w tym projekcie nie wystarczy wiedzieć, że poprawny kod działa w TEE, musisz RÓWNIEŻ wiedzieć, że fizyczny atakujący przy maszynie nie może zrzucić pamięci RAM podczas ceremonii i poznać toksyczne odpady).
- Zdalne poświadczenie TDX podpisuje „MRTD”, który jest hashem, który zmieni się, jeśli jakikolwiek bajt obrazu VM się zmieni.
- Aby przyszły audytor/użytkownik mógł zweryfikować, że TDX działał z poprawnym kodem podczas zaufanej konfiguracji (szczególnie w jakikolwiek zautomatyzowany sposób), muszą być w stanie odtworzyć ten hash MRTD, co z kolei wymaga odbudowy obrazu VM z czytelnego dla człowieka kodu źródłowego w sposób bit po bicie.
- Nie udało mi się stworzyć obrazu GCP w sposób bit po bicie. (Nawet super minimalny, który po prostu uruchamia się i otwiera port SSH i dosłownie nic więcej).
Nie jestem pewien, czy to możliwe z istniejącymi narzędziami dostępnymi na rynku. Może to wymagać dostosowania istniejących narzędzi.
StageX był niezwykle pomocny, więc polecam korzystać z niego tak często, jak to możliwe. Problemy pojawiają się, gdy potrzebujesz czegokolwiek, co nie jest obecnie dostępne przez warstwę StageX. Wtedy musisz zbudować wszystko, czego potrzebujesz, z kodu źródłowego (ponieważ pobieranie tarballi bez ich samodzielnego budowania stanowi ryzyko w łańcuchu dostaw).
I odkryłem, że budowanie/kompilowanie _większości_ oprogramowania z kodu źródłowego w sposób bit po bicie powtarzalny jest niezwykle czasochłonne, trudne i delikatne. W wielu przypadkach nie byłem w stanie tego zrobić *wcale*.
Zalecam, aby wszelkie budowy oprogramowania, które potrzebujesz, przeprowadzać w kontenerze Docker, który składa się wyłącznie z warstw StageX przypiętych do hasha. Ta technika przyniosła mi najwięcej korzyści.
3,26K
Najlepsze
Ranking
Ulubione