TrueCrypt nie jest już obsługiwany, ale dm-crypt i LUKS to świetna opcja open source do szyfrowania i używania zaszyfrowanych danych.

Bezpieczeństwo danych stało się jednym z największych zmartwień internautów. Wieści o kradzieży danych ze stron internetowych stały się bardzo powszechne, ale za ochronę Twoich danych odpowiadają nie tylko strony internetowe, my, jako użytkownicy końcowi, możemy wiele zrobić dla własnego bezpieczeństwa. Na przykład tylko kilka przykładów używa silnych haseł, szyfrowania dysków twardych znajdujących się na naszych komputerach i korzystania z bezpiecznych połączeń. W szczególności szyfrowanie dysku twardego jest dobrym sposobem na zapewnienie bezpieczeństwa - nie tylko ochroni Cię przed trojanami próbującymi ukraść Twoje dane przez sieć, ale także przed atakami fizycznymi.

W maju tego roku zatrzymano rozwój aplikacji TrueCrypt, znanego narzędzia open source do szyfrowania dysków. Jak wielu z Was wie, było to jedno z bardzo niezawodnych narzędzi do szyfrowania dysków. To smutne, że narzędzie tego kalibru znika, ale tak wielki jest świat open source, że istnieje kilka innych narzędzi open source, które mogą pomóc w osiągnięciu bezpieczeństwa dzięki szyfrowaniu dysków, które również mają wiele ustawień konfiguracyjnych. Przyjrzymy się dwóm z nich - dm-crypt i LUKS - jako alternatywie dla TrueCrypt na platformę Linux. Zacznijmy od szybkiego spojrzenia na dm-crypt, a następnie na LUKS.

Są to podstawowe informacje o urządzeniu korzystającym z LUKS, które wskazują, jakie szyfrowanie jest używane, tryb szyfrowania, algorytm skrótu i ​​inne dane kryptograficzne.

Zasoby

Krok 01: Biorąc pod uwagę Dm-crypt

Nazwa aplikacji dm-crypt jest skrótem od urządzenia mapper-crypt (szyfrowanie podczas mapowania urządzenia). Jak sama nazwa wskazuje, opiera się na mapowaniu urządzeń, frameworku jądra Linuksa zaprojektowanym do mapowania urządzeń blokowych na wirtualne urządzenia blokowe wyższego poziomu. Podczas mapowania urządzeń można korzystać z kilku funkcji jądra, takich jak dm-cache (tworzy woluminy hybrydowe), dm-verity (zaprojektowany do sprawdzania integralności bloków, jest częścią systemu operacyjnego Chrome), a także bardzo popularnego Dockera. Do celów kryptograficznych dm-crypt używa frameworka Linux Kernel Crypto API.

Podsumowując, aplikacja dm-crypt jest podsystemem szyfrowania na poziomie jądra, który oferuje przezroczyste szyfrowanie dysku: oznacza to, że pliki są dostępne natychmiast po zamontowaniu dysku - nie ma widocznego opóźnienia dla użytkownika końcowego. Aby zaszyfrować za pomocą dm-crypt, możesz po prostu określić jeden z szyfrów symetrycznych, tryb szyfrowania, klucz (dowolny dozwolony rozmiar), tryb IV generacji, a następnie utworzyć nowe urządzenie blokowe w /dev. Teraz podczas zapisu na tym urządzeniu nastąpi szyfrowanie, a po odczytaniu zostanie odszyfrowane. Możesz zamontować system plików na tym urządzeniu jak zwykle lub możesz użyć urządzenia dm-crypt do tworzenia innych konstrukcji, takich jak wolumin RAID lub LVM. Tabela mapowania dla dm-crypt jest ustawiona w następujący sposób:

Tutaj wartość start-sector wynosi zwykle 0, wartość size to rozmiar urządzenia w sektorach, a nazwa docelowa to nazwa, którą chcesz nadać zaszyfrowanemu urządzeniu. Tabela mapowania celów składa się z następujących sekcji:

