r   e   k   l   a   m   a
r   e   k   l   a   m   a

Ukryj swoje dane: szyfrowanie na Windows z VeraCryptem

Strona główna AktualnościBEZPIECZEŃSTWO

O ile kwestia szyfrowania dysków na Linuksie jest dziś już kwestią oczywistą – pakiet LUKS/dm-crypt jest częścią praktycznie każdej dystrybucji – to z systemami z rodziny Windows mamy pewien kłopot. Wcale nie dlatego, że niezbędnego oprogramowania brakuje, jest wręcz przeciwnie. Oprócz microsoftowego BitLockera (niedostępnego jednak dla użytkowników domowych wersji „okienek”) mamy całą gamę oprogramowania własnościowego, tworzonego wyraźnie z myślą o potrzebach korporacyjnego użytkownika, oraz kilka rozwijających się projektów Open Source, próbujących zająć miejsce słynnego True Crypta. Po analizie ich jakości i możliwości zdecydowaliśmy się w naszym poradniku szyfrowania dla Windowsów zająć bliżej VeraCryptem.

Wybór VeraCryptu nie był wcale oczywisty – program, który powstał na bazie kodu TrueCrypta, może u niejednego budzić niepokój. W końcu pamiętamy, jak TrueCrypt skończył, porzucony przez jego anonimowych autorów z tajemniczym komunikatem „zawiera nierozwiązane usterki bezpieczeństwa”. Z drugiej jednak strony jego konkurenci, tacy jak LibreCrypt, CipherShed czy DiskCryptor też mają swoje problemy, nie dorównują też mu tempem rozwoju.

VeraCrypt na Windowsa znajdziecie w naszej bazie oprogramowania.

r   e   k   l   a   m   a

W swojej obecnej postaci (wersja 1.17) VeraCrypt wnosi na stół całkiem sporo, eliminując nie tylko odkryte w TrueCrypcie luki bezpieczeństwa, ale i wzmacniając szyfrowanie, m.in. poprzez zastosowanie większej liczby iteracji dla funkcji wyprowadzenia klucza PBKDF2 czy wprowadzenie możliwości wykorzystywania znaków Unicode w haśle. Od początku prac nad programem jego deweloperzy postarali się o dziesiątki drobnych, ale istotnych poprawek funkcjonalnych, dzięki którym czuć, że nie jest to po prostu zrekompilowany TrueCrypt.

Prawdziwym powodem, dla którego jednak zdecydowaliśmy się na VeraCrypta jest chęć przedstawienia koncepcji znanej w kryptografii jako „wiarygodne zaprzeczenie” (ang. plausible deniability), która zdaniem niektórych może pozwolić nam przetrwać nawet kryptoanalizę za pomocą gumowej pałki. Istnieją inne programy pozwalające na wiarygodne zaprzeczenie, ale żaden nie jest tak dopracowany i wygodny.

Osoby mające rygorystyczny stosunek do licencjonowania oprogramowania mogą mieć mieszane uczucia do VeraCrypta. W pewnym sensie jest to oprogramowanie powstałe nielegalnie. Kod źródłowy TrueCryptu był bowiem publicznie udostępniony przez jego anonimowych twórców, jednak z zastrzeżeniami zakazującymi jakichkolwiek przeróbek czy forkowania – nie miał więc nic wspólnego z normalnie rozumianym Open Source. VeraCrypt jest tymczasem obecnie rozpowszechniany na licencji Apache 2.0 (wcześniej Microsoft Public License), jednak wciąż sporo jego kodu jest na nie tak znowu wolnej licencji TrueCrypt License. W teorii więc twórcy TrueCrypta mogliby sobie pozwolić na pozew przeciwko francuskiej firmie IDRIX, producentowi VeraCrypta – jest to jednak mało prawdopodobne, biorąc pod uwagę to, jak bardzo dbali o swoją anonimowość i jak gwałtownie odcięli się od swojego dzieła.

Kontener dla tych, co mają trochę do ukrycia

VeraCrypt oferuje swoim użytkownikom trzy funkcje związane z szyfrowaniem pamięci masowej. Za pomocą tego programu możemy stworzyć wirtualny zaszyfrowany dysk-kontener, widoczny w systemie jak dowolny inny dysk, zaszyfrować fizyczną partycję lub cały dysk, albo też zaszyfrować partycję z systemem operacyjnym.

