Односторонний SSL - это односторонний шифрование?
Если используется односторонний SSL (аутентификация сертификата сервера), то данные, отправленные с клиента, шифруются с использованием открытого ключа сертификата сервера. Таким образом, защита конфиденциальности доступна для данных, отправленных от клиента. Мои вопросы
Означает ли это, что в одном случае данные SSL, отправляемые с сервера на клиент, не шифруются и отправляются в виде простого текста?
Как для связи между сервером, так и для связи между клиентом и сервером данные / сообщение не подписаны, поэтому защита от несанкционированного доступа или целостность данных не гарантируются. Существуют ли другие способы обеспечения целостности данных при использовании безопасности транспорта на основе SSL, а не параметры безопасности сообщений?
2 ответа
Один из способов SSL просто означает, что сервер не проверяет личность клиента. Это не влияет ни на одно из других свойств безопасности SSL.
Хотя протокол SSL немного сложен, основная суть того, что происходит, заключается в следующем: клиент генерирует случайный ключ, шифрует его, так что только сервер может его расшифровать, и отправляет на сервер. Сервер и клиент теперь имеют общий секрет, который можно использовать для шифрования и проверки связи в обоих направлениях.
Сервер не имеет представления об идентичности клиента, но в противном случае шифрование и проверка сообщений являются двухсторонними.
Обновить:
1) Да, шифрование в обоих направлениях симметрично и использует общий секрет, сгенерированный во время настройки сеанса.
2) С общим секретом, целостность сообщения тривиальна для обеспечения. Вы просто убедитесь, что сообщение имеет определенную форму. Например, я могу поставить перед каждым отправленным сообщением порядковый номер и добавить к нему контрольную сумму перед шифрованием. Вы расшифровываете его с помощью общего секрета и проверяете порядковый номер и контрольную сумму. Как злоумышленник может заменить или изменить сообщение, не зная общего секрета, и при этом сохранить порядковый номер и контрольную сумму без изменений?
В SSL происходят две вещи:
Во-первых, сеансовый ключ согласовывается с использованием чего-то вроде метода Диффи-Хеллмана. Это генерирует общий ключ сеанса, но никогда не передает ключ между сторонами.
Во-вторых, этот сеансовый ключ используется в обычном симметричном шифровании на время соединения.
SSL использует public / private одним способом, потому что сертификат X509 используется для идентификации по крайней мере одного конца соединения. Эти сертификаты подписаны с использованием пары асимметричных ключей.
Извлечено из Как SSL может обеспечить двустороннюю связь только с одной парой ключей?