BitLocker

BitLocker – rozwiązanie pozwalające na kryptograficzną ochronę danych na dyskach, wbudowane w systemach operacyjnych MicrosoftuWindows Vista Enterprise, Windows Vista Ultimate, Windows 7 Ultimate, Windows 7 Enterprise, Windows Server 2008 oraz Windows Server 2008 R2, Windows 8 Pro, Windows 8 Enterprise oraz Windows 10 Pro, Windows 10 Enterprise. Może wykorzystywać sprzętowe moduły Trusted Platform Module.

Mechanizm działania

BitLocker szyfruje przy pomocy algorytmu AES (128 lub 256 bitów) każdy sektor partycji. Szyfrowanie i odszyfrowanie odbywa się w najniższej możliwej warstwie, przez co mechanizm jest praktycznie niewidzialny dla systemu i aplikacji. Niezależnie od AES, do szyfrowania wykorzystywany jest dyfuzor, pozwalający na lepszą dyfuzję zaszyfrowanych danych. Algorytm dyfuzora został opracowany przez firmę Microsoft i jest powszechnie dostępny, jednak aby nie zmuszać użytkowników do stosowania niecertyfikowanych algorytmów kryptograficznych, istnieje możliwość jego wyłączenia. Razem z algorytmem dyfuzora, opublikowany został formalny dowód, wykazujący, że połączenie AES i dyfuzora daje ochronę nie słabszą niż sam AES. Algorytmy kryptograficzne używane w mechanizmach BitLocker posiadają certyfikację FIPS.

GUI systemu Windows Vista pozwala na założenie ochrony BitLocker wyłącznie dla partycji systemowej. Przy użyciu wbudowanego w system skryptu manage-bde.wsf można jednak zaszyfrować dowolną inną partycję.

Jeżeli szyfrowana jest partycja systemowa, ważnym wymogiem dla działania mechanizmu BitLocker jest istnienie na dysku twardym niezaszyfrowanej partycji startowej o rozmiarze rzędu kilkuset MB. Znajdują się na niej niezaszyfrowane programy pozwalające na odczytanie kluczy szyfrujących i start całego mechanizmu.

Do szyfrowania partycji systemowej wykorzystywany jest klucz generowany przez TPM, klucze wprowadzane z klawiatury lub klucze z pamięci USB. Możliwe jest połączenie metod wprowadzania kluczy tak w sposób wymagający równoczesnego użycia kilku z nich jak i dający wybór którego klucza użyć.

Inne partycje nie mogą być chronione przez TPM, jednak jeżeli partycja systemowa jest zaszyfrowana, klucz można zapisać w rejestrze i automatycznie go używać przy każdym uruchomieniu systemu.

Uwierzytelnienie

Dane umożliwiające dostęp do danych mogą pochodzić z:

  • TPM – tylko dla partycji systemowej
  • pliku (na przykład na nośniku USB)
  • wprowadzonego z klawiatury kodu, składającego się z 48 cyfr
  • rejestru – tylko dla partycji innych niż systemowa i pod warunkiem zaszyfrowania partycji systemowej
  • hasła wprowadzanego z klawiatury – dla partycji niesystemowych lub dla partycji systemowej (tylko Windows 10) w przypadku braku TPM (musi być ustawiona odpowiednia zasada w gpedit.msc).

W przypadku dostępu do partycji innej niż systemowa i obsługi przez linię poleceń, można użyć dowolnego pliku zawierającego klucz. W przypadku GUI i startu systemu, klucz musi znajdować się w głównym katalogu nośnika USB. Jeden nośnik USB zawierać może klucze dla praktycznie dowolnej liczby partycji. W takiej sytuacji, właściwy klucz wybierany jest automatycznie na podstawie nazwy pliku identycznej z unikalnym identyfikatorem partycji.

Choć BitLocker znacząco zyskuje dzięki użyciu modułu TPM, jego istnienie w żaden sposób nie jest wymagane. Bez TPM zaszyfrować można tak partycję systemową jak i inne partycje. Wadą braku TPM jest konieczność wprowadzania klucza podczas startu systemu. TPM robi to automatycznie w sposób niezauważalny dla użytkownika.

Składający się z 48 cyfr kod, wprowadzany podczas startu systemu wprowadza się za pomocą klawiszy numerycznych lub klawiszy funkcyjnych [F1] dla 1, [F2] dla 2 itd., gdzie [F10] oznacza zero. Wynika to z faktu, że niektóre klawiatury używają nietypowych kodów dla cyfr, podczas gdy klawisze funkcyjne zawsze obsługiwane są tak samo.

Konieczność wprowadzenia kodu pojawić się może w sytuacji, kiedy TPM nie może wygenerować klucza automatycznie. Wynikać to może na przykład ze zmian w sprzęcie lub oprogramowaniu. W takiej sytuacji, po użyciu kodu odzyskiwania należy ponownie wygenerować klucz dla TPM. Przy ponownym uruchomieniu klucz taki zostanie użyty automatycznie.

W systemie Windows 7 wprowadzona została obsługa mechanizmów BitLocker dla nośników wymiennych, w tym pamięci USB Flash, nazywana BitLocker to Go.

Z poziomu GUI w przypadku dostępności modułu TPM nie da się zaszyfrować partycji systemowej inną metodą niż przechowywanie klucza w TPM, da się jednak użyć innej metody (np. hasła) szyfrując partycję systemową wydając polecenie z PowerShella (przykładowe polecenie znajduje się poniżej).

Enable-BitLocker -MountPoint "C:" -UsedSpaceOnly -PasswordProtector

Użycie innej metody zabezpieczenia partycji systemowej niż przechowywanie klucza w TPM wymaga ustawienie zasady w gpedit.msc zezwalającej na użycie funkcji BitLocker bez zgodnego modułu TPM (Konfiguracja komputera > Szablony administracyjne > Składniki systemu Windows > Szyfrowanie dysków funkcją BitLocker > Dyski z systemem operacyjnym > Wymagaj dodatkowego uwierzytelnienia przy uruchamianiu) wybrać opcję Włączone i zaznaczyć opcję Zezwalaj na używanie funkcji BitLocker bez zgodnego modułu TPM.

Ataki

Z założenia BitLocker służy wyłącznie do ochrony dysków przed nieuprawnionymi osobami oraz atakami offline, na które systemy Windows były dotąd podatne. W żaden sposób nie gwarantuje on kontroli przepływu informacji pomiędzy uprawnionymi użytkownikami tego samego komputera lub przesyłania jej na zewnątrz systemu.

Istnieje szereg scenariuszy, w których atakujący może uzyskać dostęp do zawartości zaszyfrowanego dysku, jeśli posiada do niego fizyczny dostęp[1][2].

Przypisy

  1. Sven Tuerpe, Andreas Poller, Jan Steffan, Jan-Peter Stotz, Jan Trukenmueller: Attacking the BitLocker Boot Process. Fraunhofer Institute for Secure Information Technology, 2009.
  2. J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, Edward W. Felten: Lest We Remember: Cold Boot Attacks on Encryption Keys. Princeton University, 2008.

Linki zewnętrzne