Zacznijmy od najprostszego scenariusza, w którym użytkownik chce po prostu stworzyć zaszyfrowany kontener – plik dowolnej wielkości, który można swobodnie przenosić między komputerami (i to nie tylko działającymi pod kontrolą Windowsów). Taki kontener można następnie poprzez VeraCrypt podpiąć do systemu plików, tak by był widziany jako normalny dysk systemowy na czas, gdy jest podpięty.

W tym celu klikamy przycisk Utwórz wolumen, który wywołuje Kreatora tworzenia wolumentów VeraCrypt. Interesująca nas opcja, tj. Stwórz zaszyfrowany plik (magazyn), jest domyślnie zaznaczona. Klikamy więc Dalej, pozostawiając na następnym ekranie Typ wolumenu domyślną opcję – Standardowy wolumen TrueCrypt. Kolejne Dalej i kolejny ekran, Lokalizacja wolumenu. Tu wybieramy miejsce i nazwę pliku, uważając, by nie wprowadzić nazwy pliku już istniejącego, gdyż to doprowadzi do jego skasowania.

Następny krok w kreatorze przedstawi opcje szyfrowania. Domyślnie ustawiony jest jako algorytm szyfrujący AES z kluczem 256-bitowym, zaś jako algorytm mieszający – SHA512. Wbrew rozmaitym opiniom, z jakimi możecie spotkać się w Sieci, nie sądzimy, by były to złe ustawienia. AES, choć nie został wybrany na standard za sprawą bezpieczeństwa, a raczej za sprawą łatwości jego sprzętowej implementacji, nie ma znanych słabości, a gdyby miał, to byłaby to prawdziwa kryptokalipsa – jest dziś najpopularniejszym na świecie szyfrem blokowym. Ma też jeszcze jedną zaletę, na większości mikroprocesorów wykorzystuje sprzętową akcelerację, dzięki czemu jest znacznie szybszy od innych szyfrów. Przekonać się o tym możemy uruchamiając Test wydajności:

Jak widać, czysty AES jest o rząd wielkości szybszy od konkurentów. Oczywiście, jeśli chodzicie w kapeluszach z folii aluminiowej, możecie zastosować jakiś inny szyfr, spoza oficjalnej rekomendacji amerykańskich władz, np. zaprojektowany przez słynnego Bruce'a Schneiera Twofish, a nawet połączyć algorytmy, czyli szyfrować kaskadowo, dwoma, a nawet trzema szyframi. W ten sposób, gdyby w przyszłości odkryto jakąś słabość w jednym z algorytmów, użytych do szyfrowania, dane wciąż byłyby bezpieczne. Pozostaje oczywiście pytanie, czy ludzie w takich kapeluszach chcieliby używać Windowsa, a nie np. OpenBSD.

Jeśli chcecie swoje dane zabezpieczyć przed jakąś dużą agencją o trzyliterowej nazwie, to można zastosować kombinację AES(Twofish(Serpent)). Napastnik na początku będzie się musiał zająć najpopularniejszym kryptosystemem (który być może jakoś tam potrafi złamać). Wtedy jednak odkryje, że pod spodem jest Twofish. Gdy i ten ulegnie, pod spodem czeka prawdziwe monstrum, Serpent, szyfr blokowy jak do tej pory najbardziej odporny na starania matematyków.

Jeśli chodzi o algorytm funkcji skrótu, to oprócz SHA-512 mamy dostępne SHA-256 (to ta sama funkcja SHA-2, tylko zwracająca krótszy skrót) i Whirlpool, będący pomysłem jednego ze współautorów AES-a. Zwraca on 512-bitowe skróty wiadomości i w swojej obecnej trzeciej wersji jest odporny na wszelkie znane ataki.

