Jak w każdej branży, branża bezpieczeństwa informacji, bardziej powszechnie określana jako „cyberbezpieczeństwo”, dla wszystkich swoich szalejących debat, zebrała się wokół małego korpusu najlepszych praktyk.

Jedną z najwyższych na tej liście jest szyfrowanie całego dysku, które eksperci ds. bezpieczeństwa uważają za święte, nieomylne, które każdy powinien stosować na poziomie minimum. To jest szyfrowanie, które zapewnia, że ktoś, kto porywa urządzenie nie będzie w stanie wiedzieć wszystko masz zapisane na nim.

Jestem tutaj, aby przypadek, że większość z was są lepiej nie używać go. Wiem, że może to zabrzmieć szalenie, ponieważ jestem tu kimś w rodzaju faceta od bezpieczeństwa, ale wysłuchajcie mnie.

Nie zamierzam w żaden sposób namawiać was do rezygnacji z szyfrowania – bez niego cyfrowe narzędzia, na których polegamy każdego dnia, byłyby bezużyteczne. Dlatego nie opowiadam się przeciwko szyfrowaniu, ale konkretnie przeciwko szyfrowaniu całego dysku, i to tylko dla niektórych użytkowników.

Twierdzę, że dla większości ludzi, którzy mają do czynienia z przeważająco najczęstszymi przypadkami użycia, szyfrowanie całego dysku to przesada. Użytkownicy ci nie uzyskują wymiernych korzyści w zakresie bezpieczeństwa w porównaniu z alternatywnym szyfrowaniem danych w stanie spoczynku, ale płacą za to wymiernym spadkiem wydajności. Nie jest to tylko kwestia wydajności lub czasu ładowania, ale także dosłowny wzrost kosztów dla użytkowników.

Istnieją rozwiązania alternatywne, które zapewniają normalnym, codziennym użytkownikom, z normalnymi, codziennymi problemami bezpieczeństwa, poziom ochrony współmierny do tego, co oferuje szyfrowanie całego dysku. Są one co prawda trochę na uboczu, ponieważ większość firm zajmujących się technologiami konsumenckimi przyjęła szyfrowanie całego dysku, ale istnieją.

There Has to Be Another Way

Dzisiaj szyfrowanie całego dysku jest zdecydowanie najczęstszym schematem szyfrowania danych w stanie spoczynku. Dane w stanie spoczynku to dane przechowywane na jakimś nośniku (np. na dysku twardym) do późniejszego wykorzystania, a nie dane przesyłane przez kanał komunikacyjny, np. przez Internet (to są dane w tranzycie).

Ogólnie rzecz biorąc, szyfrowanie całodyskowe jest realizowane na poziomie złożoności komputera, który zajmuje się tym, jak surowe bajty, odłączone od kontekstu reprezentacji informacji, są zorganizowane na dysku twardym. Określamy go jako poziom urządzenia blokowego, ponieważ szyfrowanie całego dysku jest stosowane do urządzenia blokowego, jakim jest partycja dysku twardego (jest to fantazyjna nazwa dużego segmentu dysku twardego).

Ten poziom jest wyższy niż poziom sygnału elektrycznego, ale niższy niż system plików, który jest punktem, w którym komputer postrzega bajty jako pliki, a nie tylko bajty. System plików służy jako rodzaj schematu organizacyjnego, który mówi komputerowi, jak powiedzieć, które bajty idą razem, aby utworzyć pliki, i jak odróżnić pliki i typy plików.

Więc czym dokładnie jest to szyfrowanie dysku, które nie jest szyfrowaniem całego dysku?

Odpowiedzią jest szyfrowanie na poziomie systemu plików. W ramach szyfrowania na poziomie systemu plików, zwanego również „szyfrowaniem opartym na plikach”, system szyfruje określone katalogi (tj. foldery) oraz wszystkie pliki i katalogi w nich zawarte, rekursywnie aż do wszystkiego, co zawiera najwyższy katalog. Szyfrowanie na poziomie systemu plików może również zaszyfrować cały system plików, automatycznie chroniąc wszystko, co jest na nim zapisane. Dla naszych celów rozważymy jednak rodzaj szyfrowania opartego na plikach, które pozwala użytkownikowi wybrać, które pliki i katalogi zaszyfrować, pozostawiając resztę w spokoju.

