[PL] Co to jest BitLocker oraz TPM? Jak działa szyfrowanie dysków?

Homepage:

https://www.youtube.com/watch?v=HdZIuSKn8gU

Description:

Wprowadzenie

Cześć!

Ja jestem Kacper Szurek a to kolejny odcinek podcastu Szurkogadanie, w którym opowiadam o bezpieczeństwie.

W tym tygodniu będzie trochę nietypowo. Tym razem nie opowiem o ciekawostkach, które miały miejsce w branży ostatnimi czasy. Przyjrzymy się natomiast szyfrowaniu dysków twardych. W ciągu następnych kilku minut chcę odpowiedzieć na kilka, wydawało by się prostych pytań.

Co to jest szyfrowanie dysków oraz jak ono działa, a także dlaczego zwykły Kowalski a także właściciele firm powinni korzystać z tego narzędzia. W trakcie audycji dowiesz się także co to jest BitLocker i TPM oraz jak jego budowa sprawia, że kradzież firmowego laptopa z tajnymi danymi nie jest taka groźna jak mogło by się wydawać.

Podcast ten można również znaleźć na Spotify oraz Google i Apple Podcasts oraz Anchor.

Więcej informacji na temat bezpieczeństwa znajdziesz na naszej grupie od 0 do pentestera na Facebooku.

Zaczynajmy!

W prostych słowach, szyfrowanie to proces przekształcenia tekstu czytelnego dla człowieka do innej niezrozumiałej postaci, tak aby osoba bez klucza nie była w stanie odczytać informacji tam zawartych. Wbrew pozorom nie jest to rzecz nowa. Wojny są z nami od zarania dziejów. Tak jak i dzisiaj, również wtedy powodzenie misji zależało od wypełnienia rozkazów, pochodzących od przełożonych. A żeby takie wiadomości nie trafiały w niepożądane ręce - stosowano proste szyfry. Wtedy to tekst mogła odczytać jedynie osoba znająca klucz - czyli mechanizm, jaki został użyty do zapisania danej wiadomości.

Jednym z popularniejszych przykładów jest szyfr Cezara. Według historyków Juliusz Cezar - rzymski wódz i polityk, stosował tą metodę podczas przesyłania prywatnej korespondencji do swoich przyjaciół.

Jest to rodzaj szyfru podstawieniowego, w którym każda litera tekstu niezaszyfrowanego jest zastępowana inną, oddaloną od niej o stałą liczbę pozycji w alfabecie. W tym wypadku litery przesuwamy o 3. A więc B w kodzie Cezara będzie zapisane jako E a litera C jako F.

Ale takie prymitywne metody nie są już od dawna stosowane. W przeszłości ich prostota wynikała głównie z faktu iż tekst szyfrował człowiek - bez pomocy żadnych dodatkowych maszyn. Ale teraz mamy komputery - sytuacja wygląda więc zgoła inaczej.

Dlaczego więc chcielibyśmy szyfrować nasze pliki na dysku twardym? Wiele osób może teraz podnieść głos, że przecież nie mają nic do ukrycia. I rzeczywiście tak może być w przypadku komputerów stacjonarnych, które leżą w zaciszu naszych mieszkań. Ale co z laptopami i telefonami? Sporo osób korzysta bowiem właśnie z tych urządzeń a wtedy szyfrowanie może być przydatne. Kiedy? Chociażby w przypadku kradzieży.

Jeżeli bowiem ktoś skradnie naszego laptopa - uzyska pełen dostęp do danych tam zawartych. W przypadku osobistego sprzętu mogą to być fotografie z wakacji czy też emaile z poczty elektronicznej. Gdy mowa o firmach - atakujący może uzyskać dostęp do kodów źródłowych naszej aplikacji czy też tajemnic przedsiębiorstwa - chociażby listy klientów, z którymi współpracujmy.