W następnych krokach pozostaje nam podać rozmiar pliku-kontenera (minimalna wielkość zależy od użytego w nim systemu plików, dla windowsowego NTFS to niecałe 4 MB) i ustawić hasło dostępowe, o maksymalnej długości do 64 znaków. To ono (z dodatkiem obecnej w systemie losowości oraz kryptograficznej soli) posłuży do wygenerowania kluczy szyfrujących. Obok hasła możemy zastosować też binarne pliki-klucze (przechowywane później następnie na noszonym przy sobie pendrivie), ale uwaga – jeśli je uszkodzimy lub stracimy, dostępu do zaszyfrowanego kontenera nigdy nie odzyskamy. Można tu też włączyć zwiększenie liczby iteracji szyfujących (poprzez zaznaczenie pozycji „użyj MOI”).

Czas na sformatowanie wolumenu. Tutaj musimy zbudować pulę entropii, która zasili generator liczb pseudolosowych, jeżdżąc przez chwilę wskaźnikiem myszki po ekranie, a gdy wskaźnik losowości będzie już zielonym paskiem, wybrać z opcji system plików (na Windowsach to FAT, NTFS i exFAT do wyboru), rozmiar klastra (można pozostawić domyślny) i włączyć tryb dynamiczny. Tryb taki sprawia, że początkowo plik-kontener będzie małych rozmiarów, rosnąc w miarę jego zapełniania, aż do maksymalnej ustalonej na początku pojemności. Niestety zwalnia to odczuwalnie działanie kontenera, jak również stanowi pewne zagrożenie dla bezpieczeństwa, więc lepiej z dynamicznego trybu nie korzystać.

Po kliknięciu Sformatuj rozpocznie się proces tworzenia kontenera, który zakończy komunikat Wolumen VeraCrypt został pomyślnie utworzony.

Praca z zaszyfrowanymi kontenerami

Stworzony w poprzednim kroku kontener możemy teraz podłączyć jako dysk wirtualny Windowsa. W tym celu na głównym ekranie VeraCryptu klikamy Wybierz plik i odnajdujemy plik w systemie. Następnie z widocznej u góry listy wolnych liter napędów dyskowych wybieramy tę, którą chcemy używać dla wirtualnego dysku (np. K: – jak kryptografia). Teraz pozostaje jedynie kliknąć przycisk Podłącz.

W wyświetlonym oknie dialogowym będziemy musieli podać nasze hasło. Z dostępnych tu opcji najważniejszą rolę spełnia wykorzystanie plików-kluczy (o ile zastosowaliśmy je przy tworzeniu kontenera), oraz przechowywanie haseł i kluczy w pamięci podręcznej na czas trwania sesji. Jeśli mamy kontenery stworzone za pomocą starego TrueCrypta, trzeba jeszcze zaznaczyć Tryb TrueCrypt.

Przed kliknięciem OK warto zerknąć jeszcze do Opcji: tam można ustawić podłączanie zaszyfrowanego kontenera jako wolumenu tylko do odczytu, jako nośnika wymiennego, podać jego etykietę, jak też zarządzać mechanizmami obsługi wspomnianych już wolumenów ukrytych.

Po podłączeniu kontenera sprawuje się on dokładnie tak samo jak każdy inny dysk w systemie, dostępny dla menedżera plików czy okien dialogowych innych aplikacji. Z kontenera można bezpośrednio odtwarzać media (będą one odszyfrowywane dynamicznie w pamięci) jak i bezpośrednio do niego media zapisywać. Po zakończeniu pracy należy kontener odłączyć (przycisk Odłącz lub Odłącz wszystko, jeśli mamy ich więcej), a następnie, dla bezpieczeństwa… wyłączyć komputer. Wyłączyć, a nie tylko uśpić z zapisaniem stanu do RAM, znane są bowiem dobrze metody, które pozwalają z aktywnej pamięci komputera wydobyć klucze szyfrujące.

Mam wszystko do ukrycia – co robić?

Zabezpieczenie wrażliwych plików w kontenerze VeraCryptu to dobry pomysł… ale jest tu jeden problem. Otwierając pliki z szyfrowanego wirtualnego dysku nie jesteśmy w stanie zapewnić, że nic z nich nie wycieknie, że nic nie zostanie zapisane gdzieś w pliku cache na partycji systemowej, że programy z których korzystamy nie zachowają czegoś w swojej historii. Dlatego oprócz zaszyfrowanych kontenerów bardzo ważne jest zadbanie o to, by zaszyfrowany był cały systemowy dysk. Dzięki temu nawet jeśli napastnik uzyska fizyczny dostęp do komputera, nie będzie mógł przeprowadzić analizy jego zawartości – jedyne, czego się dowie, to fakt, że korzystamy z szyfrowania.