Aby być precyzyjnym, model, który mam na myśli, to taki, który szyfruje tylko dokumenty użytkownika, media i inne pliki, które w systemach Unix skończyłyby w podkatalogu użytkownika pod katalogiem /home. W ten sposób, podstawowe pliki systemowe i binaria uruchamianych programów są pozostawione w spokoju, a chronione są tylko rzeczywiste dane osobiste użytkownika.

To, jak sama nazwa wskazuje, występuje na poziomie systemu plików, który jest o jeden poziom wyżej od miejsca, gdzie działa szyfrowanie całego dysku. Daje to kilka ważnych implikacji. Na początek, wszystkie zaszyfrowane pliki są już rozumiane jako pliki, co oznacza, że mogą być odszyfrowane indywidualnie.

Pozwala to również użytkownikom na rozszerzenie szyfrowania plików o kontrolę uprawnień do plików. Ponieważ cały dysk jest zaszyfrowany w ramach szyfrowania całego dysku, użytkownik znający hasło deszyfrowania dysku musi je wprowadzić, zanim cokolwiek innego będzie mogło zostać wykonane. Jednak oprócz plików użytkownika zablokowane są również wszystkie pliki, których system operacyjny potrzebuje do działania. Udany rozruch wymaga odblokowania całego urządzenia blokowego, a gdy dysk zostanie odblokowany, wszystko jest otwarte.

W przypadku szyfrowania na poziomie plików pełny system operacyjny wymusza rozróżnienie, co i kiedy zostanie odszyfrowane. Każdy użytkownik może zdefiniować, które z jego plików są zaszyfrowane i jakimi hasłami. Dlatego w przypadku szyfrowania opartego na plikach jeden użytkownik może odszyfrować swoje pliki i nadal pozostawić dane innego użytkownika zablokowane. Nie musisz odszyfrowywać zaszyfrowanego katalogu, jeśli nie chcesz – jeśli nie zamierzasz otwierać żadnych dokumentów ani plików multimedialnych, możesz korzystać z programów komputera, pozostawiając swoje osobiste pliki pod kluczem, gdzie, na przykład, złośliwe oprogramowanie nie może ich zainfekować.

Show Me What You’ve Got

Nie zadawałbym sobie trudu przedstawiania szyfrowania opartego na plikach, gdyby nie miało ono pewnych rzeczywistych zalet w porównaniu z szyfrowaniem całego dysku. W tym celu, największą siłą szyfrowania opartego na plikach jest to, że jego szybkość pozostawia w tyle szyfrowanie całego dysku. Dzieje się tak, ponieważ systemy szyfrowania oparte na plikach odczytują i zapisują na dysku wydajniej.

Aby zrozumieć dlaczego tak jest, zajmijmy się tym, jak działają zaszyfrowane urządzenia blokowe (jak pamięć masowa flash). W ramach odświeżenia terminologii „szyfrogram” to zaszyfrowana forma informacji, której nie można odczytać bez odpowiedniego klucza, natomiast „tekst jawny” to informacja w oryginalnej, zrozumiałej formie.

Gdy odszyfrowujesz zaszyfrowane dane w spoczynku, Twój komputer nie zmienia dosłownie wszystkich bitów na sprzęcie pamięci masowej z szyfrogramu na tekst jawny. Trwałoby to zbyt długo, a poza tym w mgnieniu oka usmażyłoby Twój dysk z powodu zapisu na całym dysku przy każdym uruchomieniu i wyłączeniu urządzenia. Zamiast tego fizyczne bity na dysku pozostają bez zmian, ale są odczytywane i zapisywane w buforze, który istnieje w pamięci po zastosowaniu odpowiedniego klucza. Bufor wykonuje operację odszyfrowywania podczas odczytu informacji i operację szyfrowania podczas ich zapisu na dysku. Podczas odszyfrowywania i odczytywania danych tekst jawny jest przechowywany w pamięci, dzięki czemu można się do niego łatwo odwoływać do momentu zakończenia pracy z nim.

Dodanie tych wielu dodatkowych kroków spowalnia działanie w porównaniu z niezaszyfrowanym odczytem i zapisem, nawet dziesięciokrotnie. W przypadku szyfrowania całego dysku, każda pojedyncza rzecz, którą robisz na swoim komputerze musi być odczytana przez ten bufor deszyfrujący, ponieważ całe urządzenie blokowe i jego zawartość jest zaszyfrowana. Co istotne, obejmuje to wszystkie binaria, które uruchamiają sam system operacyjny i całe oprogramowanie na nim zawarte.

