Skip to content
LIVE: Agenci AI
czwartek 27 sierpnia, 20:00 - bezpłatnie, prezent dla obecnych
Zapisz się
LIVE: Agenci AI, 27.08
Zapisz się
logo Devstock
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI i IT
    • Pierwsza Misja AI (Podstawy)
    • Automatyzacje z n8n 2.0
    • Frontend Master 2026
  • Blog
  • Kontakt
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI i IT
    • Pierwsza Misja AI (Podstawy)
    • Automatyzacje z n8n 2.0
    • Frontend Master 2026
  • Blog
  • Kontakt
Live Agenci AI, czwartek 27 sierpnia o 20:00, udział bezpłatny - zapisz się
Bezpieczeństwo i Jakość

Portfel sprzętowy Coldcard: pięć lat słabej losowości

  • 03 sie, 2026
  • Komentarze 0
Portfel sprzetowy z peknietym ekranem i odslonietym wnetrzem na spekanym podlozu, w tle rozlamana moneta bitcoina

Portfel sprzętowy kupuje się po to, żeby seed, czyli fraza odtwarzająca portfel, powstał wewnątrz urządzenia i z zaufanego źródła losowości. Przez pięć lat w podatnych wersjach Coldcarda seed powstawał na generatorze losowości, który miał być wyłączony. Zamiast układu sprzętowego pracował programowy zamiennik odziedziczony po bibliotece MicroPythona, wyliczany z numeru seryjnego układu i stanu zegara. Urządzenie zachowywało się normalnie, kopia zapasowa wyglądała normalnie, wbudowana kontrola poprawności przechodziła bez zastrzeżeń. 30 lipca zaczęto opróżniać adresy, do których od lat nikt nie zaglądał. Kanadyjski producent Coinkite przyznał się do błędu i sam podejrzewa, co go znalazło: model AI przepuszczony przez publicznie dostępny kod.

Jedna linijka w konfiguracji odcięła sprzętowy generator

W 2021 roku Coinkite przenosiło oprogramowanie układowe na bibliotekę libsecp256k1 z Bitcoin Core i przy okazji generowanie seeda przeszło z jednej funkcji losującej na drugą. W kodzie istniały dwie funkcje o identycznej sygnaturze: właściwa sięgała po sprzętowy generator liczb losowych w mikrokontrolerze, zapasowa była odziedziczona po MicroPythonie. Ścieżka wywołania rozwiązała się do tej zapasowej.

Zapobiec temu miał strażnik w kodzie, który przy złej konfiguracji zatrzymuje kompilację. Sprawdzał jednak samą obecność ustawienia, a nie jego wartość. Ustawienie było zdefiniowane i miało wartość zero, czyli “generator sprzętowy wyłączony”, więc warunek strażnika wypadł fałszywie, ostrzeżenie się nie odpaliło, a kompilacja przeszła w ciszy. To zamek, który sprawdza, czy klucz tkwi w otworze, ale nie pyta, czy to właściwy klucz.

Zespół inżynierii bezpieczeństwa firmy Block, który niezależnie rozłożył ten błąd na czynniki pierwsze, datuje zmianę na 1 marca 2021. Do wydanego oprogramowania trafiła szesnaście dni później. Od tamtej pory seedy w podatnych wersjach powstawały na zapasowym generatorze.

Szacunki producenta: około czterdziestu bitów

Dwunastowyrazowy seed ma dawać sto dwadzieścia osiem bitów losowości. Coinkite szacuje, że w modelach Mk2 i Mk3 zostało z tego około czterdziestu, a w Mk4, Mk5 i Q około siedemdziesięciu dwóch. Czterdzieści bitów to mniej więcej bilion kombinacji.

Odpowiada za to generator o nazwie Yasmarang, odziedziczony po MicroPythonie i nigdy nieprojektowany do zadań kryptograficznych. Startuje od trzech wartości odczytanych z układu: numeru seryjnego mikrokontrolera połączonego ze stanem licznika systemowego oraz dwóch rejestrów zegara czasu rzeczywistego. Numer seryjny służy do odróżniania układów od siebie, nie do bycia sekretem. Po starcie generator nie dobiera już nowej losowości, więc każda kolejna wartość jest przewidywalnym następstwem poprzedniej. Dosiew z bezpiecznego elementu miał to ratować, ale do funkcji dosiewającej trafiały tylko cztery bajty skrótu, a reszta stanu zostawała nietknięta.

Ustalenie albo wystarczające zawężenie numeru urządzenia, stanu liczników i historii wywołań pozwalało odtworzyć strumień generatora poza urządzeniem, a kandydatów weryfikować przez adresy, które i tak widać w łańcuchu bloków. Nikt nie musiał dotykać żadnego urządzenia. Wbudowana kontrola sensowności seeda też nie miała szans, bo wyłapywała wyłącznie awarie skrajne, a zapasowy generator przechodziła bez problemu.

