Dlaczego klucz publiczny SSH znajduje się na serwerze, a nie z klientem?


12

Nie do końca rozumiem teorię przechowywania kluczy publicznych na serwerze. W analogii skrytki kluczy publicznych / prywatnych, aby odblokować Alicji pole, Alice posiada klucz prywatny, podczas gdy klucz publiczny jest rozprowadzany do Boba. Wydawałoby się, że serwer pełni rolę skrytki, więc dlaczego trzyma klucz publiczny?

Odpowiedzi:


20

Należy pamiętać, że serwer NIE ma klucza prywatnego i publicznego, który jest całkowicie niezależny od pary kluczy generowanych jako użytkownik. Klucz prywatny dla serwera jest zwykle przechowywany wraz z konfiguracją serwera, a klucz publiczny jest przesyłany przez serwer podczas próby połączenia. Klient porównuje klucz publiczny serwera z plikiem znanego_hosta. Prawidłowe użycie zapobiega atakom MITM.

Masz klucz prywatny do swojego konta osobistego. Serwer potrzebuje twojego klucza publicznego, aby mógł sprawdzić, czy twój klucz prywatny do konta, którego próbujesz użyć, jest autoryzowany.

Korzystając z twojego przykładu. Zarówno Bob, jak i Alice mają klucze prywatne i klucze publiczne. Klucze publiczne, które zostały udostępnione wcześniej lub jako część połączenia, są wykorzystywane do weryfikacji danych zaszyfrowanych kluczami prywatnymi. Jeśli klient nie ma klucza publicznego lub ma inny klucz publiczny, otrzymasz przerażające ostrzeżenie. Jeśli serwer nie ma klucza publicznego klienta, nie zostaniesz wpuszczony.


1
Aha! To ma o wiele większy sens. Wiedziałem, że istnieje metoda ochrony przed atakami MITM, ale nie wiedziałem, że istnieje inna para kluczy :) Dzięki za pomoc!
Connor Glosser

5

Ty, jako użytkownik, podajesz informacje, którymi jesteś, gdy się logujesz. Aby uzyskać autoryzację, potrzebujesz klucza prywatnego, ponieważ serwer zapyta każdego, kto udaje, że jesteś tobą (próbuje zalogować się przy użyciu imię), aby to udowodnić.

Działa to tak, że serwer wysyła ci trochę tekstu, prosi o zaszyfrowanie go i odszyfrowanie za pomocą klucza publicznego. Może to zrobić tylko osoba posiadająca Twój klucz prywatny.


1

Dla wygody posiada klucz publiczny. W przeciwnym razie musisz utworzyć PKI - coś podobnego do SSL CA.

Pomysł polegałby na sprawdzeniu odcisku palca klucza publicznego, gdy klient ssh poprosi o zaakceptowanie klucza zdalnego serwera.


1

Powiedziałbym, że lepszą analogią jest to, że kluczem publicznym serwera jest otwarta skrytka z zatrzaskiem, który można zamknąć (ale nie otworzyć), tylko serwer może go otworzyć. Prawdziwe pytanie brzmi: czy ufasz kluczowi publicznemu (czy to naprawdę pudełko Alicji ?), Skądkolwiek go otrzymujesz, jest on z definicji publiczny i na tym właśnie polega PKI.


1

Klucz publiczny to bardzo duża liczba, matematycznie wyprowadzona z klucza prywatnego.

Wyprowadza się go w taki sposób, że te dwie liczby są połączone,

ale tak, aby klucz prywatny nie mógł zostać odkryty przez nikogo, kto zna tylko klucz publiczny. Klucz publiczny jest tym, co wysyłasz do innych podmiotów, którym chcesz się uwierzytelnić lub do których chcesz wysłać zaszyfrowane wiadomości. Klucz publiczny nie jest wrażliwy i nie musi być chroniony. Może być rozpowszechniany publicznie. babudilli98@gmail.com


1
Wydaje mi się, że w tej odpowiedzi nie ma nic nowego w porównaniu z innymi odpowiedziami udzielonymi już pięć lat temu.
kasperd
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.