Oprogramowanie Coldcard 5.6.1 wymusza na użytkownikach wprowadzenie entropii przy każdym nowym kluczu po exploicie na $100M

Coinkite, firma stojąca za Coldcard, wysłała aktualizację oprogramowania, która nie wygeneruje nowego nasiona portfela, dopóki właściciel nie dostarczy losowości ręcznie.
Oznacza to co najmniej 50 rzutów kostką, 128 rzutów monetą lub 65 naciśnięć klawiszy w określonym czasie, trzy tygodnie po tym, jak wada w jego generatorze liczb losowych otworzyła fundusze klientów dla atakujących.
Dwie linie urządzeń Coldcard działają na oddzielnych ścieżkach oprogramowania, więc wydanie ma dwa numery, 5.6.1 dla Mk4 i Mk5 oraz 1.5.1Q dla Q, większego modelu z klawiaturą i skanowaniem QR.
Sprawdzenie rozruchu celuje w wadę
Coinkite stwierdziło, że dane wejściowe są dodawane do losowości urządzenia z STM32 TRNG oraz obu elementów zabezpieczających.
Coldcard został zaprojektowany tak, aby czerpać entropię nasion tylko z jego sprzętowego generatora, ale Coinkite zidentyfikowało awarię jako błąd budowy i linkowania, który pozostawił ustawienie mające na celu wyłączenie ścieżki programowej bez efektu, wysyłając wywołanie liczb losowych do PRNG Yasmarang MicroPythona, które weszło na ścieżkę nasion w marcu 2021 roku.
Dotknięte nasiona mają około 72 bity entropii zamiast oczekiwanych 128 bitów po tym, jak 594,5 BTC zostało skradzionych z 500 adresów 30 lipca.
Oprogramowanie 5.6.1 teraz weryfikuje przy rozruchu, że wywołanie liczb losowych dociera do zamierzonej ścieżki sprzętowej, zatrzymując urządzenie, jeśli to się nie uda. Coinkite zastąpiło Yasmarang SHA-256 Hash_DRBG, określonym w NIST SP 800-90A, i nasiona go przy uruchomieniu pełnym 256-bitowym skrótem z obu elementów zabezpieczających, które wcześniejsze oprogramowanie skracało do 32 bitów.
Mieszanie klawiszy opiera się na projekcie RNG Petera Todda, haszując czas naciśnięcia klawiatury z rozdzielczością cyklu CPU. Pierwsze naciśnięcie ustawia punkt odniesienia, a każda z 64 przerw, które następują, jest przypisana do dwóch bitów entropii.
Stare nasiona wciąż wymagają migracji
„Zainstalowanie tej aktualizacji nie czyni istniejącego podatnego nasiona bezpiecznym,” napisał Coinkite, kierując każdego, którego nasiono mogło zostać wygenerowane na dotkniętym oprogramowaniu między 2021 a lipcem 2026, do stworzenia zamiennika i przeniesienia swojego Bitcoina (BTC). Mk2 i Mk3 nie są objęte tą wersją, a ich minimalna wersja stała się 4.2.0.
Sk compromised USB host mógł przepisać zaplanowaną transakcję po jej zatwierdzeniu przez właściciela, więc podpis obejmował różne wyjścia. Urządzenie teraz ponownie sprawdza te bajty przed podpisaniem i zatrzymuje się z ostrzeżeniem „Transakcja zmodyfikowana”.
Nowa strona Status Bezpieczeństwa Coinkite wymienia cztery niezależne recenzje, w tym test rzeczywistego urządzenia, który zaobserwował osiem odczytów sprzętowego RNG dla żądania nasiona o długości 32 bajtów oraz odbudowę odpowiadającą każdemu bajtowi podpisanego oprogramowania.
Firma zauważyła, że kontrole są „niepełnym audytem każdego binarnego pliku oprogramowania.” Jak donosi CryptoPotato, potwierdzone straty przekroczyły 100 milionów dolarów, a Galaxy Research policzyło 1,596 BTC z około 7,300 adresów, a podejrzewana czwarta fala zmiotła prawie 449 BTC 3 sierpnia.
Źródło: CryptoPotato