Możesz spytać: ale jak to możliwe? Przecież mój komputer jest zabezpieczony hasłem. Za każdym razem gdy go uruchamiam, na ekranie startowym Windowsa proszony jestem o podanie tajnej kombinacji znaków i dopiero wtedy uzyskuję dostęp do zasobów maszyny. No i rzeczywiście - tak wygląda mechanizm logowania, ale nie ma on nic wspólnego z szyfrowaniem dysku. Komputer bowiem składa się w wielu komponentów. Mamy zatem procesor, RAM, kartę graficzną oraz dysk. Jeżeli ktoś posiada fizyczny dostęp do maszyny - czyli jeżeli ją nam ukradł, może każdy z tych elementów wyjąć z obudowy.

Może więc odkręcić nasz dysk twardy, a następnie przełożyć go do swojego komputera. Tam to, taki dysk nie będzie już chroniony przez hasło dostępu do naszego systemu operacyjnego. Wszak przestępca jest już zalogowany na swoim komputerze - a tak podpięty dysk twardy będzie traktowany jak kolejny zasób pamięci masowej.

Posłużę się tu analogią do znanych pendrive’ów - przecież gdy przenosimy dane przy pomocy tych urządzeń - po ich wpięciu poprzez port USB - są one widoczne jako normalne dyski twarde. To samo w tym przypadku. Dlatego też utrata komputera przenośnego może być tak kosztowna. Atakujący może bowiem w prosty sposób uzyskać dostęp do naszych danych i to bez znajomości loginu i hasła.

Możesz teraz pomyśleć: przecież nikomu nie będzie się chciało odkręcać obudowy, wyciągać dysku oraz przekładać go do innego komputera. Może tak, może nie. A co w przypadku gdy jesteś osobą pełniącą eksponowane, polityczne stanowisko? Może na tym dysku twardym znajdują się jakieś kompromitujące materiały? Przestępcy już od dłuższego czasu stosują bowiem taktykę okupu w odniesieniu to cyberprzestępczości. Szczególnie dobrze widoczne jest to zwłaszcza w kontekście złośliwego oprogramowania. Po co kraść jakieś dane z firmy po włamaniu do niej. Prościej te dane zaszyfrować a następnie czekać na pieniądze, aby móc je odszyfrować.

Wiele firm bez dostępu do bieżących danych po prostu nie może funkcjonować. A często okazuje się, że backupy albo nie były robione, albo działały nieprawidłowo. No dobrze, ale załóżmy, że nie przekonuje Cię opcja fizycznego ingerowania w sprzęt. A co byś powiedział na inną, prostszą alternatywę? Komputer może bowiem zostać uruchomiony nie tylko z dysku twardego. Istnieją metody na uruchomienie działającego systemu operacyjnego z poziomu płyty CD czy też pendrive’a.

Wystarczy odpowiednio spreparowany nośnik podpięty do portu USB. Potem w momencie bootowania systemu - wystarczy tylko wybrać pendrive i poczekać na uruchomienie systemu. Wtedy to nie korzystamy z tego - który znajduje się na dysku twardym komputera ale z innego, znajdującego się na naszym nośniku. Ponownie zatem nie jest potrzebne nasze hasło i login do Windowsa.

Korzystając z tej metody również możemy uzyskać dostęp do zasobów znajdujących się na dysku twardym danego komputera.

Ale to nie wszystko. System Windows przechowuje hasło użytkownika w zahaszowanej postaci - to znaczy, że nasze hasło jest zamieniane na pewien ciąg znaków przy użyciu matematycznej funkcji jednostronnej. Nie jest możliwe odzyskanie takiego hasła - to znaczy nie da się w prosty sposób powiedzieć, jakie hasło zostało użyte do wytworzenia takiego ciągu znaków. Można oczywiście próbować metod siłowych - czyli sprawdzać każdą kombinację wyrazów, które przychodzą nam do głowy i porównywać je z tymi, zawartymi w systemie plików.

