Słabe seedy portfela – prosto wyjaśnione

Jak słabe seed'y portfeli zagrażają Bitcoinowi

Kryptografia Bitcoina może być bezpieczna, nawet jeśli portfel tworzy przewidywalny seed. Ryzyko pojawia się już przed pierwszą transakcją: jeśli ktoś odtworzy seed lub klucz prywatny, może wydać środki z innego urządzenia – nawet gdy oryginalny portfel sprzętowy pozostaje offline.

Szybka odpowiedź

Jak poprawny seed może być niebezpieczny?

12 lub 24 poprawne słowa oznaczają tylko, że fraza seed ma właściwy format. Nie dowodzą, że portfel wybrał ją z naprawdę losowego zbioru. Wadliwy generator może tworzyć poprawnie wyglądające seedy z dużo mniejszej listy, którą atakujący mogą odtworzyć.

W tych przypadkach blockchain Bitcoina i reguły podpisów działają poprawnie. Błąd pojawia się podczas generowania kluczy w portfelu, zanim blockchain zobaczy jakąkolwiek transakcję.

Blockchain kontra portfel

Blockchain weryfikuje podpisy, portfel tworzy sekret

To osobne zadania: blockchain weryfikuje transakcje, portfel tworzy i chroni klucze do ich zatwierdzania. Słaby seed może zawieść na poziomie portfela, nawet jeśli blockchain jest bezpieczny.

01

Blockchain

Przechowuje historię transakcji i akceptuje wydatki po poprawnym podpisie.

02

Portfel

Tworzy seed, generuje klucze prywatne, pokazuje adresy i podpisuje transakcje.

03

Atakujący

Można odtworzyć te same klucze na innym urządzeniu, jeśli seed był przewidywalny lub skopiowany.

Jeśli seed jest znany Atakujący może odtworzyć portfel gdzie indziej

Kradzież urządzenia nie jest konieczna. Atakujący może zaimportować skopiowany lub przewidywalny seed do kompatybilnego oprogramowania i podpisać transakcję na własnym komputerze.

Dwa popularne mity

Portfele sprzętowe i zimne zmniejszają ryzyko, ale nie zabezpieczają ujawnionych kluczy

Oba podejścia są przydatne, ale ich skuteczność zależy od bezpiecznego utworzenia i zachowania tajności seeda.

Mit 1 · Portfel sprzętowy

Nikt nie wyda środków bez mojego urządzenia

Portfel sprzętowy chroni klucze przed codziennym komputerem, ale te same klucze można odtworzyć na innym urządzeniu, jeśli ktoś ma kopię lub przewidywalny seed.

Urządzenie chroni tylko wtedy, gdy seed i klucze prywatne pozostają tajne.
Mit 2 · Portfel zimny

Portfel offline uniemożliwia dostęp do bitcoinów

Trzymanie portfela offline blokuje zdalny dostęp do urządzenia, ale nie powstrzyma osoby, która ma kopię seeda lub klucza prywatnego, przed użyciem innego sprzętu.

Przechowywanie offline chroni oryginał, ale nie unieważnia kopii.

Gdzie zaczyna się słabość

Błąd może pojawić się jeszcze przed wygenerowaniem słów seeda

Portfel najpierw zbiera dane, których nikt nie powinien przewidzieć. Następnie używa bezpiecznego generatora losowego, by stworzyć seed. Jeśli początkowe dane są słabe, końcowe słowa mogą wyglądać poprawnie, ale wybór pozostaje przewidywalny.

01 Nieprzewidywalne dane początkowe Pobrane z zaufanych źródeł systemowych lub sprzętowych
02 Bezpieczny generator losowy Przetwarza dane początkowe na wartość odpowiednią dla portfela
03 Seed i klucze prywatne Sekrety, które ostatecznie kontrolują środki

Entropia

Entropia to techniczne określenie nieprzewidywalności. Im większa entropia, tym więcej realnych możliwości wyboru przez portfel.

Bezpieczny generator losowy

Oprogramowanie lub sprzęt, które przetwarzają nieprzewidywalne dane początkowe na wartości odpowiednie do kluczy używanych w bezpieczeństwie.

Fraza seed

Czytelna kopia zapasowa, z której portfel może odtworzyć wiele kluczy prywatnych. Każdy, kto ma cały seed, może zwykle odtworzyć portfel.

Klucz prywatny

Tajna wartość służąca do autoryzacji wydatków z danego adresu. Jeden seed generuje wiele kluczy prywatnych.

Poprawny format nie gwarantuje bezpieczeństwa