Analitycy Galaxy Research naliczyli trzy fale opróżniania adresów. W pierwszej, 30 lipca, w 41 minut zniknęło 1082,65 BTC z 1196 adresów. Łącznie było to 1367,05 BTC z 4585 adresów, czyli około 88,6 mln dolarów według wyceny z 1 sierpnia. Sami zastrzegają przy tym, że o wspólnym sprawcy można mówić najwyżej przy dwóch pierwszych falach.

Nowa wersja oprogramowania nie naprawia starego seeda

Aktualizacja oprogramowania nie naprawia seeda, który już istnieje. Nowa wersja losuje poprawnie od momentu wgrania, ale seed utworzony wcześniej pozostaje taki, jaki był, niezależnie od urządzenia, które go odczyta. Producent zaleca więc wygenerowanie nowego seeda na poprawionym oprogramowaniu, zweryfikowanie kopii zapasowej i dopiero potem przeniesienie środków.

Ostrzeżenie producenta wymienia trzy grupy urządzeń. Podatne są Mk2 i Mk3 z oprogramowaniem od 4.0.1 do 4.1.9 włącznie. W standardowym kanale są to też Mk4 i Mk5 przed 5.6.0 oraz Q przed 1.5.0Q, a osobno wymieniony jest kanał Edge, z własnymi numerami wydań. Tę listę warto przeczytać uważnie, bo część wczesnych relacji ogłosiła, że nowsze modele są poza sprawą, a producent pisze coś przeciwnego. Poza listą zostały tylko TAPSIGNER, OPENDIME i SATSCARD, które stoją na innej bazie kodu.

Poprawki wyszły 31 lipca: w kanale standardowym wydanie 4.2.0 dla Mk3, 5.6.0 dla Mk4 i Mk5 oraz 1.5.0Q dla modelu Q. Producent opisuje też dwie sytuacje, w których ekspozycja jest mniejsza. Pierwsza to co najmniej pięćdziesiąt niezależnych, prywatnych rzutów uczciwą kostką dołożonych przy tworzeniu seeda. Druga to mocne hasło BIP-39 trzymane osobno od zapisanej kopii.

Pierwsza Misja AI · Kodożercy

AI bez technikaliów, z kursem i certyfikatem

Pierwsza Misja AI to kurs Kodożerców dla absolutnie początkujących. Sci-fi fabuła, gamifikacja, praktyczne ćwiczenia na żywym modelu i certyfikat na koniec.

Zacznij Pierwszą Misję →
Pierwsza Misja AI - Kodożercy

Coinkite podejrzewa, że błąd znalazł model

Kilka tygodni przed pierwszą falą Coinkite przepuściło własny kod przez, jak to ujęło, jeden z najlepszych dostępnych modeli. Według firmy model nie znalazł ani tego błędu, ani niczego poważnego.

Właśnie na tym producent opiera swoją hipotezę: zakłada, że ktoś przepuścił wcześniejsze wersje oprogramowania przez model AI i mógł tak trafić na błąd, który przez pięć lat pozostawał niezauważony. Firma podsumowała to zdaniem, że atakujący i obrońcy mają dziś te same narzędzia, tylko że jej samej to nie pomogło.

Trzeba od razu powiedzieć, czym to jest, a czym nie. To hipoteza producenta, nie ustalenie śledztwa. Nikt nie przedstawił dowodu, w jaki sposób luka została odnaleziona, i warto trzymać to osobno od faktów technicznych, które potwierdził niezależnie zespół Blocka.

Sama hipoteza pada w momencie, w którym podobne wątki wracają w innych miejscach. Anthropic opisało niedawno, jak jego modele zostały użyte w atakach na prawdziwe firmy. Projekty otwartoźródłowe zaczęły z kolei porządkować własne zasady, czego przykładem jest polityka GCC wobec kodu pisanego przez modele. Żadna z tych spraw nie potwierdza wersji Coinkite. Pokazują natomiast, że pytanie o to, kto dziś czyta cudzy otwarty kod, przestało być teoretyczne.

Pytania i odpowiedzi

Czy portfele sprzętowe innych producentów mają ten sam problem?

Nie znaleźliśmy doniesień o analogicznym błędzie u innego producenta. Warto natomiast oddzielić tę konkretną wpadkę od tego, co ją umożliwiło. Nie zawiodła kryptografia ani konstrukcja urządzenia. Jednym z elementów błędu była konfiguracja budowania oprogramowania, czyli warstwa, o której przy portfelach mówi się najrzadziej.

Czy przeniesienie środków na inne urządzenie rozwiązuje sprawę?

