deemru / Chromium-Gost

Chromium с поддержкой алгоритмов ГОСТ
https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=9991
MIT License
388 stars 43 forks source link

Виснет интерфейс (при долгой проверке цепочки сертификатов) #71

Closed Badrus4 closed 1 year ago

Badrus4 commented 1 year ago

Добрый день, сталкиваемся с проблемами при работе с https://fzs.roskazna.ru/ через браузер Chromium-Gost. Терминальный Сервер Windows server 2012r2 КриптоПРО CSP 4.0.9944 КриптоПро ЭЦП Browser plug-in 2.0.14816 Chromium-gost 109.0.5414.139 (пробовали 114.0.5735.198 на winserver 2016 тоже самое) Браузер установлен в систему с ключами --system-level --install Суть проблемы - при запуске браузера, все работает корректно, но стоит перейти на сайт https://fzs.roskazna.ru/ и в логе windows появялется ошибка (Произошла неустранимая ошибка при создании учетных данных SSL client. Внутреннее состояние ошибки: 10011.), она кстати возникает и при запуске браузера. В итоге страница не загружается и появляется ошибка: _Не удается получить доступ к сайту Веб-страница по адресу https://fzs.roskazna.ru/, возможно, временно недоступна или постоянно перемещена по новому адресу. ERR_CONNECTION_ABORTED_ Затем секунду-две ERR_FAILED и только потом сайт корректно загружается. Весь этот процесс занимает около 3-х минут. Во время "прогрузки" казны другие обычные сайты (яндекс и тд) тоже не загружаются, но как только казна загружается все снова начинает корректно работать. После прогрузки казны, сертификат с шифрованием ГОСТ Р 34.11-2012/34.10-2012 256 бит Есть подозрение что это связано с msspi или "простукиванием" протоколов.

Пробовали chromium-gost-49.0.2623.112-win32-gold, с ним все быстро загружается, но у пользователей сайт fzs.roskazna.ru не видит ЭЦП с сертификатом. На версиях 109.0.5414.139 и 114.0.5735.198 после трехминутного ожидания прогрузки все корректно работает, но ожидание работу сильно затрудняет. Пробовали КриптоПро 5 и Windows Server 2016, проблема сохраняется. При переходе на https://gost.cryptopro.ru/ Алгоритм подписи sha256RSA Есть ли какое-то решение проблемы или в какую сторону копать? Можно ли включить принудительно протоколы ГОСТ, чтобы не было переключений на Boring SSL для определенных сайтов, т.е сайт отметить поддерживающим алгоритмы ГОСТ вручную? Или настройки КриптоПРО CSP нужно выставить корректные?

Сеть у нас с ограниченным доступом в интернет, может не хватает каких-то доступов для корректной работы механизмов?

Screenshot_4

deemru commented 1 year ago

Есть ли какое-то решение проблемы или в какую сторону копать?

Лучший вариант получить проблему на чистой системе и рассказать как её воспроизвести.

Пока что, такие проблемы как правило связаны с установкой сторонних программ и дополнительных защит.

Сеть у нас с ограниченным доступом в интернет, может не хватает каких-то доступов для корректной работы механизмов?

Да, подгрузка CRL возможно зависает.

При переходе на https://gost.cryptopro.ru/ Алгоритм подписи sha256RSA

Это странно, лучше исключить браузер и попробовать утилиту из состава КриптоПро CSP:

Проверить, что в обоих вариантах: SECPKG_ATTR_CIPHER_INFO: CipherSuite: ff85, TLS_GOSTR341112_256_WITH_28147_CNT_IMIT

А также обратить внимание на результат и время проверки цепочки сертификатов.

Можно ли включить принудительно протоколы ГОСТ, чтобы не было переключений на Boring SSL для определенных сайтов, т.е сайт отметить поддерживающим алгоритмы ГОСТ вручную? Или настройки КриптоПРО CSP нужно выставить корректные?

С релиза 100.0.4896.88 появился ключ --tlsmode=N:

  • Добавлена опция командной строки "tlsmode", которая отвечает за режим работы TLS ГОСТ:
    2 - переключение boringssl <> msspi без разрыва соединения (по умолчанию)
    1 - принудительная работа только msspi
    0 - переключение boringssl <> msspi с разрывом соединения
    -1 - принудительная работа только boringssl
