Jak mogę zmienić specyfikację skrótu i czas iteracji istniejącego urządzenia LUKS dm-crypt?
Oczywiście mogę przekazać opcje, jeśli utworzę nowe urządzenie, na przykład coś takiego:
sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --iter-time 2100 --hash sha512 /dev/loop0
Ale jeśli urządzenie już istnieje, w jaki sposób można zmienić na przykład sha256
na sha1
lub zmienić czas iteracji bez „zniszczenie” urządzenie. (Oczywiście musisz ponownie wpisać hasło, ponieważ zostanie wygenerowany nowy skrót).
hash-spec
jest lubiter-time
ustawienia są bardziej szczegółowe.cryptsetup-reencrypt
. Lista wypunktowana brzmi jak to, co próbujesz mi zrobić: „zmień dowolne parametry szyfrowania”.Odpowiedzi:
Każdy klucz ma swój własny czas iteracji. Jeśli chcesz zmienić liczbę iteracji, utwórz nowy boks z tym samym hasłem i nową liczbą iteracji, a następnie usuń stary boks.
Myślę, że algorytmu skrótu nie można skonfigurować dla każdego gniazda, zawsze jest to PBKDF2 z globalnie wybraną funkcją skrótu.
Najnowsze wersje cryptsetup zawierają narzędzie
cryptsetup-reencrypt
, które może zmienić główny klucz szyfrowania i wszystkie parametry, ale jest uważane za eksperymentalne (i ponownie szyfruje całe urządzenie, nawet jeśli nie byłoby to konieczne, aby po prostu zmienić funkcję wyprowadzania klucza opartą na haśle) .źródło
Jeśli wszystko, co chcesz zmienić, to skrót, nie ma potrzeby ponownego szyfrowania. Nadal jednak musisz zbudować nowy nagłówek LUKS. Ten sam szyfr, ten sam klucz główny, to samo przesunięcie, inny skrót.
Możesz spróbować tego sam. Najpierw skonfigurujemy urządzenie LUKS ze standardowymi ustawieniami i kiepską liczbą iteracji:
W tym momencie mamy urządzenie LUKS z zaszyfrowanymi danymi „Hello World I am LUKS”. W szczególności wygląda to tak:
Jak widać, liczy się kiepska iteracja, standardowe skróty sha1.
Aby przełączyć na wysoką liczbę iteracji i skrót sha512, bez ponownego szyfrowania, potrzebujemy nowego nagłówka LUKS przy użyciu tego samego klucza głównego, tego samego szyfru i tego samego przesunięcia ładunku.
Uzyskiwanie klucza głównego: (Ostrzeżenie: ten przykład powoduje wyciek klucza głównego do pliku, który można odczytać z całego świata, do listy procesów, a także do historii powłoki. Aby być bezpiecznym, zrób to w RAM / na Live CD / cokolwiek innego)
Utwórz nowy nagłówek LUKS za pomocą tego klucza: (awaria jest możliwa - najpierw wykonaj kopię zapasową starego nagłówka LUKS!)
A oto jak to wygląda:
Teraz to mamy. Ten sam szyfr, przesunięcie [jeśli się różnią, musisz je podać wraz z luksFormat], nowy skrót i odpowiednia liczba iteracji.
Ale czy treść nadal tam jest?
Proszę bardzo.
źródło
cryptsetup-reencrypt --keep-key --hash sha512
robi to samo.