Мы прекращаем поддержку TLS 1.0 и 1.1 на наших веб-сайтах, поскольку они больше не считаются безопасными.
Как мы можем увидеть, какой процент посетителей затронет это изменение? (то есть те посетители, которые не поддерживают TLS 1.2.)
Мы используем Windows Server 2012 R2 с IIS8.
Настройте второй сервер (например, виртуальную машину или второй демон на том же хосте). Используйте правило перезаписи, чтобы обратный прокси запрашивает что-то необязательное для 2-го сервера, например, невидимое изображение, скрытое на странице. Настройте второй сервер, чтобы разрешить только TLS 1.2; не используйте горячую ссылку на другое имя хоста ... убедитесь, что прокси-сервер, иначе это будет небезопасно, поэтому, возможно, в браузере будет предупреждение, или, может быть, просто никогда не загружайте изображение.
Затем отслеживайте запросы на изображение. У клиентов без поддержки должны быть ошибки SSL / TLS. Клиенты с поддержкой создавали журналы «200 OK». Если в журнале нет ничего полезного, попробуйте вместо этого проксировать какой-нибудь javascript, который может выполнять запрос AJAX для регистрации трафика в случае успеха (но блокировщик сценариев может остановить это).
Чтобы протестировать поддержку ssl / tls на 2-м сервере, прежде чем полагаться на журналы, используйте хороший тест, такой как nmap, который может перечислить множество деталей.
nmap --script ssl-enum-ciphers example.com
Я не знаю ни одного способа проверки журналов сервера, чтобы узнать, какой протокол SSL / TLS использовался для подключения к серверу Windows (это достаточно просто с Nginx и Apache).
Так что, как мне кажется, лучше всего использовать какое-либо аналитическое программное обеспечение (например, Google Analytics), которое отслеживает версии ОС и браузеров. Это не будет на 100% точным (некоторые люди отключают JavaScript и / или отслеживание в своих браузерах).
Обратите внимание, что с помощью Google Analytics или подобного много лучше, чем пытаться выяснить загадочное поле USER_AGENT, хотя теоретически это другой способ сделать это, и это, вероятно, будет зарегистрировано в журналах вашего сервера. См. Здесь для получения дополнительных сведений о том, как это сделать, если хотите: https://stackoverflow.com/questions/17798944/get-browser-name-and-version-from-iis-log-file-in-log-parser.
Если у вас есть браузер и версия ОС ваших посетителей, вы можете просмотреть эту таблицу, чтобы узнать, поддерживают ли они 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 не так просто.
Одна из возможностей - использовать обратный прокси (Squid, Apache и т. Д.), Который может регистрировать версию рукопожатия SSL / TLS. В качестве альтернативы, если у вас очень ограниченное (говоря о однозначном) количество хостов веб-сервисов, вы можете использовать Wireshark прямо на сервере для анализа рукопожатий.