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.
Dobra, po 2 miesiącach solidnego wysiłku wystukuję.
Projekt "zaufaj konfiguracji Groth16 w TEE i uzyskaj zdalne zaświadczenie, że toksyczne odpady zostały zniszczone" zakończył się niepowodzeniem. Czy TLDR poniżej.
Wspominam o tym tylko dlatego, że nie chcę, aby ktokolwiek był odwodzony od pracy nad tym, ponieważ myślą, że nadal nad tym pracuję, podczas gdy w rzeczywistości tak nie jest.
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 jest to możliwe przy istniejących gotowych narzędziach. Może to wymagać dostosowania istniejącego oprzyrządowania.
StageX był bardzo pomocny, więc polecam korzystanie z niego tak często, jak to możliwe. Problemy pojawiają się, gdy potrzebujesz czegoś, co nie jest obecnie dostępne za pośrednictwem warstwy StageX. Do tego czasu musisz zbudować wszystko, czego potrzebujesz, ze źródeł (ponieważ pobieranie archiwów tar bez samodzielnego ich budowania jest ryzykiem w łańcuchu dostaw).
Odkryłem też, że budowanie/kompilowanie _większości_ oprogramowania ze źródeł w sposób powtarzalny bit po fragmencie jest niezwykle czasochłonne, trudne i kruche. I 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,78K
Najlepsze
Ranking
Ulubione