r   e   k   l   a   m   a
reklama

Jak wydobyć bitcoiny z Bitcoina? Klucze do niektórych portfeli leżą na ulicy

Strona główna Aktualności

O autorze

Hodowca maszyn wirtualnych i psów, poza tym stary linuksiarz, bonvivant i śmieszek. W 2012 roku napisał na DP o algorytmie haszowania Keccak i wciąż pamięta, jak on działa.

Ostatni miesiąc w dziedzinie kryptowalut był pod względem finansowym czystym szaleństwem, w pewnym momencie jeden bitcoin wart był 11 tysięcy dolarów. Nasłuchaliśmy się więc komentarzy o „największej bańce w historii” (mimo że bańka kredytów hipotecznych subprime z zeszłej dekady była o dwa rzędy wielkości większa), a teraz, gdy doszło do nieuchronnej korekty, spadku o około 10%, słyszymy już o armageddonie. Gdy jednak spekulanci próbują jak najwięcej wycisnąć z obrotu bitcoinami, inni najwyraźniej wyciągają pieniądze z samego Bitcoina – to jest samej rozproszonej sieci transakcyjnej. To każe zapytać – czy kryptowaluty są bezpieczne? I takie właśnie pytanie wyłania się po publikacji pewnego badacza, który odkrył, że niekiedy można sięgnąć po bitcoiny, które nie należą do nas.

Sejf mocny, tylko klucze powszechnie dostępne

Jak wiadomo, każdy może uzyskać dostęp do każdego portfela bitcoinowego – o ile posiada odpowiedni klucz prywatny. To właśnie on chroni zgromadzone środki, to on jest potrzebny do przeniesienia ich na inny adres. Przestrzeń możliwych adresów bitcoinowych, i co za tym idzie, powiązanych z nimi kluczy jest ogromna. Przy zastosowaniu standardowej funkcji skrótu RIPEMD-160 wynosi 2160 możliwych adresów, tj. około 1,462×1048. Co do rzędu wielkości, to mniej więcej tyle, ile atomów ma nasza planeta.

Prawdopodobieństwo samodzielnego wygenerowania klucza prywatnego do konta, które należy do kogoś innego i na którym znajdują się bitcoiny jest więc znikome – gdyby ktoś chciał w ten sposób kraść kryptowaluty, to lepiej by wziął się za granie w totolotka, w końcu szansa trafienia zwycięskiej kombinacji w tej grze hazardowej to raptem 1:1,39×106. Oczywiście tak jest, gdy klucz prywatny powstaje z całkowicie losowych danych, tak jak powinien. A co jeśli z tą losowością jest coś nie tak?

W sieci pojawiły się wyznania pewnego anonimowego badacza, który opisuje swoje doświadczenia z tworzeniem prywatnych kluczy bitcoinowych z przeróżnych słów i fraz. Odkrył on, że ludzie od dawna już eksperymentują z tworzeniem takich właśnie kluczy – np. wygenerowano adresy ze wszystkich słów z uniksowego słownika /usr/dict/words, na te adresy przesyłane były niewielkie kwoty, dostępne de facto dla każdego. Na tej właśnie bazie powstał serwis brainwallet.org, pozwalający stworzyć sobie portfel bitcoinowy, z kluczem wygenerowanym z pamiętanej przez użytkownika frazy.

Ile jest takich możliwych do odkrycia skarbów, przelanych na adresy powiązane z możliwymi do łatwego odkrycia kluczami prywatnymi? By to odkryć, badacz zautomatyzował swoje poszukiwania. Napisał program, który skanował wszystkie bloki w blockchainie i odnotowywał wszystkie publiczne adresy w nich użyte. Na zgromadzonych danych przeprowadził kolejno cztery eksperymenty z wyszukiwaniem prywatnych kluczy:

  • wygenerowanych ze znanego haszu bloku,
  • wygenerowanych z korzenia drzewa haszy (merkle root)
  • wygenerowanych z wielokrotnych iteracji funkcji haszującej na popularnych słowach,
  • wygenerowanych z funkcji skrótu na publicznym adresie