Ale w wybranej przez nas konfiguracji szyfrowania opartego na plikach, tylko dokumenty użytkownika i pliki multimedialne wymagają deszyfrowania. Większość oprogramowania, z którego korzystasz na co dzień, nie znajduje się wśród tych plików. Istnieje wiele zadań obliczeniowych, które nie wymagają odszyfrowywania czegokolwiek w ogóle. Jako jeden z przykładów, żyjemy w naszych przeglądarkach internetowych tak bardzo, że prawdopodobnie możesz policzyć na palcach jednej ręki liczbę plików użytkownika, które otworzyłeś w ciągu ostatnich 24 godzin.

Oczywiście, Twój komputer będzie musiał odszyfrować niektóre dane przez pewien czas, ale nawet wtedy, ponieważ szyfrowanie jest zaimplementowane na poziomie systemu plików, Twój zaszyfrowany system operacyjny oparty na plikach może to zrobić bardziej efektywnie niż analog zaszyfrowany na pełnym dysku.

W ostateczności cały dostęp do dysku, czy to do dysku w pełni zaszyfrowanego, czy zaszyfrowanego w systemie plików, wymaga zatwierdzenia przez rdzeń systemu operacyjnego, czyli jądro. Ponieważ jednak szyfrowanie w szyfrowaniu całego dysku jest zarządzane na poziomie uprawnień administratora systemu, jądro musi się zaangażować także w odczyt urządzenia blokowego przez bufor deszyfrujący.

Szyfrowanie oparte na plikach nie napotyka tej przeszkody, ponieważ wymaga tylko uprawnień nieuprzywilejowanego użytkownika do deszyfrowania jego własnych plików. W rezultacie szyfrowanie całego dysku musi uzyskać dodatkowe zezwolenie od jądra na odczyt lub zapis na dysku, w porównaniu z tym samym procesem w modelu opartym na plikach.

Większa wydajność przy mniejszym zużyciu

Kolejną ważną zaletą szyfrowania w systemie plików jest to, że zmniejsza ono zużycie dysku. W przypadku każdej indywidualnej operacji zapisu system z szyfrowaniem opartym na plikach zapisuje po prostu mniej danych niż system z szyfrowaniem całego dysku.

Ponownie, szyfrowanie w przypadku szyfrowania całego dysku odbywa się na poziomie urządzenia blokowego, które widzi tylko bloki, jednostki bajtów o jednakowym rozmiarze. Nie wszystkie dane zajmują jednak cały blok. W rzeczywistości wiele z nich nie zajmuje. Zatem szyfrowanie na poziomie bloków w rzeczywistości udaremnia wbudowany w komputer mechanizm wydajności, który zmienia tylko te części pliku, które rzeczywiście uległy zmianie. Bez szyfrowania całego dysku, komputer może porównać zaktualizowaną wersję pliku w pamięci z poprzednią wersją na dysku, określić, które części są teraz inne, i zapisać te nowe różne części do pliku.

Komputer może również osiągnąć podobną oszczędność zapisów dzięki szyfrowaniu opartemu na plikach: gdy wersja pliku w pamięci jest aktualizowana, plik jest filtrowany przez bufor szyfrowania i tymczasowo przechowywany w pamięci, a następnie system operacyjny porównuje nową zaszyfrowaną wersję z poprzednią zaszyfrowaną wersją na dysku w celu określenia, które bity faktycznie się zmieniły, i zapisuje tylko te.

Szyfrowanie całego dysku to inna historia.

W tym modelu system operacyjny wie, które części pliku uległy zmianie, ale ponieważ szyfrowanie odbywa się według bloków, a nie według plików, system operacyjny musi teraz tłumaczyć pliki na bloki, szyfrować bloki i zapisywać je w urządzeniu blokowym. Zmiany w pliku, które nie sumują się do wartości bloku danych, mogą obejmować wiele bloków, z których wszystkie muszą być następnie filtrowane przez zaszyfrowany bufor i zapisywane w całości z powrotem na urządzeniu blokowym. Nawet jeśli wszystkie zmienione dane są przechowywane w jednym bloku, cały blok jest przepisywany, co powoduje znaczny narzut zapisu.

Ze względu na swój charakter szyfrowanie na poziomie systemu plików zapewnia elastyczność, której nie zapewnia alternatywa pełnego dysku. Jak zauważono powyżej, szyfrowanie całego dysku to wszystko albo nic. Szyfruje cały system, pliki główne i wszystkie dane użytkownika. Oznacza to, że niewrażliwe dane, które mają być ładowane szybciej (np. pliki wideo lub audio do edycji) są spowalniane przez odczyt i zapis.

