Любой веб-сервер, который поддерживает нулевые шифры SSL? [закрыто]

1

У меня есть старое устройство, которое подключается к веб-странице HTTPS и загружает некоторый контент. Я хочу, чтобы это устройство загружало контент из домена, которым я управляю, но клиент имеет встроенный корневой CA и подключается, только если SSL-соединение использует сертификат этого CA.

Конечно, я могу исправить это, изменив программное обеспечение на клиенте и заменив URL-адрес https на HTTP-адрес, удалив все компоненты HTTPS из соединения.

Однако я ищу способ заставить это работать без изменения клиента (только изменения DNS), и теперь я прочитал из «нулевых шифров SSL».

Может ли использовать один из шифров SSL без аутентификации (например, TLS_NULL_WITH_NULL_NULLили, TLS_DH_anon_WITH_AES_256_CBC_SHAвозможно, заставить это устройство принимать мое поддельное соединение? Может быть, оно принимает эти поддельные шифры ...

Но я понятия не имею (и не нашел много информации в Интернете), как я могу заставить свой веб-сервер использовать эти шифры.

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

Есть ли другой веб-сервер, который я мог бы использовать для согласования нулевого шифра с этим клиентом и, надеюсь, подключить его к моему серверу, даже если у него нет действительного сертификата?

Теоретически, если устройство принимает эти шифры, это должно работать с поддельным сервером, так как эти шифры не аутентифицируют сервер, не так ли?

Флориан Бах
источник
Как вы говорите - если устройство принимает эти шифры . Это будет вашей самой большой проблемой. Вы можете посмотреть на перекомпиляцию OpenSSL или аналогичную, чтобы предоставить шифры для вашего сервера. Перед этим вы можете попробовать использовать, openssl s_server -cipher <list>чтобы увидеть, будет ли клиент подключаться с нулевым шифром. Возможно, вам придется скомпилировать OpenSSL, чтобы эта команда тоже работала.
garethTheRed
И как я могу заставить этот сервер openssl использовать нулевой шифр? Я попытался, openssl s_server -key k.pem -cert c.pem -accept 443 -wwwи вывод не содержал никаких нулевых шифров, а -cipher TLS_DH_anon_WITH_RC4_128_MD5также не работал. РЕДАКТИРОВАТЬ, хорошо, получил сервер для работы -cipher ADH. Давайте посмотрим, что клиент говорит об этом ...
Флориан Бах
Не забудьте прокомментировать / ответить здесь - будет интересно узнать, как это происходит. Удачи!
garethTheRed

Ответы:

1

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

Кроме того: NULL-шифр - это шифр без шифрования, который все еще может требовать аутентификации (как в TLS_RSA_WITH_NULL_SHA). То, что вы просите, - это шифры без аутентификации, которые все еще могут выполнять шифрование (например, TLS_DH_anon_WITH_AES_128_CBC_SHA).

Штеффен Ульрих
источник
Теперь я попробовал как NULL-шифр, так и несколько ADH-шифров с командой s_server, предложенной garethTheRed, но, к сожалению, как вы и ожидали, клиент не принял ни один из них. Ну, я думаю, мне все еще нужно пропатчить клиента для подключения к поддельному серверу ...
Флориан Бах,
Если вы выполните захват пакета, вы увидите (например, в Wireshark), какие шифры клиент предлагает серверу. Любой шифр, который не предлагается в ClientHello рукопожатия TLS, не будет принят клиентом.
Штеффен Ульрих