To nie jest tyle pytanie techniczne, co koncepcyjne. Rozumiem, że kryptografia użyta w kluczu SSH jest znacznie silniejsza niż zwykłe hasło, ale nie rozumiem, dlaczego uważa się ją za bezpieczniejszą.
Większość samouczków, które czytam, sugeruje używanie uwierzytelniania za pomocą klucza SSH zamiast uwierzytelniania za pomocą hasła. Rozumiem jednak, że każdy, kto ma dostęp do wstępnie zatwierdzonej maszyny klienckiej, będzie mógł połączyć się z serwerem, co oznacza, że poziom bezpieczeństwa zapewniany przez klucz SSH jest tak silny, jak poziom bezpieczeństwa fizycznego maszyna klienta.
Na przykład, jeśli skonfiguruję klucz SSH w telefonie, aby połączyć się z moim komputerem domowym, jeśli zgubię telefon i ktoś zdoła go odblokować, będzie mógł połączyć się z moim komputerem domowym. Wiem, że mogę następnie usunąć klucz do mojego telefonu z komputera domowego, ale jestem narażony na ryzyko, dopóki nie stwierdzę, że urządzenie klienckie zostało zgubione / naruszone.
Czy coś źle zrozumiałem, czy są to ważne obawy?
Odpowiedzi:
Jeśli twoja usługa SSH umożliwia uwierzytelnianie oparte na haśle, to połączony z Internetem serwer SSH będzie hamowany w dzień iw nocy przez botnety próbujące odgadnąć nazwy użytkowników i hasła. Sieć botów nie potrzebuje żadnych informacji, może po prostu wypróbować popularne nazwy i popularne hasła. Jest okropnie dużo osób o imieniu John z hasłem qwerty123. Oprócz czegokolwiek innego, to zapycha twoje dzienniki.
Jeśli Twoja usługa SSH umożliwia tylko uwierzytelnianie za pomocą klucza publicznego, osoba atakująca potrzebuje kopii klucza prywatnego odpowiadającego kluczowi publicznemu przechowywanemu na serwerze. Nie mogą po prostu przeprowadzać losowych ataków, muszą mieć wcześniejszą wiedzę o użytkownikach i mieć możliwość kradzieży klucza prywatnego z komputera autoryzowanego użytkownika Twojego serwera SSH.
Fakt, że klucze prywatne są często chronione długim hasłem, ma drugorzędne znaczenie.
Aktualizacja:
Jak wskazują komentarze i jak się przekonałem, przeniesienie usługi SSH z portu 22 do portu o wysokiej liczbie cyfrowej ma ogromną różnicę w liczbie nieautoryzowanych prób logowania pojawiających się w twoich logach. Warto to zrobić, ale uważam to za formę bezpieczeństwa przez zaciemnienie (fałszywe poczucie bezpieczeństwa) - prędzej czy później botnety zaimplementują powolne ukryte skanowanie portów, albo będziesz celowo celowany. Lepiej być przygotowanym.
Zawsze używam długiego hasła do ochrony mojego klucza prywatnego, myślę, że ma to szczególne znaczenie na urządzeniach mobilnych, które można łatwiej zgubić lub skradzić.
Ponadto http://xkcd.com/538/
źródło
Logika jest taka, że istnieje dużo więcej kombinacji kluczy SSH niż haseł, więc trudniej zgadnąć. Korzystanie z kluczy SSH umożliwia także wyłączenie uwierzytelniania hasła, co oznacza, że większość automatycznych ataków przeprowadzanych w Internecie będzie bezużyteczna.
W odniesieniu do bezpieczeństwa fizycznego nie ma różnicy między zapisaniem hasła a posiadaniem niezaszyfrowanego klucza SSH na urządzeniu w przypadku jego zgubienia lub kradzieży. Jedyną korzyścią, jaką możesz mieć, jest to, że nikt nie zna Twojego hasła i możesz teoretycznie upewnić się, że wszystkie urządzenia mają różne certyfikaty SSH, więc możesz po prostu wyłączyć ten dla swojego telefonu.
Uważam, że można również zabezpieczyć hasłem klucze SSH.
źródło
Hasła mogą być również zagrożone przez monitorowanie klawiatury „nad ramieniem”. Ponadto używanie podobnych haseł w wielu miejscach jest słabością, szczególnie jeśli hasło jest czasami używane na mniej bezpiecznym komputerze z potencjalnymi keyloggerami.
Masz rację, że niezaszyfrowany klucz można odczytać z dysku twardego, jeśli komputer zostanie skradziony - więc zaszyfruj go hasłem.
Jeśli złośliwe oprogramowanie zagraża Twojemu komputerowi, masz problem z zainstalowaniem go niezależnie od tego - ktoś może uzyskać zaszyfrowany klucz i zarejestrować hasło.
źródło