Ukryty wolumen VeraCrypt — jak go utworzyć i kiedy naprawdę ma sens
Dwa hasła, dwa różne wyniki i kontener, o którym technicznie nie da się stwierdzić, że istnieje. Jak zbudować ukryty wolumen, jak go nie zniszczyć przy pierwszym zapisie i dlaczego wersja programu ma tu znaczenie.
W poprzednim tekście o VeraCrypcie napisałem jedno zdanie, które wróciło do mnie w kilku wiadomościach: że program pozwala stworzyć kontener z dwoma hasłami, z których każde otwiera coś innego. Brzmi jak sztuczka rodem z filmu, a jest zwykłą, udokumentowaną funkcją, którą można włączyć w kreatorze. Tyle że po polsku prawie nikt nie tłumaczy, jak to działa naprawdę — ani czego przy tym nie robić, żeby nie skasować sobie danych.
Więc nadrabiam.
Czym jest ukryty wolumen i skąd wziął się ten pomysł
Szyfrowanie chroni dane, ale nie chroni Ciebie. To rozróżnienie brzmi filozoficznie, dopóki nie zobaczy się go w praktyce: jeśli ktoś może Cię skutecznie zmusić do podania hasła, najlepszy algorytm świata przestaje mieć znaczenie. AES-256 nie broni się przed sytuacją, w której sam wpisujesz hasło.
W części krajów prawo wprost pozwala żądać hasła do zaszyfrowanego nośnika, a odmowa jest osobnym przestępstwem. W Polsce nikt nie ma obowiązku dostarczać dowodów przeciwko sobie, ale to nie znaczy, że sprzęt nie zostanie zabezpieczony ani że nie znajdziesz się pod presją — również taką całkowicie pozaprawną, na przykład przy granicy albo po prostu ze strony kogoś silniejszego od Ciebie.
Ukryty wolumen odpowiada na to inaczej niż mocniejszym szyfrowaniem. Zamiast utrudniać złamanie hasła, sprawia, że nie da się udowodnić, że jest cokolwiek jeszcze do otwarcia. Podajesz jedno hasło, otwiera się kontener z plikami. Wygląda to na koniec historii — bo technicznie nic nie wskazuje, że historia ma dalszy ciąg.
Nie chodzi o to, żeby danych nie dało się odczytać. Chodzi o to, żeby nie było powodu ich szukać.
Kiedy ukryty wolumen ma sens, a kiedy to przesada
Zacznijmy od uczciwej odpowiedzi: dla większości ludzi to przerost formy nad treścią. Jeśli Twój model zagrożenia to zgubiony w autobusie pendrive, zwykły zaszyfrowany kontener załatwia sprawę w stu procentach. Ukryty wolumen niczego tu nie poprawia, a dokłada realne ryzyko utraty danych — o czym za chwilę.
Ma sens wtedy, gdy przeciwnik nie jest przypadkowym znalazcą, tylko kimś, kto wie, że coś masz, i może Cię skłonić do otwarcia:
- Dziennikarz chroniący materiały albo kontakt do informatora
- Prawnik wożący akta klientów poza kancelarię
- Osoba przekraczająca granicę z danymi, których nie chce pokazywać obcej służbie
- Ktoś w toksycznej relacji, kto musi ukryć dokumenty albo dowody przed osobą mieszkającą z nim pod jednym dachem
Ten ostatni przypadek jest w praktyce najczęstszy i najrzadziej wymieniany, a bywa najbardziej dosłowny — bo tu przeciwnik ma fizyczny dostęp do komputera codziennie.
Jeśli nie mieścisz się w żadnej z tych sytuacji, spokojnie zostań przy zwykłym kontenerze. Serio.
Jak VeraCrypt ukrywa dane przed wykryciem
Cała sztuczka opiera się na jednej właściwości formatu: kontener VeraCrypt od pierwszej do ostatniej sekundy istnienia wygląda jak losowy szum. Nie ma nagłówka z nazwą programu, nie ma sygnatury, nie ma niczego, co pozwoliłoby powiedzieć „to jest kontener VeraCrypt". Jest po prostu plik pełen bajtów bez wzoru.
Gdy tworzysz zwykły kontener, program wypełnia całą jego objętość danymi losowymi, a dopiero potem zapisuje w nim system plików. Oznacza to, że wolne miejsce w kontenerze jest nieodróżnialne od danych zaszyfrowanych — jedno i drugie to szum.
I tu wchodzi ukryty wolumen: powstaje właśnie w tym wolnym miejscu, na końcu kontenera zewnętrznego. Skoro wolne miejsce i tak wyglądało jak losowe bajty, umieszczenie tam drugiego, osobno zaszyfrowanego wolumenu nie zmienia niczego, co dałoby się zaobserwować z zewnątrz.
- Nagłówek wolumenu — bajty 0–65 535. Tu siedzą klucze, którymi otwiera się wolumen zewnętrzny.
- Obszar nagłówka ukrytego wolumenu — bajty 65 536–131 071. I to jest sedno całej konstrukcji: ten obszar istnieje w każdym kontenerze. Gdy ukrytego wolumenu nie ma, VeraCrypt wypełnia go losowymi danymi. Nie da się więc odróżnić „tu jest nagłówek" od „tu jest szum".
- Dane wolumenu zewnętrznego — pliki, które pokażesz, gdy ktoś każe Ci otworzyć kontener.
- Ukryty wolumen — zajmuje koniec przestrzeni. Wolumen zewnętrzny widzi w tym miejscu wyłącznie wolne miejsce i dlatego może je bez ostrzeżenia nadpisać.
- Kopie zapasowe nagłówków — ostatnie 128 KiB, po 64 KiB na wolumen zewnętrzny i ukryty. Także wypełnione losowymi danymi, gdy ukrytego nie ma.
Gdy podajesz hasło, VeraCrypt próbuje odszyfrować oba nagłówki i sprawdza, który z nich da sensowny wynik. Jeśli żaden — dostajesz komunikat o błędnym haśle. Nie ma sposobu, żeby odróżnić „podałeś złe hasło" od „nie ma tu żadnego ukrytego wolumenu". Z punktu widzenia kogoś, kto analizuje ten plik, to dwie identyczne sytuacje.
Krok po kroku: tworzenie ukrytego wolumenu
Zanim klikniesz cokolwiek — sprawdź wersję programu. To nie jest zwyczajowe „aktualizuj oprogramowanie", tylko konkretny problem dotyczący dokładnie tej funkcji.
W wersjach od 1.26.6 do 1.26.28 szybkie formatowanie kontenerów plikowych zapisywało do pliku niezaszyfrowane, wyzerowane sektory w regularnych odstępach co 128 MiB. W kontenerze, który z założenia ma wyglądać jak jednolity losowy szum, powstaje w ten sposób powtarzalny wzór — a taki wzór jest dokładnie tym, czego szuka analiza kryminalistyczna. Szyfrowanie pozostaje nienaruszone i nikt nie odczyta Twoich danych, ale sam fakt istnienia ukrytego wolumenu przestaje być nie do udowodnienia. Czyli znika jedyna rzecz, dla której się go zakłada.
Naprawiono to w 1.26.29. Jeśli w Twoim programie Help → About pokazuje coś starszego, zaktualizuj przed utworzeniem kontenera. Kontenery zrobione starszą wersją najlepiej zbudować od nowa — łatka nie naprawi wstecz pliku, który już powstał.
Przy okazji dwie opcje, których nie wolno tu włączać, choć w innych sytuacjach bywają wygodne. Quick Format pomija wypełnianie kontenera losowymi danymi — a to właśnie ono sprawia, że wolne miejsce jest nieodróżnialne od ukrytego wolumenu. Bez tego kroku ukryty wolumen odcina się od reszty pliku jak plama. Dynamic, czyli kontener rosnący w miarę zapełniania, zdradza z kolei swoją prawdziwą zawartość samym rozmiarem pliku. Obie przekreślają cały sens ukrytego wolumenu, więc zostaw je wyłączone i uzbrój się w cierpliwość — pełne formatowanie dużego kontenera trwa.
Mając aktualną wersję, przechodzisz przez kreator:
Nazwy podaję po polsku, bo VeraCrypt ma polską wersję i większość osób trafi właśnie na nią. Angielskie odpowiedniki dodaję w nawiasach.
- W głównym oknie Utwórz wolumen (Create Volume) — otworzy się Kreator tworzenia wolumenów VeraCrypt
- Typ wolumenu (Volume Type) → wybierasz Ukryty wolumen VeraCrypt, nie standardowy
- Tryb tworzenia wolumenu (Volume Creation Mode) → zostajesz przy Tryb zwykły (Normal mode). Kreator utworzy wtedy oba wolumeny za jednym razem, zewnętrzny i ukryty. Druga opcja, Tryb bezpośredni, służy do dołożenia ukrytego wolumenu do już istniejącego kontenera
- Lokalizacja wolumenu (Volume Location) → plik kontenera albo, przez Wybierz urządzenie…, cała partycja czy pendrive
- Opcje szyfrowania (Encryption Options) → domyślne AES i SHA-512 są w zupełności wystarczające, nie ma powodu tego zmieniać
- Rozmiar i hasło wolumenu zewnętrznego, potem kopiowanie plików-przykrywek (o tym w następnej sekcji)
- Kreator przechodzi do ukrytego: Opcje szyfrowania wolumenu ukrytego, potem rozmiar wyliczony z wolnego miejsca, na końcu Hasło wolumenu ukrytego
- Hasło ukrytego musi się różnić od zewnętrznego — przy identycznym konstrukcja nie zadziała
Po zamontowaniu rozpoznasz, co właściwie otworzyłeś, po kolumnie Typ na głównej liście: wolumen ukryty jest tam opisany wprost jako Ukryty.
Dwie rzeczy, które robią różnicę i o których kreator nie mówi wprost:
System plików wolumenu zewnętrznego ma znaczenie dla rozmiaru ukrytego. Przy FAT lub exFAT dostaniesz na ukryty wolumen wyraźnie więcej miejsca. NTFS trzyma własne struktury rozrzucone po nośniku i w praktyce zostawia Ci mniej więcej połowę wolnej przestrzeni. Jeśli nie masz powodu, żeby wolumen zewnętrzny był w NTFS, wybierz exFAT.
Ukryty wolumen twórz, dopóki zewnętrzny jest pusty albo prawie pusty. NTFS potrafi zapisać swoje dane na samym końcu nośnika — czyli dokładnie tam, gdzie ma powstać ukryty wolumen — i zablokować jego utworzenie, mimo że statystyki pokazują mnóstwo wolnego miejsca. Kolejność z kreatora, czyli najpierw utworzenie, potem wypełnianie, nie jest przypadkowa.
Co wrzucić do wolumenu zewnętrznego, żeby był wiarygodny
To jest miejsce, w którym większość poradników kończy zdaniem „skopiuj tam jakieś pliki" — i to jest miejsce, w którym cały pomysł najczęściej się sypie.
Zastanów się, jak wygląda sytuacja z drugiej strony. Ktoś stoi nad Tobą, każe otworzyć kontener, wpisujesz hasło i pokazuje się… katalog z trzema plikami tekstowymi. Pierwsze pytanie brzmi: po co ktoś szyfrowałby to metodą, która wymaga osobnego programu i hasła? Pusty albo bezwartościowy wolumen zewnętrzny nie jest przykrywką. Jest zaproszeniem do dalszego drążenia.
Zawartość musi sama z siebie uzasadniać, dlaczego jest zaszyfrowana, a jednocześnie być czymś, co możesz bez żalu pokazać. Coś w rodzaju:
- skany dokumentów: dowód, prawo jazdy, akt urodzenia
- rozliczenia podatkowe, umowy, faktury sprzed kilku lat
- dokumentacja medyczna
- prywatne zdjęcia rodzinne — takie, których pokazanie obcemu jest nieprzyjemne, ale nie katastrofalne
- hasła do kont, na których i tak nic ważnego nie ma
Dwa dodatkowe detale, które odróżniają przykrywkę wiarygodną od udawanej. Po pierwsze, daty: kontener, w którym wszystkie pliki mają identyczny znacznik czasu sprzed roku, wygląda dokładnie na to, czym jest — na dekorację zrobioną w pięć minut. Wrzucaj tam rzeczy stopniowo i używaj tego wolumenu naprawdę, od czasu do czasu. Po drugie, ilość: jeśli zadeklarowałeś kontener na 50 GB, a w środku są trzy megabajty, pytanie „a po co tyle miejsca?" nasuwa się samo.
I rzecz najważniejsza: nie kładź tam niczego, czego naprawdę nie możesz stracić. Dlaczego — w następnej sekcji.
Największa pułapka: jak nie nadpisać ukrytych danych
Tu jest haczyk, przez który ludzie tracą dane, i praktycznie żaden polski tekst o nim nie wspomina.
Wolumen zewnętrzny nie wie, że ukryty istnieje. I nie może wiedzieć — gdyby wiedział, gdyby gdziekolwiek była zapisana informacja „uwaga, od tego miejsca zaczyna się coś jeszcze", to ta informacja byłaby dowodem istnienia ukrytego wolumenu. Cała konstrukcja opiera się na tym, że takiego dowodu nie ma.
Konsekwencja jest brutalnie prosta: kiedy montujesz wolumen zewnętrzny i zapisujesz do niego pliki, system operacyjny widzi tam po prostu wolne miejsce. Więc z niego korzysta. A wolne miejsce na końcu kontenera to jest Twój ukryty wolumen.
Zapis przechodzi bez najmniejszego ostrzeżenia. Nie ma komunikatu, nie ma błędu, nic nie miga na czerwono. Dowiadujesz się miesiąc później, gdy ukryty wolumen przestaje się montować — bo jego nagłówek albo dane zostały nadpisane wakacyjnymi zdjęciami. Nie da się tego odzyskać.
Ukryty wolumen niszczy się nie przez atak, tylko przez zwykłe używanie tego, co go przykrywa.
Powstaje z tego napięcie, którego nie da się całkiem rozwiązać. Wolumen zewnętrzny powinien wyglądać na używany, żeby był wiarygodny — ale każde użycie zbliża Cię do skasowania tego, co chronisz. Dlatego istnieje tryb ochrony.
Tryb ochrony ukrytego wolumenu przy zapisie
VeraCrypt daje na to rozwiązanie, tylko trzeba je włączyć ręcznie, za każdym razem.
Montując wolumen zewnętrzny, w oknie „Wprowadź hasło dla wolumenu VeraCrypt" — zanim klikniesz OK — naciśnij przycisk „Opcje…" (Mount Options). Otworzy się okno „VeraCrypt - Opcje podłączania", a w nim, w sekcji Wolumen ukryty, znajdziesz pole „Chroń wolumeny ukryte przed zniszczeniem". Zaznacz je i podaj poniżej hasło do ukrytego wolumenu.
Po zamontowaniu VeraCrypt wyświetla komunikat potwierdzający, że ochrona działa — i przy okazji tłumaczy dokładnie to samo, co opisałem wyżej: że przy próbie zapisu zablokuje cały wolumen, że może to uszkodzić system plików wolumenu zewnętrznego i że powtarzanie takich sytuacji zagraża wiarygodnemu zaprzeczeniu istnienia wolumenu ukrytego.
Działa to sprytniej, niż mogłoby się wydawać. VeraCrypt nie montuje ukrytego wolumenu — odszyfrowuje tylko jego nagłówek w pamięci, żeby dowiedzieć się, gdzie się zaczyna i jak jest duży. Potem montuje wolumen zewnętrzny i po prostu odrzuca każdą próbę zapisu w tym obszarze. Ukryte dane pozostają zaszyfrowane i niedostępne przez cały czas.
Gdy system spróbuje tam coś zapisać, cały kontener przechodzi w tryb tylko do odczytu, a Windows zgłasza błąd zapisu. Wygląda to na awarię, ale to jest właśnie ochrona w działaniu.
Dwie rzeczy, o których trzeba pamiętać:
- Ochrona wyłącza się po każdym odmontowaniu. Nie jest zapisana w kontenerze i nie włączy się sama. Musisz ją zaznaczać przy każdym montowaniu wolumenu zewnętrznego, bez wyjątku.
- Nie ma żadnego dziennika. Program nie zapisuje, czy ochrona była włączona ani czy zablokowała jakiś zapis. Po odmontowaniu nie sprawdzisz już, czy tym razem pamiętałeś.
A teraz najważniejsze zdanie w całym tekście.
Nigdy nie włączaj tej ochrony, gdy ktoś patrzy Ci na ręce. Kiedy jest aktywna, na liście zamontowanych wolumenów w kolumnie Typ pojawia się wartość Zewnętrzny. Angielska dokumentacja opisuje to jako Outer(!), z wykrzyknikiem — w polskiej wersji, którą sprawdzałem, wykrzyknika nie ma. To niczego nie zmienia, bo samo słowo załatwia sprawę: wolumen „zewnętrzny" jest zewnętrzny wobec czegoś, a VeraCrypt w ogóle nie potrafi go tak nazwać, dopóki nie poda mu się hasła do ukrytego. Bez włączonej ochrony ten sam kontener wyświetla się jako zwykły wolumen.
Innymi słowy: ta jedna wartość w tabeli mówi obserwatorowi wszystko. Jeśli otwierasz wolumen zewnętrzny pod presją, ochrona jest ostatnią rzeczą, jaką powinieneś włączyć — zamiast chronić dane, ogłasza dokładnie to, co miało zostać tajemnicą.
W takiej sytuacji jest prostsze wyjście: w tym samym oknie „Opcje podłączania" zaznacz na samej górze „Podłącz wolumen tylko do odczytu". Nic nie zostanie zapisane, więc ukrytym danym nic nie grozi, a w kolumnie Typ nie pojawi się nic podejrzanego. Zapamiętaj to jako regułę — ochrona do własnej pracy, tryb tylko do odczytu do pokazywania.
Czego ukryty wolumen nie załatwi
Na koniec granice, bo bez nich powstaje złudzenie bezpieczeństwa, które bywa gorsze od jego braku.
Nie ukrywa faktu, że używasz VeraCrypta. Program jest zainstalowany, plik kontenera leży na dysku. Nie da się zaprzeczyć, że coś szyfrujesz — da się tylko zaprzeczyć, że jest tam drugie dno.
Nie chroni przed przejętym systemem. Keylogger zapisze oba hasła równie chętnie. Jeśli komputer jest pod cudzą kontrolą, konstrukcja z dwoma hasłami nie ma żadnego znaczenia.
Zdradzają Cię ślady w systemie. To najczęstsza realna wpadka: lista ostatnio otwieranych dokumentów, skróty, miniatury zdjęć, pliki tymczasowe edytora, historia w programie do otwierania plików. Wszystko to potrafi wskazywać na ścieżki wewnątrz ukrytego wolumenu, mimo że sam wolumen jest doskonale niewidoczny. VeraCrypt poświęca temu osobną stronę dokumentacji — Security Requirements for Hidden Volumes — i warto ją przeczytać, zanim uznasz, że jesteś zabezpieczony.
To nie jest technika wyłącznie techniczna. Wiarygodne otwarcie wolumenu zewnętrznego przy kimś, kto Cię obserwuje, wymaga zachowywania się jak człowiek, który po prostu podał swoje hasło. Program tego za Ciebie nie zrobi.
I zastrzeżenie, którego nie pominę: nie jestem prawnikiem, a to nie jest porada prawna. W różnych krajach różnie wygląda kwestia tego, co wolno zataić i jakie są konsekwencje wprowadzenia w błąd. Jeśli sięgasz po ukryty wolumen dlatego, że spodziewasz się realnego postępowania, porozmawiaj z kimś, kto zna prawo Twojego kraju.
Na koniec
Ukryty wolumen to narzędzie do wąskiego modelu zagrożenia i tylko w nim ma sens. Jeśli chronisz się przed zgubieniem pendrive'a — zwykły zaszyfrowany kontener jest właściwą odpowiedzią i nie musisz brać na siebie ryzyka, że przypadkowym zapisem skasujesz sobie dane.
Ale jeśli realnie liczysz się z tym, że ktoś może Cię zmusić do otwarcia — to jest jedyna funkcja w powszechnie dostępnym oprogramowaniu, która daje na to odpowiedź. Za darmo, w kodzie, który każdy może sprawdzić.
Aktualną wersję pobierzesz z veracrypt.io. Sprawdź numer, zanim zaczniesz — przy tej akurat funkcji naprawdę robi różnicę.
Przeczytaj też
Signal czy WhatsApp — czym się różnią i czy warto się przesiąść
Signal i WhatsApp używają tego samego szyfrowania. Różnica jest gdzie indziej: reklamy, metadane i właściciel. Sprawdź, co realnie zyskujesz po przesiadce.
Jak zaszyfrować pendrive'a — dlaczego wybrałem VeraCrypt
Szyfrowanie pendrive'a w praktyce: dlaczego programy producentów zawodzą, jak wypadają BitLocker i FileVault oraz czym są ukryte wolumeny VeraCrypt.
Menedżer haseł — jak działa i który wybrać na początek
Menedżer haseł w praktyce: autouzupełnianie, generator haseł, plik .kdbx i synchronizacja. Porównanie KeePassXC, Bitwarden, Proton Pass i 1Password.