Badrus4 commented 1 year ago

Попробовал на чистой ОС. Установлен только браузер, крипто про и плагин кадесм. проблема сохраняется.

Доступ до CRL по 80 порту есть прямой Крипто про tlsca2012.cryptopro.ru [193.37.157.110] cdp.cryptopro.ru [193.37.157.43]

Казначейство России reestr-pki.ru [109.207.1.66] company.soib.rt.ru [213.59.197.65] rostelecom.ru [87.226.162.216] crl.roskazna.ru [95.167.245.118]

Доступ до https://fzs.roskazna.ru/ имеется прямой, но до https://gost.cryptopro.ru/ только через прокси. Если принудительно включить msspi то сайт выдат ошибку NET::ERR_CERT_UNABLE_TO_CHECK_REVOCATION. Сертификаты установлены КриптоПро.

Такой вопрос, нужен ли прямой доступ до сервисов\сайтов криптопро для работы по ГОСТ TLS? Может в этом проблема, по трафику система делает обращения к ресурсам Криптопро.

csptest -tlsc -v -server fzs.roskazna.ru - соответсвенно успех csptest -tlsc -v -server gost.cryptopro.ru - а тут нет доступа до ресурса gost.cryptopro.ru без браузера

Скриншоты приложил.

Screenshot_6 Screenshot_7 Screenshot_8

Badrus4 commented 1 year ago

Сейчас ради проверки, открыли полный доступ в интернет. Все отркрылось быстро, https://gost.cryptopro.ru/ по госту без ошибок открылся. Видимо нехватало доступа. Теперь нужно понять, какой именно требуется доступ для КриптоПро CSP для работы по ГОСТ TLS?

deemru commented 1 year ago

Сейчас ради проверки, открыли полный доступ в интернет. Все отркрылось быстро

Ожидаемо. Как сказано выше:

Да, подгрузка CRL возможно зависает.

Никаких дополнительных вызовов и дополнительного доступа требоваться не должно.

--

Сейчас видно только одну проблему -- виснет интерфейс, с этим попробуем разобраться.

То что при отсутствии доступа проверка происходит медленно, крайне странно, так как если доступа нет, то должна возвращаться быстрая ошибка. Видимо у вас в системе блокировка доступа работает по-другому, а именно она создаёт видимость доступа, без реального доступа, из-за чего возникает продолжительный таймаут на попытку актуализации списков отзыва.

Badrus4 commented 1 year ago

Отключили прокси в браузере и с прямым доступом до crl.roskazna.ru [95.167.245.118] и fzs.roskazna.ru [94.25.27.71]. С ключом --tlsmode=1 Казна открывается за 50 секунд. Сняли трассу (первый раз это скриншот Kazna, второй скриншоты Kazna1 и Kazna2) Видно, что клиент с сервером общаются идет 40-50 секундная пауза и сайт начинает загружаться. В первой попытке почему-то трафик с CRL не захватился, но во втором видно.

В принципе минута на запуск терпимо, интересно это из-за сайта или в бразуере дело.

Первый запуск Kazna

Второй Kazna1 Kazna2

deemru commented 1 year ago

Спасибо, но пока непонятно, попробуем воспроизвести, понять и починить.

Badrus4 commented 1 year ago

Спасибо, но пока непонятно, попробуем воспроизвести, понять и починить.

Спасибо!

Badrus4 commented 1 year ago

Нашли проблему, как вы и говорили был псевдодоступ до списков отзывов промежуточного сертификата, из-за которого все тормозило. Как доступ сделали нормально, все быстро открывается без проблем. Спасибо больше за советы и помощь!

deemru commented 1 year ago

Это очень хорошо, но вот эту проблему всё таки хотелось бы починить в рамках этого тикета:

Сейчас видно только одну проблему -- виснет интерфейс, с этим попробуем разобраться.

deemru commented 1 year ago

Исправлено с этого релиза: https://github.com/deemru/Chromium-Gost/releases/tag/115.0.5790.114