Про поддержку сайтов с национальными сертификатами в Яндекс Браузере
Очень много вопросов по этой теме. Оно и понятно: информации мало, противоречивых интерпретаций много. Для нас тема защиты соединений с сайтами близка. Мы пишем на Хабре об этом уже лет восемь. Например, в своё время мы первыми поддержали DNSCrypt прямо в браузере, первыми начали предупреждать о неизвестных корневых сертификатах в системе, первыми включили шифрование трафика для незащищенных Wi-Fi-сетей.
Поэтому сегодня мы расскажем сообществу о происходящем чуть более подробно. Тем, кто очень спешит и хочет получить короткие ответы, достаточно прочитать начало поста. Поехали.
Коротко о главном
- Национальный удостоверяющий центр выдаёт сертификаты на домены только тех организаций, которые явно это запросили. Полный список этих доменов публично доступен по адресу www.gosuslugi.ru/tls.
- Яндекс Браузер применяет национальные сертификаты не для всего рунета, а только на тех сайтах, которые есть в списке на www.gosuslugi.ru/tls. Попытка применить сертификат на других доменах приведёт к стандартной ошибке и недоступности сайта для пользователя.
- Национальные сертификаты используют общепринятую открытую криптографию и работают по стандартным правилам (это обычный RSA с длинным ключом, ровно такой же, какой выписывают другие центры сертификации).
- Мы работаем над поддержкой стандарта Certificate Transparency и планируем создать публичный лог, в который будут вноситься все выпускаемые национальным центром сертификаты. Мы надеемся, что другие представители индустрии поддержат эту инициативу и запустят дополнительные публичные логи. Это позволит добиться прозрачности в работе с национальными сертификатами.
Подробнее о проблеме
Как вы можете знать, ряд российских сайтов уже столкнулись с отзывом выданных TLS-сертификатов. Напомню, что наличие действующего авторитетного сертификата жизненно важно для любого сайта, который работает с данными пользователей. Без сертификата невозможно удостовериться, что данные передаются именно тому сайту, который указан в адресной строке браузера, а не подделке злоумышленников. Как следствие, любой современный браузер не пускает пользователей на сайт, если его сертификат отозван (это нормальное, ожидаемое поведение).
Как активировать ЭЦП, полученную в налоговой. Как установить сертификат ЭЦП ФНС на компьютер.
Проблема в том, что российским сайтам всё сложнее получить такой сертификат. Удостоверяющие центры всё чаще отзывают ранее выданные сертификаты и отказывают в их выдаче. Да, сайты могут начать использовать самоподписанные сертификаты. Но к ним нет и не будет никакого доверия со стороны браузеров из-за отсутствия контроля в их выдаче и применении. А значит, проблема с доступом к сайтам никуда не денется.
К чему это может привести? Вот несколько вариантов:
- Пользователям придётся передавать свои личные данные по протоколу http, то есть без шифрования, в явном виде (такие данные легко похитить на любом участке сети между сайтом и пользователем).
- Потребуется для каждого сайта как-то находить и устанавливать на компьютер его недоверенный корневой сертификат, чтобы браузеры перестали «ругаться» на самоподписанные сертификаты. При этом ни у браузеров, ни у пользователей не будет никакого контроля за их применением. Например, несколько лет назад мы уже рассказывали о злоумышленниках, которые вмешиваются в трафик пользователей, тайно устанавливая корневые сертификаты на компьютер. Так что этот вариант крайне опасен.
- Теоретически браузеры могли бы прекратить проверять сертификаты. Но на практике никто на такое не пойдёт, потому что это равноценно переходу на http. Сертификаты без контроля не имеют смысла. Например, по этой причине мы сознательно вырезали из нашего браузера флаг —ignore-certificate-errors, который поддерживается в проекте Chromium. Потому что это опасно.
- Ещё есть вариант отказаться от использования интернета для всех сценариев, где есть риск перехвата данных.
Описание текущего решения
Есть альтернативная инициатива — создать национальные удостоверяющие центры (НУЦ) и поддержать их корневые сертификаты в браузерах. НУЦ смогут выдавать сертификаты тем (и только тем!) сайтам, которые к ним обратятся. Наличие альтернативы позволит не допустить ситуации, при которой пользователи лишатся доступа к онлайн-сервисам.
Первый такой НУЦ уже появился — на базе Госуслуг. Сейчас он работает так:
- Юридическое лицо (владелец сайта) отправляет подписанную заявку на Госуслуги.
- Госуслуги проверяют принадлежность домена.
- В случае успеха помещают домен в публичный список, который доступен всем по адресу www.gosuslugi.ru/tls.
- НУЦ выписывает сертификат на сайт. Это обычный RSA с длинным ключом, ровно такой же, какой выписывают другие центры сертификации. Дальше ключи можно использовать как обычные TLS-сертификаты. То есть всё работает согласно общепринятой открытой криптографии и по известным правилам.
Неполный авторитет — это значит, что сертификаты НУЦ будут признаваться только для тех доменов, которые помещены в публичный список на gosuslugi.ru/tls. Если посещаемого сайта нет в этом списке, то попытка применить новый сертификат приведёт к стандартной ошибке и не даст посетить сайт. И нет, нельзя выпустить сертификат по маске так, чтобы покрыть все домены второго уровня (например, все *.ru) — на стороне Браузера такое просто не заработает. Кроме того, все входящие к нам изменения этого списка будут проходить через контроль явных ошибок. Если очень грубо, то это первый шаг к Certificate Transparency, чтобы обеспечить аудируемость процедуры выдачи сертификатов.
Наши планы
Текущее решение, конечно же, требует развития. Основной способ завоевания доверия к центру сертификации — это открытость. И здесь мы планируем несколько вещей.
Прежде всего, хотим организовать рассылку уведомлений в Яндекс Вебмастере тем владельцам сайтов, для которых зафиксирован выпуск сертификатов.
Наша более глобальная инициатива — поддержать стандарт Certificate Transparency (CT) и поднять публичный лог, в который НУЦ будет записывать выпущенные сертификаты. Если посещаемого пользователем сайта не будет в этом логе, то браузер выдаст ошибку ERR_CERTIFICATE_TRANSPARENCY_REQUIRED и не даст его открыть.
Мы хотим, чтобы наш Браузер проверял сертификаты не по одному, а по нескольким независимым друг от друга публичным логам, поэтому призываем других участников рынка присоединиться к инициативе и поднять дополнительные логи по стандарту CT.
Публичные логи позволят владельцам сайтов в любой момент времени проверить, выпускались ли сертификаты для их доменов. Более того, мы надеемся на появление внешнего аудита, который будет мониторить логи на предмет расхождений. Для удобства внешнего аудита мы хотим запустить аналог инструмента developers.facebook.com/tools/ct.
Большая просьба: если вы знаете, как сделать лучше, — приходите, советуйте. Хотите покритиковать решения — критикуйте и предлагайте улучшения.
P. S. Пока оформлял этот пост, прилетела новость: центр сертификации DigiCert, обслуживающий около 50 тыс. российских сайтов, ограничил им выдачу сертификатов.
Update. Опубликовали на Гитхабе исходный код, который позволяет добавить поддержку сайтов с национальными сертификатами в любой браузер на основе Chromium.
ИсточникБраузеры¶
Отечественные браузеры и поддержка шифрования TLS по ГОСТ 34.10-2012¶
Выбираем и настраиваем отечественный браузер с поддержкой шифрования TLS по ГОСТ 34.10-2012 (далее просто «ГОСТ»):
Пояснения по пунктам:
- Чтобы работало шифрование TLS по ГОСТ 34.10-2012 и электронная подпись, необходимо установить КриптоПро CSP. Рекомендуется последняя сертифицированная версия 4.0.9963 или 5.0.
- Отечественные браузеры, входящие в реестр отечественного ПО, сделаны на основе Chromium (как и Google Chrome).
- Mozilla Firefox, Chromium, Google Chrome, Opera, Vivaldi, SeaMonkey не поддерживают TLS по ГОСТ.
-
[зеркало]
Выбирайте версию, соответствующую OS — 32-разрядную (386) или 64-разрядную.
- Для поддержки шифрования TLS по ГОСТ в Яндекс.Браузере нужно зайти в настройки и включить соответствующую опцию.
Есть проблема совместимости Яндекс.Браузера и TLS по ГОСТ, сайты могут работать некорректно.
-
(может пригодиться неофициальный способ настройки для многопользовательской среды) + необходимое расширение для Firefox
Подробнее о настройке браузеров для работы с электронной подписью и ЕСИА см. в отдельной обновляемой инструкции
- Установка браузеров в OS Linux в общих случаях может производиться из репозитория конкретного дистрибутива Linux (без скачивания с сайта бинарного пакета или архива с исходным кодом).
Поддержка Adobe Flash¶
Поддержка Flash выпилена из Windows и современных браузеров, так как технология объявлена устаревшей. Однако иногда Flash может понадобиться. В ряде случаев может помочь Ruffle, но удобнее воспользоваться портативным браузером.
1. Скачиваем портативный вариант браузера Pale Moon (проверялось на версии 29)
2. Распаковываем Pale Moon
3. Скачиваем NPSWF64 32.0.0.371 (файл в архиве имеет подпись Adobe)
4. Файл из архива копируем в подпапку /Lib/Mozilla/Plugins в папке Pale Moon
5. Запускаем браузер и проверяем работу нужных сайтов, требующих Adobe Flash
Зачем Яндекс.Браузер подключил шифрование по ГОСТу
Windows-версия Яндекс.Браузера, по желанию пользователя или администратора, научилась делать попытки соединения с сайтами, использующими шифрование по ГОСТу, с помощью SSPI (интерфейс в Windows между программами и провайдерами безопасности). Ранее Яндекс.Браузер, без отечественного шифрования, попал на компьютеры Правительства Москвы и «Сбербанка», а о работе с отечественным шифрованием заявляли только конкуренты «Яндекса» — авторы ростелекомовского браузера «Спутник».
В 2016 «Ростелеком» сфокусировал «Спутник» на услугах для для государственных и окологосударственных структур, а летом 2017 президент «Ростелекома» Михаил Осеевский уточнил, что «Спутник» могут сделать обязательным к использованию в государственных ведомствах и компаниях, так как вся альтернативная продукция — западная (отечественный браузер «Яндекса» до настоящего момента тоже мог использовать исключительно стандартное шифрование, то есть заведомо не российское) и потенциально удобна для шпионажа:
«Мы обсуждаем сейчас использование в первую очередь браузера для нужд государственных органов и органов государственных корпораций. И это, в том числе, связано с вопросами информационного суверенитета страны, поскольку все браузеры западные и вся информация о том, кто куда заходит и какую информацию получает, она в общем оказывается за пределами Российской Федерации», — сообщил в июне журналистам Осеевский, отвечая на вопрос RNS.
В конце августа 2017 года глава ростелекомовского проекта «Спутник» Максим Хромов рассказал «Известиям», что их браузер поддерживает отечественные SSL-сертификаты и готов к пилотному тестированию.
Госоператор проверит работу системы безопасности на собственном поисковом, новостном и картографическом сайтах: «Если браузер посетителя сайта поддерживает отечественное шифрование, то будет использовано оно. В противном случае будет подключение через иностранные SSL-сертификаты», — объяснил ближайшие планы Хромов. Советник президента РФ Герман Клименко добавил тогда, что пилотные испытания российского шифрования пройдут и на несопоставимо более популярном, чем собственные сервисы «Ростелекома», портале Госуслуг (разработку портала координируют структуры того же «Ростелекома»).
В общем, если у пользователя на компьютере установлен, скажем, «Крипто Про», а также необходимые сертификаты соответствующих российских УЦ, то при включении поддержки SSPI ГОСТ в Яндекс.Браузере можно будет пользоваться сайтами, которые предпочитают шифрование по ГОСТ SSL.
У «Спутника» использовалась похожая схема — но в ней провайдер SSPI «Крипто Про» сразу включён в инсталятор специализированной версии браузера.
Кому нужно браузер «Спутник» — он тут: browser.sputnik.ru
«Спутник» есть в версиях для Винды, Андроида и iOS — но шифрование ГОСТ поддерживается пока только в винде. Зато в «Спутнике» есть встроенный «Рекламоотвод», который должен убирать рекламу (Яндекс и Гугель хором негодуэ).
ЗЫ. Однажды «Яндекс» уже предположил, что он имеет право взять за основу излюбленные в Google продукты (распространяемые, якобы, свободно), и сделать нечто своё на основе популярных в google кодов. Появилась отдельная версия «Android без Google» (Яндекс.Кит), сервисы «Яндекса» и поиск начали предустанавливаться на телефоны. Прошло немного времени (3 месяца) и… из Google постучали по голове производителям (окрик из Google, похоже, даже помог выйти из бизнеса компании Explay, которая первой решилась попробовать Яндекс.Кит в 2014. Прибыльная в 2014 Explay с ростом год к году в 33%, оборотом в 11 миллиардов рублей компания, уже в 2015 году не выпустила на рынок ничего, никаких телефонов-планшетов, что с Google, что без Google — а в 2016 остатки бизнеса спихнули в Fly).
Google — это компания, которая не даст спокойно жить достаточно популярному браузеру, который обзавёлся системами безопасности, которые никак не контролируются из Калифорнии. И можно вспомнить, что в прошлый раз, когда «Яндекс» создал что-то подчёркнуто своё на излюбленных в Google кодах, последовало быстрое и жёсткое наказание.
А вообще, если в России хотят увидеть распространение шифрования по ГОСТ — необходимо сделать для этого доступный механизм получения сертификатов, как LetsEncrypt, а не всякие устаревающие КриптоПро, изображающие «безопасность». Получал тут сертификат — с ними работать очень сложно. О какой массовости может идти речь?
Источник