Dlaczego 12 poprawnych słów nie gwarantuje bezpieczeństwa

Wyobraź sobie loterię, która drukuje długie numery, ale w rzeczywistości używa tylko 1 000 możliwych kombinacji. Każdy los wygląda wiarygodnie, a atakujący musi sprawdzić tylko te 1 000 opcji. Wadliwy generator portfela działa podobnie.

Bezpieczny 12-wyrazowy seed powinien pochodzić z ogromnej liczby możliwych kombinacji. Słaby portfel może wybierać z dużo mniejszej, ukrytej listy. Po samych słowach lub poprawności frazy nie rozpoznasz różnicy.

01

Co widzi właściciel

12 poprawnych słów, prawidłowa suma kontrolna i portfel, który się otwiera.

02

Co pozostaje ukryte

Generator miał zbyt mało nieprzewidywalnych danych i mógł tworzyć tylko ograniczoną liczbę seedów.

03

Co zyskuje atakujący

Znacznie krótsza lista do sprawdzenia zamiast wszystkich możliwych seedów.

Przykład z 1 000 losów to analogia, nie wyliczenie dla konkretnego portfela. Rzeczywista liczba zależy od wadliwego generatora.

Prawdziwe awarie, różne przyczyny

Słaba losowość już wielokrotnie narażała portfele

Te przypadki dotyczyły różnych produktów i błędów, ale łączy je jedno: przekonujący interfejs portfela i długi sekret nie gwarantują, że sekret był nieprzewidywalny.

2023 Generator seeda

Milk Sad / Libbitcoin Explorer

Polecenie bx seed korzystało z generatora Mersenne Twister z zaledwie 32 bitami czasu systemowego jako wejściem. Wynik wyglądał jak entropia portfela, ale badacze mogli odtworzyć niewielki zbiór możliwych seedów i powiązali błąd z realnymi kradzieżami na kilku blockchainach.

Długość seeda nie zrekompensuje przewidywalnego źródła losowości.
2011–2015 Portfele przeglądarkowe

RANDSTORM / BitcoinJS

Starsze portfele przeglądarkowe mogły korzystać ze słabej losowości JavaScriptu i środowiska przeglądarki. Po latach ostrzegano, że portfele z tamtego okresu mogą być nadal podatne.

Stary klucz pozostaje stary, nawet jeśli interfejs portfela został zaktualizowany.
2013 Portfele na Androida

Android SecureRandom

Błąd w losowości Androida naraził portfele Bitcoin na ryzyko. Programiści wydali poprawki, ale użytkownicy musieli wygenerować nowe adresy i wymienić klucze, bo aktualizacja nie zabezpiecza już istniejących słabych kluczy.

Naprawa generatora chroni nowe klucze, nie te już wygenerowane.
2026 Portfel sprzętowy

COLDCARD RNG

Niektóre wersje firmware COLDCARD generowały seed z dużo mniejszą losowością niż zakładano. Pokazuje to, że nawet dedykowany sprzęt może zawieść, jeśli proces generowania seeda nie korzysta prawidłowo z bezpiecznych źródeł.

Sprzęt nie zastąpi weryfikacji całego procesu generowania kluczy.Przeczytaj pełny opis incydentu COLDCARD

Praktyczna ocena ryzyka

Kiedy traktować stary portfel jako potencjalnie niebezpieczny?

Zwykle nie da się ocenić seeda po samych słowach. Kluczowe są: gdzie, kiedy i na jakim oprogramowaniu lub firmware został utworzony.

Pochodzenie seeda jest niejasne

Nie wiesz, która aplikacja, strona, urządzenie, firmware lub procedura utworzyły pierwotnie frazę odzyskiwania.

Portfel pojawia się w ostrzeżeniu bezpieczeństwa

Seed został utworzony przez wersję wymienioną w ostrzeżeniu producenta, CVE, publikacji badawczej lub instrukcji migracji.

Stary seed został zaimportowany do nowszego portfela

Przeniesienie tej samej frazy odzyskiwania do nowego portfela sprzętowego zmienia tylko urządzenie, nie sam sekret.

Seed lub klucz prywatny mógł zostać ujawniony

Seed został wpisany na stronie, sfotografowany, zapisany w chmurze, udostępniony wsparciu lub zobaczony przez inną osobę.

Dopasuj reakcję do poziomu ryzyka

Co zrobić ze starym lub podejrzanym seedem?

Nie panikuj, jeśli portfel jest stary. Najpierw sprawdź, jak powstał seed i czy produkt lub wersja są wymienione w wiarygodnych ostrzeżeniach. Działaj na podstawie faktów.

