Я понимаю, как работает шифрование с открытым ключом, и понимаю, как оно работает в SSL. Сервер отправляет зашифрованный (открытый) ключ, поэтому я могу отправить ему сообщение, но только он знает закрытый ключ для его расшифровки.
Произойдет ли обратное? Отправляет ли мой браузер серверу открытый ключ для безопасной отправки данных или он не защищен?
Пара открытый / закрытый ключ используется только для согласования симметричного ключа в SSL. После согласования симметричного ключа фактические данные пользователя шифруются с использованием симметричного алгоритма и этого нового ключа. Он вообще не основан на паре открытого / закрытого ключей.