Ale takie rozwiązanie jest mało wydajne. Istnieje natomiast inna metoda. Nie możemy w łatwy sposób dojść do tego jakiego hasła używał poprzedni właściciel, ale możemy to hasło zresetować. To znaczy tak zmodyfikować plik z hasłami używany przez system Windows - aby zostało tam zapisane hasło, które jest nam znane. Dzięki temu po ponownym uruchomieniu nie musimy już korzystać z naszego okrojonego systemu znajdującego się na pendrivie ale z normalnego systemu użytkownika. Zamiast bowiem hasła poprzedniego właściciela - podajemy naszą nową kombinację. I tak oto jesteśmy w stanie zalogować się na komputer danej osoby. Prawda, że przerażające?

I tu do gry wchodzi szyfrowanie dysków. Takie szyfrowanie jest możliwe przy użyciu różnego oprogramowania. W Windowsie najprostszą metodą jest jednak skorzystanie z BitLockera - czyli narzędzia wbudowanego w sam system operacyjny i stworzonego przez Microsoft. Ale jeżeli chciałbyś skonfigurować ten mechanizm, masz kilka możliwości. Ich ilość jest także różna w zależności od Twojego sprzętu. Prześledźmy teraz każdą z tych opcji po kolei.

Najprostszą opcją jest szyfrowanie przy użyciu zwykłego hasła. Niestety, nie jest to dobre rozwiązanie. Dlaczego? Ponieważ bezpieczeństwo całego rozwiązania opiera się na tajności podawanego przez nas hasła. Im dłuższe i bardziej skomplikowane hasło - tym trudniej będzie go złamać. Tylko, że tutaj do gry wchodzi użyteczność. Ciężko mi sobie bowiem wyobrazić pracownika, który byłby zadowolony z faktu wprowadzania za każdym razem 40-znakowego losowego hasła. Poza tym jesteśmy tylko ludźmi - im hasło bardziej skomplikowane i mniej przyjazne dla naszego umysłu, tym częściej pojawiają się pokusy aby je gdzieś zapisać. A zapisywanie hasła do szyfrowania dysku na żółtej karteczce przyklejonej do obudowy laptopa nie jest najlepszym pomysłem.

Dlatego też kolejną opcją jest używanie hasła, zapisanego na zewnętrznym nośniku. W tym wypadku - hasło do szyfrowania jest generowane losowo przez BitLocker, a następnie umieszczane na nośniku danych. W tej opcji - hasło jest zdecydowanie dłuższe i skomplikowane, co sprawia, że używanie metod siłowych jest bezcelowe. Tylko że teraz - za każdym uruchomieniem komputera konieczne będzie podpięcie pendrive’a do portu USB. Co więcej - plik przechowujący to hasło znajduje się na pendrivie w niezaszyfrowanej postaci. To oznacza - że każda osoba, która uzyska dostęp do pendrive’a może je po prostu skopiować a następnie użyć do odzyskania naszych danych.

Mamy zatem 2 metody i każda z nich jest w mniejszym lub większym stopniu słaba. Co nam pozostaje? I tutaj do gry wchodzi TPM. Trusted Platform Module to układ scalony, który potrafi wykonywać pewne typowe operacje kryptograficzne. Obecnie jest on już obecny na większości nowszych płyt głównych wbudowanych w nasze komputery. W przeszłości, montowano go głównie w rozwiązaniach klasy enterprise. Użytkownicy domowi mogli dokupić taki moduł za kilka dolarów a następnie wpiąć go do odpowiedniego portu na płycie głównej. Dlaczego zatem ten malutki kawałek płytki drukowanej jest taki rewolucyjny?

