Pełne szyfrowanie dysku z uwierzytelnianiem bez hasła w systemie Linux


16

Mam dość standardową konfigurację szyfrowania dysku w Debian 5.0.5: niezaszyfrowaną /bootpartycję i zaszyfrowaną, sdaX_cryptktóra zawiera wszystkie inne partycje.

Teraz jest to instalacja serwera bezgłowego i chcę móc uruchomić go bez klawiatury (teraz mogę uruchomić go tylko z klawiaturą i monitorem).

Do tej pory mam pomysł, aby przenieść /bootpartycję na dysk USB i wprowadzić niewielkie modyfikacje, aby automatycznie wprowadzić klucz (myślę, że askpassw skrypcie rozruchowym jest tylko wywołanie ). W ten sposób mogę uruchomić komputer bez głowy, wystarczy mieć dysk flash w czasie uruchamiania.

Moim zdaniem jest z tym problem

  1. Muszę zainwestować czas w rozszyfrowanie wszystkich drobiazgów, aby działało,
  2. Jeśli jest aktualizacja, która się regeneruje initrd, muszę ponownie wygenerować partycję rozruchową na USB, co wydaje się nużące.

Pytanie: czy jest dostępne standardowe rozwiązanie dla niskich kosztów utrzymania tego, co chcę robić? A może powinienem szukać gdzie indziej?

Odpowiedzi:


7

Możesz skonfigurować system, aby wymagał klucza zamiast hasła i zmieniał niektóre skrypty, aby wyszukiwać ten klucz na pamięci USB. Znalazłem szczegółowe wyjaśnienie tego procesu na Debianie Lennym. Na końcu jest kilka notatek opisujących niezbędne zmiany w nowszych wersjach Debiana.


Brzmi jak to, czego potrzebuję. Zanim zaakceptuję odpowiedź, najpierw muszę zobaczyć, ile wysiłku wymaga utrzymanie poprawności działania między aktualizacjami.
Alex B,

OK, chociaż nie ma „standardowego” rozwiązania, wydaje się, że zadziałało.
Alex B,

5

Ale jaki jest sens pełnego szyfrowania dysku, jeśli po prostu zostawiasz klucze leżące w postaci zwykłego tekstu?

Aby to zadziałało, potrzebujesz czegoś takiego, czym powinna być platforma Trusted Computing Platform, zanim Microsoft i Big Media porwały ją dla własnych złych celów ograniczania użytkowników.

Chodzi o to, aby układ scalony trzymał klucze na płycie głównej i przekazywał klucze tylko wtedy, gdy jest sprawdzone, czy uruchomione oprogramowanie zostało poprawnie podpisane przez zaufany organ (ciebie). W ten sposób nie pozostawiasz kluczy w zasięgu wzroku i nie musisz uruchamiać serwera interaktywnie.

Szkoda, że ​​nigdy nie widziałem, aby Trusted Computing był dobrze wykorzystywany , co może być przydatne dla użytkownika końcowego .


Kluczem jest nie więcej leżenie w postaci zwykłego tekstu niż klucz SSH leżący w postaci zwykłego tekstu w ~/.ssh. Chcę tylko móc uruchomić bezgłowy serwer z pełnym szyfrowaniem dysku i wyjąć klucz. Zdaję sobie sprawę, że atakujący może zmodyfikować niezaszyfrowaną partycję rozruchową i ukraść klucz (tak jak w przypadku zwykłej wersji hasła programowej), ale chronię tylko przed przypadkową kradzieżą.
Alex B

W rzeczywistości TPM wrócił od DRM i ostatnio do zastosowań rządowych i przedsiębiorstw. Istnieje wiele systemów operacyjnych, które mogą używać go do przechowywania tajnych kluczy, nie znam żadnego, który zapewnia ochronę integralności (tj. Nie pozwala osobie atakującej na włożenie keyloggera /boot).
Gilles „SO- przestań być zły”

@AlexB: Czy twój serwer ma moduł TPM? Jeśli tak, prawdopodobnie możesz zrobić, co chcesz, z Zaufany Grub .
Gilles „SO- przestań być zły”

Zauważ, że zaletą pozostawienia kluczy w postaci zwykłego tekstu jest to, że możesz całkowicie wyczyścić wrażliwe dane na dysku bez zerowania całego dysku. Tak, możesz wyzerować superblok lub tablicę partycji, ale jak wszyscy wiemy, dane nadal można odzyskać z tych operacji.
strugee

@strugee: jeśli używasz LUKS, wyzerowanie nagłówka LUKS sprawia, że ​​cały wolumin nie jest możliwy do odzyskania. Jeśli używasz zwykłego dm-crypt bez nagłówka, to tak, nadal można go odzyskać za pomocą hasła.
Jay Sullivan

5

Mandos (które napisałem ja i inni) rozwiązuje ten bardzo problem:

Mandos to system umożliwiający serwerom z zaszyfrowanym głównym systemem plików restartowanie się bez nadzoru i / lub zdalnie. Aby uzyskać więcej informacji, zobacz stronę podręcznika wprowadzającego , w tym listę najczęściej zadawanych pytań.

Krótko mówiąc, serwer rozruchowy otrzymuje hasło przez sieć w bezpieczny sposób. Szczegółowe informacje można znaleźć w pliku README.


1
Nawet jeśli to darmowe oprogramowanie, stwierdzenie, że jest to Twój produkt, zostanie docenione, jeśli nie będzie faktycznie wymagane . Doceniony zostanie również bardziej czytelny link README / FAQ oraz krótkie objaśnienie działania Mandos.
Gilles 'SO - przestań być zły'

1
@Gilles: Gotowe teraz.
Teddy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.