Nie znaleziono ostrzeżenia

Znane źródło i brak oznak wycieku

Aktualizuj portfel i firmware, chroń kopię zapasową i śledź wiarygodne ostrzeżenia. Stary portfel nie musi być niebezpieczny.

Niejasne lub zagrożone

Pochodzenie seeda jest nieznane lub wymienione w ostrzeżeniu

Utwórz nowy seed na aktualnym, bezpiecznym oprogramowaniu lub sprzęcie. Sprawdź kopię zapasową, wyślij testową transakcję, a potem przenieś resztę środków.

Ujawniony sekret

Ktoś może znać seed lub klucz prywatny

Traktuj środki jako zagrożone. Przenieś je na adresy z nowego seeda. Zmiana PIN-u, hasła czy urządzenia nie zmienia ujawnionych kluczy.

Co nie naprawia słabego lub ujawnionego seeda

  • Importowanie tego samego seeda do nowego portfela sprzętowego
  • Zmiana tylko PIN-u urządzenia lub hasła aplikacji
  • Instalacja aktualizacji bez tworzenia nowego seeda
  • Odłączenie urządzenia po ujawnieniu seeda

Dla twórców portfeli

Przetestuj cały proces tworzenia klucza

Bezpieczny algorytm na papierze to za mało. Kontrola musi obejmować cały proces: od źródła entropii, przez generator losowy, aż po końcowy seed – wraz z firmware, przeglądarką, systemem operacyjnym, kompilacją i zachowaniem awaryjnym.

  • Korzystaj ze źródeł losowości zaprojektowanych do kryptografii – sprzętowych lub systemowych.
  • W przypadku braku bezpiecznego źródła losowości – zatrzymaj proces, nie korzystaj po cichu ze zwykłego generatora.
  • Testuj gotowy produkt i rzeczywistą ścieżkę wywołań, nie tylko pojedyncze pliki źródłowe.
  • Dokumentuj sposób tworzenia seedów i procedurę migracji po wykryciu błędu.

Najczęstsze pytania

Czy ktoś może wydać moje bitcoiny, jeśli zna mój seed?

Zazwyczaj tak. Pełna fraza odzyskiwania pozwala odtworzyć klucze prywatne portfela. Atakujący może ją zaimportować do kompatybilnego oprogramowania lub innego urządzenia i podpisać transakcje bez Twojego portfela sprzętowego czy PIN-u.

Czy bitcoiny są przechowywane w portfelu sprzętowym?

Nie. Blockchain zapisuje bitcoiny. Portfel sprzętowy chroni i używa kluczy do autoryzacji wydatków. Jeśli ktoś zdobędzie kopię tych kluczy, urządzenie nie jest już jedyną metodą podpisu.

Czy przechowywanie offline chroni znany klucz prywatny?

Nie. Przechowywanie offline chroni nieznany klucz przed siecią. Jeśli ktoś zna klucz prywatny lub seed, może samodzielnie podpisać i wysłać transakcję.

Czy aktualizacja firmware naprawi stary słaby seed?

Nie. Aktualizacja może naprawić generowanie nowych seedów, ale nie zwiększy losowości już istniejącego seeda. Bezpieczniej jest utworzyć nowy seed i przenieść środki na nowe adresy.

Czy po słowach seeda rozpoznam, czy jest słaby?

Zwykle nie. Słaby seed może mieć poprawną liczbę słów i sumę kontrolną. Ryzyko zależy od tego, gdzie i jak został wygenerowany – sprawdź aplikację, urządzenie, firmware, datę i ostrzeżenia.

Czy silne hasło portfela zabezpiecza słaby seed?

Nie. PIN urządzenia lub hasło aplikacji chronią tylko dostęp lokalny, ale nie zmieniają kluczy prywatnych wynikających z seeda. Osobna, silna fraza może dodać kolejny sekret w niektórych portfelach, ale nie naprawia znanego słabego seeda.

Czy wyciek jednego klucza prywatnego ujawnia cały portfel?

Nie zawsze. Klucz prywatny daje dostęp tylko do środków przypisanych do niego. Wyciekanie seeda jest groźniejsze, bo pozwala odtworzyć wiele kluczy. Zakres zależy od konstrukcji portfela i tego, co wyciekło.

Czy 24-wyrazowy seed też może być słaby?

Tak. Więcej słów oznacza więcej możliwych wartości, ale tylko jeśli portfel wybrał początkową wartość bezpiecznie. Wadliwy generator może stworzyć poprawną 24-wyrazową frazę z dużo mniejszego, przewidywalnego zbioru.