Wyniki ostatniego z eksperymentów okazały się zaskakujące. Nie tylko powstało wiele tak wygenerowanych kluczy, ale były one wykorzystywane przez kogoś do pozyskiwania bitcoinów z niektórych usług internetowych – i to przynajmniej od 2014 roku. W łańcuchu bloków odnotowano transakcje przechodzące między takimi właśnie adresami, najwyraźniej przeprowadzane przez stronę trzecią.

Automatyczne połowy

Badacz stworzył własnego bota, który miał właśnie nasłuchiwać takich kont, do których prywatne klucze zostały wygenerowane z funkcji skrótu na istniejącym publicznym adresie. Bot ruszył… i w ciągu pierwszych 48 godzin nagle na jednym z takich adresów pojawiło się 9,5 BTC. Pierwszy raz kwota tej wielkości. Badacz nie zdążył jednak sam zaliczyć dla tej transakcji potwierdzeń, ktoś po 15 minutach bitcoiny przetransferował dalej.

W kolejnych dniach bot wychwycił transfery na mniejsze kwoty, a sam odkrywca zauważył coś jeszcze – używane są też adresy z prywatnymi kluczami wygenerowanymi z identyfikatorów transakcji. Wyglądało to tak, jakby ktoś wykorzystywał informacje z samego blockchaina, aby zapewnić, że łatwo będzie odkryć prywatne klucze dla adresów, na które przelewane są bitcoiny.

Znalezione... i oddane

Prowadzone badania dotknęły bezpośrednio pewnego użytkownika, używającego na reddicie pseudonimu fitwear. 12 listopada badacz odkrył, że na jeden z kontrolowanych przez niego adresów trafiło 9 bitcoinów. Nikt nie zgłaszał utraty takiej kwoty, więc zdecydował się z adresu tego przelać niewielką kwotę na konto pewnej gry, by transakcja została publicznie namierzona. W tym samym czasie fitwear zgłosił, że w tajemniczy sposób z jego konta w portfelu na blockchain.info zniknęło właśnie 9 BTC, przelane na nieznany adres – właśnie ten, który kontrolował też nasz anonimowy badacz.

Skontaktował się on z fitwearem prywatnie i oddał mu niemal pełną kwotę (minus to, co wysłał na konto gry). Potwierdziło się przy okazji, że fitwear nie popełnił ze swojej strony żadnych błędów, jeśli chodzi o bezpieczeństwo. Tak samo nie wyglądało na to, by blockchain.info zrobił coś źle, by miał błąd w oprogramowaniu po swojej stronie. Na pewno też nie było to działanie malware, które zmodyfikowałoby funkcję generowania klucza. Nie – ten klucz fitweara został zaimportowany do portfela na blockchain.info w sierpniu tego roku z adresu na papierowym portfelu, a następnie przelano na niego testową transakcję. I to właśnie ten klucz musiał wcześniej zostać wygenerowany przez niezaufaną trzecią stronę.

Bezpieczeństwo ze znakiem zapytania

Co to właściwie znaczy dla Bitcoina? Nic istotnego. Sama sieć jest tak samo bezpieczna jak była wcześniej. Czy jednak oprogramowanie używane do korzystania z bitcoinów jest bezpieczne? To już zupełnie inna kwestia. Nie jest wykluczone, że mogło istnieć spreparowane oprogramowanie, które celowo generowało słabe prywatne klucze, możliwe później do łatwego namierzenia.

Administratorzy blockchain.info przeprowadzili pełen audyt po swojej stronie, odkrywając jeszcze kilka innych takich słabych adresów, do których klucze mogłyby być w posiadaniu strony trzeciej – gwarantują jednak, że nie pochodzą one z ich oprogramowania. Śledztwo w toku, a szczęśliwym posiadaczom bitcoinów można zasugerować korzystanie jedynie z zaufanego, otwartego oprogramowania – najlepiej desktopowego, nie mobilnego. Z ostatnich badań przeprowadzonych przez ekspertów z firmy High-Tech Bridge wynika bowiem, że 90% aplikacji mobilnych używanych do zarządzania kryptowalutami pełna jest luk bezpieczeństwa.

© dobreprogramy
reklama
r   e   k   l   a   m   a

Komentarze

reklama
Polecamy w WP TechnologieWP TechnologieSnap ma się coraz gorzej. A jego twórca jest najlepiej opłacanym na świecie prezesem