Szyfrowanie systemowego dysku zaczynamy od wybrania z menu System pozycji Szyfruj partycję lub dysk systemowy… Uruchamia to kreatora tworzenia wolumenów VeraCrypt, w którym zaczniemy od Typu Systemu Szyfrowania. Pozostawmy opcję domyślną – normalny. W kolejnym kroku należy wybrać Obszar do zaszyfrowania. Pierwsza opcja wiąże się z zaszyfrowaniem systemowej partycji Windows, druga służy do zaszyfrowania całego dysku, ze wszystkimi występującymi na nim partycjami. Dla większego bezpieczeństwa polecamy skorzystanie z drugiej opcji.

W systemach z aktywnym mechanizmem User Account Control otrzymamy wówczas pytanie o zgodę wprowadzenie zmian przez VeraCrypt – oczywiście udzielamy jej. Wówczas VeraCrypt zapyta, czy chcemy szyfrować Obszar Chroniony Hosta, czyli miejsca, do których system operacyjny zwykle nie ma dostępu, ale do którego dostęp mieć mogą pewne programy. Tutaj ludzie w kapeluszach z folii aluminiowej powinni zaznaczyć Tak – chyba że korzystają np. z macierzy RAID, czy mają gdzieś zaszyte specjalne narzędzia diagnostyczne czy usługi przywracania systemu.

