Как подружить «современный» TLS и «устаревшие» браузеры?
Тему подсказало обсуждение предыдущего поста, в котором прозвучал голос заботливого администратора веб-сервера: TLS 1.2 и AEAD – выбор здорового человека, но кто пожалеет пользователей «устаревших» браузеров? Давайте это обсудим – мнимую несовместимость «современного» TLS и «устаревших» браузеров.
Гипотеза звучит следующим образом: если на веб-сервере оставить поддержку только устойчивых версий протокола защиты транспортного уровня TLS (1.2 и 1.3) и шифронаборов (AEAD), пользователи «устаревших» браузеров зайти на сайт не смогут.
Совершим необязательный экскурс в историю… В 2005 году (т.е. 16 лет тому назад), американское Агентство национальной безопасности анонсировало корпус стандартов, руководств, рекомендаций и прочих поддерживающих документов по использованию криптографических алгоритмов – NSA Suite B Cryptography.
В 2009 году IETF опубликовал RFC5430 Suite B Profile for Transport Layer Security, где установил, какие протоколы и шифронаборы должны использоваться для HTTPS-соединения, чтобы соответствовать требованиям АНБ. Уже тогда для соответствия этим требованиям веб-сервер и веб-браузер должны были поддерживать TLS версии 1.2 и шифронаборы TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 и TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.
То есть, как минимум последние 11 лет разработчики знали, каким требованиям должна соответствовать их продукция, чтобы иметь возможность претендовать на американский госзаказ. Поэтому следующий факт вы, вероятно, воспримете без удивления: все реально используемые сегодня браузеры поддерживают упомянутый шифронабор в варианте с 128-битным шифроключом, а многие (но не все) – и с 256-битным.
На этом можно было бы закончить статью, порекомендовав всем администраторам веб-серверов оставить поддержку только TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 и не забивать себе голову мифами о несовместимости TLS 1.2 с «устаревшими» браузерами, если бы не нюанс: в TLS версии младше 1.3 алгоритм цифровой подписи в шифронаборе должен совпадать с алгоритмом в TLS-сертификате, а веб-серверов с сертификатом, подписанным по алгоритму ECDSA, в доменной зоне .RU менее 6%, оставшиеся используют для подписи RSA.
Кто виноват – вопрос отдельного исследования, нас же интересует что делать? Давайте для начала вспомним, что к устойчивым шифронаборам сегодня относятся не только рекомендуемая АНБ комбинация ECDHE+ECDSA+AES, но и другие:
Весь зверинец
TLS_DHE_RSA_WITH_AES_128_CCM;
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_256_CCM;
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_128_CCM;
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_AES_256_CCM;
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256;
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384;
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256.
Итого 19 устойчивых шифронаборов, однако не все из них подходят для использования в реальной жизни на публичном веб-сервере: алгоритм шифрования CAMELLIA, как и AES в режиме CCM, поддерживается чуть более, чем никем, с CHACHA20 и его верным спутником POLY1305 знакомы лишь относительно современные браузеры, а для использования шифронаборов на основе ECDSA, как уже было сказано, требуется соответствующий TLS-сертификат. Таким образом у нас остается лишь 4 «дополнительных» шифронабора:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.
Соблазнительно предположить, что если браузер поддерживает комбинацию ECDHE+ECDSA, то уж с ECDHE+RSA он точно справится, но это не всегда так – многие умеют только в DHE+RSA, и чтобы удовлетворить запросы всех старых браузеров, на сайте с RSA сертификатом необходимо поддерживать два шифронабора:
Это даст нам совместимость как минимум со следующими операционными системами и браузерами:
Android 4.4.2 + Android Browser (Chrome);
Windows XP + Chrome 49/Firefox 49/ Opera 12.18;
Windows 7 + Internet Explorer 11/Chrome 31/Firefox 31;
OS X + Firefox 29/Chrome 37;
iOS 9 + Safari 9;
Java 8b.
Про *nix системы не скажу – зависит от сборки, но очевидно, что проблемы как таковой не существует. Единственная проблема возникнет с Windows Phone 8.1 + IE 10, которые поддерживают только одну устойчивую комбинацию – ECDHE+ECDSA.
А что же делать пользователям Windows XP + IE 6 или какого-нибудь Android 2.3? – спросит заботливый админ. Продолжать сидеть без доступа к современному Интернету, – отвечу я, – поскольку даже поддержка веб-сервером протокола SSL 2.0 им ничем не поможет. Дело в том, что даже если накатить на Windows XP все выпущенные для него обновления (по май 2019 года) и обновить штатный браузер до версии 8, это принесет лишь поддержку TLS 1.2, но не устойчивых шифронаборов. Кроме того, Windows XP как не знал, так и не узнает, что такое Server Name Indication (SNI), HTML 5 Live HTML и CSS 3.
Готовы ради упертых «полутора землекопов» держать для сайта выделенный IP и не обновлять верстку? Тогда добавьте поддержку, например, TLS_RSA_WITH_AES_256_CBC_SHA256, но скорее следует предположить, что современный пользователь Windows XP уже давно пользуется альтернативным браузером, который поддерживает даже TLS 1.3. То же верно и для Android 2.3, установив на который Firefox 27, мы получим полноценную поддержку TLS 1.2 и AEAD шифронаборов, а не установив – просто не сможем пользоваться значительной частью современных сайтов даже по HTTP.
Все вышесказанное, разумеется, не является призывом к отказу от поддержки более стойких шифронаборов, которые будут востребованы современными браузерами, и которые следует предлагать для согласования в первую очередь.
Чтоб два раза не вставать, рассмотрим кратко и ситуацию с эллиптическими кривыми. NSA Suite B Cryptography признает только две из них – NIST P-384 и NIST P-256, поддержка которых на веб-сервере обеспечит доступ к сайту как современных, так и «устаревших» браузеров. Собственно, достаточно поддерживать только NIST P-384 для «старичков» и Curve25519 для современных браузеров; ну разве что еще NIST P-521 добавить, для некоторых «передовых старичков».
Подытожим: если мы хотим, чтобы сайт оставался доступен для «устаревших» браузеров, но при этом поддерживал только устойчивые версии протокола защиты транспортного уровня и шифронаборов, поступим следующим образом.
Для сайта с TLS-сертификатом, подписанным по алгоритму ECDSA, включим поддержку шифронабора TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.
Для сайта с TLS-сертификатом, подписанным по алгоритму RSA, включим поддержку шифронаборов TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 и TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.
Для обоих сайтов включим поддержку эллиптической кривой NIST P-384 или NIST P-256 и зададим порядок предпочтения шифронаборов и эллиптических кривых, согласно которым вышеуказанные наборы и кривые предлагаются браузерам для согласования после более устойчивых, например после TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 и Curve25519 соответственно.
Браузеры отказываются от поддержки TLS 1.0 и 1.1
В августе 2018 года IETF утвердил стандарт TLS 1.3
TLS 1.0 и TLS 1.1 скоро фактически прекратят своё существование. Уже сейчас телеметрия Firefox показывает, что эти протоколы составляют ничтожную долю HTTPS-трафика: 1,11% и 0,09%, соответственно. Подавляющее большинство сайтов сейчас используют TLS 1.2. А в 2019−2020 годы все ведущие браузеры намерены полностью отказаться от поддержки TLS 1.0 и TLS 1.1. На серверной стороне рекомендуется отключить эти протоколы уже сейчас.
Почему отключают TLS 1.0 и 1.1
Стандарту TLS 1.0 в январе будущего года исполняется 20 лет. Он выполнил свою роль: за эти годы протокол зашифровал миллиарды, если не триллионы соединений. Со временем стало лучше понятно, как следует проектировать протоколы шифрования. Выросли требования к надёжности шифров. К сожалению, TLS 1.0 и 1.1 не соответствуют этим требованиям.
В TLS 1.0 и 1.1 есть некоторые аспекты, которые внушают опасения, пишет Mozilla Security Blog. Самое плохое, что они не поддерживают работу с современными криптографическими алгоритмами. Например, при рукопожатии обязательно требуют использования алгоритма хэширования SHA-1. В этих версиях TLS невозможно установить более сильный алгоритм хэширования для подписей ServerKeyExchange или CertificateVerify. Поэтому единственный выход — обновление на новую версию TLS.
14 сентября 2018 года Internet Engineering Task Force (IETF) опубликовала черновик официального документа, в котором не рекомендует использовать TLS 1.0 и 1.1. В числе прочего там упоминается, что SHA-1 с криптостойкостью 2^77 нельзя считать безопасным по современным меркам: «2^77 операций [для атаки] — это ниже допустимой границы безопасности».
Фрагмент документа IETF об отказе от старых версий TLS
В документе приводится более подробная техническая информация о причинах такого решения. Там говорится об атаке BEAST (Browser Exploit Against SSL/TLS) на TLS 1.0, а именно — на блочные шифры, где в качестве вектора инициализации для сообщения n используется последний блок шифрования предыдущего сообщения (n-1).
TLS 1.1 выводится из обращения вместе с TLS 1.0, потому что он кардинально не отличается и имеет по сути те же недостатки. В этой версии исправили лишь некоторые ограничения TLS 1.0, которых можно избежать иными способами (речь опять идёт об атаке BEAST).
Согласно рекомендациям NIST, веб-сервисам предлагалось до июля 2018 года удалить поддержку старых версий TLS. Это сделали Amazon, CloudFlare, GitHub, KeyCDN, PayPal и многие другие веб-сервисы.
Сроки отключения
Разработчики всех ведущих браузеров согласились выполнить рекомендации IETF.
Браузер Chrome первым откажется от поддержки старых версий TLS. Разработчики планируют начать процесс с версии Chrome 72, которая выйдет в январе 2019 года: с этого момента для сайтов с устаревшими протоколами будет выводиться предупреждение в консоли DevTools. Полное отключение состоится в версии Chrome 81, которая запланирована к выходу в марте 2020 года (предварительные версии — с января 2020 года).
Microsoft обещает отключить протоколы «в первой половине 2020 года». Mozilla объявила, что отключит TLS 1.0 и 1.1 в Firefox в марте 2020 года. Apple планирует удалить поддержку из браузеров Safari в марте 2020 года.
Пресс-релизы от разработчиков всех ведущих браузеров вышли очень скоординированно:
Современный профиль TLS 1.2
Согласно рекомендации IETF, минимальной криптографической базой для HTTPS-соединений должен быть TLS 1.2. По данным телеметрии Firefox, сейчас он составляет 93,12% HTTPS-трафика (94% по данным Qualys), так что де-факто рекомендации выполняются уже сегодня.
Использование версий TLS для всех HTTPS-соединений в Firefox Beta 62, данные телеметрии за август-сентябрь 2018 года
TLS 1.2 является необходимым условием для работы HTTP/2, который повышает производительность сайтов. Mozilla рекомендует использовать на серверной стороне современный профиль TLS 1.2, если нет каких-то специализированных потребностей. Современный профиль обеспечивает высокий уровень безопасности и включает в себя следующие параметры:
- Наборы шифров: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
- Эллиптические кривые для TLS: prime256v1, secp384r1, secp521r1
- Тип сертификата: ECDSA
- Эллиптические кривые для сертификата: prime256v1, secp384r1, secp521r1
- Подпись сертификата: sha256WithRSAEncryption, ecdsa-with-SHA256, ecdsa-with-SHA384, ecdsa-with-SHA512
- Размер ключа RSA: 2048 (если нет ECDSA)
- Размер DH Parameter: Нет (полностью отключен)
- Размер ECDH Parameter: 256
- HSTS: max-age=15768000
- Переключение сертификатов: Нет
Протокол обмена ключами DHE полностью удалён из набора шифров, потому что он медленнее ECDHE, а все современные клиенты поддерживают эллиптические кривые.
Алгоритм подписи SHA1 тоже полностью удалён из набора: вместо него используются SHA384 для AES256 и SHA256 для AES128.
Эта конфигурация поддерживается с версий Firefox 27, Chrome 30, IE 11 на Windows 7, Edge, Opera 17, Safari 9, Android 5.0 и Java 8. Если нужна поддержка более старых браузеров, то требования к набору шифров придётся снизить до «среднего» уровня, он же установлен как уровень по умолчанию. Только в самом крайнем случае советуют опускаться до обратно совместимого набора шифров с поддержкой Windows XP/IE6.
К сожалению, сегодня далеко не все вендоры соблюдают рекомендации по безопасной настройке TLS 1.2.
24 сентября 2018 года на arXiv.org было опубликовано академическое исследование этой проблемы, выполненное исследователями из Университета Конкордиа в Монреале (Канада). Авторы проанализировали поведение 17 версий 13 сетевых TLS-инструментов разного класса (бесплатных, с открытым кодом, низко- и высокоуровневых).
Выводы неутешительные: уязвимыми оказались почти все рассматривавшиеся продукты:
Например, выяснилось, что WebTitan, UserGate и Comodo не выполняют валидацию TLS. Comodo и Endian по умолчанию считают всё сертификаты проверенными, а Cacheguard принимает самостоятельно подписанные сертификаты TLS.
Trend Micro, McAfee и Cacheguard используют предварительно сгенерированные пары ключей (хотя документация McAfee и утверждает обратное). Четыре устройства — от UserGate, WebTitan, Microsoft и Comodo — принимают собственные сертификаты для контента, доставляемого извне. Частные ключи хранятся на устройстве и их можно легко извлечь, используя другие уязвимости.
Атака BEAST позволяет получить аутентификационные файлы куки пользователей TLS-средств от Microsoft, Cisco и TrendMicro, а клиенты Sophos, Cacheguard, OpenSense, Comodo и Endian принимают сертификаты RSA-512, приватные ключи для которых легко подделываются в течение четырёх часов.
Будущее за TLS 1.3
В августе 2018 года IETF утвердил стандарт TLS 1.3, о котором подробно рассказывали на Хабре. Основные нововведения в новой версии:
- новый протокол рукопожатия: процесс проходит в два раза быстрее за счёт объединения нескольких шагов, механизм рукопожатия стал более безопасным, так как разработчики удалили все алгоритмы, которые не используют AEAD-режимы блочного шифрования;
- новый процесс выработки ключа с использованием HMAC-функции Extract-and-Expand Key Derivation Function (HKDF);
- удаление шифронаборов, использующих RSA или обмен ключами DH, режим CBC и SHA-1.
Понятно, что обновление одного из важнейших протоколов затронет множество сайтов и займёт долгое время, но в итоге интернет станет безопаснее.
Форум Про Закупки
Установленный Интернет-браузер: Internet Explorer (версии 11.0), либо любой другой браузер, поддерживающий Transport Layer Security (TLS v.1.0/1.2, RFC 5246), с использованием российских криптографических стандартов; ПО КриптоПро версии 4.0.
Судак Сообщения: 407 Зарегистрирован: Вт дек 24, 2019 5:01 pm Репутация: 6 Благодарил (а): 14 раз Поблагодарили: 30 раз
Re: Браузер для работы в ЕИС
Сообщение Судак » Ср апр 13, 2022 8:56 am
Перепробавали кучу интернет браузеров, лучше всего для работы в личном кабинете ЕИС это: Internet Explorer 11 (у нас версия: 11.0.9600.18860), неплохо работает Яндекс браузер (у нас версия: 22.3.1.981). Кому интересно, Win 7/64 pro
HeakkyPaTHbIu Сообщения: 564 Зарегистрирован: Ср окт 23, 2019 5:25 pm Репутация: 6 Благодарил (а): 24 раза Поблагодарили: 15 раз
Re: Браузер для работы в ЕИС
Сообщение HeakkyPaTHbIu » Ср апр 13, 2022 9:45 am
Используем Internet Explorer 11 (с отключенным автоматическим обновлением).
Xep_CoH Сообщения: 729 Зарегистрирован: Пн окт 21, 2019 6:49 pm Репутация: 14 Благодарил (а): 21 раз Поблагодарили: 39 раз
Re: Браузер для работы в ЕИС
Сообщение Xep_CoH » Ср апр 13, 2022 10:08 am
Раньше использовали Спутник, но потом он начал глючить и мы с ним расстались. Остался IE и недавно поставили Яндекс.
Гость Сообщения: 151 Зарегистрирован: Сб апр 10, 2021 8:19 pm Репутация: 0 Благодарил (а): 9 раз Поблагодарили: 12 раз
Re: Браузер для работы в ЕИС
Сообщение Гость » Ср апр 13, 2022 10:42 am
А что скажите по поводу Mozilla FireFox, Google Chrome?
HeakkyPaTHbIu Сообщения: 564 Зарегистрирован: Ср окт 23, 2019 5:25 pm Репутация: 6 Благодарил (а): 24 раза Поблагодарили: 15 раз
Re: Браузер для работы в ЕИС
Сообщение HeakkyPaTHbIu » Чт апр 14, 2022 5:24 am
Mozilla FireFox используем для работы на АСТ ГОЗ. Google Chrome не используем.
Ask Сообщения: 86 Зарегистрирован: Вт янв 21, 2020 11:21 am Репутация: 0 Благодарил (а): 9 раз
Re: Браузер для работы в ЕИС
Сообщение Ask » Чт апр 14, 2022 10:18 am
Мы вносим информацию через Яндекс браузер, а подписываем IE.
Весна Сообщения: 140 Зарегистрирован: Сб янв 18, 2020 10:37 am Репутация: 0 Благодарил (а): 9 раз Поблагодарили: 1 раз
Re: Браузер для работы в ЕИС
Сообщение Весна » Чт апр 14, 2022 4:54 pm
HeakkyPaTHbIu писал(а): ↑ Ср апр 13, 2022 9:45 am Используем Internet Explorer 11 (с отключенным автоматическим обновлением).
Мы тоже используем IE 11. Отдельный ноут только для торгов, больше ни куда.
Акимова Л Сообщения: 444 Зарегистрирован: Вс дек 15, 2019 6:31 pm Репутация: 5 Благодарил (а): 18 раз Поблагодарили: 14 раз
Re: Браузер для работы в ЕИС
Сообщение Акимова Л » Вс апр 17, 2022 8:24 am
Работа в Единой информационной системе в сфере закупок (ЕИС) в браузере Internet Explorer может быть затруднена из-за прекращения поддержки этого браузера с 15 июня 2022 г.
Как включить TLS 1.3 в Windows
В сегодняшней статье я покажу, как включить TLS 1.3 в Windows и в браузерах Firefox, Chrome и Edge.
TLS или Transport Layer Security — это протокол безопасности, который разработан для обеспечения конфиденциальности и безопасности передаваемых данных в сети Интернет. Протокол даёт возможность клиент-серверным приложениям осуществлять связь в сети таким образом, что нельзя производить прослушивание пакетов и осуществить несанкционированный доступ.
На сегодняшний день существуют 4 версии протокола:
На 2020 год протоколы версий 1.0 и 1.1. признаны устаревшими.
Большой проблемой TLS 1.2 является то, что он часто неправильно настроен, что делает защищенное соединение уязвимыми для атак. TLS 1.3 удаляет устаревшие и небезопасные функции из TLS 1.2, в том числе:
В целом новая версия протокола 1.3 стала намного защищеннее и работает намного быстрее. Рекомендуется использовать именно ее.
Как включить TLS 1.3 в Windows
Имейте в виду, что эта функция все еще внедряется и может появиться в вашем браузере немного позже.
Microsoft Edge
- Введите inetcpl.cpl в командной строке сочетание клавиш «Win + R» и нажмите клавишу Enter.
- Откроется окно свойств Интернета. Перейдите в раздел «Дополнительно»
- В разделе безопасности установите флажок TLS 1.3.
- Перезапустите браузер
Edge Chromium
Эта версия Edge построена на Chromium Engine, который не использует стек Windows TLS. Вам нужно будет настроить их самостоятельно, используя флаг в edge://flags.
- В адресной строке Edge введите edge : //flags и нажмите Enter.
- Найдите TLS 1.3 и включите настройки.
- После включения настроек необходимо перезапустить браузер, чтобы новая версия протокола вступил в силу.
Помните, что он все еще находится на экспериментальной стадии, так как сначала он развертывается с Windows 10 Insider, а затем он будет в более широком формате. Поэтому, если вы не хотите его использовать, вы можете использовать другие браузеры, которые поддерживают версию 1.3.
Chrome
Поскольку Chrome и Edge используют движок Chromium, вы можете включить или изменить настройку таким же образом с помощью флагов Chrome.
- Введите chrome : //flags на новой вкладке Edge и нажмите Enter.
- Найдите TLS 1.3 и включите настройки.
- Перезапустите браузер.
Вы заметите, что настройки по умолчанию включены для Chrome. Нечто подобное со временем произойдет со всеми браузерами.
Firefox
- Запустите Firefox и введите в адресной строке about : config , а затем нажмите клавишу Enter.
- В строке поиска введите security . tls . version . max и нажмите плюс. Убедитесь что значение в положении «True».
- Перезапустите браузер Firefox.
Если вы хотите отключить, верните прежнее.
Как проверить включен ли TLS 1.3
Для проверки TLS 1.3 зайдите на сайт Cloudflare и нажмите кнопку «Run test».
На этом все. Надеюсь вы смогли включить TLS 1.3 в Windows и в браузерах.