Jak używać pliku jako klucza urządzenia LUKS
- 2677
- 744
- Ignacy Modzelewski
LUKS jest akronimem konfiguracji klucza Unified Linux: jest to najczęściej używana implementacja szyfrowania używana w systemach Linux i może być skonfigurowana jako alternatywa dla konfiguracji Plain DM-Crypt Plain. W porównaniu z tym ostatnim zapewnia dodatkowe funkcje, takie jak hasło i solanie haseł, oraz możliwość przechowywania wielu haseł w tak zwanym nagłówku Luksa. W tym samouczku założę, że czytelnik ma pewną znajomość luków; Jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić nasz podstawowy przewodnik na temat szyfrowania partycji Linux za pomocą luków. Najczęstszym sposobem ochrony urządzenia LUKS jest użycie hasła, jednak możliwe jest również użycie pliku jako klucza; W tym samouczku zobaczymy, jak to zrobić. Chodźmy!
W tym samouczku się nauczysz:
- Jak utworzyć plik z losowymi danymi do użycia jako klucz urządzenia LUKS
- Jak dodać klucz do urządzenia Luks
- Jak automatycznie odszyfrować urządzenie LUKS przy uruchomieniu za pomocą pliku jako klucza
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Dowolny rozkład Linuksa |
Oprogramowanie | CryptsetUp |
Inny | Uprawnienia korzeniowe w celu uzyskania zaszyfrowanych urządzeń blokowych |
Konwencje | # - Wymaga, aby podane Linux -commands były wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-wymaga wykonania Linux-commands jako zwykłego niewidzianego użytkownika |
Tworzenie kontenera Luksa
Ze względu na ten samouczek utworzymy pojemnik LUKS na pliku wypełnionym zerami, wygenerujemy za pomocą DD. Aby utworzyć plik, możemy uruchomić:
$ sudo dd if =/dev/zero =/luks-container.IMG BS = 1m liczba = 300
W powyższym przykładzie użyliśmy /dev/zero
plik jako Dd Źródło wejściowe polecenia (/dev/zero
jest plik „specjalny”: za każdym razem, gdy z niego czytamy, zwraca 0s) i /LUKS-CONTAINER.img
jako cel i argument DD z
operand. Poinstruowaliśmy DD, aby odczytał i napisał 300 bloków 1 MIB wielkości za pomocą odpowiednio BS I liczyć Operands. Aby użyć pliku jako kontenera LUKS, musimy go przygotować za pomocą CryptsetUp; Możemy uruchomić:
$ sudo cryptsetup luksformat --Type = luks1--hash = sha512-Key-size = 512--cipher = aes -xts-pllain64 /luks-container.img
luksformat Podmiot CryptsetUp służy do inicjalizacji kontenera LUKS i ustawienia początkowej frazy. Po uruchomieniu powyższego polecenia zostanie ostrzeżone, że operacja jest destrukcyjna, ponieważ nadpisuje wszystkie istniejące dane. Zostaniemy poproszeni o potwierdzenie, że chcemy wykonać operację; piszemy TAK (litery kapitałowe) i naciśnij Enter, aby potwierdzić:
OSTRZEŻENIE! ========.IMG nieodwołalnie. Jesteś pewny? (Wpisz „Tak” w literach kapitałowych): Tak
W tym momencie zostaniemy poproszeni o dostarczenie i potwierdzenie hasła, które zostanie użyte jako pierwszy z ośmiu możliwych klawiszy urządzenia:
Wprowadź hasło dla /luks-container.IMG: Weryfikuj hasło:
Nasz kontener Luks jest teraz gotowy. Możemy użyć Lukksdump Podkomenda CryptsetUp rzucić nagłówek Informacja:
$ sudo cryptsetup luksdump /luks-container.IMG LUKS INFORMACJE DLA /LUKS CONTAINER.IMG Wersja: 1 Nazwa szyfrowania: AES Cipher Sól: F1 03 65 E2 F1 D7 4E 77 99 48 E8 57 75 65 DD 73 A3 EB A4 24 BE 36 9E 84 F7 84 C5 D3 94 2E D8 52 MK Iteracje: 79054 UUID: EA23C244-2DC5-402E-B23E-D9DA3219ff8a Key Gniazdo 0: Włączone iteracje: 1108430 Sól: 69 99 95 88 6e 2f E8 B9 D8 9C 91 36 B6 A2 55 C1 35 27 C7 DA 5D 9A 9E F9 8C EC 70 68 DB 41 53 4B Key Material Offset: 8 AF Strases: 4000 Gniazdo klawisza 1: Wyłączony klawisz 2: Wyłączony klawisz Glotka 3: Wyłączony klawisz Glotka 4: Wyłączony klawisz Glot
Na powyższym wyjściu możemy zobaczyć różne informacje: Nazwa szyfru I Tryb szyfru Na przykład używane dla urządzenia. Jednak w tym przypadku naprawdę interesuje nas w tym przypadku Kluczowe szczeliny Sekcja. Jak widać, w tym przypadku używany jest tylko pierwszy klawisza: przechowuje podanie, które dostarczamy podczas sformatowania urządzenia. W takim przypadku istnieje łącznie 8 miejsc; 7 jest dostępne do przechowywania dodatkowych kluczy. Użyjemy jednego z nich do przechowywania pliku, którego użyjemy do odblokowania urządzenia LUKS.
Tworzenie pliku losowych do użycia jako klucz
Każdy istniejący plik może być używany jako klawisz urządzenia LUKS, jednak utworzenie pliku może być bezpieczniejsze, z losowych danych. Aby utworzyć plik, po raz kolejny uciekniemy się do czcigodnego Dd polecenie, tym razem używając /dev/urandom
Jako źródło danych:
$ sudo dd if =/dev/urandom o =/klucz pojemnika BS = 512 Liczba = 8 8+0 Rekordy w 8+0 rekordy 4096 bajtów (4.1 kb, 4.0 kib) skopiowane, 0.000631541 s, 6.5 MB/s
/dev/urandom
Plik działa podobnie jak /dev/zero
ale zwraca losowe dane za każdym razem, gdy są odczytane. Tym razem czytamy 8
bloki 512
bajty, tworząc plik „wypełniony” 4096
bajty losowych danych.
Dodanie pliku klucza do urządzenia Luks
Po utworzeniu pliku możemy dodać go do nagłówka Luksa i użyć go jako klucza. CryptsetUp Podspółmander, który pozwala nam wykonać to zadanie, to Lukksaddkey.
Pierwszym argumentem jest urządzenie Luksa, do którego należy użyć klucza; Drugi, opcjonalny, jest ścieżką plik kluczowy do użycia jako klucz. Jeśli zostanie pominięty, użytkownik zostanie poproszony o dostarczenie hasła. Wśród opcji zaakceptowanych przez polecenie jest --Klucz
: Dzięki temu możemy określić, jakiego kluczowego gniazda należy użyć do przechowywania klucza. W takim przypadku pominiemy opcję, aby zostanie użyty pierwszy dostępny gniazdo (w tym przypadku numer 1).
Aby dodać plik jako klawisz LUKS, uruchamiamy:
$ sudo cryptsetup luksaddkey /luks-container.IMG /Keener-klub
Zostaniemy poproszeni o dostarczenie już istniejącej frazy dla kontenera; Po zrobieniu tego nowy klucz zostanie dodany. Po pomyślnym wykonaniu polecenia powyżej, jeśli uruchomimy Lukksdump Znowu możemy zaobserwować, że nowe miejsce jest teraz używane:
[…] Kluczowy gniazdo 0: Włączone iteracje: 1108430 Sól: 69 99 95 88 6e 2F E8 B9 D8 9C 91 36 B6 A2 55 C1 35 27 C7 DA 5D 9A 9e F9 8c Ec 70 68 DB 41 53 4B Key Material Material Offset: 8 Paski AF: 4000 Key Glot 1: Włączone iteracje: 921420 Sól: 62 54 F1 61 C4 D3 8D 87 A6 45 3E F4 E8 66 B3 95 E0 5D 5D 78 18 6A E3 F0 AE 43 6D E2 24 14 BC 97 Key Material Material Ocset 512 Paski AF: 4000 klawisz 2: Wyłączony klawisz Nutę 3: Wyłączony klawisz Glotka 4: Wyłączony klawisz Glotka 5: Wyłączone klawisz Glotka 6: Wyłączone klawisz 7: Wyłączony […]
Otwieranie pojemnika Luksa
Aby sprawdzić, czy klawisz działa, możemy teraz spróbować otworzyć pojemnik LUKS za pomocą go. W tym celu używamy Luksopen Podspółmander CryptsetUp: wymaga dwóch obowiązkowych argumentów:
- Urządzenie Luksa
- Nazwa do użycia do mapowania urządzenia po jego otwarciu.
Jak możemy określić, że chcemy użyć pliku do otwarcia urządzenia? Łatwy! Używamy--plik kluczowy
opcja i przekaż ścieżkę do pliku kluczowego jako jego argument. W naszym
Case, aby otworzyć urządzenie, pełne polecenie do uruchomienia jest:
$ sudo cryptsetup luksopen /luks-container.IMG LUKS-CONTAINER-CRYPT-KEKEY-FILE =/
Jeśli wszystko pójdzie zgodnie z oczekiwaniami, powinniśmy znaleźć wpis dla otwartego pojemnika pod /dev/maper
Katalog, w tym przypadku: /dev/mapper/luks-container-crypt
.
Nawiasem mówiąc, możemy teraz traktować pojemnik, tak jak zrobilibyśmy z dowolnym urządzeniem blokowym: być może możemy utworzyć na nim system plików i zamontować go:
sudo mkfs.ext4/dev/mapper/luks-container-crypt && sudo mount/dev/mapper/luks-container-crypt/multimed
Otwórz automatycznie kontener LUKS podczas rozruchu
Gdy dowiedzieliśmy się, jak używać pliku jako klawisza kontenera LUKS, możemy zrobić, aby urządzenie LUKS było automatycznie otwierane w rozruchu, bez interakcji użytkownika. Samo w sobie wychodzi, że jest to konfiguracja, która stanowi zagrożenia bezpieczeństwa, więc należy go bardzo ostrożnie używać! Przynajmniej w niebezpiecznych miejscach plik używany do odblokowania urządzenia powinien być dostępny tylko przez użytkownika roota i powinien być przechowywany w zaszyfrowanym systemie plików, w przeciwnym razie szyfrowanie staje się bezużyteczne (jest równoważne użycie dużej blokady tłuszczu w celu ochrony a drzwi, ale opuszczając klucz, do którego może się skontaktować).
Aby to zrobić, aby kontener LUKS został automatycznie odblokowywany podczas rozruchu, musimy określić potrzebne informacje w środku /etc/crypttab
plik. Ten plik służy do opisania zaszyfrowanych urządzeń blokowych, które są konfigurowane podczas rozruchu systemowego. Składnia do użycia w pliku jest dość łatwa do zrozumienia; W każdym wierszu dodajemy, musimy określić, w kolejności:
- Nazwa do użycia do mapowania urządzenia (w poprzednim przykładzie, którego użyliśmy
Luks-Container-Crypt
) - Urządzenie hostingowe pojemnika LUKS, które należy otworzyć
- Hasło urządzenia (opcjonalnie)
- Opcje użycia (opcjonalnie)
W takim przypadku wprowadzilibyśmy tę linię:
LUKS-CONTAINER-CRYPT /LUKS-CONTAINER.IMG /LUKS
Przy następnym rozruchu urządzenie zostanie automatycznie odblokowane!
Wnioski
W tym samouczku dowiedzieliśmy się, w jaki sposób możemy użyć pliku jako klucza do odblokowania kontenera LUKS. Chociaż dowolny plik może być używany do tego celu, widzieliśmy, jak używać DD do utworzenia pliku losowych data, i widzieliśmy, jak dodać go do jednego z 8 dostępnych gniazd nagłówka LUKS za pomocą Lukksaddkey Komenda. Na koniec widzieliśmy, w jaki sposób można automatycznie odblokować kontener LUKS przy rozruchu za pomocą plik kluczy /etc/crypttab
Plik i widzieliśmy, dlaczego może to stanowić możliwe ryzyko bezpieczeństwa.
Powiązane samouczki Linux:
- Rzeczy do zainstalowania na Ubuntu 20.04
- Jak hash hasła w Linux
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Najlepszy czytnik PDF dla Linux
- Jak używać luków z odłączonym nagłówkiem
- Czy Linux może uzyskać wirusy? Badanie podatności Linuksa…
- Pełne szyfrowanie dysku z Veracrypt na Ubuntu Linux
- Pobierz Linux
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…