Szyfrowanie całego dysku nie jest również idealne dla systemów z wieloma użytkownikami, takich jak wspólne urządzenia domowe. Każdy, kto chce korzystać z urządzenia, musi znać hasło odszyfrowywania całego dysku, w przeciwnym razie urządzenie nie może nawet uruchomić systemu operacyjnego. A odblokowanie urządzenia dla dowolnego użytkownika powoduje odblokowanie danych dla wszystkich użytkowników. Oznacza to również, że nie można włączyć funkcji, takich jak nieuprzywilejowane konta „gości”, które mogą korzystać z systemu operacyjnego z zablokowanym dostępem do plików użytkownika.

Na koniec, szyfrowanie oparte na plikach jest bardziej rozsądne dla tego, czego potrzebuje większość ludzi. Sam mówiłem, że bezpieczeństwo wiąże się z niedogodnościami, i to jest prawda. Ale podczas projektowania zestawu praktyk bezpieczeństwa, branie na siebie większej ilości niedogodności niż jest to konieczne do zmniejszenia ryzyka ataku nie pomaga. W rzeczywistości, to tylko szkodzi: jeśli procedury bezpieczeństwa użytkownika są zbyt uciążliwe, użytkownik w końcu pójdzie na skróty.

Po prostu, szyfrowanie całego dysku jest zbyteczne dla przypadku użycia, który najprawdopodobniej masz. Dwie konfiguracje szyfrowania, które ze sobą zestawiliśmy, chronią użytkownika na różne sposoby. Główna różnica w stopniu bezpieczeństwa między nimi polega na tym, że szyfrowanie oparte na plikach chroni tylko dokumenty użytkownika i pliki multimedialne. W przeciwieństwie do tego, szyfrowanie całego dysku szyfruje te pliki plus podstawowe pliki systemu operacyjnego.

Kilka potencjalnych wad

Jak łatwo się domyślić, istnieją wady nieszyfrowania wszystkiego w sposób, w jaki robi to szyfrowanie całego dysku. Teoretycznie osoba atakująca z fizycznym dostępem do urządzenia wykorzystującego szyfrowanie oparte na plikach może zmienić niezaszyfrowane dane systemu operacyjnego. Stamtąd atakujący albo uruchamia komputer, aby uruchomić kod, który właśnie tam umieścił, albo czeka, aż użytkownik uruchomi komputer, aby jego złośliwy kod zrobił coś, co pozwoli mu przechwycić dane.

Brzmi to źle i takie jest, ale prawdopodobnie nie przytrafi się Tobie. Naprawdę, większość lub żaden z twoich przeciwników nie będzie nawet próbował tego zrobić. Są oni albo tak prymitywni, że szyfrowanie na poziomie systemu plików wystarczy, aby im to uniemożliwić, albo tak wyrafinowani (tzn. potężni), że mają bardziej efektywne metody pozyskiwania Twoich danych.

Dla przeważającej większości użytkowników problem, który rozwiązuje szyfrowanie danych w stanie spoczynku, polega na uniemożliwieniu złodziejom, którzy fizycznie ukradną Twoje urządzenie, zdobycia Twoich danych. Dlatego sprytni złodzieje nie liczą na zdobycie danych, a zamiast tego uciekają się do paserstwa urządzenia za pieniądze. W tym scenariuszu szyfrowanie oparte na plikach i szyfrowanie całego dysku działają równie dobrze.

I odwrotnie, jeśli przeciwnikiem jest organ rządowy (np. organy ścigania), nie uratuje Cię ani szyfrowanie oparte na plikach, ani szyfrowanie całego dysku. W zależności od jurysdykcji, mogą oni zgodnie z prawem nakazać odblokowanie urządzenia. Prawie wszędzie indziej rządy mogą wydawać polecenia usługom, które przechowują dane użytkownika w swojej chmurze, aby po prostu przekazać to, czego chcą – a w represyjnych reżimach, powiedzmy, że mają bardziej bezpośrednie i bolesne sposoby zmuszania użytkownika do podporządkowania się.

Dla dobra argumentacji, powiedzmy, że stoisz przed przedstawicielem rządu, a wszystkie wyżej wymienione techniki nie zadziałały. Szyfrowanie całego dysku zadziałałoby tylko wtedy, gdyby rząd nie miał bardziej wyrafinowanego sposobu na zaatakowanie systemu. Nie jest to problem dla większości potężnych rządów na świecie, ponieważ są one na tyle zaawansowane, że mogą w jakiś sposób sforsować lub obejść szyfrowanie.

