Kompromitacja klucza prywatnego: co to oznacza i co można z tym zrobić?

Czym jest skompromitowany klucz prywatny (private key compromise)?
Skompromitowany klucz prywatny oznacza, że ktoś inny ma Twój tajny klucz, może go używać albo że nie masz już pewności, czy nadal pozostaje tajny. Klucz prywatny pozwala wykazać, że to Ty kontrolujesz dany adres krypto i podpisujesz transakcje z tego adresu. Osoba, która ma taki klucz, może więc zazwyczaj również przenieść kryptowalutę, którą można wydać za pośrednictwem tego adresu.
Klucz prywatny można traktować jako narzędzie, którym potwierdzasz kontrolę nad swoim portfelem kryptowalutowym i adresami. Hasło do aplikacji portfela to coś innego: zwykle chroni ono tylko aplikację lub zaszyfrowany plik portfela na Twoim urządzeniu. Klucz prywatny jest ostatecznie kluczem kryptograficznym, którym podpisuje się transakcje na blockchainie.
Wiele portfeli działa również z seed phrase, czasem nazywaną Secret Recovery Phrase lub SRP. To zestaw słów odzyskiwania, z którego portfel może wyprowadzać wiele kluczy prywatnych i adresów. Czy taka fraza odzyskiwania wyciekła? Wtedy zagrożony może być nie tylko jeden adres, ale potencjalnie wszystkie portfele i adresy wyprowadzone z tej seed phrase.
W modelu self-custody samodzielnie zarządzasz kluczami prywatnymi. Daje to pełną kontrolę, ale też odpowiedzialność za ich bezpieczne przechowywanie. Jeśli korzystasz z giełdy kryptowalut, która zarządza kluczami prywatnymi w Twoim imieniu, zhakowane konto giełdowe to coś innego niż skradziony klucz prywatny. Oba przypadki są poważne, ale ryzyka i kroki naprawcze są różne.
Najważniejsze informacje
- Klucz prywatny to tajny klucz, którym podpisuje się transakcje z adresu krypto.
- Osoba mająca Twój klucz prywatny może zazwyczaj przenieść kryptowalutę znajdującą się na powiązanym adresie.
- Seed phrase może dawać dostęp do wielu kont w tym samym portfelu kryptowalutowym.
- Hasło do portfela nie jest tym samym co klucz prywatny.
- W modelu self-custody sam zarządzasz kluczami, natomiast giełda kryptowalut zwykle robi to za Ciebie w przypadku konta custodial.
Jak może dojść do kompromitacji klucza prywatnego?
Klucz prywatny najczęściej zostaje skompromitowany wtedy, gdy ktoś Cię oszukuje, Twoje urządzenie zostaje zainfekowane albo kopia zapasowa trafia w niepowołane ręce. Phishing jest jedną z dobrze znanych metod. Możesz na przykład trafić przez link na podrobioną stronę portfela, giełdy lub pomocy technicznej i wpisać tam swoją seed phrase albo klucz prywatny.
Uwaga: Legalny support nigdy nie prosi o seed phrase, klucz prywatny, hasło ani kod 2FA. Nawet jeśli ktoś podaje się za pracownika firmy kryptowalutowej, giełdy, influencera lub innej zaufanej strony.
Kolejnym zagrożeniem jest malware. Chodzi na przykład o oprogramowanie, które odczytuje naciśnięcia klawiszy, pobiera dane z przeglądarki, sprawdza schowek albo instaluje fałszywe rozszerzenie. Zainfekowane rozszerzenie przeglądarki lub fałszywy portfel może na przykład przesyłać seed phrase, klucze prywatne lub inne wrażliwe dane bezpośrednio do atakującego.
Problemy może też powodować kopia zapasowa online. Zrzut ekranu z frazą odzyskiwania może wydawać się wygodny, ale może automatycznie trafić do chmury. To samo dotyczy słów odzyskiwania zapisanych w e-mailu, wiadomościach czatu lub niezabezpieczonych plikach. Również fizyczny dostęp do widocznej kartki, niezabezpieczonego urządzenia lub niechronionej kopii zapasowej może wystarczyć, aby narazić portfel na ryzyko.
Ważne rozróżnienie: złośliwa zgoda nadana smart contractom nie jest automatycznie tym samym co kompromitacja klucza prywatnego. Przy takiej approval dajesz dApp uprawnienie do przenoszenia określonych tokenów w Twoim imieniu. Może to wyrządzić duże szkody, ale nie oznacza to, że Twój klucz prywatny został skradziony.
W przypadku złośliwej approval cofnięcie tej zgody może wystarczyć, aby zapobiec dalszym stratom. Przy wycieku klucza prywatnego sytuacja wygląda inaczej: trzeba założyć, że atakujący może mieć pełną kontrolę nad tym kluczem i jak najszybciej przenieść pozostałą kryptowalutę do nowego portfela z nowymi kluczami prywatnymi.
Jakie sygnały wskazują na kompromitację klucza prywatnego?
Nieznane transakcje wychodzące z adresu self-custody to ważny sygnał alarmowy. Oznacza to, że wydarzyło się coś, czego nie zrobiłeś świadomie. Może to wskazywać na wyciek klucza prywatnego lub seed phrase, ale token mógł też zostać przeniesiony za pomocą wcześniej nadanej approval.
Najpierw sprawdź więc, co dokładnie wydarzyło się na blockchainie. Przejrzyj aktywność portfela i szczegóły transakcji w blockchain explorerze. Zwróć uwagę na nieznane transakcje, approval i interakcje ze smart contractami.
Silnym sygnałem kompromitacji klucza prywatnego jest sytuacja, w której transakcje są podpisywane bezpośrednio z Twojego adresu, a Ty sam ich nie wykonałeś. W takim przypadku atakujący może używać klucza lub seed phrase, aby wysyłać transakcje w Twoim imieniu.
Innym wyraźnym sygnałem jest tzw. „sweeper bot”. Załóżmy, że wysyłasz nową kryptowalutę na stary adres, a saldo niemal natychmiast znika. Może to oznaczać, że bot aktywnie monitoruje adres i automatycznie przenosi nowe środki, gdy tylko się pojawią. To może wskazywać, że atakujący kontroluje klucz prywatny lub seed phrase.
Inne sygnały ostrzegawcze to na przykład:
- Wpisałeś seed phrase lub klucz prywatny na stronie internetowej albo udostępniłeś je komuś innemu.
- Odkrywasz nieznane approval tokenów lub interakcje ze smart contractami.
- Twoje urządzenie lub rozszerzenie portfela okazuje się zainfekowane albo podmienione przez malware.
- Widzisz transakcje z portfela, których sam nie podpisałeś.
Nieznana approval nie oznacza więc automatycznie, że skradziono Twój klucz prywatny. Approval daje smart contractowi tylko określone prawa do konkretnych tokenów. Jeśli problemem jest wyłącznie approval, cofnięcie jej może ograniczyć dalsze szkody.
Jeśli natomiast widzisz nieznane transakcje podpisane bezpośrednio przez Twoje konto albo nowe wpłaty znikają automatycznie przez sweeper bota, prawdopodobieństwo, że sam klucz prywatny lub seed phrase został skompromitowany, jest większe.
W przypadku giełdy kryptowalut sytuacja wygląda inaczej. Nieznane logowanie, zmienione ustawienia bezpieczeństwa lub wypłata mogą wskazywać na przejęte konto giełdowe, ale nie oznacza to automatycznie, że skradziono Twój klucz prywatny. W przypadku giełdy custodial giełda zarządza bowiem tymi kluczami w Twoim imieniu.
Jakie są skutki kompromitacji klucza prywatnego?
Przy kompromitacji klucza prywatnego atakujący może podpisywać transakcje w imieniu Twojego adresu. Dzięki temu może na przykład przenosić monety, tokeny i NFT albo wykonywać inne działania powiązane z tym adresem.
Czy wyciekła Twoja seed phrase? Wtedy ryzyko jest często większe. Atakujący może potencjalnie uzyskać dostęp do wielu kont i adresów wyprowadzonych z tej samej frazy odzyskiwania. Utworzenie nowego konta w ramach tej samej seed phrase nie pomaga, ponieważ takie konto nadal zależy od tego samego ujawnionego sekretu.
Większości transakcji wykonanych na publicznych blockchainach nie da się po prostu cofnąć. Portfel self-custody nie może zwyczajnie anulować wysłanej transakcji. To, czy odzyskasz skradzioną kryptowalutę, zależy wtedy na przykład od dobrowolnej współpracy odbiorcy albo, w wyjątkowych przypadkach, od interwencji zaangażowanych platform, emitentów tokenów lub właściwych organów.
Niektóre aktywa wymagają dodatkowej uwagi. Token można często wysłać bezpośrednio do nowego portfela, ale pozycja DeFi, pozycja stakingowa lub rola w smart contractcie nie zawsze przenosi się automatycznie. Dlatego dla każdego blockchaina i protokołu sprawdź osobno, jakie aktywa i uprawnienia nadal są powiązane ze starym adresem.
Mniej widocznym skutkiem jest to, że atakujący może również podpisywać wiadomości tak, jakby pochodziły od Ciebie. Może to być na przykład podpisane logowanie, działanie związane z governance lub inna kryptograficzna zgoda. Gdy klucz prywatny zostanie skompromitowany, nie możesz już automatycznie ufać nowym podpisom wykonanym tym kluczem.
Co zrobić w przypadku kompromitacji klucza prywatnego?
Podejdź do podejrzewanego wycieku klucza prywatnego lub seed phrase tak, jakby był on trwale niebezpieczny. Sama zmiana hasła, ponowna instalacja portfela czy utworzenie nowego konta w ramach tej samej seed phrase nie rozwiąże problemu. Skopiowany klucz nie stanie się przez to ponownie tajny.
Działaj ostrożnie, ale szybko. Oto najważniejsze kroki:
-
Przestań używać starego adresu. Nie wpłacaj już nowej kryptowaluty do starego portfela i nie twórz nowych kont z tą samą seed phrase.
-
Pracuj w czystym środowisku. Korzystaj z aktualnego urządzenia sprawdzonego pod kątem malware albo użyj osobnego urządzenia czy profilu przeglądarki, które nie były narażone na podejrzany atak.
-
Utwórz całkowicie nowy portfel kryptowalutowy. Użyj nowej seed phrase lub nowych kluczy prywatnych, które nie są nigdzie powiązane ze starą frazą odzyskiwania.
-
Zrób pełną inwentaryzację. Sprawdź, jakie tokeny, NFT, pozycje DeFi, approval i ewentualne role w smart contractach nadal są powiązane ze starym adresem.
-
Zachowaj dowody. Zapisz adresy, hashe transakcji, kwoty, datę i godzinę. Zachowaj też zrzuty ekranu oraz komunikację z podejrzanym oszustem.
-
Zabezpiecz powiązane konta. Sprawdź swoje urządzenie i zabezpiecz także e-mail, telefon oraz konta na giełdzie kryptowalut. Zmień odpowiednie hasła i odśwież 2FA, jeśli to konieczne.
Jak przenieść kryptowalutę do bezpiecznego portfela?
Pozostałą kryptowalutę przenieś wyłącznie do całkowicie nowego portfela z nową seed phrase lub nowymi kluczami prywatnymi. Nie importuj starej seed phrase ani starego klucza prywatnego do nowego portfela, bo w ten sposób po prostu przeniesiesz problem.
Postępuj krok po kroku:
-
Utwórz nowy portfel w bezpiecznym środowisku. Nowa seed phrase lub nowy klucz prywatny muszą być całkowicie odseparowane od starego portfela.
-
Sprawdź adres odbiorczy. Upewnij się, że używasz właściwego adresu nowego portfela i że znajdujesz się na odpowiednim blockchainie.
-
Zrób listę swoich aktywów. W przypadku portfela EVM mogą to być na przykład natywna kryptowaluta, tokeny ERC-20, NFT, pozycje płynności i role w smart contractach.
-
Wyślij aktywa, które można przenieść bezpośrednio. Przeczytaj wszystkie szczegóły transakcji przed podpisaniem i uwzględnij odpowiednie opłaty sieciowe.
-
Osobno sprawdź szczególne pozycje. W przypadku niektórych pozycji stakingowych, DeFi lub związanych z własnością kontraktu obowiązują osobne kroki. Samo wysłanie tokena nie przenosi takich praw automatycznie.
-
Nie używaj już starego adresu. Unikaj wszystkich kont i adresów powiązanych ze skompromitowaną seed phrase.
Przykład: Jeśli masz ETH i kilka tokenów na ujawnionym adresie, wyślij je do nowego portfela na tym samym łańcuchu. Jeśli masz dodatkowo pozycję DeFi, musisz osobno sprawdzić, jak ją zamknąć lub przenieść.
Podejrzewasz aktywnego sweeper bota? W takim razie nie wpłacaj po prostu dodatkowego ETH ani innej natywnej kryptowaluty na stary adres, aby zapłacić gas fees. Sweeper bot może natychmiast przenieść tę wpłatę, zanim zdążysz przenieść inne aktywa.
Kiedy należy powiadomić giełdę lub inną stronę?
Powiadom giełdę kryptowalut od razu, jeśli Twoje konto giełdowe mogło zostać przejęte. Chodzi na przykład o nieznane logowania, zmienione ustawienia bezpieczeństwa lub zlecenia wypłaty, których sam nie wykonałeś. Korzystaj wyłącznie z oficjalnej ścieżki wsparcia, którą sam znajdziesz, a nie z numeru telefonu czy linku z niespodziewanej wiadomości.
Powiadomienie giełdy lub innej usługi custodial może być też sensowne, gdy widzisz, że skradziona kryptowaluta została wysłana na adres wpłat tej usługi. Przekaż wtedy jak najwięcej przydatnych informacji:
- używany blockchain;
- hash transakcji;
- adres źródłowy i docelowy;
- kwotę i rodzaj kryptowaluty;
- datę i godzinę transakcji.
Zgłoś też kradzież właściwej policji lub krajowej jednostce ds. cyberprzestępczości albo oszustw w swoim kraju. Starannie zachowaj wszystkie dane i komunikację. Szybkie zgłoszenie może pomóc w dochodzeniu i śledzeniu środków, ale nie daje gwarancji, że platforma zablokuje aktywa albo że odzyskasz pieniądze.
W przypadku portfela self-custody dostawca portfela zwykle nie może cofnąć wykonanej transakcji, ponieważ nie zarządza Twoim kluczem prywatnym. Kontakt może jednak być przydatny, aby zgłosić phishing lub uzyskać pomoc w bezpiecznym korzystaniu z portfela.
Jak zapobiegać kompromitacji klucza prywatnego?
Najlepiej zapobiegać kompromitacji klucza prywatnego, trzymając seed phrase i klucze prywatne w tajemnicy oraz możliwie offline. Traktuj te dane jak klucz do sejfu: kto je zdobędzie, może potencjalnie uzyskać dostęp do Twojej kryptowaluty.
Kilka nawyków robi dużą różnicę:
- Nigdy nie udostępniaj swojego klucza prywatnego ani seed phrase. Żaden pracownik supportu, strona internetowa, dApp ani osoba na czacie nie potrzebuje tych danych.
- Nie przechowuj słów odzyskiwania jako zrzutu ekranu, w e-mailu, czacie ani niezabezpieczonym pliku w chmurze.
- Do większych kwot, które chcesz przechowywać dłużej, używaj hardware walleta lub innej formy podpisywania offline. Dzięki temu klucz prywatny zwykle pozostaje na zabezpieczonym urządzeniu.
- Pobieraj oprogramowanie portfela i rozszerzenia przeglądarki wyłącznie z oficjalnych, sprawdzonych kanałów.
- Czytaj transakcje przed podpisaniem. Nie dawaj smart contractom nieograniczonej zgody, jeśli wystarczy bardziej ograniczona approval.
- Do codziennego użytku trzymaj tylko ograniczoną kwotę w hot wallet.
- Używaj unikalnych, silnych haseł i mocnej uwierzytelniania wieloskładnikowego dla e-maila, telefonu i kont na giełdach kryptowalut.
Hardware wallet przede wszystkim zmniejsza ryzyko, że Twój klucz prywatny zostanie ujawniony na urządzeniu podłączonym do internetu. Nie chroni jednak wtedy, gdy sam udostępnisz seed phrase, podpiszesz złośliwą transakcję albo wyślesz kryptowalutę na zły adres.
Również kopie zapasowe offline wymagają uwagi. Zmniejszają ryzyko online, ale nadal mogą zostać zgubione, spalone, skradzione albo odczytane przez kogoś innego. Dlatego zadbaj o metodę kopii zapasowej, która ogranicza zarówno ryzyka cyfrowe, jak i fizyczne.
Podsumowanie
Kompromitacja klucza prywatnego to jedno z najpoważniejszych zagrożeń w modelu self-custody. Jeśli Twój klucz prywatny lub seed phrase mogły wyciec, traktuj stary portfel jako trwale niebezpieczny. Utwórz w czystym środowisku całkowicie nowy portfel i przenieś pozostałe aktywa tam, gdzie to możliwe, na nowe adresy.
Pamiętaj też, aby zawsze odróżniać wyciek klucza prywatnego, złośliwą approval tokena i przejęte konto na giełdzie kryptowalut. Wszystkie trzy sytuacje mogą prowadzić do strat, ale wymagają innych kroków naprawczych.
Najważniejsza ochrona pozostaje prosta: trzymaj seed phrase i klucze prywatne w tajemnicy, sprawdzaj to, co podpisujesz, i zachowaj szczególną ostrożność wobec nieoczekiwanych linków, wiadomości i oprogramowania.