Я просто кратко читал о различиях между http и https. И что я не понял, так это следующий возможный сценарий:
У всех есть открытый ключ SSL, верно?
Итак, кто-нибудь может получить открытый ключ с веб-сервера, а затем использовать его для расшифровки сообщений, отправленных с веб-сервера? Таким образом, если веб-сервер отправляет какую-либо секретную информацию, злоумышленники могут это знать, верно?
Я понял, что закрытый ключ находится на веб-сервере, поэтому только веб-сервер может расшифровать зашифрованное сообщение (используя открытый ключ), отправленное браузером. И поэтому данные, отправленные из браузера, защищены. Но я сомневаюсь, что данные, полученные с веб-сервера, действительно защищены.
Или скажем, если открытый ключ изменяется от пользователя к пользователю. Но злоумышленник может взломать его, когда браузер отправит его впервые, верно?
Пожалуйста, поправьте меня, если я понял это неправильно.
РЕДАКТИРОВАТЬ: Хорошо, я думаю, что я получаю это из описания, предоставленного спрашивающим в этой ссылке:
Как работает SSL? Разве нет дыры?
Это говорит:
Когда Клиент подключается к company.com через свой защищенный SSL-порт, компания отправляет обратно свой открытый ключ (и некоторую другую информацию, например, какие шифры он поддерживает). ... Когда клиент доволен сервером (и сервером клиентом, если необходимо), клиент выбирает шифр SSL для использования из списка методов шифрования, предоставленных сервером, и генерирует «симметричный ключ» (пароль) для использования с этим шифром. Клиент шифрует этот пароль с помощью открытого ключа сервера и отправляет его обратно на сервер. Сервер (и только сервер) может расшифровать это сообщение и получить этот пароль, который теперь используется как клиентом, так и сервером.
Это означает, что клиент не будет шифровать только с помощью открытого ключа, который он имеет, но использует сгенерированный им пароль (симметричный ключ), который будет передан веб-серверу с использованием шифрования с открытым ключом. И только веб-сервер может знать пароль, предоставленный клиенту, так как только он владеет частью секретного ключа. Таким образом, и веб-сервер, и клиент используют симметричный ключ для шифрования сообщений, которые никто не знает или не может нарушить.
Я прав?