Все помнят цепочки сертификатов и условия соблюдения доверительных отношений. Сегодня об этом.
Сегодня прилетела одна “очень интересная задача”. Пользователям понадобился сайт: https://fgiscs.minstroyrf.ru/ - какой-то там ФГИС ЦС.
Поскольку сертификат недоверенный, то был послан Google Chrome следом за кораблём. Сертификат недоверенный, буржуйский фаервол шлёт туда же, да и отечественный Касперский не пускает.
Поехали копать сертификаты. Google Chrome последних версий показывает такую картинку:
В промежуточных/доверенных ЦС нет сертификата ни Russian Trusted Sub CA, ни Russian Trusted Root CA. Они выданы The Ministry of Digital Development and Communications с СОС на Ростелекоме и прочем.
Вспоминаем, что перед началом специальной экономической операции, говорили об отечественном ЦС, который будет поддерживаться отечественными браузерами.
Решено, включаем песочницу, начинаем смотреть на отечественные браузеры на “вражеских” движках.
Выбор пал на три отечественных браузера, качаем последние версии:
Sputnik версии 5.6.6280.0
Chromium GOST версии 100.0.4896.88
Yandex версии 22.3.3.852.31573
Sputnik поставляется в виде многотомного самораспаковывающегося 7zip архива с ЭЦП, выданного SPUTNIKLAB LLC. Выдан “вражеским ” Digicert.
Устанавливаем Sputnik, переходим на интересующий нас сайт.
Смотрим сертификаты ПК. Там всё по аналогии с Google Chrome. Сертификатов нет, подключение не защищено. В настройках ничего сверх настроек Google Chrome нет.
Выбросили, запускаем новый экземпляр песочницы.
Устанавливаем Chromium GOST, там всё по аналогии со Sputnik, не удивлюсь если Sputnik собирается на базе Chromium GOST. Запускаем новый экземпляр песочницы
Качаем Yandex браузер, загрузили веб инсталлятор, что-то пошло не так во время установки, предложил скачать офлайн инсталлер, скачали.
С ЭЦП инсталлятора та же история. Использовать свои ЦС для подписания ПО нельзя, т.к. в Windows им нет доверия. По-прежнему используем импортных производителей. Есть SHA-1 и SHA-256, выданные GlobalSign
Инсталлятор задаёт побольше вопросов, ставит с собой Алису (наверняка поэтому и побольше Sputnik-а весит). От неё можно и отказаться, но зачем – ставим в дефолте. Запускаем, открываем требуемый сайт. Видим закрытый замочек.
Интересно, идём в подробнее, видим интересное состояние
Т.е. мы доверяем Russian Trusted Sub CA, но про Russian Trusted Root CA ничего не понятно, смотрим подробности сертификата. Видим всё ту же картинку, что и с Google Chrome
Идём в хранилище сертификатов. Оказывается, прилетел в промежуточные ЦС Russian Trusted Sub CA, но нигде нет Russian Trusted Root CA. Странно, что Yandex позволяет доверять сайту с недоверенным RootCA и судя по описанию, доверяет данному сайту только на основании доверия к промежуточному CA. Не уверен, что это не баг/фича, но так быть не должно.
При декрипте трафика импортным фаерволом по прежнему возникают ошибки, что естественно. А вот Kaspersky в Windows Sandbox влазить не захотел, ну и пусть, пока не определена стратегия по работе с такого рода сервисами, нечего туда ходить.
Из того, что замечено в дистрибутивах данных браузеров. Настроена и включена по умолчанию поддержка сертификатов по ГОСТ Р 34.12 2015. Сделана она через КриптоПро. В Yandex и Chromium GOST ставится/снимается галочка и включена по-умолчанию. Sputnik таких вольностей не позвояет и включает её без возможности отключения (может через какие-то доппараметры и можно, но в юзер интерфейсе не видно)
Выводов не будет, обзоров кнопочек в браузерах так же. Вопрос, как работать с данными сервисами по-прежнему открыт. Доверять непонятному ЦС, который может выпустить (и скорее всего уже выпустил) сертификаты всех популярных сервисов, абсолютно не хочется. Скорее всего пойдём по пути отдельных виртуалок для работы с такими сервисами, да и наверняка стоит посмотреть на “отечественные” ОС, которые будут крутится в отдельных сетях.