Как включить поддержку шифров отличных от rc4
Общая теория: расширение протокола передачи данных HTTP, поддерживающее шифрование этих данных, – HTTPS – не является собственно протоколом шифрования. За шифрование отвечают криптографические протоколы – SSL или TLS.
При этом не все йогурты одинаково полезны: SSL устарел полностью, TLS версии 1.0 – тоже, поэтому сегодня рекомендуется использовать лишь TLS версий 1.1 или 1.2. К слову, последняя на сегодня версия спецификации HTTPS, принятая еще в 2000 году, так и называется HTTP over TLS, про SSL там уже почти не упоминается.
Но это лишь теория, на практике же TLS 1.2 до сих пор поддерживается лишь на ограниченном числе сайтов, с TLS 1.1 – уже заметно получше, но тоже не повсеместно. Проблема поддержки современных версий TLS присутствует и «на стороне клиента», об этом позже.
Итак, для того, чтобы пользоваться у себя на компьютере только актуальными версиями актуального криптографического протокола (Ну-ка, дети, напомните, как он называется? Правильно, TLS! А какой версии? Правильно, не ниже 1.1), необходимо сделать ряд нелепых телодвижений. Почему? Правильно, потому что никто за нас не включит TLS 1.1/1.2 на нашем компьютере. За нас только проверку «подлинности» Windows включат и кучу «мусора» в автозагрузку напихают. Впрочем, я отвлекся.
Лирическое отступление: я искренне убежден (и эта убежденность подтверждается практикой), что 90% пользователей компьютеров могли бы до сих пор пользоваться Windows 3.11 (была такая ОС в начале 90-х), или, в крайнем случае, Windows 98 SE – «пишущая машинка» и браузер ничего другого и не требуют, чтобы нам там не врали про новые, еще более улучшенные интерфейсы и прочие рюшечки «революционных» новых версий ОС.
Правдой также является то, что современные технологии, связанные с безопасностью, к устаревшим ОС никак не прикрутить. Не потому, что это в принципе невозможно, а потому, что их производитель этого не сделал, как не сделал и ничего для того, чтобы прикрутить их смогли сторонние производители ПО. Поэтому, все ОС семейства Windows версии ниже XP (да и та уже в обозримом будущем), увы, безнадежно устарели в аспекте сетевой безопасности.
На этом с лирикой закончим: все следующие рассуждения будут построены на том, что используется ОС Windows XP или более поздняя (Vista, 7 или 8). И на том, что мы сами себе – вовсе не злобные Буратины, а потому своевременно устанавливаем на используемую ОС все полагающиеся обновления и «заплатки».
Итак, для начала нам стоит включить поддержку TLS 1.1 и TLS 1.2 и отключить SSL и TLS 1.0 на уровне самой ОС, за что отвечает Microsoft TLS/SSL Security Provider (schannel.dll). Что нам это даст? А вот что: все программы, которые не имеют собственного модуля поддержки TLS, а используют системный, будут использовать актуальные версии TLS.
Это в теории, согласно которой так настраивается поддержка актуальных версий TLS, в том числе, в браузере Internet Explorer. На самом деле, даже его последняя версия для Windows XP – восьмая – не поддерживает TLS версий выше 1.0. Под Windows Vista – поддерживает, а под Windows XP – нет и, более того, игнорирует запрет использования TLS 1.0. Как так? Вопрос к Microsoft, а не ко мне, мы же все равно сделаем то, что от нас требуется согласно инструкции самого производителя .
А делаем мы следующее: идем в реестр по адресу
HKLM\SYSTEM\CurrentControlSet\Control\Se curityProviders\SCHANNEL\Protocols, находим там разделы PCT 1.0, SSL 2.0, SSL 3.0 и TLS 1.0, в каждом из них – подразделы Client и Server, и создаем в них ключи DisabledByDefault (тип – DWORD), которым присваиваем значение 1 (единица).
Затем там же находим разделы TLS 1.1 и TLS 1.2 и аналогичным образом создаем в них вышеупомянутый ключ, но значение ему присваиваем другое – 0 (ноль). Там же мы отключаем слабые алгоритмы шифрования и хеширования RC2, RC4, DES, MD4 и MD5 а также запрещаем устанавливать безопасные соединения без шифрования (да, бывает и такое... в чьих-то нездоровых фантазиях), оставляя лишь относительно стойкие Triple DES и SHA.
Поскольку расписывать как, что и где менять, мне откровенно лениво, ниже будет приведено содержимое.reg файла, вносящего соответствующие изменения в реестр. Надо аккуратненько скопировать все это содержимое в буфер обмена, создать новый текстовой файл, вставить содержимое туда, сохранить этот файл с расширением.reg и запустить его, после чего – перезагрузиться.
Если случилось так, что после перезагрузки появились проблемы с сетевым соединением, ту же самую операцию надо будет проделать уже со следующим файлом – он удаляет из реестра все сделанные нами изменения, после чего (правильно, дети) снова перезагрузиться. Не обнаружив в реестре вообще никаких значений в испорченном нами разделе реестра, ОС при загрузке создаст их заново со значениями по умолчанию.
Продвинутые пользователи могут вместо полного отката изменений пошаманить с включением и отключением отдельных протоколов и алгоритмов, редактируя первый из файлов. Хозяйке на заметку: если для подключения к Интернету используется корпоративная локальная сеть, а тем более с доменом, то проблемы вероятны, и искать пути их решения рекомендуется за распитием бутылочки пива с администратором сети;)
Также на заметку: браузеры Chrome, Firefox, Opera и Safari, т.е. все, которые не основаны на движке Internet Explorer, используют собственные модули поддержки SSL и TLS, а потому не зависят от рассмотренных нами настроек. Но это не значит, что ими можно пренебречь (в смысле, настройками). А вот о настройках самих браузеров мы поговорим в следующий раз.
Включаем TLS 1.1 и 1.2, отключаем SSL и TLS 1.0:
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000001
"DisabledByDefault"=dword:00000000
"DisabledByDefault"=dword:00000000
"DisabledByDefault"=dword:00000000
"AllowInsecureRenegoClients"=dword:00000 000
"AllowInsecureRenegoServers"=dword:00000 000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
"Enabled"=dword:00000000
Все сломалось? Удаляем сделанные изменения:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr olSet\Control\SecurityProviders\SCHANNEL]
Компании Google, Microsoft и Mozilla огласили сроки полного прекращения поддержки алгоритма шифрования RC4.
С ростом угрозы кибератак на RC4 этот алгоритм начал стремительно терять свою надежность, и ведущие вендоры браузеров решили совсем от него отказаться - в конце января или начале февраля.
По словам Ричарда Барнса (Richard Barnes) из Mozilla, поддержка RC4 в Firefox будет упразднена с выпуском версии 44, запланированным на 26 января. «Отключение RC4 будет обозначать, что Firefox больше не сможет подключаться к серверам, требующим использование RC4, - пояснил представитель компании на ее форуме для разработчиков. - Данные, которыми мы располагаем, показывают, что таких серверов немного, но они еще есть, хотя пользователи Firefox к ним редко обращаются».
Адам Лэнгли (Adam Langley) из Google заявил , что соответствующий релиз Chrome станет доступен широким массам в январе или феврале. Дату он не уточнил, лишь сказал, что HTTPS-серверы, использующие исключительно RC4, будут отключены. «Когда Chrome устанавливает HTTPS-соединение, он обязан сделать все возможное, чтобы обеспечить его безопасность, - отметил Лэнгли в специализированной рассылке на [email protected]. - На настоящий момент использование RC4 в HTTPS-соединениях не отвечает этим требованиям, поэтому мы планируем отключить поддержку RC4 в одном из последующих релизов Chrome».
В настоящее время и стабильные версии Firefox, и бета-версии могут применять RC4 без ограничений, однако по факту они используют его лишь для 0,08 и 0,05% соединений соответственно. Для Chrome этот показатель несколько выше - 0,13%. «Чтобы продолжить работу, операторам соответствующих серверов, скорее всего, придется лишь немного изменить конфигурацию для перехода на более надежный набор шифров», - уверен Лэнгли.
Microsoft объявила о прекращении поддержки устаревшего алгоритма в продуктах Microsoft Edge и IE 11; поддержка будет отключена по умолчанию в начале будущего года. «Microsoft Edge и Internet Explorer 11 используют RC4 лишь при откате с протокола TLS 1.2 или 1.1 до TLS 1.0, - пояснил Дэвид Волп (David Walp), топ-менеджер проекта Microsoft Edge. - Откат до TLS 1.0, использующего RC4, чаще всего происходит по ошибке, но такая ситуация при всей ее невинности неотличима от атаки «человек посередине». По этой причине в начале 2016 года RC4 будет дефолтно отключен для всех пользователей Microsoft Edge и Internet Explorer под Windows 7, Windows 8.1 и Windows 10″.
Уже более десяти лет исследователи сетуют на несовершенство RC4, указывая на возможность подбора случайных значений, используемых для создания шифротекстов по этому алгоритму. При наличии определенного времени, вычислительных мощностей и доступа к некоторому количеству TLS-запросов расшифровка для атакующего не составит большого труда.
В 2013 году исследование, проведенное Дэниелом Бернстайном (Daniel J. Bernstein) на базе университета штата Иллинойс, позволило ему создать практичный способ атаки против известной уязвимости в RC4 с целью компрометации TLS-сессии. Это был один из первых таких опытов, преданных гласности.
В минувшем июле бельгийские исследователи атаки на RC4, позволяющие перехватывать куки-файл жертвы и расшифровывать его за гораздо меньшее время, чем это считалось возможным ранее.
У меня почему-то перестали открываться некоторые HTTPS сайты (не все!). При попытке открыть такой сайт в браузере появляется окно с ошибкой «Этот сайт не может обеспечить безопасное соединение». Сайты не отображаются как в Google Chrome, так и в Opera и в Яндекс Браузере. Без HTTPS некоторые сайты открываются, но не все, только те, у которых страницы доступны и по протоколу HTTPS и по протоколу HTTP.В Google Chrome ошибка при открытии HTTPS сайт выглядит так:
Этот сайт не может обеспечить безопасное соединение.
На сайте sitename.ru используется неподдерживаемый протокол.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH.
Клиент и сервер поддерживают разные версии протокола SSL и набора шифров. Скорее всего, сервер использует шифр RC4, который считается небезопасный.»
В Opera и Яндекс Браузер ошибка выглядит примерно также. Как мне открыть такие сайты?
Ответ
Как вы уже вероятно поняли, проблема связана с проблемами при SSL взаимодействии между вашим компьютеров и HTTPS сайтом. Причины такой ошибки могут быть довольно разные. В этой статье я попробовал собрать все методы исправления ошибки «Этот сайт не может обеспечить безопасное соединение» (This site can’t provide a secure connection, ERR_SSL_PROTOCOL_ERROR) в различных браузерах.
Сразу хочется отметить, что несмотря на то, что браузеры Google Chrome, Opera и Яндекс Браузер выпускаются разными компаниями, на самом деле все эти браузеры основаны на одном и том же движке — Chrome и проблема с ошибками открытия HTTPS сайтов в них решается одинаково.
В первую очередь нужно убедиться, что проблема не на стороне самого HTTPS сайта. Попробуйте открыть его с других устройств (телефон, планшет, домашний/рабочий компьютер и т.д.). Также проверьте, открывается ли в других браузерах, например, IE/Edge или Mozilla Firefox. В Firefox похожая ошибка обсуждалась в статье .
Очистите кэш и куки браузера, SSL кэш
Кэш и куки браузера могут быть частой причиной возникновения ошибок с SSL сертификатами. Рекомендуем сначала очистить в браузере кэш и куки. В Chrome нужно нажать сочетание клавиш Ctrl + Shift + Delete , выберите промежуток времени (Все время ) и нажмите кнопку очистки данных (Удалить данные / Clear Data).
Чтобы очистить SSL кэш в Windows:
- Перейдите в раздел Панель управления -> Свойства браузера ;
- Щелкните по вкладке Содержание ;
- Нажмите на кнопку Очистить SSL (Clear SSL State );
- Должно появится сообщение “SSL-кэш успешно очищен”;
- Осталось перезапустить браузер и проверить, осталась ли ошибка ERR_SSL_PROTOCOL_ERROR.
Отключите сторонние расширения в браузере
Рекомендуем отключить (удалить) сторонние расширения браузера, особенно всякие анонимайзеры, прокси, VPN, расширения антивируса и другие подобные Addon-ы, которые могут вмешиваться в прохождение трафика до целевого сайта. Посмотреть список включенных расширения в Chrome можно, перейдя в Настройки -> Дополнительные инструменты -> Расширения , или перейдя на страницу chrome://extensions/ . Отключите все подозрительные расширения.
Проверьте настройки антивируса и файрвола
Если на вашем компьютере установлены антивирусная программа или межсетевой экран (часто он встроен в антивирус), возможно доступ к сайту блокируется именно ими. Чтобы понять, ограничивают ли доступ к сайту антивирусы или файрволы, попробуйте на время приостановить их работу.
Во многих современных антивирусах по-умолчанию присутствует модуль проверки SST/TLS сертификатов сайтов. Если антивирус обнаружит, что сайт использует недостаточно защищенный (или ) сертификат или устаревшую версию протокола SSL (тот же ), доступ к пользователя к такому сайту может быть ограничен. Попробуйте отключить сканирование HTTP/HTTPS трафика и SSL сертификатов. Как вы понимает, все зависит от того, какой антивирус и вас установлен. Например:
Проверьте настройки даты и времени
Неправильная дата и время (и ) на компьютере также может быть причиной ошибки при установке защищенного соединения с HTTPS сайтами. Ведь при выполнении аутентификации система проверяет срок создания и дату истечения сертификата сайта и вышестоящего центра сертификации.
Обновите корневые сертификаты Windows
Если ваш компьютер находится в изолированном сегменте, давно не обновлялся или на нем совсем отключена служба автоматического обновления, на вашем компьютере могут отсутствовать новые корневые доверенные сертификаты (TrustedRootCA). Рекомендуем выполнить обновление системы: установить последние обновления безопасности, в случае с Windows 7 – обязательно установить SP1 () и обновления часовых поясов ().
Вы можете вручную обновить корневые сертификаты по статье: (так же рекомендуем , это позволит предотвратить перехват вашего HTTPs трафика и ряд других проблем).
Отключите поддержку протокола QUIC
Проверьте, не включена ли в Chrome поддержка протокола QUIC (Quick UDP Internet Connections). Протокол QUIC позволяет гораздо быстрее открыть соединение и согласовать все параметры TLS (HTTPs) при подключении к сайту. Однако в некоторых случая он может вызывать проблемы с SSL подключениями. Попробуйте отключить QUIC:
- Перейдите на страницу: chrome://flags/#enable-quic ;
- Найдите опцию Experimental QUIC protocol ;
- Измените значение опции Default на Disabled ;
- Перезапустите Chrome.
Включите поддержку протоколов TLS и SSL
И самый последний пункт – скорее всего для решения проблемы вам достаточно будет включить поддержку старых версий протоколов TLS и SSL. В большинстве случае он окажется самым эффективным, но я намеренно перенес его в конец статьи. Объясню почему.
Старые версии протоколов TLS и SSL отключены не по простой прихоти разработчиков, а в связи с наличием большого количества уязвимостей, которые позволяют злоумышленникам перехватить ваши данные в HTTPS трафике и даже видоизменить их. Бездумное включение старых протоколов существенно снижает вашу безопасность в Интернете, поэтому к этому способу нужно прибегать в последнюю очередь, если все другое точно не помогло.
Современные браузеры и ОС уже давно отказались от поддержки устаревших и уязвимых протоколов SSL/TLS (SSL 2.0, SSL 3.0 и TLS 1.1). Стандартном сейчас считаются TLS 1.2 и TLS 1.3
Если на стороне сайта используется меньшая версия протокола SSL/TLS, чем поддерживается клиентом/браузером, пользователь видит ошибку установки безопасного подключения.
Чтобы включить старые версии протоколов SSL/TLS (еще раз отмечаю – это небезопасно):
Если все рассмотренные способы не помогли избавиться от ошибки «Этот сайт не может обеспечить безопасное соединение» также попробуйте: