
Мы прекращаем поддержку TLS 1.0 и 1.1 на наших веб-сайтах, поскольку они больше не считаются безопасными.
Как мы можем узнать процент наших посетителей, на которых повлияет это изменение? (т. е. тех посетителей, которые не поддерживают TLS 1.2.)
Мы используем Windows Server 2012 R2 с IIS8.
решение1
Настройте 2-й сервер (например, виртуальную машину или 2-й демон на том же хосте). Используйте правило перезаписи дляобратный проксизапрашивает что-то необязательное для 2-го сервера, например, невидимое изображение, скрытое на странице. Настройте 2-й сервер так, чтобы он разрешал только TLS 1.2; не делайте хотлинк на другое имя хоста... обязательно используйте прокси, иначе это будет небезопасно, так что браузер может выдать предупреждение или вообще никогда не загрузить изображение.
Затем отследите запросы на изображение. Клиенты без поддержки должны иметь ошибки SSL/TLS. Клиенты с поддержкой будут генерировать некоторые журналы '200 OK'. Если журнал не скажет ничего полезного, попробуйте вместо этого проксировать какой-нибудь javascript, который может выполнить AJAX-запрос для регистрации трафика в случае успеха (но блокировщик скриптов может остановить это).
Для проверки поддержки SSL/TLS на вашем втором сервере, прежде чем полагаться на логи, воспользуйтесь хорошим тестом, например nmap, который может вывести множество подробностей.
nmap --script ssl-enum-ciphers example.com
решение2
Я не знаю ни одного способа проверить журналы сервера, чтобы узнать, какой протокол SSL/TLS использовался для подключения к серверу Windows (это достаточно просто с Nginx и Apache).
Поэтому лучший способ, который я могу придумать, это использовать аналитическое программное обеспечение (например, Google Analytics), которое отслеживает версии ОС и браузера. Это не будет на 100% точным (некоторые люди отключают JavaScript и/или отслеживание в своих браузерах).
Обратите внимание, что использование Google Analytics или подобных инструментовмноголучше, чем пытаться разобраться в криптическом поле USER_AGENT, хотя в теории это другой способ сделать это, и это, вероятно, будет записано в журналах вашего сервера. Смотрите здесь более подробную информацию о том, как сделать это таким образом, если хотите:https://stackoverflow.com/questions/17798944/получить-имя-браузера-и-версию-из-файла-журнала-iis-в-лог-парсере.
Узнав версию браузера и ОС ваших посетителей, вы можете посмотреть в этой таблице, поддерживают ли они TLS 1.2: https://en.m.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers, и это должно позволить вам вычислить приблизительный процент.
Вы также можете использовать инструмент сканирования ssllabs (https://www.ssllabs.com/ssltest/), который просканирует ваш сайт, чтобы проверить настройки SSL/TLS, включая указание версии TLS и шифра, который будет использоваться в списке референтных браузеров. Настоятельно рекомендую выполнить это сканирование в любом случае, чтобы увидеть состояние вашей конфигурации SSL/TLS.
Вас в основном будут интересовать старые версии IE и старые версии Android.
Вы также можете сделать некоторое обнаружение браузера на вашем сайте, чтобы добавить предупреждение для этих пользователей в течение месяца или около того, прежде чем вы отключите TLS 1.0 и 1.1. Очень легко иметь оператор "[if lt IE 11]", чтобы включить таблицу стилей CSS, которая показывает предупреждение для более старой версии IE. Однако IE10 больше не поддерживает этот синтаксис в стандартном режиме, и это уязвимый браузер. Кроме того, сделать это для старых браузеров Android не так просто.
решение3
Одной из возможностей было бы использование обратного прокси (Squid, Apache и т. д.), который может регистрировать версию рукопожатия SSL/TLS. В качестве альтернативы, если у вас очень ограниченное (говоря об однозначных числах) количество хостов веб-сервисов, вы можете использовать Wireshark непосредственно на сервере для анализа рукопожатий.