Tak więc, nie ma zbyt wielu przypadków, w których szyfrowanie całego dysku naprawdę cię uratuje: kiedy twoim wrogiem jest rząd i możesz wytrzymać tortury fizyczne, ale rząd nie jest zdolny do naprawdę fajnego hakowania w filmach akcji, które w zasadzie każdy kraj G20 może zrobić.

Nie znaczy to, że w zależności od przeciwnika, nie można nic zyskać na utrudnianiu życia atakującemu – utrudnianie życia atakującemu jest od dawna znaną strategią bezpieczeństwa – ale uświadom sobie, że to wszystko, co może zagwarantować szyfrowanie całego dysku. Ale, ponownie, to nie jest to, na co prawie każdy z was patrzy.

Praktyczne szyfrowanie, niepraktyczne wdrożenie

Ci z Was, którzy są przekonani i chcą odzyskać wydajność odczytu i zapisu oraz żywotność dysków SSD, prawdopodobnie zastanawiają się, gdzie można dostać w swoje ręce to słodkie szyfrowanie na poziomie plików. Cóż, tutaj sprawy się komplikują. Widzisz, trudno jest ustawić go w praktyce.

Głównym powodem tego jest to, że główne konsumenckie systemy operacyjne są już szyfrowane na całym dysku. Apple i Google skonfigurowały swoje urządzenia mobilne do szyfrowania całego dysku i odmawiają użytkownikom możliwości jego wyłączenia. Apple i Microsoft również domyślnie włączają szyfrowanie całego dysku, ale oba oferują sposoby wyłączenia go dla nieustraszonych.

Dla biurkowych systemów operacyjnych opartych na Linuksie (moje osobiste preferencje), instalacja systemu z szyfrowaniem na poziomie systemu plików była tak łatwa jak zaznaczenie pola, ale to szybko odchodzi w zapomnienie. Ubuntu ostatnio zrezygnowało z tej opcji instalacji w swoim graficznym instalatorze, pozostawiając Linux Mint jako jedyną dystrybucję jaką znam, która nadal ją oferuje. Nawet dystrybucje DIY takie jak Arch Linux zniechęcają do prób konfigurowania kryptografii na poziomie plików. Zamiast tego, kierują cię w stronę szyfrowania blokowego, dla którego dokumentacja jest znacznie bardziej dokładna.

Jeśli jesteś skłonny przejść do wymaganych czynności aby wyłączyć szyfrowanie całego dysku, są pewne opcje dostępne dla ciebie. Jedną z solidniejszych opcji jest VeraCrypt. VeraCrypt jest graficznym narzędziem do tworzenia zaszyfrowanych struktur katalogów na istniejącym systemie plików, zrodzonym z chęci przejęcia płaszcza nieistniejącego TrueCrypta. Może pochwalić się opcjami zapewniającymi szybkość odczytu i zapisu na równi z niezaszyfrowanymi systemami plików, a nawet super-szpiegowskimi funkcjami, takimi jak szyfrowanie z możliwością zaprzeczania, gdzie zaszyfrowane dane będą wyglądać jak zwykła, nieużywana przestrzeń na dysku. Zbadanie nawet podstawowych możliwości VeraCrypt wykraczałoby poza zakres tego i tak już długiego artykułu, ale być może jest to materiał na przyszły artykuł.

Dlaczego więc poświęciłem tyle czasu, aby opowiedzieć wam o czymś, co nie jest najbardziej (choć na pewno nie najmniej) dostępne? Zasadniczo, ważne jest, aby wiedzieć, co jest możliwe, aby można było dokonać najbardziej świadomych wyborów, aby stworzyć doświadczenie komputerowe, które jest najbardziej odpowiedzią na Twoje potrzeby. Komputery są nieskończenie konfigurowalne, więc nie ma powodu, dla którego użytkownik powinien być pozbawiony konfiguracji, która jest dla niego najlepsza – nieznajomość swoich opcji jest najgorszym z takich powodów.

Docenianie tego, co jest możliwe, to coś więcej niż tylko prowadzenie swojego najlepszego cyfrowego życia, ale także zapewnienie wsparcia, nawet jeśli jest to tylko użytkowanie, dla twórców, którzy to umożliwiają. Jeśli brzmi to jak coś, co mogłoby uczynić twoje życie lepszym, mówię ci, idź naprzód i majsterkuj!

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.