Grupa o nazwie PrivacyIdea utworzyła mały pakiet w celu dodania procedury initmfs HMAC-SHA1 do odpowiedzi, co oznacza, że Ubuntu może zapytać cię o wyzwanie przekazania do Yubikey, a następnie użyć odpowiedzi, aby odblokować wolumin LUKS. W większości postępuję zgodnie z tymi instrukcjami , dodając kilka komentarzy. Proces ten jest w rzeczywistości bardzo łatwy do wykonania.
Przetestowałem to na Ubuntu 14.04, 16.04 i 18.04; używając Yubikey Neo. Powinien działać z każdym najnowszym Yubikey, z oprogramowaniem 2.0+ i każdą wersją Ubuntu po 14.04. Testowałem także Ubuntu 19.04 z Yubikey 5C, potrzebna była dodatkowa praca, ale można ją uruchomić. Mogą też istnieć inne sprzętowe urządzenia reagujące na wyzwanie HMAC-SHA1, z którymi to działa, ale nie wiem o żadnym z nich. Jak zawsze, przed kontynuowaniem upewnij się, że masz kopię zapasową danych - tutaj nie powinno być żadnych problemów, ale zawsze istnieje szansa, że wszystko to zniszczy na twoim komputerze. Te instrukcje nie są objęte gwarancją.
Aktualizacja: od wersji Ubuntu 16.04 potrzebne pakiety znajdują się w głównych repozytoriach i nie jest potrzebne PPA.
Dodaj komentarz, jeśli masz pytania!
0. Wymagania wstępne
Aby to zadziałało, musisz już mieć skonfigurowane i działające szyfrowanie na pełnym dysku LUKS. Możesz to zrobić, wybierając odpowiednią opcję podczas instalacji Ubuntu. Aby uzyskać maksymalne bezpieczeństwo, podczas instalacji należy wybrać bardzo silne hasło. Jeśli twoje hasło nie jest do zera, przed kontynuowaniem zmień je na lepsze ( bardziej szczegółowe instrukcje tutaj ).
Poniższa metoda nie zastąpi żadnych istniejących haseł, ale zamiast tego doda kolejne hasło do jednego z gniazd LUKS. Dlatego jeśli stracisz swój Yubikey, nadal możesz odblokować komputer za pomocą dowolnego istniejącego hasła - sugeruję zanotować go i schować w bezpiecznym miejscu - będziesz również potrzebować go kilka razy podczas tej procedury. Twoje nowe hasło wyzwania Yubikey powinno nadal być dość silne, ale nie musi być tak długie, jak hasło użyte podczas instalacji Ubuntu.
1. Dodaj PrivacyIdea PPA i zainstaluj pakiet
W systemie Ubuntu 14.04
Otwórz terminal i uruchom następujące polecenie:
sudo add-apt-repository ppa:privacyidea/privacyidea
Po wyświetleniu monitu naciśnij klawisz Enter, a następnie uruchom:
sudo apt-get update
Następnie zainstaluj pakiet za pomocą:
sudo apt-get install yubikey-luks
W systemie Ubuntu 16.04, 18.04
Nie potrzebujesz PPA, możesz zainstalować pakiet za pomocą:
sudo apt-get install yubikey-luks
W systemie Ubuntu 19.04
Zobacz tę odpowiedź, aby dowiedzieć się, jak zbudować yubikey-luks
pakiet ze źródła dla Ubuntu 19.04.
2. Zainstaluj oprogramowanie Yubikey
Jeśli używasz funkcji HMAC-SHA1 Yubikey do czegoś innego, możesz pominąć ten rozdział. Skasuje każdą konfigurację w drugim gnieździe Yubikey, więc nie wykonuj tego kroku, jeśli używasz HMAC-SHA1 do innych celów w tym Yubikey.
Musisz skonfigurować Yubikey do pracy z Ubuntu, instalując wymagane oprogramowanie z Yubico PPA na Ubuntu 14.04 lub z głównego repozytorium Ubuntu 16.04 i nowszych.
W systemie Ubuntu 14.04
Jeśli nie zrobiłeś tego wcześniej, dodaj PPA i zainstaluj pakiet z:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install yubikey-personalization
W systemie Ubuntu 16.04, 18.04 (i nowszych)
sudo apt-get install yubikey-personalization
3. Zainicjuj gniazdo Yubikey dla HMAC-SHA1
Teraz musimy zaprogramować drugie gniazdo Yubikey z konfiguracją HMAC-SHA1. Spowoduje to usunięcie poprzedniej konfiguracji gniazda, która jest domyślnie pusta. Ponownie, jeśli używasz HMAC-SHA1 do czegoś innego , nie wydawaj tego polecenia - spowoduje to skasowanie konfiguracji. Możesz bezpiecznie użyć tego samego tajnego klucza w Yubikey dla tej konfiguracji LUKS, jak dla innych zastosowań. (Na przykład z innym komputerem korzystającym z LUKS + Yubikey).
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Terminal wyświetli informacje o wprowadzonych zmianach. Nie musisz tego zanotować, ale pokaże tajny klucz używany przez Yubikey w algorytmie HMAC-SHA1 do obliczenia odpowiedzi w przypadku wyzwania.
4. Zarejestruj Yubikey w LUKS Slot
Teraz zmodyfikujemy konfigurację LUKS, aby dołączyć odpowiedź z Yubikey jako jeden z kluczy deszyfrujących.
Partycja, którą musimy określić, zależy od tego, czy używasz BIOS-u, czy UEFI do uruchomienia komputera. W przypadku BIOS zaszyfrowany wolumin jest /dev/sda5
domyślnie ustawiony na , a dla UEFI na /dev/sda3
. Możesz to sprawdzić, otwierając disks
narzędzie i potwierdzając ścieżkę do partycji - powinna to być sda3
albo sda5
. UWAGA: Na nowszych komputerach z dyskami NVMe ścieżka będzie wyglądać podobnie /dev/nvme0n1p3
.
Uruchom to w terminalu:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7
Spowoduje to zapisanie w gnieździe 7 konfiguracji LUKS, postępuj zgodnie z instrukcjami wyświetlanymi w instalatorze (różnią się one nieznacznie w zależności od używanej wersji).
Więc wszystko gotowe! Powinieneś być w stanie zrestartować komputer, a jeśli twój Yubikey jest włożony, możesz wpisać hasło wyzwania i użyć Yubikey jako drugiego czynnika, aby odblokować partycję LUKS i uruchomić system. Po odszyfrowaniu dysku twardego możesz usunąć Yubikey.
Jeśli zgubisz swój Yubikey, nadal możesz wprowadzić oryginalne (mam nadzieję, że bardzo długie) hasło do odszyfrowania dysku twardego, a następnie możesz ponownie wykonać tę procedurę, aby zarejestrować nowy Yubikey.
Zmiana hasła wyzwania szyfrowania
Zmiana hasła w późniejszym terminie jest dość prosta, wystarczy użyć tego polecenia, aby zresetować tajny klucz. Zresetowanie tajnego klucza nie jest konieczne, ale nie zaszkodzi. Pamiętaj, że to zniszczy poprzedni tajny klucz, nie rób tego, jeśli używasz HMAC-SHA1 do czegoś innego z tym Yubikey. (Na przykład z innym komputerem korzystającym z LUKS + Yubikey).
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Następnie, podobnie jak w kroku 4 powyżej, aby zarejestrować nowe hasło do gniazda klucza LUKS, z wyjątkiem opcji wyczyszczenia gniazda 7 za pomocą tego polecenia:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7 -c
Po wyświetleniu monitu Enter any remaining passphrase
użyj hasła zapasowego - nie hasła wyzwania Yubikey. Następnie wprowadź dwa razy nowe hasło wyzwania Yubikey, a na końcu po raz ostatni musisz wprowadzić hasło zapasowe.
Teraz twoje stare hasło wyzwania Yubikey zostało usunięte i tylko nowy odszyfruje dysk twardy. Twoje poprzednie hasło zapasowe pozostanie takie samo. Możesz zmienić to hasło, podążając za linkami w kroku 0 .
Uwaga na temat wpływu na bezpieczeństwo
Dodanie Yubikey zapewni Twojemu systemowi pewien poziom bezpieczeństwa - ktoś musi znać zarówno hasło wyzwania, jak i mieć Yubikey, aby móc odblokować dysk twardy (lub znaleźć twoje początkowe hasło, którego używasz teraz jako kopii zapasowej) . Jest jednak technicznie wykonalne, aby osoba atakująca odszyfrowała dysk twardy, jeśli zna hasło do wyzwania (na przykład „surfując na ramieniu” podczas pisania) i może uzyskać dostęp do Yubikey tylko przez krótki czas. Używając hasła wyzwania, mogą uzyskać odpowiedź od Yubikey i zapisać ją, a następnie użyć do odszyfrowania dysku twardego w dowolnym momencie bez Yubikey. Lub ponownie, jeśli osoba atakująca lub złośliwe oprogramowanie znał twoje hasło i był w stanie uruchomić kod na maszynie podłączonej do twojego Yubikey, może również wydać wyzwanie i zapisać odpowiedź. Dlatego niezwykle ważne jest zachowanie czujności podczas wprowadzania hasła-wyzwania i upewnienie się, że Yubikey zawsze znajduje się w bezpiecznym miejscu. Powinieneś także podłączać go tylko do zaufanego komputera. Jeśli stracisz kontrolę nad swoim Yubikey i podejrzewasz, że ktoś mógł go użyć, aby spróbować nauczyć się klucza deszyfrującego, wykonaj ponownie kroki 2 i 3, aby zresetować tajny klucz wewnątrz Yubikey i wybrać nowe hasło wyzwania. Zauważ, że jeśli przeciwnikowi udało się nauczyć jednego z twoich haseł (albo odpowiedzi HMAC-SHA1 z Yubikey, albo twojej kopii zapasowej), mogą wykonać kopię zapasową klucza głównego LUKS, a następnie użyć go do odszyfrowania dysku twardego, nawet jeśli zmienisz hasło w przyszłości. i aby upewnić się, że zawsze masz Yubikey w bezpiecznym miejscu. Powinieneś także podłączać go tylko do zaufanego komputera. Jeśli stracisz kontrolę nad swoim Yubikey i podejrzewasz, że ktoś mógł go użyć, aby spróbować nauczyć się klucza deszyfrującego, wykonaj ponownie kroki 2 i 3, aby zresetować tajny klucz wewnątrz Yubikey i wybrać nowe hasło wyzwania. Zauważ, że jeśli przeciwnikowi udało się nauczyć jednego z twoich haseł (albo odpowiedzi HMAC-SHA1 z Yubikey, albo twojej kopii zapasowej), mogą wykonać kopię zapasową klucza głównego LUKS, a następnie użyć go do odszyfrowania dysku twardego, nawet jeśli zmienisz hasło w przyszłości. i aby upewnić się, że zawsze masz Yubikey w bezpiecznym miejscu. Powinieneś także podłączać go tylko do zaufanego komputera. Jeśli stracisz kontrolę nad swoim Yubikey i podejrzewasz, że ktoś mógł go użyć, aby spróbować nauczyć się klucza deszyfrującego, wykonaj ponownie kroki 2 i 3, aby zresetować tajny klucz wewnątrz Yubikey i wybrać nowe hasło wyzwania. Zauważ, że jeśli przeciwnikowi udało się nauczyć jednego z twoich haseł (albo odpowiedzi HMAC-SHA1 z Yubikey, albo twojej kopii zapasowej), mogą wykonać kopię zapasową klucza głównego LUKS, a następnie użyć go do odszyfrowania dysku twardego, nawet jeśli zmienisz hasło w przyszłości. wykonaj ponownie kroki 2 i 3, aby zresetować tajny klucz w Yubikey i wybierz nowe hasło wyzwania. Zauważ, że jeśli przeciwnikowi udało się nauczyć jednego z twoich haseł (albo odpowiedzi HMAC-SHA1 z Yubikey, albo twojej kopii zapasowej), mogą wykonać kopię zapasową klucza głównego LUKS, a następnie użyć go do odszyfrowania dysku twardego, nawet jeśli zmienisz hasło w przyszłości. wykonaj ponownie kroki 2 i 3, aby zresetować tajny klucz w Yubikey i wybierz nowe hasło wyzwania. Zauważ, że jeśli przeciwnikowi udało się nauczyć jednego z twoich haseł (albo odpowiedzi HMAC-SHA1 z Yubikey, albo twojej kopii zapasowej), mogą wykonać kopię zapasową klucza głównego LUKS, a następnie użyć go do odszyfrowania dysku twardego, nawet jeśli zmienisz hasło w przyszłości.Strona podręcznika dla cryptsetup wyjaśnia to, spójrz na sekcję luksHeaderBackup . Jeśli podejrzewasz, że tak się stało, musisz utworzyć zupełnie nowy wolumin LUKS, aby chronić swoje dane.