Почему открытый ключ SSH находится на сервере, а не на клиенте?

Почему открытый ключ SSH находится на сервере, а не на клиенте?

Я не совсем понимаю теорию хранения открытых ключей на сервере. В аналогии с сейфом открытых/закрытых ключей, чтобы разблокироватьЭлисbox, Алиса хранит закрытый ключ, а открытый ключ передается Бобу. Казалось бы, сервер играет роль lockbox, так почему же он хранит открытый ключ?

решение1

Помните, что сервер ИМЕЕТ закрытый и открытый ключ, которые полностью отделены от пары ключей, которую вы генерируете как пользователь. Закрытый ключ для сервера обычно хранится в конфигурации сервера, а открытый ключ передается сервером при попытке подключения. Ваш клиент сравнивает открытый ключ сервера с вашим файлом known_hosts. При правильном использовании это предотвращает атаки MITM.

У вас есть закрытый ключ для вашей личной учетной записи. Серверу нужен ваш открытый ключ, чтобы он мог проверить, что ваш закрытый ключ для учетной записи, которую вы пытаетесь использовать, авторизован.

Итак, используя ваш пример. У Боба и Алисы есть закрытые и открытые ключи. Открытые ключи, которые были переданы заранее или как часть соединения, используются для проверки легитимности данных, зашифрованных закрытыми ключами. Если у клиента нет открытого ключа или у него другой открытый ключ, вы получите пугающее предупреждение. Если у сервера нет открытого ключа клиента, вам не разрешат войти.

решение2

Вы как пользователь должны предоставить информацию о том, что вы — это вы, когда входите в систему. Поэтому для авторизации вам нужен закрытый ключ, поскольку сервер попросит любого, кто выдает себя за вас (пытается войти в систему под вашим именем), подтвердить это.

Это работает так: сервер отправляет вам немного текста, просит вас зашифровать его и расшифровать его вашим открытым ключом. Только тот, у кого есть ваш закрытый ключ, может это сделать.

решение3

Открытый ключ — это очень большое число, математически полученное из вашего закрытого ключа.

Он выведен таким образом, что два числа связаны,

но так, чтобы закрытый ключ не мог быть обнаружен кем-либо, кто знает только открытый ключ. Открытый ключ — это то, что вы отправляете другим сторонам, которым вы хотите подтвердить свою подлинность или которым вы хотите отправить зашифрованные сообщения. Открытый ключ не является конфиденциальным и не нуждается в защите. Он может быть распространен публично. [email protected]

решение4

Я бы сказал, что лучшей аналогией будет то, что открытый ключ сервера — это открытый сейф с защелкой, который вы можете закрыть (но не открыть), открыть его может только сервер. Настоящий вопрос в том, доверяете ли вы открытому ключу (действительно ли этоЭлисBox?), откуда бы вы его ни взяли, он по определению является публичным, и именно в этом суть PKI.

Связанный контент