Szyfrowanie jest w obecnych czasach koniecznością. Żyjemy w czasach, gdzie informacja jest w cenie niejednokrotnie większej niż złoto. Dane są więc najcenniejszym materiałem jaki gromadzimy na dyskach twardych naszych komputerów.
Są to poufne informacje o klientach, raporty finansowe i wyniki niejawnych analiz. Szyfrujący swoje dane za pomocą nowoczesnych algorytmów powinni mieć świadomość pochodzenia pierwowzoru jednego z najbardziej popularnych obecnie narzędzi, jakim jest VeraCrypt. To oprogramowanie do szyfrowania wolumenów, plików bądź całych dysków, które zajęło miejsce znanego niegdyś produktu do szyfrowania znanego od nazwą TrueCrypt. Jak bezpieczny jest VeraCrypt? Jaka jest jego przeszłość, jakie alternatywy?
Burzliwa historia i audyt bezpieczeństwa TrueCrypt
Na początku (2004) był TrueCrypt. Oprogramowanie na licencji Open Source dla systemów Microsoft Windows 2000/XP/2003/Vista/2008/7, Linux oraz Mac OS, umożliwiające szyfrowanie całych dysków lub pojedynczych partycji. TrueCrypt miał opinię „nie do złamania”. Istnieją udokumentowane przypadki, kiedy FBI (często pracujące jako podwykonawca NSA) nie radziło sobie z rozszyfrowaniem dysków zaszyfrowanych TrueCryptem.
TrueCrypt przez kilka lat rozwijany był w dość stabilny sposób mimo, że pojawiały się oskarżenia o kradzież kodu czy próby zmiany licencji. Jednak projekt publicznego audytu kodu TrueCrypta we wstępnym raporcie potwierdził brak jakichkolwiek backdoorów. Informacja ta uspokoiła deweloperów, szczególnie gdy w tle czaiły się doniesienia na temat luki w otwarto-źródłowym projekcie OpenSSL, znanej jako HeartBleed.
Zmiany w kodzie źródłowym ostatniej wersji TrueCrypta wskazywały, że podmieniono w nim funkcję do zakładania nowych bezpiecznych kontenerów na zaślepkę wyświetlającą ostrzeżenie podobne do tego, które znajduje się na stronie TrueCrypta:
Poprzednie wersje TrueCrypta zostały jednocześnie usunięte ze strony. Usunięto nawet kopie strony z projektu.
W 2015 roku przeprowadzono audyt TrueCrypta, zaś w opublikowanym raporcie przygotowanym przez NCC Group na temat dziur w kodzie dla wersji 7.1a. znaleziono cztery podatności. Mimo, że nie udowodniono celowego umieszczenia backdoora dla NSA, znaleziono kilka błędów, które umożliwiały odzyskanie klucza szyfrującego (błąd w generatorze liczb losowych). Wskazano też na problemy dotyczące bezpieczeństwa algorytmu AES, którym TrueCrypt szyfrował pliki. Wtedy właśnie zaprzestano rozwoju TrueCrypta. Jego bezpieczną i oficjalną alternatywą od roku 2015 stał się VeraCrypt (oficjalna strona).
Oprogramowanie VeraCrypt bazuje na kodzie TrueCrypt i jest ciągle rozwijane. Z założenia nie powinno zawierać błędów czy podatności swojego poprzednika (przynajmniej tak zakładano). Jest darmowe i można je zainstalować na Windows, Mac OS, Linux, FreeBSD. W wypadku wykrycia dziur w zabezpieczeniach, są one szybko eliminowane. Dodatkowo aplikacja ma otwarty kod źródłowy, zatem teoretycznie można mieć pewność, że nie ma w niej ukrytych backdoorów. VeraCrypt pozwala na szyfrowanie dysków, partycji lub plików – montuje je jako osobne wolumeny.
Algorytmy szyfrujące VeraCrypt
VeraCrypt udostępnia jedne z najbardziej bezpiecznych i sprawdzonych algorytmów szyfrujących i mieszających. Algorytmy szyfrujące to między innymi AES, Serpent, Twofish, Camellia, Kuznyechik i ich kaskadowe kombinacje:
- AES (Advanced Encryption Standard) – 256-bitowy algorytm Rijndael stosowany przez rząd USA, przyjęty jako standard w 2001 w wyniku konkursu (drugie miejsce zajął Serpent). To symetryczny algorytm, który zapewnia dużą wydajność i bezpieczeństwo.
- Serpent – oferuje znacznie lepsze bezpieczeństwo, jednak kosztem wydajności. Korzysta z 128-bitowych bloków i 256-bitowego klucza.
- Twofish – symetryczny algorytm szyfrujący, operujący na blokach 128-bitowych i maksymalnej długości klucza wynoszącej 256 bitów. W testach bez wspomagania sprzętowego jest szybszy niż AES przy kluczu 256 bit i jednocześnie bezpieczniejszy.
- Camelia – algorytm, który powstał przy współpracy Mitsubishi i NTT Japan. Jest bardzo podobny do AES i oferuje porównywalne bezpieczeństwo i osiągi. Od wielu lat jest wybierany przez japoński rząd jako główny algorytm szyfrujący.
- Kuznyechik – algorytm stworzony na potrzeby Federacji Rosyjskiej. Nazwa oznacza konika polnego.
Algorytmy stosowane kaskadowo teoretycznie pozwalają jeszcze bardziej zwiększyć bezpieczeństwo danych, jednak znacznie redukują przy tym wydajność, co dla typowego użytkownika często stanowi zbyt duże utrudnienie.
Do 2018 roku za najlepszy algorytm uznawano AES, ponieważ większość procesorów ma zaimplementowane wsparcie dla technologii AES-NI, która pozwala na sprzętowe przyspieszenie procesu szyfrowania. Przez takie rozwiązanie wydajność przy szyfrowaniu jest nieporównywalnie wyższa.
Jak to jest z tym bezpieczeństwem?
Po 2015 roku ujawniono kolejne fakty związane z bezpieczeństwem szyfrowania za pomocą VeraCrypt.
Jak donosi portal golem.de (poświęconemu tematyce IT) – niemieckie służby już w 2010 roku opracowały szczegółową analizę oprogramowania TrueCrypt. Świat dowiedział się o tym dopiero po dziewięciu latach. Ujawniono wówczas słabości szyfrowania i deszyfrowania danych za pomocą TrueCrypt.
Istnienie utajnionych dokumentów udowodnił wpis na platformie internetowej „Frag Den Staat”. Na stronie tej obywatele Niemiec w imię prawa dostępu do informacji mogą wysyłać wnioski do rządowych agencji. Tak więc jeden z obywateli niemieckich – inżynier oprogramowania, technolog, śledczy i aktywista ds. danych – Stefan Wehrmeyer – wysłał pytanie do BSI w sprawie TrueCrypta.
Przypuszcza się, że BSI chciało zachować szczegóły techniczne audytu wyłącznie dla siebie. Możliwe też, że chcieli opublikować audyt. Jednak po tym jak Edward Snowden ujawnił skalę inwigilacji w Internecie, zdecydowali się grać na czas.
W odtajnionym dokumencie z 2010 roku na kilkuset stronach opisano:
- implementację algorytmów szyfrujących
- przeprowadzone testy wydajnościowe z użyciem różnych algorytmów na kilku dyskach i konfiguracjach sprzętowych
- problemy związane z bezpieczeństwem
- zalecenia naprawy tych błędów
Według portalu golem.de, wymienione w raporcie luki nie są krytyczne w stosunku do wersji 1.24 VeraCrypt z 6 grudnia 2019 roku. Jednak zaleca się korzystać zawsze z najnowszych wersji i instalować aktualizacje. W związku z tym użytkownicy nadal korzystający z TrueCrypt, powinni jak najszybciej zmienić go na VeraCrypt, który został uznany za bezpieczny.
Jako oprogramowanie z otwartym kodem, VeraCrypt ma swoich zarówno zwolenników jak i przeciwników. Dostępny kod aplikacji umożliwia jej analizę i informowanie użytkowników o lukach, gorzej jeśli nikt takiej luki nie zgłosi.
Zamknięty kod z kolei może być dużo lepiej zabezpieczony jeśli został stworzony przez wielu specjalistów zatrudnionych za duże kwoty. Przynajmniej w teorii.
Jak szyfrować?
W 2018 roku holenderscy badacze z Radboud University uzyskali dostęp do plików na zaszyfrowanych dyskach SSD. Poddane inżynierii wstecznej oprogramowanie układowe ujawniło, że teoretycznie SSD, które zapewniają sprzętowe szyfrowanie (jest szybsze niż za pomocą np. BitLockera lub VeraCrypt), w praktyce nie są bezpieczne.
Udowodniono, że szyfrowanie sprzętowe jest wadliwe. Dla kilku popularnych zaszyfrowanych dysków SSD (Crucial MX100, Crucial MX200, Crucial MX300, Samsung T3 i Samsung T5) odzyskano dane bez znajomości kluczy deszyfrujących. Dla dysków Samsung 840 EVO i Samsung 850 EVO, pliki również dało się odszyfrować, jednak tylko dla wybranych wersji firmware.
Holendrzy udowodnili także, że jeżeli jeśli na dysku zainstalowany jest Windows z funkcją BitLocker, to szyfrowanie danych będzie wykonywane przez konkretny koprocesor. Zarządzaniem kluczami będzie się zajmował BitLocker.
Jak się okazało do tej pory BitLocker szyfrując pliki nie był odporny na wady sprzętowe. Zatem jeżeli funkcja sprzętowego szyfrowania będzie włączona w BIOS-ie, to BitLocker będzie z niej korzystał. Do przetestowania pozostaje to, czy aby nie korzystać z tej zależności, należy wyłączyć sprzętowe szyfrowanie i zastąpić je szyfrowaniem programowym za pomocą np. VeraCrypt lub BitLocker.
Programowe szyfrowanie dysków twardych jest możliwe na kilka sposobów:
- szyfrowanie na poziomie sektorowym całego dysku, zwykle połączone z PBE (Password-Based Authentication) – na przykład Utimaco SafeGuard Easy, CompuSec
- zaszyfrowany kontener – na przykład PGPdisk, TrueCrypt
- transparentne szyfrowanie plików i katalogów na poziomie systemu plików – na przykład EFS, Reiser4
Szyfrowanie programowe jest adekwatne dla pojedynczego pliku lub całego dysku. Szyfrowanie całego dysku (niezależnie od ilości partycji) eliminuje wady związane z wyciekiem wrażliwych danych np. plików tymczasowych, plików stronicowania i pamięci podręcznej.
Użytkownicy Linux powinni o tym pamiętać, ponieważ (w zależności od dystrybucji) podczas instalacji mają dwie opcje do wyboru: albo szyfrowanie całego dysku, albo szyfrowanie poszczególnych katalogów. Szyfrowanie programowe ma też swoje wady jak np. to, że klucz szyfrowania jest obecny w pamięci RAM podczas pracy komputera. Pozostając w stanie hibernacji klucz ten zostaje w pamięci operacyjnej, dlatego oddalając się od laptopa należy wyłączyć komputer (lub stosować mechanizmy typu killswitch). Możliwa jest bowiem kradzież haseł do zaszyfrowanego dysku z pamięci komputera.
Microsoft BitLocker vs VeraCrypt
Funkcja szyfrowania dysku BitLocker dostępna jest tylko w wersji Pro, Enterprise lub Education systemu Windows. Wykorzystuje ona moduł TPM, chyba że dany sprzęt takiego nie posiada – wtedy należy skorzystać z dodatkowego nośnika (pendrive). Zabezpieczony dysk będzie całkowicie bezpieczny w przypadku zwykłego ataku. Prośba o podanie hasła pojawia się, zanim system się załaduje.
Możemy zaszyfrować cały dysk, wybraną partycję, a nawet wybrane nośniki USB. Często przenosimy poufne dane na pendrive’ach – są więc one bardziej podatne na kradzież lub zagubienie. Jeśli te pen drive’y będą odpowiednio zabezpieczone, osoby trzecie nie uzyskają dostępu do zabezpieczonych danych. Wprawdzie zaszyfrowanie całego dysku często oznacza odczuwalny spadek wydajności, to nie jest on drastyczny.
BitLocker | VeraCrypt | |
Dostępność | Windows Pro, Enterprise, Education | Darmowy dla wszystkich |
Opcje szyfrowania | Cała partycja | Partycja lub jej część |
Kompatybilność przy przenoszeniu nośników | Przy zabezpieczeniu TPM nie można przenosić dysku między komputerami | Działa na każdym sprzęcie z zainstalowanym VeraCrypt |
Podsumowanie
W przypadku kradzieży lub zagubienia laptopa, dysku zewnętrznego czy nawet pen drive’a, szyfrowanie danych jest jedyną skuteczną metodą ich ochrony. Samo hasło do systemu nie zapewnia wystarczającej ochrony, jeśli ktoś będzie chciał dostać się do danych. Dlatego warto zadbać o szyfrowanie – po jego konfiguracji dostęp do naszych danych bez znajomości hasła będzie praktycznie niemożliwy. W zależności od tego, jaki mamy sprzęt i jakie dane chcemy zabezpieczyć, możemy skorzystać z różnych metod.
Aby uzyskać dostęp do zaszyfrowanych danych, należy znać algorytm szyfrowania (lub konfigurację kaskady algorytmów) i klucz szyfrujący. A w przypadku BitLockera mieć także dostęp do oryginalnego komputera (a więc do tego samego modułu TPM).
VeraCrypt jest narzędziem równie bezpiecznym jak BitLocker, jednak istotny jest wybór algorytmu (patrz wyżej), który może zaważyć na bezpieczeństwie danych. Kreator tworzenia wolumenów VeraCrypt podpowiada użytkownikom, sugerując ustawienia domyślne, możliwie najlepsze.
Jak wspomniano – użytkownik może szyfrować całe partycje i dyski niesystemowe, ale też pojedyncze pliki i foldery poprzez przesuwanie ich na zaszyfrowane dyski. Możliwe jest także utworzenie ukrytego kontenera w wewnątrz zaszyfrowanego dysku, co stanowi dodatkową ochronę. Nawet jeśli napastnik uzyska dostęp do zaszyfrowanego dysku, nie będzie nawet wiedział, że pliki, które przegląda, nie są tak naprawdę tymi, które chce ukryć właściciel. Podobnych trafionych pomysłów jest w VeraCrypcie więcej. Szyfrowanie jest zatem jedną z najlepszych metod ochrony danych dostępną dla każdego.
O tym, że nawet policja jest bezradna wobec zabezpieczeń jakie daje VeraCrypt można przekonać się czytając wpis użytkownika SourceForge. Pisze on, że gdy do jego drzwi zapukali funkcjonariusze federalnych organów ścigania i zarekwirowali wszystkie przechowywane w domu urządzenia elektroniczne, komputery i dyski twarde, nie mogli się do nich dostać, gdyż były one zaszyfrowane VeraCryptem, najprawdopodobniej wersją 1.13, oraz wyłączone.
Przedstawiciele kilku państw i prywatni eksperci bezskutecznie próbowali uzyskać dostęp do wszystkich chronionych przez VeraCrypt urządzeń.
Owy wpis był niejako najlepszą z możliwych reklamą dla twórców VeraCrypta. W ramach wdzięczności użytkownik przekazał twórcom równowartość 10 tys. dolarów w Bitcoinach.
Inwigilacja kontrolowana?
W 2018 roku Niemiecka organizacja zajmującą się prywatnością (Digitalcourage), stowarzyszenie broniące praw wolności i praw człowieka (Gesellschaft für Freiheitsrechte), oraz partia FDP (Freie Demokratische Partei) złożyły konstytucyjny pozew. Został on podparty analizą przeciwko próbom inwigilowania obywateli przy użyciu trojana Bundestrojaner.
Mimo, że w 2008 roku Niemiecki rząd zezwolił i przyznał się do używania technologicznych środków do inwigilowania podejrzanych – wspomniana analiza wykazała, że mierny kod oprogramowania stwarzał zagrożenie zarówno dla ofiary, jak służb, które z niego korzystają, łamiąc jednocześnie inne prawa związane z ochroną danych.
Bundestrojaner stworzyli pracownicy firmy Digitask. W 2011 roku przeanalizowali go hakerzy z grupy Chaos Computer Club (CCC). Poddany inżynierii wstecznej szkodliwy program wykorzystuje Federalna Policja Kryminalna (BKA, niem. Bundeskriminalamt). Raport ten zawiera analizę biblioteki DLL backdoora (C:\Windows\system32\mfc42ul.dll) i sterownika jądra (winsys32.sys). Wprawdzie CCC nie uzyskała dostępu do instalatora trojana, ale udało się to fińskiej firmie F-Secure. Spece od antywirusów dowiedli, że trojan jest używany do instalowania backdoora i zawiera funkcjonalność keyloggera. Szkodliwe oprogramowanie skutecznie szpiegowało użytkowników aplikacji Firefox, Skype, MSN Messenger, ICQ i innych. Backdoor posiada również kod przeznaczony do wykonywania zrzutów ekranu i nagrywania dźwięku (również rozmów z komunikatora Skype). Backdoor łączył się z serwerem w Niemczech poprzez proxy w USA, co łamało niemiecką ustawę o ochronie danych.
Przetestowane próbki dostarczają niezwykle istotnych danych. Funkcje szkodliwego oprogramowania były/są dostosowywane do zapotrzebowania służb, w tym większość wersji trojana ma możliwość zdalnego dostępu i uruchamiania innego złośliwego oprogramowania.
Na stronach umożliwiających anonimowe publikowanie dokumentów rządowych i korporacyjnych przez informatorów chcących zasygnalizować działania niezgodne z prawem znaleźć można opis funkcjonalności trojana: Bavarian trojan for non-germans. Ujawniono tam także koszty np. za wypożyczenie serwerów proxy w USA (3500 euro), podsłuchiwanie Skype (2500 euro), dekodowanie SSL (2500 euro), czy instalację/deinstalację trojana (2500 euro). Co ciekawe – usługi na oprogramowanie „Skype Capture Unit” niemieckie urzędy celne wykupiły za kwotę bagatela: 2,075,256 euro.
Kontrowersyjne użycie Bundestrojanera
Niemcy przyznali, że celnicy w 2010 roku używali Bundestrojanera w 16 przypadkach. Oprogramowanie zostało indywidualnie dostosowane do systemu podejrzanych osób. Instalowano je podczas kontroli na lotnisku w Monachium. W ten sposób doprowadzono do oskarżenia przestępcę, który był podejrzany np. o handel narkotykami. Dzięki oprogramowaniu do akt dochodzenia udało się dołączyć 60 tysięcy zrzutów ekranu.
Federalna Policja Kryminalna Niemiec (BKA, niem. Bundeskriminalamt) – przyznaje, że jeden z wariantów trojana R2D2 zapisywał zrzuty ekranowe programu pocztowego przed zaszyfrowaniem maila lub po jego odszyfrowaniu. Protokół PGP nie chronił więc informacji przed kradzieżą.
Przeciwko rządowi niemieckiemu wpłynęły oskarżenia w kwestiach naruszenia bezpieczeństwa, ochrony danych oraz prywatności jednostki. Petycją przeciwko rządowemu hackowaniu podpisało ponad 10 tysięcy osób.
Wszystko przez to, że o ile początkowo trojana używano tylko w skrajnych przypadkach (podejrzenia o działalność terrorystyczną), o tyle później każdy, kto był podejrzany o popełnienie jakiegokolwiek przestępstwa, mógł paść ofiarą rządowego złośliwego oprogramowania. Służbom zarzucono nadmierne używanie Bundestrojanera.
Niemieckie organizacje pozarządowe zajmujące się prywatnością, prawami cyfrowymi, prawami człowieka czy prawami obywatelskimi, mają różne oczekiwana. Jedne chcą, aby rządowe złośliwe oprogramowanie całkowicie całkowicie usunąć. Inne godzą się aby ograniczyć jego użycie, a wcześniej upewnić się, że jest używane tylko w przypadkach absolutnie koniecznych.
Niemiecki producent antywirusów – firma Avira – twierdzi, że w 2016 roku ich programy zabezpieczające wykryły 40 tysięcy próbek trojana. Z kolei polski producent antywirusów Arcabit zapewnia, że na komputerach chronionych ich oprogramowaniem nie wykryto do tej pory Bundestrojanera.
Aktualizacja 2021-01-02
Kilka dni temu opublikowano raport bezpieczeństwa VeraCrypt wykonany przez niemieckie BSI (wątek na SourceForge, oryginalny wpis).