С объявлением POODLE я хотел бы, чтобы мои серверы принимали соединения SSL3.0, но чтобы они обслуживали страницу, которая указывает, что пользователь должен перейти на более новый браузер с поддержкой TLS. Похоже, это должно быть возможно, поскольку IIS должен знать, какой набор шифров используется, но я не могу понять, как настроить эту информацию, чтобы либо разрешить размещение различного контента, либо перенаправить на сам сайт, чтобы с ним что-то сделать.
Есть ли способ сделать IIS перенаправлением на основе набора шифров, используемого во время согласования SSL / TLS, или способ сделать информацию о наборе шифров доступной для сайта?
Согласование SSL / TLS происходит внутри https.sys
, вне IIS. К тому времени, когда трафик попадет в IIS, вся работа, связанная с шифрованием, будет выполнена.
Я не знаю ни одного API, предоставляющего согласованный протокол приложениям на основе IIS. Вы всегда можете попытаться получить его из другого источника, но я подозреваю, что это в лучшем случае окажется изворотливым.
логирование События успеха Schannel будет генерировать события с идентификатором 36880, которые показывают согласованные параметры, но Microsoft не стала включать IP-адрес клиента в эти записи журнала (по крайней мере, я не вижу). (Это было бы неплохо, но, опять же, Microsoft не беспокоится о включении IP-адресов в журналы событий ... Грррр!)
Вы можете запустить захват пакетов в кольцевой буфер, ища согласования SSL 2.0 и записывая их в какое-то постоянное хранилище. Ваше приложение может запросить это хранилище, сопоставить IP-адрес клиента с журналом переговоров и перейти к вашему предупреждению. Я полагаю, что это выполнимая практика, но на самом деле кажется, что нужно много работать (и «движущихся частей»), чтобы достичь очень небольшого результата. (Хотя это звучит как что-то забавное для написания ...)