Я читал эту статью, в частности, часть "SSL в действии". Это говорит:
Когда Клиент подключается к company.com через свой защищенный SSL-порт, компания отправляет обратно свой открытый ключ (и некоторую другую информацию, например, какие шифры он поддерживает).
...
Когда клиент доволен сервером (и сервером клиентом, если необходимо), клиент выбирает шифр SSL для использования из списка методов шифрования, предоставленных сервером, и генерирует «симметричный ключ» (пароль) для использования с этим шифром. Клиент шифрует этот пароль с помощью открытого ключа сервера и отправляет его обратно на сервер. Сервер (и только сервер) может расшифровать это сообщение и получить этот пароль, который теперь используется как клиентом, так и сервером.
Итак, я понимаю, что существует только один открытый ключ; тот, который предоставляется company.com доверенной третьей стороной (thawte/godaddy/verisign и т. д.). Затем клиент решает принять этот ключ / сертификат, а затем отправляет пароль, используемый для шифрования будущих сообщений.
Если существует только один открытый ключ, то хакер не может просто зайти на этот сайт один раз, получить копию открытого ключа, а затем перехватить клиента при отправке пароля, расшифровать его с помощью уже имеющегося у него открытого ключа и затем шпионить за всеми будущими коммуникациями? Что мешает этому?
Часть, которую я не понимаю,
Сервер (и только сервер) может расшифровать это сообщение и получить этот пароль
Почему только сервер может расшифровать сообщение? Что мешает другим расшифровать это?