Вопрос

Возможно ли отправить сообщение по протоколу https, которое не зашифровано?Например, требовать, чтобы выполнялась проверка сертификата и авторизация, но не шифровать фактические данные, отправляемые через сокет?

Это было полезно?

Решение

Да, TLS и SSL поддерживают режимы "без шифрования".Настроены ли конкретные клиент и сервер, о которых идет речь, на включение, - это отдельный вопрос.

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

Вы можете использовать набор шифров TLS_RSA_WITH_NULL_SHA, среди прочего, для защиты подлинности и целостности трафика без шифрования.

"RSA" в данном случае относится к алгоритму обмена ключами, в то время как "SHA" относится к алгоритму аутентификации сообщений, используемому для защиты трафика от изменения."NULL" - это алгоритм шифрования, или, в данном случае, отсутствие шифрования.

Важно понимать, что трафик, хотя он и не зашифрован, объединен в SSL-записи.Клиент и сервер должны быть с поддержкой SSL.

Если вы ищете пошаговое решение, при котором обмен некоторыми данными осуществляется по протоколу SSL, затем SSL отключается, но трафик приложений продолжается, это тоже возможно, но имейте в виду, что оно не обеспечивает абсолютно никакой безопасности для трафика открытого текста;он может быть взломан злоумышленником.Так, например, аутентификация с помощью SSL, а затем переход к протоколу "in-the-clear" для получения команд, использующих аутентификацию, согласованную через SSL, была бы небезопасной.

Другие советы

Спецификации SSL / TLS определяют "НУЛЕВОЙ шифр", который вы могли бы использовать для этого.Большинство клиентских и серверных программ отключают его по очевидным причинам.

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

Я думаю, ты можешь.

но это было бы глупо, вы потеряете смысл аутентификации и оставите себя незащищенным для злоумышленников, которые могут перехватывать и изменять ваши пакеты.

Нет, протокол этого не допускает.

Одно из решений, которое вы могли бы сделать, - это подключиться по протоколу https, проверить соединение, затем отбросить последующие подключения к HTTP с помощью сессионного файла cookie.Без этого файла cookie перенаправьте обратно на https, чтобы клиент всегда подключался по нему.

Однако это может быть неуместно для вас, поэтому, если вы предоставите больше информации о проблеме, которую пытаетесь решить, мы могли бы оказать вам большую помощь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top