Odzyskiwanie portfela wygląda jak zadanie wpisywania tekstu, a w rzeczywistości jest zadaniem przechowywania kluczy. Wpisywana fraza nie jest hasłem sprawdzanym przez serwer; to dane wejściowe funkcji derywacji, która odtwarza te same klucze prywatne, jakie portfel miał przed utratą. Wszystko, co w tej chwili może odczytać naciśnięcia klawiszy, schowek lub pamięć procesu, może je również odtworzyć. Przygotowanie oznacza więc zdecydowanie, gdzie sekret może istnieć, zanim zaistnieje.

Prześledź frazę od nośnika do klucza pochodnego

Mnemonika w stylu BIP-39 jest normalizowana, rozciągana za pomocą PBKDF2-HMAC-SHA512 z opcjonalną frazą hasłową jako solą i zamieniana na ziarno, z którego portfel wyprowadza klucze. Wynikają z tego bezpośrednio dwa skutki. Po pierwsze, fraza jest trwałym upoważnieniem, a nie poświadczeniem sesji, więc w razie wycieku nie ma resetu po stronie serwera. Po drugie, opcjonalna fraza hasłowa uczestniczy w derywacji i dlatego przywracanie, które zdaje się dawać pusty portfel, zwykle oznacza wpisanie błędnej frazy hasłowej, a nie błędnej frazy.

Każdy krok po normalizacji dzieje się wewnątrz procesu, w którym wpisywałeś tekst. To jest część, którą pomija większość poradników odzyskiwania: powierzchnią ekspozycji jest ścieżka wejściowa i pamięć tego procesu, a nie sieć między tobą a witryną.

To, który proces jest legalny, zależy od portfela. Urządzenie sprzętowe ma własny interfejs odzyskiwania na samym urządzeniu; portfel programowy ma udokumentowany ekran przywracania w zweryfikowanej kompilacji. Żaden z nich nie jest czatem wsparcia i żaden nie jest stroną, która oferuje sprawdzenie frazy za ciebie.

System gościa dziedziczy zaufanie swojego hosta

Maszyna wirtualna sprawia wrażenie osobnego komputera i nie jest niezależną granicą zaufania. Wytyczne NIST dotyczące pełnej wirtualizacji opisują tę zależność wprost: bezpieczeństwo gościa zależy od hosta i hiperwizora pod nim, a współdzielone zasoby, takie jak schowek czy integracja folderów, poszerzają kanał między nimi. Zainstalowanie gościa na maszynie, której już nie ufasz, nie tworzy nowej ścieżki wejściowej.

ControlWhat it addressesWhat it leaves exposed
Verified wallet buildRunning the code the publisher actually signedEverything the running process can read once it starts
Live-boot environment, no persistent diskSecrets left in swap, caches or a saved sessionThe firmware, the keyboard and the display path
Full-disk encryption on the hostRecovery material at rest after shutdownThe same material while the machine is unlocked
Tunnel to a trusted exitWho can observe traffic in transitLocal processes, screen capture and input hooks

Praktyczne wycieki podążają tą samą linią. Współdzielony schowek przenosi wszystko, co skopiowałeś. Migawki i pliki stanu wstrzymanego mogą przechwycić pamięć zawierającą frazę. Dodatki gościa z dostępem do systemu plików hosta dają gościowi widok ścieżek hosta, a hostowi widok ścieżek gościa. Nic z tego nie jest egzotycznym atakiem; to funkcje, które czynią maszynę wirtualną wygodną.

Uczciwy wniosek jest węższy niż „maszyna wirtualna nie jest bezpieczna”. Maszyna wirtualna może być właściwym kontenerem do pracy, gdy host jest maszyną, której ufasz, a funkcje udostępniania zostały usunięte. Nie uratuje hosta, któremu nie ufasz.

Co faktycznie obejmuje tunel szyfrowany

VPN chroni pakiety między dwoma punktami końcowymi. Nie ma zdania na temat tego, kto czyta ekran po którejkolwiek stronie, i nie powstrzymuje lokalnego procesu przed obserwowaniem tego, co wpisujesz w oknie. Tunel jest więc istotny, gdy troską jest ścieżka, a nieistotny, gdy troską jest host.

To rozróżnienie ma znaczenie, bo oba sprzedaje się razem. „Połączenie szyfrowane” opisuje przesył; „zaufane urządzenie” opisuje punkt końcowy. Procedura odzyskiwania wymaga osobnej odpowiedzi na oba, a tylko jednej z nich może udzielić usługa sieciowa.

Weryfikacja pobranego pliku należy do tej samej rodziny pytań o punkt końcowy. Sprawdzenie skrótu i sprawdzenie podpisu potwierdzają, że archiwum odpowiada temu, co wydał wydawca; nie mówią nic o maszynie, która je uruchomi.

sha256sum -c SHA256SUMS.txt
gpg --verify SHA256SUMS.txt.sig SHA256SUMS.txt

Przygotuj środowisko, zanim pojawi się materiał

Kolejność jest ważniejsza niż narzędzia. Zdecyduj o hoście, usuń funkcje udostępniania, odłącz to, czego nie trzeba podłączać, i dopiero wtedy wyjmij zapis odzyskiwania z jego schowka. Zrobienie tego w odwrotnej kolejności oznacza, że sekret jest już w pamięci, podczas gdy wciąż decydujesz, gdzie ma trafić.

Potem trzymaj sekret w przepływie, który dokumentuje producent portfela. Wpisz go we własnym interfejsie przywracania portfela, w sieci, której portfel oczekuje, i zatwierdzaj tylko te operacje, które możesz zweryfikować na zaufanym ekranie udostępnianym przez portfel. Znane okno dialogowe pulpitu nie jest dowodem, że urządzenie autoryzuje to, co twierdzi okno.

Jeśli podejrzewasz ekspozycję, przestań wprowadzać materiał w tym systemie i przejdź do środowiska, któremu możesz zaufać niezależnie. Zamknięcie maszyny wirtualnej, zmiana hasła VPN czy ponowna instalacja aplikacji portfela nie rotują upoważnienia portfela; robi to tylko przeniesienie aktywów do nowego portfela z nowo wygenerowanymi kluczami. Trzymaj surową frazę poza każdą rozmową ze wsparciem, dopóki zdobywasz kroki właściwe dla portfela, bo żaden legalny proces wsparcia jej nie potrzebuje. Ta jedna zasada zapobiega większym stratom niż jakakolwiek lista utwardzania.

Powiązane artykuły