[<#opt_params> ]

Krok 02: Biorąc pod uwagę LUKS

Jak widzieliśmy w poprzednim kroku, aplikacja dm-crypt może samodzielnie szyfrować/odszyfrowywać dane. Ale ma kilka wad - jeśli używasz dm-crypt bezpośrednio, nie utworzy metadanych na dysku, a to może być dużym problemem, jeśli chcesz zapewnić kompatybilność między różnymi dystrybucjami Linuksa. Ponadto aplikacja dm-crypt nie obsługuje używania wielu kluczy, podczas gdy w rzeczywistych sytuacjach bardzo ważne jest, aby używać wielu kluczy.

Z tych powodów narodziła się metodologia LUKS (Linux Unified Key Setup). LUKS to standard szyfrowania dysku twardego w systemie Linux, a standaryzacja pozwala na zgodność między dystrybucjami. Obsługiwanych jest również wiele kluczy i haseł. W ramach tej standaryzacji do zaszyfrowanych danych dodawany jest nagłówek LUKS, który zawiera wszystkie informacje niezbędne do konfiguracji. Gdy istnieje taki nagłówek z danymi, użytkownicy mogą łatwo przełączyć się na dowolną inną dystrybucję. Projekt dm-crypt obecnie zaleca używanie LUKS jako preferowanego sposobu konfiguracji szyfrowania dysku. Przyjrzyjmy się, jak zainstalować narzędzie cryptsetup i jak go używać do tworzenia woluminów opartych na LUKS.

Krok 03: Instalacja

Funkcjonalność na poziomie jądra, z której korzysta dm-crypt, jest już dostępna we wszystkich dystrybucjach Linuksa; potrzebujemy tylko interfejsu do nich. Będziemy używać narzędzia cryptsetup, które pozwala tworzyć wolumeny za pomocą dm-crypt, standardu LUKS i starej dobrej aplikacji TrueCrypt. Aby zainstalować cryptsetup w dystrybucjach Debian/Ubuntu, możesz użyć następujących poleceń:

$ sudo apt-get update $ sudo apt-get install cryptsetup

Pierwsze polecenie synchronizuje pliki indeksu rakiet z zawartością ich repozytoriów: otrzymuje informacje o najnowszych wersjach wszystkich dostępnych pakietów. Drugie polecenie pobierze i zainstaluje pakiet cryptsetup na twoim komputerze. Jeśli używasz dystrybucji RHEL/Fedora/CentOS, możesz użyć polecenia yum, aby zainstalować narzędzie cryptsetup.

$ mniam zainstaluj cryptsetup-luks

Krok 04: Tworzenie pliku docelowego

Teraz, gdy narzędzie cryptsetup zostało pomyślnie zainstalowane, musimy utworzyć plik docelowy, który będzie zawierał kontener LUKS. Chociaż istnieje wiele sposobów na utworzenie takiego pliku, przy jego tworzeniu należy spełnić szereg warunków:

  • Plik nie powinien składać się z kilku części znajdujących się w różnych miejscach na dysku, to znaczy podczas jego tworzenia należy od razu przydzielić mu odpowiednią ilość pamięci.
  • Cały plik musi być wypełniony losowymi danymi, aby nikt nie mógł powiedzieć, gdzie będą się znajdować dane używane do szyfrowania.

W tworzeniu pliku, który spełni powyższe warunki, może nam pomóc komenda dd, choć będzie działać stosunkowo wolno. Po prostu użyj go ze specjalnym plikiem urządzenia /dev/random określonym jako wejście i plikiem docelowym, który ma być określony jako wyjście. Przykładowe polecenie wygląda tak:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

Spowoduje to utworzenie pliku o wielkości 128 MB o nazwie basefile w katalogu /home/nitish. Należy jednak pamiętać, że wykonanie tego polecenia może zająć dużo czasu; w systemie, z którego korzystał nasz ekspert, zajęło to godzinę.

Krok 05: Utwórz dm-crypt LUKS

Po utworzeniu pliku docelowego musisz utworzyć sekcję LUKS w tym pliku. Ta sekcja służy jako warstwa podstawowa, na której zbudowane jest całe szyfrowanie danych. Ponadto nagłówek tej sekcji (nagłówek LUKS) zawiera wszystkie informacje wymagane do kompatybilności z innymi urządzeniami. Aby utworzyć partycję LUKS, użyj polecenia cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

Po wyrażeniu zgody, że dane w pliku bazowym zostaną trwale usunięte, wprowadź hasło, a następnie je zatwierdź, zostanie utworzona partycja LUKS. Możesz to sprawdzić za pomocą następującego polecenia pliku:

$filebasefile

Pamiętaj, że fraza, którą tutaj wprowadzisz, zostanie użyta do odszyfrowania danych. Bardzo ważne jest, aby go zapamiętać i przechowywać w bezpiecznym miejscu, ponieważ jeśli go zapomnisz, prawie na pewno stracisz wszystkie dane na zaszyfrowanej partycji.

Krok 06: Utwórz i zamontuj system plików

Kontener LUKS, który utworzyliśmy w poprzednim kroku, jest teraz dostępny jako plik. W naszym przykładzie jest to /home/nitish/basefile. Narzędzie cryptsetup pozwala otworzyć kontener LUKS jako niezależne urządzenie. Aby to zrobić, najpierw zmapuj plik kontenera na nazwę urządzenia, a następnie zamontuj urządzenie. Polecenie wyświetlania wygląda tak:

Po pomyślnym wprowadzeniu hasła utworzonego w poprzednim kroku kontener LUKS zostanie zmapowany na nazwę volume1. W rzeczywistości plik jest otwierany jako lokalne urządzenie pętli zwrotnej, dzięki czemu reszta systemu może teraz traktować plik tak, jakby był prawdziwym urządzeniem.

Krok 07: System plików - ciąg dalszy

Plik kontenera LUKS jest teraz dostępny w systemie jako zwykłe urządzenie. Zanim będziemy mogli używać go do normalnych operacji, musimy go sformatować i utworzyć na nim system plików. Możesz użyć dowolnego systemu plików obsługiwanego w twoim systemie. W moim przykładzie użyliśmy ext4, ponieważ jest to najnowszy system plików dla systemów Linux.

$ mkfs.ext4 -j /dev/mapper/volume1

Po pomyślnym sformatowaniu urządzenia następnym krokiem jest jego zamontowanie. Najpierw musisz utworzyć punkt montowania, najlepiej w /mnt (zdrowy rozsądek).

$ mkdir /mnt/pliki

Teraz montujemy:

Aby przeprowadzić kontrolę krzyżową, użyj polecenia df –h — na końcu listy zamontowanych urządzeń zobaczysz urządzenie „/dev/mapper/volume1”. Widać, że nagłówek LUKS zajmuje już trochę miejsca w urządzeniu.

Dzięki temu krokowi możesz teraz używać urządzenia LUKS z systemem plików ext4. Po prostu użyj tego urządzenia do przechowywania plików — wszystko, co piszesz na tym urządzeniu, zostanie zaszyfrowane, a wszystko, co z niego odczytasz, zostanie odszyfrowane i wyświetlone.

Krok 08: Korzystanie z zaszyfrowanego dysku

Aby osiągnąć ten wynik, wykonaliśmy kilka kroków, a jeśli nie wiesz, jak to wszystko działa, najprawdopodobniej będziesz zdezorientowany, co należy zrobić tylko raz (wymagane do instalacji), a co należy zrobić regularnie podczas korzystania z szyfrowania. Rozważmy następujący scenariusz: pomyślnie wykonałeś wszystkie powyższe kroki, a następnie wyłączyłeś komputer. Następnego dnia po uruchomieniu komputera nie możesz znaleźć zamontowanego urządzenia - gdzie to poszło? Aby sobie z tym wszystkim poradzić, należy pamiętać, że po uruchomieniu systemu należy zamontować kontener LUKS, a przed zatrzymaniem komputera odmontować go.

Aby uzyskać dostęp do pliku LUKS, przy każdym włączeniu komputera wykonaj następujące kroki, a następnie bezpiecznie zamknij plik przed wyłączeniem komputera:

Otwórz plik LUKS (tj. /home/nitish/basefile) i wprowadź hasło. Polecenie wygląda tak:

$ cryptsetup luksOpen /home/nitish/basefile volume1

Gdy plik jest otwarty, zamontuj go (jeśli nie montuje się automatycznie):

$ mount /dev/mapper/volume1 /mnt/files

Teraz możesz używać zamontowanego urządzenia jako normalnego dysku i odczytywać lub zapisywać na nim dane.

Po zakończeniu odmontuj urządzenie w następujący sposób:

$ umount /mnt/pliki

Po pomyślnym odmontowaniu zamknij plik LUKS:

$ cryptsetup luksZamknij głośność1

Krok 09: Utworzyć kopię zapasową

Większość utraty danych przechowywanych w kontenerze LUKS wynika z uszkodzenia nagłówka LUKS lub gniazd kluczy. Oprócz tego, że nagłówki LUKS mogą ulec uszkodzeniu nawet w wyniku przypadkowego nadpisania w pamięci nagłówkowej, w rzeczywistych warunkach możliwa jest również całkowita awaria dysku twardego. Najlepszym sposobem ochrony przed takimi problemami jest kopia zapasowa. Zobaczmy, jakie opcje tworzenia kopii zapasowych są dostępne.

Aby wykonać kopię zapasową pliku nagłówkowego LUKS, określ parametr luksHeaderBackup w poleceniu:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Lub, jeśli chcesz przywrócić plik z kopii zapasowej, określ parametr luksHeaderRestore w poleceniu:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Możesz użyć parametru isLuks, aby sprawdzić plik nagłówkowy LUKS i sprawdzić, czy plik, z którym masz do czynienia, odpowiada rzeczywistemu urządzeniu LUKS.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Widzieliśmy już, jak wykonać kopię zapasową plików nagłówkowych LUKS, ale tworzenie kopii zapasowej nagłówka LUKS tak naprawdę nie chroni przed całkowitą awarią dysku, więc musisz wykonać kopię zapasową całej partycji za pomocą następującego polecenia cat:

$ cat /home/nitish/basefile > basefile.img

Krok 10: Różne ustawienia

Istnieje kilka innych ustawień, które mogą być przydatne podczas korzystania z szyfrowania dm-crypt LUKS. Przyjrzyjmy się im.

Aby zrzucić nagłówek LUKS, polecenie cryptsetup ma opcję luksDump. Umożliwi to zrobienie migawki pliku nagłówkowego LUKS urządzenia, którego używasz. Przykładowe polecenie wygląda tak:

$ cryptsetup luksDump /home/nitish/basefile

Na początku tego artykułu wspomnieliśmy, że LUKS obsługuje wiele kluczy. Zobaczmy to teraz w akcji, dodając nowe miejsce na klucze ( uwaga na: otwór na klucze - miejsce pod klucz):

$ cryptsetup luksAddKey --Key-slot 1 /home/nitish/basefile

Polecenie to dodaje klucz do gniazda klucza nr 1, ale dopiero po wprowadzeniu aktualnego hasła (klucz obecny w gnieździe klucza 0). W sumie jest osiem miejsc na klucze i możesz odszyfrować dane za pomocą dowolnego klucza. Jeśli zrzucisz nagłówek po dodaniu drugiego klucza, zobaczysz, że drugi klucz jest zajęty.

Możesz usunąć kluczowe miejsca w ten sposób:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Spowoduje to usunięcie gniazda klucza o najwyższym numerze gniazda. Uważaj, aby nie usunąć wszystkich gniazd, w przeciwnym razie dane zostaną trwale utracone.

Semenenko V.

Podczas instalacji systemu operacyjnego Ubuntu możesz nie myśleć o konfigurowaniu w nim szyfrowania danych. Lub może zaistnieć sytuacja, w której dodasz użytkownika do systemu bez szyfrowania jego katalogu domowego. Ale teraz zmieniłeś zdanie i zdecydowałeś się skonfigurować ochronę tego katalogu. Innymi słowy, Ty (lub inny użytkownik na komputerze) chcesz funkcji, która obecnie nie istnieje...

Tworzenie zaszyfrowanej partycji w Ubuntu

Jak dodać funkcję szyfrowania do już zainstalowanego systemu Ubuntu Linux?

Na szczęście jest to dość łatwe do wdrożenia. Aby to zrobić, wykonaj trzy podstawowe kroki:

  • utwórz zaszyfrowaną kopię swojego katalogu domowego;
  • usuń oryginalny niezaszyfrowany katalog domowy;
  • zaszyfruj partycję wymiany (wykonywane tylko raz, podczas instalacji systemu Ubuntu lub postępując zgodnie z tym przewodnikiem krok po kroku).

Czynności opisane w tym artykule zostały wykonane na w pełni zaktualizowanym systemie Ubuntu Precise 12.04.

Trening

Z powodu obecnego błędu w systemie Ubuntu Linux nie można się zalogować, jeśli grafika okna logowania znajduje się w zaszyfrowanym folderze domowym użytkownika. Jeśli użytkownik zmienił domyślny wygląd, upewnij się, że nie znajduje się on również w folderze domowym użytkownika.

Tworzenie zaszyfrowanej kopii katalogu domowego użytkownika jest bezpieczną procedurą. Warto jednak zwrócić uwagę, że do jego realizacji wymagana jest pewna ilość miejsca na dysku twardym. Jeśli okaże się, że jest za mało miejsca, należy wykonać kopię zapasową danych, a następnie usunąć z niej wszystkie duże pliki (na przykład filmy) i przywrócić je z tej kopii zapasowej po zakończeniu szyfrowania. Generalnie zalecam wykonanie kopii zapasowej wszystkich danych, aby zapobiec możliwym problemom.

Używając preferowanego menedżera pakietów, zainstaluj program encrypt-utils.

Szyfrowanie

W tym samouczku użyję loginu paddy'ego jako nazwy użytkownika, na której będę działał. Musisz go zastąpić nazwą użytkownika, którego katalog domowy zostanie zaszyfrowany.

Uruchom ponownie system Ubuntu Linux i przejdź do „Trybu odzyskiwania”. Jedna rada - podczas uruchamiania systemu naciśnij i przytrzymaj klawisz Shift, aby otworzyć menu Grub. Zwykle wiersz „Tryb odzyskiwania” (tryb odzyskiwania) znajduje się na drugim miejscu od góry na liście tego bootloadera.

Z menu trybu odzyskiwania wybierz „Upuść”, aby wyświetlić wiersz poleceń dla konta root.

Aby naprawić błąd programowania wspomniany na początku tego artykułu, wprowadź następujące dwie komendy:

mount --opcje remount,rw /
zamontować --wszystkie

Teraz możemy utworzyć zaszyfrowaną kopię katalogu domowego użytkownika paddy. Aby to zrobić, wpisz poniższe polecenie. Jednocześnie postaraj się zapamiętać własne hasło, ponieważ to narzędzie będzie wymagało go do ukończenia operacji:

Po zakończeniu procesu szyfrowania zobaczysz kilka ostrzeżeń. Możesz je zignorować. Ale musisz zapamiętać ścieżkę do folderu tymczasowego utworzonego przez to polecenie. Jego wygląd będzie wyglądał mniej więcej tak: /home/paddy.ChPzzxqD

W tym przypadku ostatnie osiem znaków (po kropce) to zestaw losowy. Ten katalog będzie potrzebny w kolejnych krokach „Zakończono” lub „Powrót do stanu początkowego”, które zostaną omówione później.

Uruchom ponownie system Ubuntu Linux. W tym celu wpisz polecenie: zrestartuj teraz

Po wpisaniu i uruchomieniu polecenia może to potrwać kilka sekund, więc bądź cierpliwy.

Ukończenie

Zaloguj się do systemu Ubuntu w zwykły sposób, tak jak za każdym razem. Sprawdź, czy wszystko działa jak poprzednio.

Jeśli coś jest nie tak, możesz od razu przejść do pozycji „Powrót do pierwotnego stanu”.

Jeśli wszystko w systemie działa poprawnie, wykonaj ostatnie kroki.

Otwórz terminal i wprowadź polecenie, aby usunąć katalog tymczasowy. Aby to zrobić, musisz zapamiętać ścieżkę do folderu tymczasowego, który został utworzony podczas szyfrowania katalogu domowego.

sudo rm -R /home/paddy.ChPzzxqD

Przywróć dane, które zostały usunięte (jeśli istnieją) w kroku „Przygotowanie”.

Ponownie otwórz terminal i wprowadź polecenie, aby zaszyfrować partycję wymiany. Jeśli wcześniej skonfigurowano użytkownika z szyfrowaniem katalogu domowego, możesz bezpiecznie pominąć ten krok: sudo ecryptfs-setup-swap

Uruchom ponownie.

Powrót do pierwotnego stanu

Jeśli proces szyfrowania nie powiódł się, konieczne będzie ponowne powtórzenie poprzednich kroków.

Uruchom polecenia:

mount --opcje remount,rw /
zamontować --wszystkie
ecryptfs-migrate-home --user paddy

Następnie wprowadź polecenie, aby wyświetlić zawartość folderu tymczasowego utworzonego podczas procesu szyfrowania. Aby to zrobić, ponownie musisz zapamiętać ścieżkę do niego. Nie powinno to generować żadnych błędów. Jeśli tak, to potrzebujesz pomocy.

ls -l /home/paddy.ChPzzxqD

Teraz zakończ proces resetowania, wydając trzy polecenia:

cd /home
rm -R paddy .ecryptfs/paddy
mv paddy.ChPzzxqD

Uruchom ponownie.

Mam nadzieję, że powyższe kroki ci pomogły. Jeśli masz nierozwiązywalne problemy, możesz wysłać zgłoszenie na moim wątku na forum Ubuntu.

Tryb uśpienia po zaszyfrowaniu

Większość użytkowników często zastanawia się, dlaczego nie ma hibernacji (hibernacji) w systemie operacyjnym Ubuntu po wykonaniu poprzednich operacji (opisanych wcześniej w tym artykule) i jak przywrócić tę możliwość. Powodem jest skonfigurowane szyfrowanie. Jeśli masz skonfigurowane szyfrowanie katalogu domowego, partycja wymiany jest również zaszyfrowana, ale z losowym kluczem. Po przełączeniu systemu w tryb hibernacji dane RAM są przechowywane na partycji wymiany i szyfrowane losowym kluczem. Podczas przywracania systemu ze stanu hibernacji klucz użyty do zaszyfrowania partycji wymiany jest już bezpowrotnie utracony i system nie może odczytać tej partycji. W związku z tym danych nie można odzyskać, a powrót do poprzedniego stanu nie jest możliwy.

Jeśli nie masz skonfigurowanego szyfrowania partycji w swoim systemie, przywrócenie hibernacji w Ubuntu jest łatwe. Aby to zrobić, po prostu uruchom polecenia: ls -l /home/paddy.ChPzzxqD
rm -R paddy .ecryptfs/paddy

Ale jeśli partycja domowa użytkownika i partycja wymiany są zaszyfrowane w systemie, konieczne jest zastąpienie szyfrowania partycji wymiany wstępnie wybranym hasłem, a nie losowym kluczem.

Należy jednak pamiętać, że każdy użytkownik komputera będzie musiał znać to hasło podczas uruchamiania systemu.

Spróbowałem tej metody w obu przypadkach - zarówno na zwykłym systemie Ubuntu 12.04, jak i na systemie Ubuntu zainstalowanym na maszynie wirtualnej VirtualBox. W tym drugim przypadku wystąpiły problemy z wyświetlaniem ekranu podczas wychodzenia z trybu uśpienia. Ale w zwykłym systemie wszystko działało dobrze.

Trening

Wpisz w terminalu następujące polecenie: sudo cryptsetup status crypt zamieniać 1

W rezultacie zobaczysz linię wskazującą urządzenie, wyglądającą mniej więcej tak: /dev/sda1

lub /dev/sdb5

To urządzenie jest partycją wymiany w twoim systemie. Zapamiętaj to, bo będziesz go później potrzebować.

Zawsze zalecam wykonanie pełnej kopii zapasowej danych za każdym razem, gdy wprowadzasz jakiekolwiek zmiany w systemie. W naszym przypadku też się przyda.

Ustawienie snu

Wprowadź następujące polecenia. Upewnij się, że zastąpiłeś /dev/sdXN partycją wymiany utworzoną w sekcji „Przygotowanie”. Podczas wprowadzania poleceń należy ściśle przestrzegać określonej kolejności:

sudo swapoff /dev/mapper/cryptswap1
sudo cryptsetup luksClose /dev/mapper/cryptswap1
sudo cryptsetup luksFormatuj szyfr aes cbc essiv:sha256 sprawdź rozmiar klucza hasła 256 /dev/sdXN

OSTRZEŻENIE!
========
To nieodwołalnie nadpisze dane w /dev/sda1.
Jesteś pewny? (Wpisz wielkie litery tak): TAK
Wpisz hasło LUKS:
Zweryfikuj hasło:
sudo cryptsetup luksOpen /dev/sdXN cryptswap1

Wprowadź hasło do urządzenia /dev/sda1 (i powtórz je, aby uniknąć literówki):

sudo mk zamieniać/dev/mapper/crypt zamieniać 1
sudo zamień wszystko
swapon

Ostatnie polecenie wyświetli nazwę pliku urządzenia /dev/crypt swap 1 .

Otwórz plik konfiguracyjny /etc/crypttab w preferowanym edytorze. Zastąp wiersz crypt swap 1 następującym (nie zapomnij zmienić /dev/sdXN na swoje urządzenie wymiany): cryptswap1 /dev/sdXN brak luks

Teraz edytuj plik /usr/share/initramfstools/scripts/local-top/cryptroot . W nim znajdź linię (zazwyczaj ma numer 288, ale może się zmienić): komunikat "cryptsetup: nieznany błąd podczas konfigurowania mapowania urządzenia"

Przejdź do następnej pustej linii (przed FSTYPE=") i wstaw nową (nie zapomnij zastąpić urządzenia /dev/sdXN): /sbin/cryptsetup luksOpen /dev/sdXN crypt zamieniać 1

Edytuj plik /etc/acpi/hibetnate.sh . W pierwszym pustym wierszu wklej wartość: URZĄDZENIE="/dev/mapper/crypt zamieniać 1"

Edytuj plik /etc/initramfstools/conf.d/resume. Zastąp istniejącą w nim linię następującym: WZNÓW=/dev/mapper/crypt zamieniać 1

Następnie edytuj plik /etc/polkit1/localauthoriyt/50-local.d/com.ubuntu.enable-hibernate.pkla . Plik początkowo nie istnieje, więc musisz go najpierw utworzyć. Następnie dodaj do niego linie:
Tożsamość=użytkownik uniksowy:*
Akcja=org.freedesktop.upower.hibernate
WynikAktywny=tak

Na koniec otwórz terminal i wprowadź w nim następujące polecenie: Aktualizacja sudo initramfs u k all

Restart.

Korzystanie z trybu uśpienia

Następnym razem, gdy uruchomisz Ubuntu Linux, poprosi Cię o nowe hasło dla partycji wymiany. Wprowadź go, a dalszy normalny proces logowania będzie kontynuowany.

Istnieje wiele powodów, dla których warto szyfrować dane na dysku twardym, ale kosztem zabezpieczenia danych jest niższa wydajność systemu. Celem tego artykułu jest porównanie wydajności podczas pracy z dyskiem zaszyfrowanym różnymi sposobami.

Aby różnica była bardziej dramatyczna, wybraliśmy nie ultranowoczesny, ale przeciętny samochód. Zwykły mechaniczny dysk twardy 500 GB, dwurdzeniowy AMD 2,2 GHz, 4 gigabajty pamięci RAM, 64-bitowy Windows 7 SP 1. Podczas testu nie zostaną uruchomione żadne programy antywirusowe ani inne programy, aby nic nie mogło wpłynąć na wyniki.

Aby ocenić wydajność, wybrałem CrystalDiskMark. Jeśli chodzi o testowane narzędzia szyfrujące, zdecydowałem się na następującą listę: BitLocker, TrueCrypt, VeraCrypt, CipherShed, Symantec Endpoint Encryption i CyberSafe Top Secret.

bitlocker

Jest to standardowe narzędzie do szyfrowania dysków wbudowane w system Microsoft Windows. Wiele osób po prostu używa go bez instalowania programów innych firm. Rzeczywiście, po co, skoro wszystko jest już w systemie? Z jednej strony w prawo. Z drugiej strony kod jest zamknięty i nie ma pewności, że nie pozostawiono w nim tylnych drzwi dla FBI i innych zainteresowanych osób.

Dysk jest zaszyfrowany algorytmem AES o długości klucza 128 lub 256 bitów. Klucz można przechowywać w module Trusted Platform Module, na samym komputerze lub na dysku flash.

Jeśli używany jest TPM, to po uruchomieniu komputera klucz można uzyskać bezpośrednio z niego lub po uwierzytelnieniu. Możesz zalogować się za pomocą klucza na pendrive lub wpisując kod PIN z klawiatury. Kombinacje tych metod dają wiele opcji ograniczania dostępu: tylko TPM, TPM i USB, TPM i PIN lub wszystkie trzy jednocześnie.

BitLocker ma dwie wyraźne zalety: po pierwsze, można nim sterować za pomocą zasad grupy; po drugie, szyfruje woluminy, a nie dyski fizyczne. Pozwala to zaszyfrować szereg wielu dysków, czego nie mogą zrobić niektóre inne narzędzia szyfrujące. BitLocker obsługuje również tabelę partycji GUID (GPT), której nie może pochwalić się nawet najbardziej zaawansowany widelec TruCrypt VeraCrypt. Aby zaszyfrować za jego pomocą systemowy dysk GPT, musisz najpierw przekonwertować go na format MBR. W przypadku funkcji BitLocker nie jest to wymagane.

Ogólnie jest tylko jedna wada - zamknięte źródło. Jeśli trzymasz sekrety przed domem, funkcja BitLocker jest świetna. Jeśli twój dysk jest pełen dokumentów o znaczeniu krajowym, lepiej poszukać czegoś innego.

Czy można odszyfrować funkcję BitLocker i TrueCrypt?

Jeśli zapytasz Google, znajdzie on interesujący program Elcomsoft Forensic Disk Decryptor odpowiedni do odszyfrowywania dysków BitLocker, TrueCrypt i PGP. W ramach tego artykułu nie będę go testował, ale podzielę się wrażeniami z innego narzędzia firmy Elcomsoft, a mianowicie Advanced EFS Data Recovery. Doskonale radził sobie z odszyfrowywaniem folderów EFS, ale pod warunkiem, że nie ustawiono hasła użytkownika. Jeśli ustawisz hasło na co najmniej 1234, program okazał się bezsilny. W każdym razie nie udało mi się odszyfrować zaszyfrowanego folderu EFS należącego do użytkownika z hasłem 111. Myślę, że sytuacja będzie taka sama z produktem Forensic Disk Decryptor.

TrueCrypt

To legendarny program do szyfrowania dysków, który został przerwany w 2012 roku. Historia, która przydarzyła się TrueCrypt, wciąż owiana jest ciemnością i nikt tak naprawdę nie wie, dlaczego deweloper zdecydował się przestać wspierać jego pomysł.

Są tylko fragmenty informacji, które nie pozwalają na ułożenie puzzli. Tak więc w 2013 roku rozpoczęto zbieranie funduszy na niezależny audyt TrueCrypt. Powodem była informacja otrzymana od Edwarda Snowdena o celowym osłabieniu narzędzi szyfrujących TrueCrypt. Na audyt zebrano ponad 60 tysięcy dolarów. Na początku kwietnia 2015 r. prace zostały zakończone, ale nie zidentyfikowano żadnych poważnych błędów, podatności ani innych istotnych usterek w architekturze aplikacji.

Gdy tylko audyt się zakończył, TrueCrypt ponownie znalazł się w centrum skandalu. Specjaliści ESET opublikowali raport, że rosyjskojęzyczna wersja TrueCrypt 7.1a, pobrana z truecrypt.ru, zawierała złośliwe oprogramowanie. Co więcej, sama strona truecrypt.ru była wykorzystywana jako centrum dowodzenia - z niej wysyłane były polecenia do zainfekowanych komputerów. Ogólnie zachowaj czujność i nie pobieraj programów z dowolnego miejsca.

Korzyści TrueCrypt obejmują open source, teraz niezależnie kontrolowany pod kątem niezawodności i obsługę dynamicznych woluminów Windows. Wady: program nie jest już rozwijany, a programiści nie mieli czasu na wdrożenie obsługi UEFI/GPT. Ale jeśli celem jest zaszyfrowanie jednego dysku niesystemowego, nie ma to znaczenia.

W przeciwieństwie do BitLockera, w którym obsługiwany jest tylko AES, TrueCrypt ma również Serpent i Twofish. W celu wygenerowania kluczy szyfrujących, klucza soli i nagłówka program pozwala wybrać jedną z trzech funkcji skrótu: HMAC-RIPEMD-160, HMAC-Whirlpool, HMAC-SHA-512. Jednak o TrueCrypt napisano już wiele, więc nie będziemy się powtarzać.

VeraCrypt

Najbardziej zaawansowany klon TrueCrypt. Ma swój własny format, chociaż możliwa jest praca w trybie TrueCrypt, który obsługuje dyski zaszyfrowane i wirtualne w formacie TrueCrypt. W przeciwieństwie do CipherShed, VeraCrypt może być zainstalowany na tym samym komputerze w tym samym czasie co TrueCrypt.

INFORMACJE

Po przejściu na emeryturę TrueCrypt pozostawił bogatą spuściznę: ma wiele rozwidlenia, zaczynając od VeraCrypt, CipherShed i DiskCryptor.

VeraCrypt używa 1000 iteracji do wygenerowania klucza, który zaszyfruje partycję systemową, podczas gdy VeraCrypt używa 327 661 iteracji. W przypadku partycji standardowych (niesystemowych) VeraCrypt używa 655 331 iteracji dla funkcji skrótu RIPEMD-160 i 500 000 iteracji dla SHA-2 i Whirlpool. Sprawia to, że zaszyfrowane partycje są znacznie bardziej odporne na ataki typu brute-force, ale także znacznie zmniejszają wydajność pracy z taką partycją. Ile, wkrótce się dowiemy.

Wśród zalet VeraCrypt jest otwarty kod źródłowy, a także zastrzeżony i bezpieczniejszy wirtualny i zaszyfrowany format dysku w porównaniu do TrueCrypt. Wady są takie same jak w przypadku protoplastów – brak wsparcia dla UEFI/GPT. Nadal nie da się zaszyfrować systemowego dysku GPT, ale twórcy twierdzą, że pracują nad tym problemem i wkrótce takie szyfrowanie będzie dostępne. Ale pracują nad tym od dwóch lat (od 2014 r.), a kiedy pojawi się wersja z obsługą GPT i czy w ogóle będzie, nie wiadomo jeszcze.

SzyfrSzopa

Kolejny klon TrueCrypt. W przeciwieństwie do VeraCrypt, używa oryginalnego formatu TrueCrypt, więc możesz oczekiwać, że jego wydajność będzie zbliżona do TrueCrypt.

Zalety i wady są takie same, chociaż brak możliwości zainstalowania TrueCrypt i CipherShed na tym samym komputerze można dodać do wad. Co więcej, jeśli spróbujesz zainstalować CipherShed na maszynie z już zainstalowanym TrueCryptem, instalator zaoferuje usunięcie poprzedniego programu, ale nie wykona tego zadania.

Szyfrowanie punktów końcowych firmy Symantec

W 2010 roku firma Symantec kupiła prawa do programu PGPdisk. Rezultatem były produkty takie jak PGP Desktop, a następnie Endpoint Encryption. To właśnie rozważymy. Program jest oczywiście zastrzeżony, kod źródłowy jest zamknięty, a jedna licencja kosztuje 64 euro. Ale jest wsparcie dla GPT, ale dopiero od Windows 8.

Innymi słowy, jeśli potrzebna jest obsługa GPT i istnieje chęć zaszyfrowania partycji systemowej, będziesz musiał wybrać między dwoma zastrzeżonymi rozwiązaniami: BitLocker i Endpoint Encryption. Oczywiście jest mało prawdopodobne, że użytkownik domowy zainstaluje Endpoint Encryption. Problem polega na tym, że wymaga to programu Symantec Drive Encryption, który wymaga zainstalowania agenta i serwera zarządzania Symantec Endpoint Encryption (SEE), a serwer chce również zainstalować IIS 6.0. Czy to nie za dużo dla jednego programu szyfrującego dysk? Przeszliśmy przez to wszystko tylko po to, by zmierzyć wydajność.

moment prawdy

Przechodzimy więc do najciekawszego, czyli testowania. Pierwszym krokiem jest sprawdzenie wydajności dysku bez szyfrowania. Naszą „ofiarą” będzie partycja dysku twardego o pojemności 28 GB (zwykła, nie SSD), sformatowana jako NTFS.

Otwórz CrystalDiskMark, wybierz liczbę przebiegów, rozmiar pliku tymczasowego (we wszystkich testach użyjemy 1 Gbps) oraz sam dysk. Warto zauważyć, że liczba przejazdów praktycznie nie wpływa na wyniki. Pierwszy zrzut ekranu pokazuje wyniki pomiaru wydajności dysku bez szyfrowania z liczbą przebiegów 5, drugi - z liczbą przebiegów 3. Jak widać wyniki są prawie identyczne, więc skupimy się na trzy podania.


Wyniki CrystalDiskMark należy interpretować w następujący sposób:

  • Seq Q32T1 - test sekwencyjnego zapisu / odczytu sekwencyjnego, liczba kolejek - 32, wątki - 1;
  • 4K Q32T1 - test losowego zapisu / odczytu losowego (rozmiar bloku 4 kB, liczba kolejek - 32, wątki - 1);
  • Seq - sekwencyjny test zapisu / sekwencyjnego odczytu;
  • 4K - test losowego zapisu / losowego odczytu (rozmiar bloku 4 KB);

Zacznijmy od funkcji BitLocker. Zaszyfrowanie partycji o pojemności 28 GB zajęło 19 minut.

Kontynuacja artykułu jest dostępna tylko dla subskrybentów

Opcja 1. Zasubskrybuj „Haker”, aby przeczytać wszystkie artykuły na stronie

Subskrypcja umożliwi przeczytanie WSZYSTKICH płatnych materiałów witryny, w tym tego artykułu, przez określony czas. Akceptujemy płatności kartami bankowymi, pieniądze elektroniczne oraz przelewy z kont operatorów telefonii komórkowej.

Wymagania dotyczące prywatności i bezpieczeństwa komputera są całkowicie określone przez charakter przechowywanych na nim danych. Co innego, jeśli Twój komputer służy jako stacja rozrywki i nie ma na nim nic oprócz kilku zabawek i tatusia ze zdjęciami Twojego ukochanego kota, a co innego, jeśli na dysku twardym są dane, które to handel tajne, potencjalnie interesujące dla konkurencji.

Pierwsza "linia obrony" to hasło dostępu do systemu, które jest wymagane przy każdym włączeniu komputera.


Kolejnym poziomem ochrony są prawa dostępu na poziomie systemu plików. Użytkownik bez uprawnień dostępu otrzyma błąd podczas próby uzyskania dostępu do plików.


Opisane metody mają jednak jedną niezwykle istotną wadę. Oba działają na poziomie systemu operacyjnego i można je stosunkowo łatwo ominąć, jeśli masz mało czasu i fizyczny dostęp do komputera (na przykład, uruchamiając z dysku flash USB, możesz zresetować hasło administratora lub zmienić uprawnienia do plików). Pełne zaufanie do bezpieczeństwa i poufności danych można uzyskać tylko wtedy, gdy zdobycze kryptografii są wykorzystywane i niezawodnie. Poniżej rozważamy dwa sposoby takiej ochrony.

Pierwszą rozważaną dzisiaj metodą będzie wbudowana ochrona kryptograficzna firmy Microsoft. Szyfrowanie, zwane BitLocker, pojawiło się po raz pierwszy w systemie Windows 8. Nie będzie działać w celu zabezpieczenia za jego pomocą oddzielnego folderu lub pliku, dostępne jest tylko szyfrowanie całego dysku. W szczególności oznacza to, że nie można zaszyfrować dysku systemowego (system nie będzie mógł się uruchomić), nie można również przechowywać ważnych danych w bibliotekach systemowych, takich jak „Moje dokumenty” (domyślnie są to znajduje się na partycji systemowej).
Aby włączyć wbudowane szyfrowanie, wykonaj następujące czynności:

DiskCryptor

Drugim recenzowanym dzisiaj narzędziem kryptograficznym jest DiskCryptor, bezpłatne rozwiązanie typu open source. Aby z niego skorzystać, postępuj zgodnie z poniższymi instrukcjami:

Niewątpliwą zaletą tego narzędzia w porównaniu z mechanizmem BitLocker jest to, że można go używać na systemach, które pojawiły się przed Windows 8 (obsługiwany jest nawet wycofany Windows XP). Ale DiskCryptor ma również kilka istotnych wad:

  • nie ma możliwości przywrócenia dostępu do zaszyfrowanych informacji (jeśli zapomniałeś hasła, masz gwarancję utraty danych);
  • obsługiwane jest tylko odblokowanie hasłem, nie jest możliwe użycie kart inteligentnych lub czujników biometrycznych;
  • Być może największą wadą korzystania z DiskCryptor jest to, że osoba atakująca z dostępem administracyjnym do systemu będzie mogła sformatować dysk przy użyciu standardowych środków. Tak, nie uzyska dostępu do danych, ale Ty też je stracisz.

Podsumowując, mogę powiedzieć, że jeśli system operacyjny jest zainstalowany na komputerze, począwszy od Windows 8, lepiej skorzystać z wbudowanej funkcjonalności.

Ta dokumentacja została zarchiwizowana i nie jest już obsługiwana.

Zrozumienie szyfrowania dysków funkcją BitLocker

Miejsce docelowe: Windows Server 2008, Windows Server 2008 R2, Windows Vista

Szyfrowanie dysków funkcją BitLocker to funkcja ochrony danych dostępna w systemie Windows Server 2008 R2 i niektórych wersjach systemu Windows 7. Integracja funkcji BitLocker z systemem operacyjnym przeciwdziała kradzieży danych lub zagrożeniom lukami w zabezpieczeniach, chroniąc przed utratą, kradzieżą lub nieprawidłową likwidacją komputerów.

Dane na zgubionym lub skradzionym komputerze są podatne na nieautoryzowany dostęp poprzez oprogramowanie hakerskie lub podłączenie dysku twardego komputera do innego komputera. Szyfrowanie funkcją BitLocker pomaga zapobiegać nieautoryzowanemu dostępowi do danych, zwiększając bezpieczeństwo plików i systemu. Szyfrowanie funkcją BitLocker pomaga również zapewnić niedostępność danych podczas wycofywania lub ponownego używania komputerów chronionych szyfrowaniem funkcją BitLocker.

Szyfrowanie funkcją BitLocker zapewnia maksymalną ochronę w przypadku korzystania z modułu Trusted Platform Module (TPM) w wersji 1.2. TPM to komponent sprzętowy instalowany w wielu nowoczesnych komputerach przez ich producentów. Działa w połączeniu z szyfrowaniem BitLocker, aby pomóc chronić dane użytkownika i zapewnić, że komputer nie został naruszony podczas zamykania systemu.

Na komputerach, na których nie zainstalowano modułu TPM 1.2, szyfrowanie funkcją BitLocker może nadal służyć do szyfrowania dysku systemu operacyjnego Windows. Jednak ta implementacja będzie wymagała od użytkownika włożenia klucza uruchamiania USB w celu uruchomienia lub wybudzenia komputera i nie zapewnia przed uruchomieniem sprawdzania integralności systemu zapewnianego przez szyfrowanie funkcją BitLocker z modułem TPM.

Oprócz modułu TPM szyfrowanie funkcją BitLocker umożliwia blokowanie normalnego procesu uruchamiania do momentu wprowadzenia przez użytkownika osobistego numeru identyfikacyjnego (PIN) lub włożenia urządzenia wymiennego, takiego jak dysk flash USB, który zawiera klucz uruchamiania. Te dodatkowe środki bezpieczeństwa zapewniają uwierzytelnianie wieloskładnikowe i zapewniają, że komputer nie uruchomi się ani nie obudzi ze stanu uśpienia, dopóki nie zostanie podany prawidłowy kod PIN lub klucz uruchamiania.

Sprawdzanie integralności systemu

Szyfrowanie funkcją BitLocker może używać modułu TPM do weryfikacji integralności składników rozruchu i danych konfiguracji rozruchu. Pomaga to zapewnić, że w przypadku korzystania z szyfrowania funkcją BitLocker zaszyfrowany dysk będzie dostępny tylko wtedy, gdy te składniki nie zostały naruszone, a zaszyfrowany dysk jest zainstalowany na komputerze źródłowym.

Szyfrowanie funkcją BitLocker pomaga zapewnić integralność procesu uruchamiania, wykonując następujące kroki.

  • Zapewnienie sposobu sprawdzenia integralności pliku głównego i plików używanych na wczesnych etapach rozruchu oraz upewnienie się, że nie ma złośliwych zmian w tych plikach, które mogłyby zostać wprowadzone, na przykład przez wirusy sektora rozruchowego lub edycję komponentu rozruchowego narzędzia.
  • Ulepszona ochrona przed atakami oprogramowania, gdy komputer jest w trybie offline. Wszelkie alternatywne oprogramowanie, które może uruchomić system, nie będzie miało dostępu do kluczy szyfrowania dysku z systemem operacyjnym Windows.
  • Blokada systemu podczas wymiany pliku. Jeśli którykolwiek z kontrolowanych plików został zastąpiony, system nie uruchomi się. To ostrzeże użytkownika o wymianie, ponieważ system nie będzie mógł normalnie uruchomić się. W przypadku blokady systemu szyfrowanie funkcją BitLocker zapewnia łatwy proces odzyskiwania.

    Wymagania dotyczące sprzętu, oprogramowania układowego i oprogramowania

    Aby korzystać z funkcji BitLocker, komputer musi spełniać określone wymagania.

    • Aby szyfrowanie BitLocker mogło korzystać z funkcji sprawdzania integralności systemu udostępnianej przez moduł TPM, na komputerze musi być zainstalowana wersja 1.2 modułu TPM. Jeśli na komputerze nie zainstalowano modułu TPM, po włączeniu szyfrowania funkcją BitLocker konieczne będzie zapisanie klucza uruchamiania na urządzeniu wymiennym, takim jak dysk flash USB.
    • Komputer wyposażony w moduł TPM musi również mieć system BIOS zgodny ze specyfikacją Trusted Computing Group (TCG). System BIOS tworzy łańcuch zaufania dla działań przed uruchomieniem i musi obejmować obsługę statycznego katalogu głównego pomiaru poziomu zaufania zdefiniowanego przez TCG. W przypadku komputera bez modułu TPM zgodność systemu BIOS ze specyfikacją TCG nie jest wymagana.
    • System BIOS (zarówno dla komputerów z TPM, jak i bez TPM) musi obsługiwać klasę pamięci masowej USB, w tym odczytywanie małych plików z dysku flash USB w środowisku przed systemem operacyjnym. Więcej informacji na temat USB można znaleźć w specyfikacji USB Mass Storage Device Specification i UFI Mass Storage Commands w witrynie USB (http://go.microsoft.com/fwlink/?LinkId=83120).
    • Dysk twardy musi być podzielony na co najmniej dwa dyski.
      • Dysk systemu operacyjnego (lub dysk rozruchowy) zawiera system operacyjny i pliki potrzebne do uruchomienia i musi być sformatowany w systemie plików NTFS.
      • Dysk systemowy zawiera pliki potrzebne do uruchomienia systemu Windows po załadowaniu platformy przez BIOS. Szyfrowanie funkcją BitLocker nie jest włączone dla tego dysku. Aby szyfrowanie funkcją BitLocker działało, dysk systemowy nie może być zaszyfrowany, nie może być woluminem systemu operacyjnego i musi być sformatowany w systemie plików NTFS. Dysk systemowy musi mieć rozmiar co najmniej 1,5 gigabajta (GB).

    Instalacja i inicjalizacja

    Szyfrowanie funkcją BitLocker jest instalowane automatycznie w ramach instalacji systemu operacyjnego. Jednak szyfrowanie funkcją BitLocker nie jest dostępne, dopóki nie zostanie włączone za pomocą Kreatora instalacji funkcji BitLocker, który można uruchomić z Panelu sterowania lub klikając prawym przyciskiem myszy dysk w Eksploratorze plików.

    W dowolnym momencie po instalacji i wstępnej konfiguracji systemu operacyjnego administrator może użyć Kreatora konfiguracji funkcji BitLocker, aby zainicjować szyfrowanie funkcją BitLocker. Proces inicjalizacji składa się z dwóch kroków:

    1. Na komputerach z modułem TPM zainicjuj moduł TPM za pomocą Kreatora instalacji modułu TPM, składnika Panelu sterowania Szyfrowanie dysków bitlocker lub wykonując skrypt przeznaczony do inicjowania modułu.
    2. Skonfiguruj szyfrowanie funkcją BitLocker. Otwórz Kreatora konfiguracji szyfrowania funkcją BitLocker z Panelu sterowania, który przeprowadzi Cię przez proces instalacji i zapewni opcję konfigurowania zaawansowanych ustawień uwierzytelniania.

    Podczas inicjowania szyfrowania funkcją BitLocker administrator lokalny musi również utworzyć hasło odzyskiwania i klucz odzyskiwania. Bez hasła odzyskiwania lub klucza odzyskiwania wszystkie dane na zaszyfrowanym dysku mogą być niedostępne, jeśli wystąpi problem z dyskiem zaszyfrowanym funkcją BitLocker.

    Szczegółowe informacje na temat konfigurowania i wdrażania szyfrowania funkcją BitLocker można znaleźć w Instrukcji szyfrowania dysków funkcją BitLocker w systemie Windows (http://go.microsoft.com/fwlink/?LinkID=140225).

    Wdrożenie korporacyjne

    Szyfrowanie funkcją BitLocker może wykorzystywać istniejącą infrastrukturę usług domenowych Active Directory (AD DS) organizacji do przechowywania kluczy odzyskiwania poza siedzibą firmy. Szyfrowanie funkcją BitLocker udostępnia kreatora konfiguracji i zarządzania oraz rozszerzalności i zarządzania za pomocą skryptowego interfejsu WMI. Ponadto szyfrowanie BitLocker zapewnia konsolę odzyskiwania wbudowaną w proces rozruchu, aby umożliwić użytkownikowi lub personelowi pomocy technicznej odzyskanie dostępu do zablokowanego komputera.

    Aby uzyskać więcej informacji na temat szyfrowania skryptów funkcją BitLocker, zobacz Win32_EncryptableVolume (http://go.microsoft.com/fwlink/?LinkId=85983).

    Odzyskuj i ponownie używaj swojego komputera

    adnotacja

    Wbrew powszechnemu przekonaniu pamięć DRAM stosowana w większości nowoczesnych komputerów zachowuje dane nawet po zaniku zasilania przez kilka sekund lub minut, co więcej dzieje się to w temperaturze pokojowej, a nawet po wyjęciu chipa z płyty głównej. Ten czas wystarczy, aby wykonać pełny zrzut pamięci RAM. Pokażemy, że zjawisko to pozwala atakującemu, który ma fizyczny dostęp do systemu, ominąć funkcje systemu operacyjnego do ochrony danych o kluczach kryptograficznych. Pokażemy, jak ponowne uruchomienie może być wykorzystane do udanych ataków na znane systemy szyfrowania dysków twardych bez użycia specjalistycznych urządzeń lub materiałów. Określimy eksperymentalnie stopień i prawdopodobieństwo retencji remanencji i pokażemy, że czas, dla którego można pobrać dane, można znacznie wydłużyć za pomocą prostych sztuczek. Zaproponowane zostaną również nowe metody wyszukiwania kluczy kryptograficznych w zrzutach pamięci i korygowania błędów związanych z brakującymi bitami. Porozmawiamy też o kilku sposobach zmniejszenia tego ryzyka, ale nie znamy prostego rozwiązania.

    Wstęp

    Większość ekspertów zakłada, że ​​dane z pamięci RAM komputera są usuwane niemal natychmiast po przerwie w zasilaniu, lub uważa, że ​​odzyskanie szczątkowych danych jest niezwykle trudne bez użycia specjalnego sprzętu. Pokażemy, że te założenia są błędne. Konwencjonalna pamięć DRAM stopniowo traci dane w ciągu kilku sekund, nawet w normalnych temperaturach, a nawet jeśli układ pamięci zostanie wyjęty z płyty głównej, dane pozostaną w niej przez minuty, a nawet godziny, pod warunkiem, że układ jest przechowywany w niskich temperaturach. Pozostałe dane można odzyskać za pomocą prostych metod, które wymagają krótkotrwałego fizycznego dostępu do komputera.

    Pokażemy szereg ataków, które wykorzystując efekty remanencji DRAM, pozwolą nam odzyskać klucze szyfrujące przechowywane w pamięci. Stanowi to realne zagrożenie dla użytkowników laptopów, którzy polegają na systemach szyfrowania dysków twardych. W końcu, jeśli atakujący ukradnie laptopa, w momencie podłączenia zaszyfrowanego dysku będzie mógł przeprowadzić jeden z naszych ataków, aby uzyskać dostęp do zawartości, nawet jeśli sam laptop jest zablokowany lub w trybie uśpienia. Zademonstrujemy to, skutecznie atakując kilka popularnych systemów szyfrowania, takich jak BitLocker, TrueCrypt i FileVault. Ataki te powinny również odnieść sukces przeciwko innym systemom szyfrowania.

    Chociaż skupiliśmy nasze wysiłki na systemach szyfrowania dysków twardych, w przypadku fizycznego dostępu do komputera atakującego każda ważna informacja przechowywana w pamięci RAM może stać się przedmiotem ataku. Jest prawdopodobne, że wiele innych systemów bezpieczeństwa jest podatnych na ataki. Na przykład odkryliśmy, że system Mac OS X pozostawia hasła do kont w pamięci, skąd mogliśmy je odzyskać, a także zaatakowaliśmy prywatne klucze RSA serwera WWW Apache.

    Niektórzy ze społeczności zajmujących się bezpieczeństwem informacji i fizyką półprzewodników byli już świadomi efektu remanencji DRAM, było bardzo mało informacji na jego temat. W rezultacie wielu, którzy projektują, opracowują lub korzystają z systemów bezpieczeństwa, po prostu nie są zaznajomieni z tym zjawiskiem i tym, jak łatwo może zostać wykorzystane przez atakującego. Według naszej najlepszej wiedzy jest to pierwsza szczegółowa praca badająca implikacje tych zjawisk dla bezpieczeństwa informacji.

    Ataki na zaszyfrowane dyski

    Szyfrowanie dysków twardych to dobrze znana metoda ochrony przed kradzieżą danych. Wielu uważa, że ​​systemy szyfrowania dysków twardych będą chronić ich dane, nawet jeśli atakujący uzyskał fizyczny dostęp do komputera (w rzeczywistości są do tego potrzebne, przyp. red.). Prawo kalifornijskie, przyjęte w 2002 roku, wymaga zgłaszania ewentualnych przypadków ujawnienia danych osobowych tylko wtedy, gdy dane nie zostały zaszyfrowane, ponieważ. szyfrowanie danych jest uważane za wystarczający środek ochronny. Chociaż prawo nie opisuje żadnych konkretnych rozwiązań technicznych, wielu ekspertów zaleca stosowanie systemów szyfrowania dysków twardych lub partycji, które będą uważane za wystarczające środki ochrony. Wyniki naszego badania wykazały, że wiara w szyfrowanie dysków jest bezpodstawna. Atakujący, który nie jest najbardziej wykwalifikowanym, może ominąć wiele powszechnie używanych systemów szyfrowania, jeśli laptop z danymi zostanie skradziony, gdy był włączony lub w trybie uśpienia. A dane na laptopie można odczytać nawet wtedy, gdy znajdują się na zaszyfrowanym dysku, więc stosowanie systemów szyfrowania dysku twardego nie jest wystarczającym środkiem.

    Wykorzystaliśmy kilka rodzajów ataków na znane systemy szyfrowania dysków twardych. Najwięcej czasu zajęła instalacja zaszyfrowanych dysków i weryfikacja poprawności wykrytych kluczy szyfrowania. Uzyskanie obrazu RAM i wyszukanie kluczy zajęło tylko kilka minut i było w pełni zautomatyzowane. Istnieją powody, by sądzić, że większość systemów szyfrowania dysków twardych jest podatna na takie ataki.

    bitlocker

    BitLocker to system dołączony do niektórych wersji systemu Windows Vista. Działa jako sterownik między systemem plików a sterownikiem dysku twardego, szyfrując i odszyfrowując wybrane sektory na żądanie. Klucze używane do szyfrowania znajdują się w pamięci RAM, o ile zaszyfrowany dysk jest odmontowany.

    Aby zaszyfrować każdy sektor dysku twardego, funkcja BitLocker używa tej samej pary kluczy wygenerowanej przez algorytm AES: klucza szyfrowania sektora i klucza szyfrowania działającego w trybie szyfrowania blokowego (CBC). Te dwa klucze są z kolei szyfrowane kluczem głównym. Aby zaszyfrować sektor, wykonuje się binarną procedurę dodawania zwykłego tekstu z kluczem sesji wygenerowanym przez zaszyfrowanie bajtu przesunięcia sektora kluczem szyfrowania sektora. Następnie otrzymane dane są przetwarzane przez dwie funkcje miksujące, które wykorzystują opracowany przez Microsoft algorytm Elephant. Te funkcje bezkluczykowe są używane do zwiększenia liczby zmian we wszystkich bitach szyfru, a tym samym do zwiększenia niepewności zaszyfrowanych danych sektora. W ostatnim etapie dane są szyfrowane algorytmem AES w trybie CBC, przy użyciu odpowiedniego klucza szyfrującego. Wektor inicjujący jest określany przez zaszyfrowanie bajtu przesunięcia sektora kluczem szyfrowania używanym w trybie CBC.

    Wdrożyliśmy w pełni zautomatyzowany atak demonstracyjny o nazwie BitUnlocker. Wykorzystuje zewnętrzny dysk USB z systemem operacyjnym Linux i zmodyfikowanym bootloaderem opartym na SYSLINUX i sterowniku FUSE, który umożliwia podłączenie dysków zaszyfrowanych funkcją BitLocker do systemu operacyjnego Linux. Na komputerze testowym z systemem Windows Vista zasilanie zostało wyłączone, podłączony dysk twardy USB i uruchomiony z niego. Następnie BitUnlocker automatycznie zrzucił pamięć RAM na dysk zewnętrzny, wyszukał możliwe klucze za pomocą programu do wyszukiwania kluczy, wypróbował wszystkie odpowiednie opcje (pary klucza szyfrowania sektora i klucza trybu CBC) i, jeśli się powiedzie, podłączył zaszyfrowany dysk . Jak tylko dysk został podłączony, można było z nim pracować jak z każdym innym dyskiem. Na nowoczesnym laptopie z 2 gigabajtami pamięci RAM proces trwał około 25 minut.

    Warto zauważyć, że atak ten stał się możliwy do przeprowadzenia bez inżynierii wstecznej jakiegokolwiek oprogramowania. Dokumentacja firmy Microsoft opisuje system BitLocker wystarczająco, aby zrozumieć rolę klucza szyfrowania sektora i klucza trybu CBC oraz stworzyć własny program, który implementuje cały proces.

    Główną różnicą między funkcją BitLocker a innymi programami tej klasy jest sposób przechowywania kluczy po odłączeniu zaszyfrowanego dysku. Domyślnie w trybie podstawowym BitLocker chroni klucz główny tylko za pomocą modułu TPM, który istnieje na wielu nowoczesnych komputerach. Ta metoda, która wydaje się być powszechnie stosowana, jest szczególnie podatna na nasz atak, ponieważ pozwala uzyskać klucze szyfrujące nawet jeśli komputer był wyłączony przez długi czas, ponieważ podczas uruchamiania komputera klucze są automatycznie ładowane do pamięci RAM (do okna logowania) bez wprowadzania jakichkolwiek danych uwierzytelniających.

    Najwyraźniej eksperci Microsoft znają ten problem i dlatego zalecają skonfigurowanie funkcji BitLocker w trybie ulepszonym, w którym klucze są chronione nie tylko za pomocą TPM, ale także hasłem lub kluczem na zewnętrznym dysku USB. Ale nawet w tym trybie system jest podatny na ataki, jeśli atakujący uzyska fizyczny dostęp do komputera podczas jego działania (może być nawet zablokowany lub w trybie uśpienia (stany - w tym przypadku po prostu wyłączone lub hibernowane są uważane za nienaruszone przez ten atak).

    Sejf plików

    System FileVault firmy Apple został częściowo zbadany i poddany inżynierii wstecznej. W systemie Mac OS X 10.4 FileVault używa 128-bitowego klucza AES w trybie CBC. Po wprowadzeniu hasła użytkownika odszyfrowywany jest nagłówek zawierający klucz AES i drugi klucz K2, używany do obliczania wektorów inicjujących. Wektor inicjujący dla I-tego bloku dysku jest obliczany jako HMAC-SHA1 K2(I).

    Użyliśmy naszego programu EFI do przechwytywania obrazów RAM w celu pobrania danych z komputera Macintosh (opartego na procesorze Intel) z podłączonym dyskiem zaszyfrowanym FileVault. Następnie program do wyszukiwania kluczy automatycznie bezbłędnie odnalazł klucze FileVault AES.

    Bez wektora inicjalizacji, ale z otrzymanym kluczem AES, możliwe staje się odszyfrowanie 4080 z 4096 bajtów każdego bloku dysku (wszystko oprócz pierwszego bloku AES). Upewniliśmy się, że wektor inicjujący również znajduje się w zrzucie. Zakładając, że dane nie zostały uszkodzone, atakujący może określić wektor, próbując kolejno wszystkie 160-bitowe ciągi ze zrzutu i sprawdzając, czy mogą utworzyć możliwy tekst jawny po dodaniu pliku binarnego z odszyfrowaną pierwszą częścią bloku. Razem przy użyciu programów takich jak vilefault, kluczy AES i wektora inicjującego można całkowicie odszyfrować zaszyfrowany dysk.

    Podczas badania FileVault odkryliśmy, że systemy Mac OS X 10.4 i 10.5 pozostawiają w pamięci wiele kopii hasła użytkownika, gdzie są podatne na ten atak. Hasła do kont są często używane do ochrony kluczy, które z kolei mogą być używane do ochrony haseł na dyskach zaszyfrowanych FileVault.

    TrueCrypt

    TrueCrypt to popularny system szyfrowania open source, który działa w systemach Windows, MacOS i Linux. Obsługuje wiele algorytmów, w tym AES, Serpent i Twofish. W wersji 4 wszystkie algorytmy działały w trybie LRW; w obecnej piątej wersji używają trybu XTS. TrueCrypt przechowuje klucz szyfrowania i klucz dostrajania w nagłówku partycji na każdym dysku, który jest zaszyfrowany innym kluczem pochodzącym z hasła wprowadzonego przez użytkownika.

    Przetestowaliśmy TrueCrypt 4.3a i 5.0a pod kontrolą systemu operacyjnego Linux. Podłączyliśmy dysk zaszyfrowany 256-bitowym kluczem AES, a następnie wyłączyliśmy zasilanie i użyliśmy naszego własnego oprogramowania do zrzutu pamięci do uruchomienia. W obu przypadkach narzędzie keyfind znalazło 256-bitowy nienaruszony klucz szyfrowania. Również w przypadku VeraCrypt 5.0.a, keyfind był w stanie odzyskać klucz podkręcania trybu XTS.

    Aby odszyfrować dyski utworzone przez TrueCrypt 4, musisz dostosować klucz trybu LRW. Odkryliśmy, że system przechowuje go w czterech słowach przed kluczowym harmonogramem kluczy AES. W naszym zrzucie klucz LRW nie został uszkodzony. (W przypadku błędów nadal będziemy w stanie odzyskać klucz).

    Dm-krypt

    Jądro Linux, począwszy od wersji 2.6, zawiera wbudowaną obsługę dm-crypt, podsystemu szyfrowania dysków. Dm-crypt używa wielu algorytmów i trybów, ale domyślnie używa 128-bitowego szyfru AES w trybie CBC z wektorami inicjalizacji nie opartymi na kluczach.

    Przetestowaliśmy utworzoną partycję dm-crypt przy użyciu gałęzi LUKS (Linux Unified Key Setup) narzędzia cryptsetup i jądra 2.6.20. Dysk został zaszyfrowany przy użyciu AES w trybie CBC. Wyłączyliśmy na chwilę zasilanie i korzystając ze zmodyfikowanego bootloadera PXE zrobiliśmy zrzut pamięci. Program odnajdywania kluczy znalazł prawidłowy 128-bitowy klucz AES, który został odzyskany bez żadnych błędów. Po jej odzyskaniu osoba atakująca może odszyfrować i zamontować zaszyfrowaną partycję dm-crypt, modyfikując narzędzie cryptsetup tak, aby akceptowało klucze w wymaganym formacie.

    Metody ochrony i ich ograniczenia

    Wdrożenie ochrony przed atakami na pamięć RAM nie jest trywialne, ponieważ użyte klucze kryptograficzne muszą być gdzieś przechowywane. Proponujemy skupić się na niszczeniu lub ukrywaniu kluczy, zanim atakujący uzyska fizyczny dostęp do komputera, zapobiegając uruchomieniu oprogramowania zrzutu pamięci głównej, fizycznie chroniąc układy RAM i, jeśli to możliwe, skracając żywotność danych w pamięci RAM.

    Nadpisanie pamięci

    Przede wszystkim należy w miarę możliwości unikać przechowywania kluczy w pamięci RAM. Konieczne jest zastąpienie kluczowych informacji, gdy nie są już używane, i zapobieganie kopiowaniu danych do plików wymiany. Pamięć należy wcześniej wyczyścić za pomocą systemu operacyjnego lub dodatkowych bibliotek. Oczywiście środki te nie zapewnią ochrony obecnie używanych kluczy, ponieważ muszą być przechowywane w pamięci, na przykład w przypadku dysków zaszyfrowanych lub na bezpiecznych serwerach internetowych.

    Ponadto pamięć RAM musi zostać wyczyszczona podczas procesu rozruchu. Niektóre komputery można skonfigurować tak, aby czyściły pamięć RAM podczas rozruchu za pomocą wyraźnego żądania POST (Power-on Self-Test) przed uruchomieniem systemu operacyjnego. Jeśli atakujący nie może zapobiec wykonaniu tego żądania, to na tym komputerze nie będzie mógł wykonać zrzutu pamięci z ważnymi informacjami. Ale nadal ma możliwość wyciągnięcia chipów RAM i włożenia ich do innego komputera z ustawieniami BIOS, których potrzebuje.

    Ograniczanie pobierania z sieci lub z nośników wymiennych

    Wiele z naszych ataków zostało zrealizowanych przy użyciu rozruchu sieciowego lub nośników wymiennych. Komputer musi być skonfigurowany tak, aby wymagał hasła administratora do rozruchu z tych źródeł. Należy jednak zauważyć, że nawet jeśli system jest skonfigurowany do uruchamiania tylko z głównego dysku twardego, osoba atakująca może zmienić sam dysk twardy lub w wielu przypadkach zresetować pamięć NVRAM komputera, aby przywrócić oryginalne ustawienia systemu BIOS.

    Bezpieczny sen

    Wyniki badania wykazały, że samo zablokowanie pulpitu komputera (to znaczy system operacyjny nadal działa, ale aby rozpocząć z nim interakcję, należy wprowadzić hasło) nie chroni zawartości pamięci RAM. Tryb uśpienia nie działa, nawet jeśli komputer jest zablokowany podczas powrotu z trybu uśpienia, ponieważ atakujący może aktywować powrót z trybu uśpienia, a następnie ponownie uruchomić laptopa i wykonać zrzut pamięci. Tryb hibernacji (zawartość pamięci RAM jest kopiowana na dysk twardy) również nie pomoże, z wyjątkiem sytuacji, gdy do przywrócenia normalnego działania używa się kluczowych informacji na wyobcowanych nośnikach.

    W przypadku większości systemów szyfrowania dysków twardych użytkownicy mogą się chronić, wyłączając komputer. (System Bitlocker w podstawowym trybie modułu TPM pozostaje podatny na ataki, ponieważ dysk zostanie podłączony automatycznie po włączeniu komputera). Zawartość pamięci może być przechowywana przez krótki czas po wyłączeniu, dlatego zaleca się monitorowanie stacji roboczej przez kilka minut. Mimo swojej skuteczności środek ten jest wyjątkowo niewygodny ze względu na długie obciążenie stacji roboczych.

    Hibernację można zabezpieczyć w następujący sposób: wymagać hasła lub innego tajnego klucza do „obudzenia” stacji roboczej oraz zaszyfrować zawartość pamięci kluczem pochodzącym z tego hasła. Hasło musi być silne, ponieważ atakujący może zrzucić pamięć, a następnie spróbować odgadnąć hasło metodą brute force. Jeśli nie jest możliwe zaszyfrowanie całej pamięci, należy zaszyfrować tylko te obszary, które zawierają kluczowe informacje. Niektóre systemy można skonfigurować tak, aby przechodziły w ten rodzaj uśpienia chronionego, chociaż zwykle nie jest to ustawienie domyślne.

    Odrzucenie wstępnych obliczeń

    Nasze badania wykazały, że stosowanie obliczeń wstępnych w celu przyspieszenia operacji kryptograficznych sprawia, że ​​kluczowe informacje są bardziej podatne na ataki. Wstępne obliczenia prowadzą do tego, że w pamięci znajdują się nadmiarowe informacje o kluczowych danych, co pozwala atakującemu odzyskać klucze nawet w przypadku błędów. Na przykład, jak opisano w sekcji 5, informacje o kluczach iteracji algorytmów AES i DES są niezwykle zbędne i przydatne dla atakującego.

    Odrzucenie obliczeń wstępnych zmniejszy wydajność, ponieważ potencjalnie złożone obliczenia będą musiały zostać powtórzone. Ale na przykład możesz buforować wstępnie obliczone wartości przez określony czas i usuwać odebrane dane, jeśli nie są używane w tym przedziale. Takie podejście stanowi kompromis między bezpieczeństwem a wydajnością systemu.

    Rozszerzenie klucza

    Innym sposobem zapobiegania odzyskiwaniu kluczy jest zmiana kluczowych informacji przechowywanych w pamięci w taki sposób, aby utrudnić odzyskiwanie kluczy z powodu różnych błędów. Metoda ta była rozważana teoretycznie, gdzie funkcja okazała się odporna na ujawnienie, której wejścia pozostają ukryte, nawet jeśli prawie wszystkie wyjścia zostały odkryte, co jest bardzo podobne do działania funkcji jednokierunkowych.

    W praktyce wyobraź sobie, że mamy 256-bitowy klucz AES K, który nie jest obecnie używany, ale będzie potrzebny później. Nie możemy go nadpisać, ale chcemy, aby był odporny na próby odzyskania. Jednym ze sposobów osiągnięcia tego jest przydzielenie dużego obszaru danych B-bitowych, wypełnienie go losowymi danymi R, a następnie zapisanie w pamięci wyniku następującej transformacji K + H (R) (sumowanie binarne, ok. red.), gdzie H jest funkcją skrótu, taką jak SHA-256.

    Teraz wyobraź sobie, że prąd został wyłączony, spowoduje to zmianę d bitów w tym obszarze. Jeśli funkcja mieszająca jest silna, podczas próby odzyskania klucza K, atakujący może jedynie odgadnąć, które bity obszaru B zostały zmienione z około połowy, która mogła się zmienić. Jeśli zmieniono d bitów, atakujący będzie musiał wyszukać region o rozmiarze (B/2+d)/d, aby znaleźć prawidłowe wartości R, a następnie odzyskać klucz K. Jeśli region B jest duży, takie wyszukiwanie może być bardzo długie, nawet jeśli d jest stosunkowo małe.

    Teoretycznie możemy w ten sposób przechowywać wszystkie klucze, obliczając każdy klucz tylko wtedy, gdy go potrzebujemy i usuwając go, gdy nie jest nam potrzebny. Tak więc, stosując powyższą metodę, możemy przechowywać klucze w pamięci.

    Ochrona fizyczna

    Niektóre z naszych ataków opierały się na fizycznym dostępie do układów pamięci. Takim atakom można zapobiec poprzez ochronę pamięci fizycznej. Na przykład moduły pamięci są przechowywane w zamkniętej obudowie komputera lub zapieczętowane żywicą epoksydową, aby zapobiec próbom ich usunięcia lub uzyskania dostępu. Możliwe jest również zaimplementowanie nadpisywania pamięci w odpowiedzi na niskie temperatury lub próby otwarcia obudowy. Ta metoda będzie wymagała instalacji czujników z niezależnym systemem zasilania. Wiele z tych metod obejmuje sprzęt odporny na manipulacje (taki jak koprocesor IBM 4758) i może znacznie zwiększyć koszt stacji roboczej. Z drugiej strony korzystanie z pamięci przylutowanych do płyty głównej będzie znacznie tańsze.

    Zmiana architektury

    Możesz zmienić architekturę komputera. Co jest niemożliwe w przypadku już używanych komputerów, ale pozwoli zabezpieczyć nowe.

    Pierwszym podejściem jest zaprojektowanie modułów DRAM w taki sposób, aby szybciej usuwały wszystkie dane. Może to być trudne, ponieważ cel polegający na jak najszybszym wymazaniu danych jest w konflikcie z innym celem, jakim jest zachowanie danych między okresami odświeżania pamięci.

    Innym podejściem jest dodanie kluczowego sprzętu pamięci masowej, który gwarantuje usunięcie wszystkich informacji z pamięci masowej podczas uruchamiania, ponownego uruchamiania i zamykania. W ten sposób otrzymamy bezpieczne miejsce do przechowywania kilku kluczy, chociaż pozostanie luka związana z ich wstępnym obliczeniem.

    Inni eksperci zaproponowali architekturę, w której zawartość pamięci będzie trwale zaszyfrowana. Jeśli dodatkowo zaimplementujemy kasowanie kluczy przy ponownym uruchomieniu i zaniku zasilania, to ta metoda zapewni wystarczającą ochronę przed opisanymi przez nas atakami.

    Zaufane komputery

    Sprzęt odpowiadający koncepcji „zaufanego przetwarzania”, na przykład w postaci modułów TPM, jest już używany w niektórych komputerach PC. Mimo swojej przydatności w ochronie przed niektórymi atakami, w obecnej formie taki sprzęt nie pomaga zapobiegać opisanym przez nas atakom.

    Używane moduły TPM nie implementują pełnego szyfrowania. Zamiast tego obserwują proces uruchamiania, aby zdecydować, czy można bezpiecznie uruchomić klucz w pamięci RAM, czy nie. Jeśli oprogramowanie wymaga użycia klucza, można zastosować następującą technologię: klucz w postaci użytkowej nie będzie przechowywany w pamięci RAM, dopóki proces rozruchu nie przebiegnie zgodnie z oczekiwanym scenariuszem. Ale gdy tylko klucz znajdzie się w pamięci RAM, natychmiast staje się celem naszych ataków. Moduły TPM mogą uniemożliwić załadowanie klucza do pamięci, ale nie uniemożliwiają odczytu z pamięci.

    wnioski

    Wbrew powszechnemu przekonaniu moduły DRAM przechowują dane przez stosunkowo długi czas, gdy są wyłączone. Nasze eksperymenty wykazały, że zjawisko to umożliwia implementację całej klasy ataków, które pozwalają uzyskać ważne dane, takie jak klucze szyfrowania, z pamięci RAM, pomimo prób ochrony ich zawartości przez system operacyjny. Opisane przez nas ataki są możliwe do zrealizowania w praktyce, a dowodzą tego nasze przykłady ataków na popularne systemy szyfrowania.

    Ale inne rodzaje oprogramowania również są podatne na ataki. Systemy zarządzania prawami cyfrowymi (DRM) często wykorzystują klucze symetryczne przechowywane w pamięci, które można również uzyskać za pomocą opisanych metod. Jak wykazaliśmy, serwery internetowe z obsługą SSL są również podatne na ataki, ponieważ przechowują w pamięci klucze prywatne potrzebne do tworzenia sesji SSL. Nasze metody wyszukiwania kluczowych informacji prawdopodobnie będą skuteczne w znajdowaniu haseł, numerów kont i wszelkich innych ważnych informacji przechowywanych w pamięci RAM.

    Wydaje się, że nie ma łatwego sposobu na wyeliminowanie znalezionych luk. Zmiana oprogramowania najprawdopodobniej nie będzie skuteczna; zmiany sprzętu pomogą, ale koszty czasu i zasobów będą wysokie; technologia „zaufanego przetwarzania” w swojej obecnej formie również nie jest zbyt skuteczna, ponieważ nie może chronić kluczy znajdujących się w pamięci.

    Naszym zdaniem na to ryzyko najbardziej narażone są laptopy, które często znajdują się i działają w trybach podatnych na te ataki. Obecność takich zagrożeń pokazuje, że szyfrowanie dysku chroni ważne dane w mniejszym stopniu niż się powszechnie uważa.

    W rezultacie może być konieczne rozważenie pamięci DRAM jako niezaufanego składnika nowoczesnego komputera i unikanie przetwarzania ważnych poufnych informacji.


Autor: Paddy Landau
Data publikacji: wrzesień 2012
Tłumaczenie: Semenenko V.
Data publikacji tłumaczenia: 13.11.2012

Podczas instalacji systemu operacyjnego Ubuntu możesz nie myśleć o konfigurowaniu w nim szyfrowania danych. Lub może zaistnieć sytuacja, w której dodasz użytkownika do systemu bez szyfrowania jego katalogu domowego. Ale teraz zmieniłeś zdanie i zdecydowałeś się skonfigurować ochronę tego katalogu. Innymi słowy, Ty (lub inny użytkownik na komputerze) chcesz funkcji, która obecnie nie istnieje...

Tworzenie zaszyfrowanej partycji w Ubuntu

Jak dodać funkcję szyfrowania do już zainstalowanego systemu Ubuntu Linux?

Na szczęście jest to dość łatwe do wdrożenia. Aby to zrobić, wykonaj trzy podstawowe kroki:

  • utwórz zaszyfrowaną kopię swojego katalogu domowego;
  • usuń oryginalny niezaszyfrowany katalog domowy;
  • zaszyfruj partycję wymiany (wykonywane tylko raz, podczas instalacji systemu Ubuntu lub postępując zgodnie z tym przewodnikiem krok po kroku).

Czynności opisane w tym artykule zostały wykonane na w pełni zaktualizowanym systemie Ubuntu Precise 12.04.

Trening

Z powodu obecnego błędu w systemie Ubuntu Linux nie można się zalogować, jeśli grafika okna logowania znajduje się w zaszyfrowanym folderze domowym użytkownika. Jeśli użytkownik zmienił domyślny wygląd, upewnij się, że nie znajduje się on również w folderze domowym użytkownika.

Tworzenie zaszyfrowanej kopii katalogu domowego użytkownika jest bezpieczną procedurą. Warto jednak zwrócić uwagę, że do jego realizacji wymagana jest pewna ilość miejsca na dysku twardym. Jeśli okaże się, że jest za mało miejsca, należy wykonać kopię zapasową danych, a następnie usunąć z niej wszystkie duże pliki (na przykład filmy) i przywrócić je z tej kopii zapasowej po zakończeniu szyfrowania. Generalnie zalecam wykonanie kopii zapasowej wszystkich danych, aby zapobiec możliwym problemom.

Używając preferowanego menedżera pakietów, zainstaluj program encrypt-utils.

Szyfrowanie

W tym samouczku użyję loginu paddy'ego jako nazwy użytkownika, na której będę działał. Musisz go zastąpić nazwą użytkownika, którego katalog domowy zostanie zaszyfrowany.

Uruchom ponownie system Ubuntu Linux i przejdź do „Trybu odzyskiwania”. Jedna rada - podczas uruchamiania systemu naciśnij i przytrzymaj klawisz Shift, aby otworzyć menu Grub. Zwykle wiersz „Tryb odzyskiwania” (tryb odzyskiwania) znajduje się na drugim miejscu od góry na liście tego bootloadera.

Z menu trybu odzyskiwania wybierz „Upuść”, aby wyświetlić wiersz poleceń dla konta root.

Aby naprawić błąd programowania wspomniany na początku tego artykułu, wprowadź następujące dwie komendy:

Mount --opcje remount,rw / mount --all

Teraz możemy utworzyć zaszyfrowaną kopię katalogu domowego użytkownika paddy. Aby to zrobić, wpisz poniższe polecenie. Jednocześnie postaraj się zapamiętać własne hasło, ponieważ to narzędzie będzie wymagało go do ukończenia operacji:

cryptfs-migrate-home --user paddy

Po zakończeniu procesu szyfrowania zobaczysz kilka ostrzeżeń. Możesz je zignorować. Ale musisz zapamiętać ścieżkę do folderu tymczasowego utworzonego przez to polecenie. Jego wygląd będzie wyglądał mniej więcej tak:

/home/paddy.ChPzzxqD

W tym przypadku ostatnie osiem znaków (po kropce) to zestaw losowy. Ten katalog będzie potrzebny w kolejnych krokach „Zakończono” lub „Powrót do stanu początkowego”, które zostaną omówione później.

Uruchom ponownie system Ubuntu Linux. W tym celu wpisz polecenie:

Zrestartuj teraz

Po wpisaniu i uruchomieniu polecenia może to potrwać kilka sekund, więc bądź cierpliwy.

Ukończenie

Zaloguj się do systemu Ubuntu w zwykły sposób, tak jak za każdym razem. Sprawdź, czy wszystko działa jak poprzednio.

Jeśli coś jest nie tak, możesz od razu przejść do pozycji „Powrót do pierwotnego stanu”.

Jeśli wszystko w systemie działa poprawnie, wykonaj ostatnie kroki.

Otwórz terminal i wprowadź polecenie, aby usunąć katalog tymczasowy. Aby to zrobić, musisz zapamiętać ścieżkę do folderu tymczasowego, który został utworzony podczas szyfrowania katalogu domowego.

Sudo rm -R /home/paddy.ChPzzxqD

Przywróć dane, które zostały usunięte (jeśli istnieją) w kroku „Przygotowanie”.

Ponownie otwórz terminal i wprowadź polecenie, aby zaszyfrować partycję wymiany. Jeśli wcześniej skonfigurowano użytkownika z szyfrowaniem katalogu domowego, możesz bezpiecznie pominąć ten krok:

sudo ecryptfs-setup-swap

Uruchom ponownie.

Powrót do pierwotnego stanu

Jeśli proces szyfrowania nie powiódł się, konieczne będzie ponowne powtórzenie poprzednich kroków.

Uruchom polecenia:

Mount --options remount,rw / mount --all ecryptfs-migrate-home --user paddy

Następnie wprowadź polecenie, aby wyświetlić zawartość folderu tymczasowego utworzonego podczas procesu szyfrowania. Aby to zrobić, ponownie musisz zapamiętać ścieżkę do niego. Nie powinno to generować żadnych błędów. Jeśli tak, to potrzebujesz pomocy.

ls -l /home/paddy.ChPzzxqD

Teraz zakończ proces resetowania, wydając trzy polecenia:

Cd /home rm -R niełuskany .ecryptfs/niełuskany mv niełuskany.ChPzzxqD

Uruchom ponownie.

Mam nadzieję, że powyższe kroki ci pomogły. Jeśli masz nierozwiązywalne problemy, możesz wysłać zgłoszenie na moim wątku na forum Ubuntu:

Tryb uśpienia po zaszyfrowaniu

Większość użytkowników często zastanawia się, dlaczego nie ma hibernacji (hibernacji) w systemie operacyjnym Ubuntu po wykonaniu poprzednich operacji (opisanych wcześniej w tym artykule) i jak przywrócić tę możliwość. Powodem jest skonfigurowane szyfrowanie. Jeśli masz skonfigurowane szyfrowanie katalogu domowego, partycja wymiany jest również zaszyfrowana, ale z losowym kluczem. Po przełączeniu systemu w tryb hibernacji dane RAM są przechowywane na partycji wymiany i szyfrowane losowym kluczem. Podczas przywracania systemu ze stanu hibernacji klucz użyty do zaszyfrowania partycji wymiany jest już bezpowrotnie utracony i system nie może odczytać tej partycji. W związku z tym danych nie można odzyskać, a powrót do poprzedniego stanu nie jest możliwy.

Jeśli nie masz skonfigurowanego szyfrowania partycji w swoim systemie, przywrócenie hibernacji w Ubuntu jest łatwe. Aby to zrobić, po prostu uruchom polecenia:

ls -l /home/niełuskany.ChPzzxqD rm -R niełuskany .ecryptfs/niełuskany

Ale jeśli partycja domowa użytkownika i partycja wymiany są zaszyfrowane w systemie, konieczne jest zastąpienie szyfrowania partycji wymiany wstępnie wybranym hasłem, a nie losowym kluczem.

Należy jednak pamiętać, że każdy użytkownik komputera będzie musiał znać to hasło podczas uruchamiania systemu.

Spróbowałem tej metody w obu przypadkach - zarówno na zwykłym systemie Ubuntu 12.04, jak i na systemie Ubuntu zainstalowanym na maszynie wirtualnej VirtualBox. W tym drugim przypadku wystąpiły problemy z wyświetlaniem ekranu podczas wychodzenia z trybu uśpienia. Ale w zwykłym systemie wszystko działało dobrze.

Trening

Wpisz w terminalu następujące polecenie:

sudo cryptsetup status crypt swap 1

W rezultacie zobaczysz linię, w której zostanie oznaczone urządzenie, wyglądająca mniej więcej tak:

/dev/sda1

/dev/sdb5

To urządzenie jest partycją wymiany w twoim systemie. Zapamiętaj to, bo będziesz go później potrzebować.

Zawsze zalecam wykonanie pełnej kopii zapasowej danych za każdym razem, gdy wprowadzasz jakiekolwiek zmiany w systemie. W naszym przypadku też się przyda.

Ustawienie snu

Wprowadź następujące polecenia. Upewnij się, że zastąpiłeś /dev/sdXN partycją wymiany utworzoną w sekcji „Przygotowanie”. Podczas wprowadzania poleceń należy ściśle przestrzegać określonej kolejności:

sudo swapoff /dev/mapper/cryptswap1 sudo cryptsetup luksClose /dev/mapper/cryptswap1 sudo cryptsetup luksSformatuj szyfr aes cbc essiv:sha256 sprawdź rozmiar klucza hasła 256 /dev/sdXN OSTRZEŻENIE! ======== To nieodwołalnie nadpisze dane w /dev/sda1. Jesteś pewny? (Wpisz wielkie litery tak): TAK Wprowadź hasło LUKS: Sprawdź hasło: sudo cryptsetup luksOpen /dev/sdXN cryptswap1

Wprowadź hasło do urządzenia /dev/sda1 (i powtórz je, aby uniknąć literówki):

sudo mk swap /dev/mapper/crypt swap 1 sudo swapon --all swapon -s

Ostatnie polecenie wyświetli nazwę pliku urządzenia /dev/crypt swap 1 .

Otwórz plik konfiguracyjny /etc/crypttab w preferowanym edytorze. Zastąp wiersz crypt swap 1 następującym (nie zapomnij zmienić /dev/sdXN na swoje urządzenie wymiany):

Cryptswap1 /dev/sdXN brak luk

Teraz edytuj plik /usr/share/initramfstools/scripts/local-top/cryptroot . W nim znajdź linię (zazwyczaj ma numer 288, ale może się zmienić):

Komunikat „cryptsetup: nieznany błąd podczas konfigurowania mapowania urządzenia”

Przejdź do następnej pustej linii (przed FSTYPE=") i wstaw nową (nie zapomnij zastąpić urządzenia /dev/sdXN):

/sbin/cryptsetup luksOpen /dev/sdXN crypt swap 1

Edytuj plik /etc/acpi/hibetnate.sh . W pierwszym pustym wierszu wklej wartość:

DEVICE="/dev/mapper/crypt swap 1"

Edytuj plik /etc/initramfstools/conf.d/resume. Zastąp istniejącą w nim linię następującym:

RESUME=/dev/mapper/crypt swap 1

Następnie edytuj plik /etc/polkit1/localauthoriyt/50-local.d/com.ubuntu.enable-hibernate.pkla . Plik początkowo nie istnieje, więc musisz go najpierw utworzyć. Następnie dodaj do niego linie:

Identity=unixuser:* Action=org.freedesktop.upower.hibernate ResultActive=tak

Na koniec otwórz terminal i wprowadź w nim następujące polecenie:

Aktualizacja Sudo initramfs u k all

Restart.

Korzystanie z trybu uśpienia

Następnym razem, gdy uruchomisz Ubuntu Linux, poprosi Cię o nowe hasło dla partycji wymiany. Wprowadź go, a dalszy normalny proces logowania będzie kontynuowany.

Jeśli nagle zapomniałeś hasła, wpisz coś. Później trzy nieudane próby system i tak będzie kontynuował proces logowania, ale bez montowania partycji wymiany. Aby uzyskać nowe słowo kluczowe, ponownie wykonaj szczegółowe instrukcje opisane w tym artykule.

Teraz znajdziesz tryb „Hibernacja” w menu zamykania systemu Ubuntu Linux i możesz z niego korzystać. Jeśli chcesz przejść do trybu uśpienia z wiersza poleceń, po prostu wpisz następujące polecenie w terminalu.

Korzystając z dysków w chmurze, użytkownicy są coraz bardziej zainteresowani szyfrowaniem w dystrybucjach linuksowych. Przedstawię Ci ciekawy program „szyfrujący chmurę”.

Czy kiedykolwiek myślałeś, że czysto teoretycznie te pliki, które przechowujesz w chmurze, czysto technicznie, mogą stać się publiczne w ciągu kilku minut w określonych okolicznościach. Osobiście nie jestem, a przy całym charakterystycznym dla mnie braku paranoi zamieszczam tę informację wyłącznie dla tych, którzy są „już zapędzeni przez ZOG”, bo jak mówi stary żart: „Jeśli nie masz paranoi, to nie oznacza, że ​​nie jesteś prześladowany”. Więc chodź za mną. przyjaciele.

Linux implementuje szyfrowanie dysku na różne sposoby i na różnych poziomach. Istnieją setki sposobów szyfrowania całego dysku. Pokażę tylko, jak działa program, który lubię, co może rozgryźć nawet taki noob jak ja. Ta aplikacja nazywa się Kryptomator.

Co mi się w tym podobało:

  • Działa doskonale i natychmiast z Dyskiem Google, Yandex Disk, OneDrive, Mail.ru Cloud, Dropbox, ownCloud, Nextcloud i ogólnie z dowolną usługą przechowywania w chmurze, która może synchronizować się z katalogiem lokalnym;
  • to aplikacja open source, która wskazuje na możliwość sprawdzania backdoorów i innych rzeczy.
  • wykonuje szyfrowanie AES o długości 256 bitów;
  • open source oznacza brak backdoorów;
  • szyfruje nazwy plików i zaciemnia strukturę folderów;
  • może być używany lokalnie, nie wymaga połączenia z Internetem.

W rzeczywistości szyfrowanie odbywa się na lokalnym komputerze, a następnie jest synchronizowane z chmurą, więc nawet jeśli ktoś uzyska dostęp do Twojej pamięci w chmurze, zobaczy zestaw plików i folderów z nazwą abrakadabra i taką samą zawartością.

Podobała mi się ta aplikacja z dwóch powodów, pierwszy to ciekawa i wygodna implementacja łączenia zaszyfrowanych kontenerów jak wirtualny dysk twardy. Realizowane przez rodzaj połączenia USB. Drugi jest wieloplatformowy, kryptomator jest dostępny dla systemów Linux, Windows i Mac OS. Oznacza to, że jeśli masz Linuksa w domu, Mac OS w pracy i Windows w czasie wolnym, możesz łatwo uzyskać dostęp do zaszyfrowanych plików w chmurze, po prostu instalując Cryptomator i wprowadzając w nim swoje hasło.

Instalowanie Cryptomatora - aplikacji szyfrującej pliki i foldery w systemie Linux

Aby zainstalować na Ubuntu i pochodnych, wpisz w terminalu:

#dodaj repozytorium sudo add-apt-repository ppa:sebastian-stenzel/cryptomator #zaktualizuj listy pakietów rep aktualizacja sudo apt-get #bezpośrednio zainstaluj Cryptomator sudo apt-get zainstaluj cryptomator

Instalacja na Arch Linux i jego pochodnych jest tak łatwa jak zawsze

Yaourt -S kryptomator #Nie będę pisał o pacaurze, więc jasne

Instalacja w Fedorze, Centos i innych dystrybucjach rpm odbywa się po prostu przez pobranie binarnego pakietu rpm i faktyczne zainstalowanie go.
Pobierz pakiet rpm

Korzystanie z kryptomatora

Tak wygląda tworzenie nowego repozytorium


Wybór katalogu, w którym zostanie utworzony zaszyfrowany katalog

Ten katalog może być katalogiem lokalnym lub zsynchronizowanym w Twojej chmurze.


Tworzymy silny klucz, którego użyjemy w przyszłości do połączenia naszego zaszyfrowanego magazynu.


Następnie pozostaje tylko wprowadzić nowo utworzony klucz i zamontowana jest zaszyfrowana partycja.


Na powyższym zrzucie ekranu wrzuciłem pakiet z plikami 536,9 megabajtów do zamontowanego folderu szyfru i rozpracowałem dla mnie tę garść małych plików w 1 minutę.