Czy dobrą praktyką jest usunięcie hasła z certyfikatu ssl?

10

Czytałem na kilku blogach, że należy usunąć hasła z certyfikatów SSL, aby uniknąć monitów o hasło podczas ponownego uruchamiania Apache.

Czy to prawda i czy stanowi to jakiekolwiek zagrożenie dla bezpieczeństwa?

giorgio79
źródło
Jeśli naprawdę się martwisz, dostępny jest sprzęt, w którym klucz prywatny można przechowywać na urządzeniu USB i nigdy nie będzie można go odzyskać. Jednak tak naprawdę nie będzie działać w środowisku hostowanym.
Zoredache,
Odnotowuję mimochodem, aby uniknąć nieporozumień, że certyfikat nigdy nie jest szyfrowany, ani też nie byłoby sensu tego robić; aby uzgadniać SSL, certyfikat musi być oferowany w postaci zwykłego tekstu każdemu, kto o to poprosi. Certyfikat to tylko klucz publiczny podpisany przez stronę trzecią. Jest to klucz prywatny , asymetryczny odpowiednik klucza publicznego (który jest w stanie odszyfrować ruch zaszyfrowany do klucza publicznego), który może być przechowywany w postaci zaszyfrowanej i o który pytasz.
MadHatter

Odpowiedzi:

22

Tak, zatrzyma wysyłanie monitów do terminala podczas uruchamiania serwera WWW.

I tak, stanowi to zagrożenie bezpieczeństwa, ponieważ gdzie wcześniej certyfikat został zaszyfrowany, jest teraz w postaci zwykłego tekstu. Oznacza to, że możliwe jest kradzież całkowicie działającego certyfikatu z maszyny.

To, czy stwarza to poważne zagrożenie dla bezpieczeństwa, zależy od tego, jakie byłyby konsekwencje, gdyby ci się to przydarzyło i jakie zyski z tego robisz w ten sposób.

Jeśli dla Ciebie ważniejsze jest, aby usługi były ponownie uruchamiane z wdziękiem, nawet jeśli są nienadzorowane niż bezpieczeństwo całego systemu SSL, to jest to prosta odpowiedź.

Osobiście uważam, że przechowywanie odszyfrowanych kopii certyfikatów SSL ogólnie ma więcej zalet niż wad dla mojego typowego obciążenia, oto dlaczego;

  1. Osoba atakująca nadal będzie miała kopię certyfikatu, nawet jeśli byłby on zaszyfrowany, więc Twoim obowiązkiem będzie jego unieważnienie.
  2. W dzisiejszych czasach atakującemu znacznie łatwiej jest uzyskać ważny certyfikat dla Twojej witryny za pomocą inżynierii społecznej niż ukraść jego kopię roboczą.
  3. Certyfikaty naturalnie tracą ważność, ograniczając ich powierzchnię ataku.
  4. Systemy bezpieczeństwa oparte na hoście, takie jak tradycyjnie uprawnienia i SELinux, oferują solidny sposób ochrony certyfikatów na platformie.
  5. Certyfikat nie jest całkowicie bezpiecznym systemem. Istnieje wiele innych aspektów, które należy wziąć pod uwagę, takich jak dane, które przechowujesz, media, na których je przechowujesz oraz wartość i / lub osobisty charakter danych.

Rzeczy, które mogą zmusić mnie do szyfrowania:

  1. Jeśli użyłeś certyfikatu do wykonania wzajemnego uwierzytelnienia.
  2. Jest to certyfikat wieloznaczny lub certyfikat, który obsługuje wiele domen (podwójne straty, potrójne lub cokolwiek, co może być użyte dla wielu hostów)
  3. Certyfikat jest uniwersalny w inny sposób.
  4. Celem certyfikatów jest zapewnienie integralności danych o wysokiej wartości (dokumentacji medycznej, transakcji finansowych itp.).
  5. Drugi koniec oczekuje wysokiego stopnia zaufania i / lub jest zależny od integralności systemu przy podejmowaniu decyzji operacyjnych.

Ostatecznie, nie polegaj na innych, aby podejmować za Ciebie decyzje dotyczące bezpieczeństwa. Musisz zważyć ryzyko i określić, co jest najlepsze dla Ciebie i Twojej instytucji, wykorzystując jak najwięcej informacji.

Matthew Ife
źródło
8

Zapewnia to większe bezpieczeństwo, ale w rzeczywistości jeśli ktoś dostał się wystarczająco daleko do twojego systemu, aby uzyskać dostęp do twojego prywatnego klucza SSL, prawdopodobnie masz większe problemy.

Z praktycznego punktu widzenia, czy naprawdę chcesz tam być za każdym razem, gdy trzeba ponownie uruchomić apache, aby wprowadzić hasło?

Jedną rzeczą, którą możesz zrobić, to zabezpieczyć hasło na serwerze (i zabezpieczyć go za pomocą normalnych zabezpieczeń systemu) i zachować kopię zapasową klucza przechowywanego w innym miejscu za pomocą hasła. Więc jeśli ktoś jest w stanie zgarnąć klucz z innego miejsca niż serwer (znacznie bardziej prawdopodobne, że ktoś zostanie skradziony laptopem na swoim komputerze), nadal jest chroniony.

Pratik Amin
źródło
0

Klucze klienta używane do logowania powinny być chronione hasłem.

Jeśli chcesz, aby usługi oparte na SSL były restartowane bez ręcznej interwencji, masz dwie opcje:

  1. Nie posiadaj hasła do klucza i chroń go, aby dostęp do niego miały tylko usługi, które go potrzebują.
  2. Przechowuj hasło w postaci zwykłego tekstu lub zwykłego tekstu na serwerze, aby usługi, które go potrzebują, mogły podać hasło. (Możesz skończyć z wieloma kopiami hasła w źle zabezpieczonych plikach konfiguracyjnych.)

Kopie zapasowe klucza powinny być chronione hasłem i zabezpieczone tak, jakby nie były chronione hasłem.

BillThor
źródło