Nie, jeżeli w nowym urządzeniu wpisze się stary seed. Fraza odtwarzająca portfel nie należy do konkretnego pudełka. Osłabiony seed pozostaje osłabiony niezależnie od tego, jaki sprzęt go odczyta. Producent zaleca dlatego wygenerowanie nowego seeda, a nie samą zmianę urządzenia czy wgranie poprawki.

Podsumowanie

Podatne wersje Coldcarda od marca 2021 tworzyły seedy przy pomocy programowego generatora losowości zamiast sprzętowego. Strażnik w kodzie sprawdzał obecność ustawienia zamiast jego wartości, więc kompilacja przeszła bez ostrzeżenia. Coinkite szacuje efektywną losowość na około czterdzieści bitów w modelach Mk2 i Mk3. Dla Mk4, Mk5 i Q szacuje około siedemdziesięciu dwóch bitów, wobec stu dwudziestu ośmiu zakładanych. Strumienie generatora dało się dzięki temu odtwarzać poza urządzeniem, a kandydatów weryfikować przez publiczne adresy. Wbudowana kontrola poprawności tego nie wykrywała. Galaxy Research naliczyło trzy fale opróżniania adresów, w sumie 1367,05 BTC z 4585 adresów. To około 88,6 mln dolarów według wyceny z 1 sierpnia. Aktualizacja oprogramowania nie naprawia seeda utworzonego wcześniej. Producent podejrzewa, że lukę wskazał model AI przepuszczony przez publiczny kod, choć dowodu na to nie ma. Jego własny audyt z użyciem modelu kilka tygodni wcześniej niczego nie znalazł.

Newsletter · DevstockAcademy & Kodożercy

Bądź na bieżąco ze światem IT, AI i automatyzacji

Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.


Udostępnij na:
Mateusz Wojdalski

Specjalista SEO i content marketingu w Devstock. Zajmuję się strategią treści, automatyzacją procesów marketingowych i wdrożeniami AI w codziennej pracy. Badam nowe narzędzia, adaptuję je do realnych zadań i piszę o tym, co faktycznie działa.

Dziesięć formalizacji OpenAI. Co sprawdza Lean
Qwen3.8-Max: 2,4 biliona parametrów i wagi w zapowiedzi
Live Agenci AI, czwartek 27 sierpnia o 20:00, udział bezpłatny - zapisz się
Banner reklamowy Frontend Master 2026

Najnowsze wpisy

Thumb
Obserwowalność w IT – jak zwiększyć kontrolę
14 sie, 2026
Thumb
Cursor AI sprzedany za akcje. Cenę ustalono
18 sie, 2026
Thumb
FT: OpenAI rozwiązało zespół od najgorszych ryzyk
18 sie, 2026
Thumb
Reklamy w ChatGPT trafią też do płatnego
18 sie, 2026
Thumb
Fałszywy instytut zbudowany pod pozycjonowanie w AI
18 sie, 2026
Thumb
Prowizja App Store pod presją. Widać to
18 sie, 2026
Live Agenci AI, czwartek 27 sierpnia o 20:00, udział bezpłatny - zapisz się

Kategorie

  • Aktualności i Wydarzenia (83)
  • Bezpieczeństwo i Jakość (138)
  • Branża IT i Nowe Technologie (228)
  • Design i User Experience (4)
  • Narzędzia i Automatyzacja (131)
  • Programowanie i Technologie Webowe (80)
  • Rozwój kariery i Edukacja (33)

Tagi

5G AI Architektura Cyberbezpieczeństwo Feedback Frontend Git IoT JavaScript Motywacja Nauka efektywna Optymalizacja i wydajność Programowanie React.JS Rozwój osobisty WebDevelopment
Logo FitBody Center Warszawa

Odkryj zabiegi Endermologii LPG Infinity w FitBody Center Warszawa

Maszyna zabiegowa - endermologia lpg infinity
banner-reklamowy-frontend-master
Live Agenci AI, czwartek 27 sierpnia o 20:00, udział bezpłatny - zapisz się
Group-5638-1

Devstock – Akademia programowania z gwarancją pracy

🏠 ul. Bronowska 5a,
03-995 Warszawa
📞 +48 517 313 589
✉️ contact@devstockacademy.pl

Linki

  • Poznaj firmę Devstock
  • Wejdź do społeczności Devstock
  • Polityka prywatności
  • Regulamin

FitBody Center

Strona

  • Strona główna
  • Kontakt

Newsletter

Bądź na bieżąco, otrzymuj darmową wiedzę i poznaj nas lepiej!


Icon-facebook Icon-linkedin2 Icon-instagram Icon-youtube Tiktok
Copyright 2026 Devstock. Wszelkie prawa zastrzeżone
Devstock AcademyDevstock Academy
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in