Następny krok to pytanie o liczbę systemów operacyjnych. Jeśli korzystacie tylko z Windowsa, wybierzcie pierwszą opcję (jeden system), jeśli np. z Windowsa i Linuksa, skorzystać należy z drugiej. Wtedy przyjdzie wybrać algorytm szyfrowania – dostępne są tu takie same opcje jak przy tworzeniu szyfrowanych kontenerów (z AES jako domyślnym algorytmem), oraz algorytm funkcji skrótu (tym razem do wyboru jest stary RIPEMD-160 oraz SHA-256. Tak samo też wyglądają opcje Hasła, z możliwością zastosowania plików-kluczy czy zwiększenia liczby iteracji (MOI). Podajemy więc mocne hasło do zaszyfrowania całego dysku i w kolejnym kroku machając myszką wypełniamy pulę entropii.

Tylko kilka kliknięć Dalej dzieli nas od rozpoczęcia operacji – VeraCrypt informuje, że wygenerował klucz nagłówka i klucz główny. Operacja nie zaczyna się jednak od szyfrowania, lecz od wypalenia płyty ratunkowej. Pomoże ona w sytuacji, gdy bootloader, główny klucz lub inne ważne dane zostały uszkodzone, lub też gdy uszkodzeniu uległ system operacyjny. Za jej pomocą osoba znająca hasło (i dysponująca ewentualnymi plikami-kluczami) może odszyfrować dysk z systemem. Będziemy też musieli wybrać tryb wymazywania, mający pomóc w obronie przed atakami pozwalającymi odtworzyć nadpisane (wcześniej niezaszyfrowane) treści. Domyślnie jest on dziś wyłączony, ale paranoicy mogą zastosować nawet 35-przebiegowe czyszczenie metodą Gutmanna. Oczywiście wydłuży to cały proces.

Kto dzisiaj ma w komputerze nagrywarkę CD/DVD? Mimo że nośniki optyczne odeszły już do lamusa, program wciąż domaga się wypalenia płyty. Na szczęście mamy możliwość wygenerowania obrazu ISO, do zapisania go np. na pendrive.

Przed rozpoczęciem szyfrowania VeraCrypt przeprowadza jeszcze test szyfrowania, a następnie wyświetla ostrzeżenia o tym, że interfejs bootloadera może być tylko w języku angielskim i wyjaśnia, jak odtworzyć system po tym, gdyby jednak po zakończeniu operacji nie udało się uruchomić Windowsa. Kliknięcie OK powoduje restart systemu i uruchomienie go w trybie specjalnym, w którym zobaczymy jedynie surową konsolę VeraCrypt Boot Loader.

Po wpisaniu hasła, weryfikacja trochę potrwa, a następnie Windows uruchomi się ponownie – niezaszyfrowane. O co chodzi? To był tylko test. Dopiero teraz, jeśli wszystko poszło dotąd dobrze, można rozpocząć szyfrowanie, klikając Zaszyfruj.

Proces ten potrwać może nawet wiele godzin. W tym czasie możemy wciąż pracować (choć spowolni to operację) albo odłożyć proces kreatora na później (przycisk Opóźnij). Bez obaw możemy też w trakcie szyfrowania zamknąć komputer – po włączeniu proces wznowiony zostanie od miejsca, w którym go zakończyliśmy.

Tu jest tylko porno, przysięgam!

W wielu sytuacjach posiadanie zaszyfrowanego dysku może oznaczać kłopoty. Lecicie do Stanów Zjednoczonych z zaszyfrowanym laptopem? Nie zdziwcie się, jeśli na lotnisku zostaniecie poproszeni o włączenie komputera, tak by pracownik TSA zobaczył przynajmniej zrozumiały dla niego pulpit Windows. Laptop służbowy, obowiązkowo zaszyfrowany? Nie szkodzi, lepiej go odszyfrujcie, chyba że chcecie nie zdążyć na samolot, spędzić godziny z niekoniecznie sympatycznymi panami. A może spotkanie z brytyjską policją, która na wszelki wypadek sprawdzi, czy na komputerze nie masz nielegalnej pornografii? Odmowa wydania policji kluczy kryptograficznych jest w Zjednoczonym Królestwie przestępstwem, za które niektórzy trafili już do więzienia.

Wiarygodne zaprzeczenie jest sposobem na to, by oszukać napastników, którzy przejęli komputer i są w stanie zażądać wydania do niego kluczy – bo podstawowe badanie pokazuje im, że mają do czynienia z zaszyfrowanym dyskiem. Tak, dysk jest zaszyfrowany, ale tam nie ma nic ciekawego – wyznaje ofiara. Ukryłem tam tylko kilka filmów z panienkami, by się żona przypadkiem nie dowiedziała… proszę, zobaczcie sami. Hasło zostaje wydane, dysk zostaje odszyfrowany, w środku napastnicy znajdują wspomniane filmy. Taktyka wędzonego śledzia, by przerwać trop gończych psów.

Gdyby jednak ofiara wydała inne hasło, oczom napastników ukazałyby się zupełnie inne dane – być może ważne dane finansowe spółki, a może szczegółowe plany jakiegoś wynalazku? Te dane znajdowały się w ukrytym wolumenie, nieodróżnialnym od losowego szumu, zanurzonym w normalnie widocznym zaszyfrowanym wolumenie. Jeśli implementacja wiarygodnego zaprzeczenia jest poprawna, żadna analiza zawartości dysku nie wykaże istnienia takiego wolumenu, losowość odkrytych danych uzasadniona jest bezpiecznym czyszczeniem przed szyfrowaniem.

VeraCrypt pozwala na takie ukrycie danych zarówno w zaszyfrowanej partycji jak i w zaszyfrowanym kontenerze. W wypadku korzystania zaś z kompletnego szyfrowania dysków, pozwala na stworzenie ukrytej instalacji systemu operacyjnego. Zacznijmy od kontenera, choćby dlatego, by zrobić sobie małą odskocznię i pokazać, jak działa VeraCrypt pod Linuksem.

VeraCrypt w wersji na Linuksa i Maka jest zubożony, przede wszystkim nie pozwala zaszyfrować całego dysku z systemem operacyjnym. Można go tam jednak potraktować jako dobre dopełnienie natywnych dla tych systemów mechanizmów szyfrowania, tj. LUKS/dm-crypt i FileVault 2. Pełna kompatybilność z wersją dla Windowsów, podobieństwo interfejsu i możliwość łatwego tworzenia ukrytych wolumenów sprawiają, że narzędzie to powinno się spodobać nie tylko użytkownikom „okienek”.

Schowani w kontenerze

Na głównym ekranie klikamy Utwórz wolumen, a następnie wybieramy Stwórz zaszyfrowany plik (magazyn) i Ukryty wolumen VeraCrypt. Podobnie jak w wypadku zwykłego szyfrowanego wolumenu wskazujemy lokalizację i opcje szyfrowania zewnętrznego wolumenu oraz jego rozmiar. Pozostaje jeszcze poruszać trochę myszką podczas generowania odpowiedniej ilości entropii – i zewnętrzny wolumen jest gotowy.

Teraz zaczynają się różnice. W kolejnych krokach określimy szyfrowanie i rozmiar ukrytego wolumenu – rozmiar oczywiście trochę mniejszy niż wolumenu zewnętrznego. Radzi się zastosować odmienny szyfr jak i hasło znacząco niepodobne do wcześniej użytego. Wybierzemy jeszcze opcje formatowania, ustawimy współpracę z innymi systemami operacyjnymi, pomachamy nieco myszą do wygenerowania entropii – i rozpoczniemy formatowanie.

Kluczową kwestią przy korzystaniu z ukrytego wolumenu jest zadbanie o bezpieczeństwo zawartych na nim danych. Pamiętajmy, że po podłączeniu zewnętrznego szyfrowanego wolumenu, VeraCrypt nic nie wie o istnieniu czegokolwiek innego. Wszelkie operacje prowadzone na zaszyfrowanym zewnętrznym wolumenie mogą doprowadzić do uszkodzenia ukrytych danych.

By tego uniknąć, podczas montowania zaszyfrowanego wolumenu, zawierającego ukryte dane, należy w Opcjach podłączenia zaznaczyć pozycję Chroń wolumeny ukryte przed zniszczeniem i podać hasło do ukrytego wolumenu. VeraCrypt podłączy go w trybie bezpiecznym, blokując zapis w miejscach przynależnych wolumenowi ukrytemu. W ten sposób możemy spokojnie wypełniać zewnętrzny wolumen danymi mającymi odwrócić uwagę.

Podłączenie ukrytego wolumenu sprowadza się do wybrania pliku-kontenera i podania nie hasła otwierającego zewnętrzny szyfrowany wolumen, ale właśnie hasła do wolumenu ukrytego. Zajmie to nieco dłużej czasu, jednak po chwili VeraCrypt pokaże podpięty wolumen, o innym rozmiarze (i być może systemie szyfrowania) od zewnętrznego. Możemy z niego korzystać tak samo, jak z każdego zwykłego wolumenu szyfrowanego.

Ukryty system? Jaki system?

W analogiczny sposób VeraCrypt pozwala na zastosowanie wiarygodnego zaprzeczenia dla ukrycia całego systemu operacyjnego. Powstaje w ten sposób zaszyfrowany system operacyjny – przynęta, np. Windows 10, oraz zaszyfrowany i ukryty system operacyjny, który będzie zawierał wrażliwe pliki, i którego istnienia w teorii nie można dowieść. W ten sposób grożącemu użyciem siły napastnikowi można śmiało wydać hasło do komputera, by mógł się cieszyć oglądaniem naszej kolekcji pornografii i PIT-ów.

Należy jednak podkreślić, że rozwiązanie to nie gwarantuje totalnego bezpieczeństwa, co więcej może ściągnąć na użytkownika kłopoty. Znane są prace dotyczące informatycznych technik wykrycia istnienia ukrytych wolumenów, sceptycy zauważają też, że wykorzystanie programu pozwalającego na wiarygodne zaprzeczenie wcale nie uodparnia użytkownika na kryptoanalizę za pomocą gumowej pałki. Napastnik może być przekonany, że gdzieś tam są ukryte dane, eskalując techniki przesłuchania ofiary do poziomu tortur, a ofiara, nawet jeśli niczego nie ukryła, nie może tego w żaden sposób udowodnić.

By ta taktyka się powiodła, kluczowe jest jednak korzystanie z systemu-przynęty jak najczęściej, właściwie to przynęta powinna być systemem głównym, podczas gdy system ukryty używany byłby tylko do pracy z tymi wrażliwymi danymi. Nie należy się przy tym obawiać o uszkodzenie danych, zadba o to VeraCrypt. Jak to się dzieje – to już wyjaśnimy sobie w kolejnym artykule z tego cyklu, poświęconym zaawansowanym technikom szyfrowania danych na dysku.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.