Jeżeli rozmawiamy o szyfrowaniu, głównym problemem jest długość hasła. Z jednej strony musi być ono dostatecznie krótkie abyśmy byli je w stanie zapamiętać, z drugiej jednak musi być dostatecznie długie, aby nie dało się go złamać przy pomocy ataków bruteforce. A co, gdyby to hasło było przechowywane w module TPM? Możesz sobie teraz pomyśleć: hola, hola - ale przecież to już było. Przecież przed chwilą opisywałem opcję, w której hasło było przechowywane na pendrivie. I rzeczywiście - tylko, że te dwa rozwiązania znacząco się od siebie różnią. TPM możesz bowiem traktować jako sejf, który jest zamurowany i przykręcony śrubami do naszej ściany. W momencie startu systemu operacyjnego sprawdza on nasz komputer pod względem wprowadzonych w nim zmian. Jeżeli wykryje coś niepokojącego - nie zwróci klucza, który się w nim znajduje. TPM jest bowiem bezpośrednio powiązany z naszym komputerem oraz z dyskami twardymi. Jeżeli przełożymy dysk do innego komputera - inny TPM nie będzie posiadał kluczy do jego odszyfrowania.

Również samo przełożenie TPMa do innej płyty głównej się nie powiedzie - ponieważ zostanie to wykryte jako zmiana konfiguracji. Ale w przypadku normalnego działania, mechanizm jest dla użytkownika praktycznie niezauważalny. Podczas startu systemu TPM sprawdza naszą konfigurację. Jeżeli wszystko się zgadza - zwraca przechowywane przez siebie klucze do BitLockera, który to wykorzystuje je do odszyfrowania dysku twardego. Naszym oczom ukazuje się ekran logowania do naszego systemu operacyjnego. Tutaj, jeżeli spróbowalibyśmy chociażby zmienić kolejność bootowania - czyli uruchomić system operacyjny z pendrive’a - TPM rozpozna zmianę konfiguracji i nie zwróci swojego klucza.

W takich wypadkach BitLocker będzie potrzebował do swojego działania tak zwanego recovery key. Jest to inny, specjalny klucz - używany w beznadziejnych przypadkach. Programiści wzięli bowiem pod uwagę sytuacje losowe - chociażby możliwość zepsucia się modułu TPM. W takim przypadku - dane byłyby nie do odzyskania, ponieważ jedyny klucz znajdował się właśnie tam. Dlatego tez podczas uruchamiania BitLockera w nowym systemie - generowany jest specjalny klucz odzyskiwania. On to powinien być wydrukowany i przetrzymywany w bezpiecznej lokalizacji - tak aby w nagłym wypadku możliwe było jego użycie i odszyfrowanie danych z dysku.

Istnieją jednak publikacje naukowe, w których udało się wyciągnąć klucz z TPM. Takie ataki są bardzo zawiłe - w skrócie, możliwe jest takie podpięcie się pod urządzenie, że w momencie gdy przesyła ono klucz do BitLockera - atakujący jest w stanie je podsłuchać. Dlatego też dla pełnego bezpieczeństwa wprowadzono tryb TPM + PIN. Ten tryb można porównać do sejfu przytwierdzanego do ściany, który da się otworzyć tylko kluczem. W tym wypadku tym kluczem jest kod PIN ustalany przez użytkownika. W momencie startu komputera - użytkownik jest proszony o kod PIN. Dopiero po poprawnym podaniu kodu PIN - TPM zostaje odblokowany, a hasło w nim przechowywane bezpośrednio przekazywane do BitLockera - który do deszyfruje nasz dysk twardy.

No ale PIN to tylko kilka znaków - w zależności od standardu od 4 do 6 cyfr. A to przecież tylko 10 000 kombinacji. Nic więc nie stoi na przeszkodzie, aby spróbować każdą z nich aby uzyskać dostęp do urządzenia. Ale to nie takie proste. TPM bowiem chroni przed tego rodzaju atakami. Po kilkunastu błędnych próbach, wydłuża czas oczekiwania na możliwość wykonania kolejnej. To sprawia, iż pomimo tak małej ilości kombinacji - sprawdzanie ich wszystkich jest bardzo żmudne.

I to już wszystko w tym odcinku. Teraz już wiesz jak to działa. Jeżeli ten materiał Ci się spodobał - zostaw komentarz i nie zapomnij o subskrypcji kanału. Do zobaczenia w kolejnym podcaście. Cześć!

Timeline: