W grupie bezpieczeństwa mojej firmy dyskutujemy o tym, co gorszego z poniższych opcji zarządzania kluczem prywatnym SSL.
Serwer sieciowy potrzebuje dostępu do klucza prywatnego do operacji szyfrowania. Ten plik powinien być chroniony przed nieautoryzowanym dostępem. Jednocześnie serwer powinien uruchomić się automatycznie, bez interwencji człowieka (jeśli jest wystarczająco bezpieczny).
Omawiamy trzy opcje:
Chroń klucz za pomocą perms systemu plików.
Użyj klucza chronionego hasłem i wprowadź klucz ręcznie przy każdym ponownym uruchomieniu.
Użyj klucza chronionego hasłem i zapisz klucz w systemie plików, aby zautomatyzować ponowne uruchomienie.
Nasze obawy są następujące:
W przypadku opcji 1 ponowne uruchomienie jest automatyczne, ale kompromis może skopiować klucz prywatny i, jako że nie jest chroniony, może zostać wykorzystany do rozszyfrowania komunikacji lub podszywania się pod nasze serwery.
Opcja 2 wydaje się bezpieczniejsza, ale wymaga interwencji człowieka, a administratorzy są zaniepokojeni, jeśli zdarzy się to poza godzinami pracy. Ponadto hasło powinno być współdzielone z kilkoma administratorami systemu i wiadomo, że wspólny sekret nie jest już tajemnicą.
Opcja 3 ma najlepsze z obu poprzednich opcji, ale jeśli ktoś ma dostęp do klucza, może również mieć dostęp do hasła :(, więc nie wydaje się wcale tak bezpieczny.
Jak zarządzasz bezpieczeństwem kluczy prywatnych serwerów? Czy są jakieś (bezpieczniejsze) opcje?