deemru / Chromium-Gost

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

Ошибки в событиях Windows (неустранимая ошибка 10013) #60

Open igvogost opened 2 years ago

igvogost commented 2 years ago

Запускаю Chromium-Gost 106.0.5249.103 и в Просмотре событий вижу 10 ошибок на таких ОС: Win7x32: Произошла неустранимая ошибка при создании учетных данных SSL client. Внутреннее состояние ошибки: 10013 Win10x64 LTSB: Произошла неустранимая ошибка при создании учетных данных TLS client. Внутреннее состояние ошибки: 10013 Win10x64 LTSC: Произошла неустранимая ошибка при создании учетных данных TLS client. Внутреннее состояние ошибки: 10013 Пробовал запускать Chromium 106.0.5249.103 и Google Chrome 106.0.5249.103. Ошибки не появляются. В итоге откатился на Chromium-Gost 89.0.4389.128. При его запуске и работе ошибки не появляются.

deemru commented 2 years ago

Вы не указали вашу версию КриптоПро CSP.

Если это воспроизводится на чистой системе, опишите полный порядок действий для достижения ошибки.

igvogost commented 2 years ago

На Win7x32 версия КриптоПро CSP 5.0.11455. Остальные ОС без КриптоПро CSP и ошибка возникает сразу после загрузки ОС и запуска Chromium-Gost. Попробовал перебрать версии Chromium-Gost: последняя без ошибки 104.0.5112.102, а с 105.0.5195.102(пререлиз не пробовал) начинается ошибка. Похоже это началось при переходе на msspi 1.65

deemru commented 2 years ago

Остальные ОС без КриптоПро CSP и ошибка возникает сразу после загрузки ОС и запуска Chromium-Gost.

Звучит как троллинг. Без КриптоПро CSP ГОСТ работать не должен.

Или проблема только в том что в событиях Windows ошибки, но в целом все работает без ошибок?

igvogost commented 2 years ago

Работаю в организации где несколько десятков компьютеров. Только на считанных компьютерах установлен КриптоПро CSP для соответствующих целей. Чтобы не плодить ассортимент браузеров, да и самому так легче, всем устанавливаю Chromium-Gost, так как считаю его таким же как и Chromium, но с дополнительным функционалом по ГОСТ. Все в организации пользуются, всё устраивает. Недавно решил сначала сам опробовать более новую версию. Начинал с какой то 105.0.5195.... Увидел ошибки в Просмотре событий. Решил не торопиться. Перечитал все сообщения на форуме по Chromium-Gost. Ни у кого похожего не обнаружил. Терпеливо пробовал все последующие версии по 106.0.5249.103. В своей работе КриптоПро CSP регулярно не использую, хотя основная ОС у меня Win7x32 Pro с установленным КриптоПро CSP 5.0.11455. Да, последний Chromium-Gos работает в обычном применении, не смотря на ошибки в системном журнале. В связке с КриптоПро CSP на соответствующих сайтах не пробовал. Ладно. Не горит. Спасибо.

deemru commented 2 years ago

Ошибки связаны с текущей механикой определения поддерживаемых алгоритмов в системе, код был добавлен тут: https://github.com/deemru/Chromium-Gost/commit/a2433c8054003d29b529d8cf37378c9ceb788154#diff-027517188b3f26e38bfb308623bc719c6c20bc2a1dae28736045aae168c2f60cR113-R132

Это ожидаемые ошибки "простукивания" системного TLS функционала при старте браузера, от чего далее зависит активация тех или иных функций внутри браузера.

Если найдется способ без оставления ошибок в событиях Windows, возьмем на вооружение. Пока так.

VolkovAnton83 commented 1 year ago

Это ожидаемые ошибки "простукивания" системного TLS функционала при старте браузера, от чего далее зависит активация тех или иных функций внутри браузера.

Так вы их "простукивайте" начиная с самых новых по направлению к старым. И если самый новый находится, то на нём и работайте...

deemru commented 1 year ago

Так вы их "простукивайте" начиная с самых новых по направлению к старым. И если самый новый находится, то на нём и работайте...

А если на сервере он не поддерживается?

VolkovAnton83 commented 1 year ago

А если на сервере он не поддерживается?

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

deemru commented 1 year ago

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

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

Узнать при старте браузера по какими серверами будет ходить пользователь невозможно.

VolkovAnton83 commented 1 year ago

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

Да, признаюсь, не обратил. Тогда, конечно, надо проверять возможность работы всех протоколов. Впрочем, во-первых, в процессе работы пользователь может "включить" или "отключить" возможность работы протоколов, а во-вторых, почему для определения включенных протоколов не используете ключ реестра Компьютер\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\SecureProtocols?

Вот тут вроде как описание возможных значений: https://admx.help/?Category=InternetExplorer&Policy=Microsoft.Policies.InternetExplorer::Advanced_SetWinInetProtocols&Language=ru-ru

deemru commented 1 year ago

во-первых, в процессе работы пользователь может "включить" или "отключить" возможность работы протоколов, а во-вторых, почему для определения включенных протоколов не используете ключ реестра

1) Всё так. Может. Но жалоб не было. 2) Абстракция msspi даёт больше гарантий работы для всех поддерживаемых систем. Разбираться в сочетаниях ключей реестра одной конкретной системы выглядит нецелесообразным.

VolkovAnton83 commented 1 year ago

Если найдется способ без оставления ошибок в событиях Windows, возьмем на вооружение. Пока так.

2. Разбираться в сочетаниях ключей реестра одной конкретной системы выглядит нецелесообразным.

deemru commented 1 year ago

Если найдется способ без оставления ошибок в событиях Windows, возьмем на вооружение. Пока так.

  1. Разбираться в сочетаниях ключей реестра одной конкретной системы выглядит нецелесообразным.

Да, спасибо за направление, но этот вариант не подходит.

VolkovAnton83 commented 1 year ago

Если это ещё актуально вообще, но в файле msspi.cpp у вас встречается структура SCHANNEL_CRED, которая, согласно информации на странице описания (https://learn.microsoft.com/en-us/windows/win32/api/schannel/ns-schannel-schannel_cred) не рекомендуется. Вместо нее рекомендуют SCH_CREDENTIALS. Не думаю, что проблема в этом, но всё же ошибка в журнале при проверке работоспособности протокола - это как-то неаккуратненько...

karabelnikov commented 1 year ago

Если кому интересно, вывод этих ошибок в системный журнал, можно просто отключить.

Решение: Открыть просмотр событий. Нажать на это событие, там справа - подробнее. Раскрыть System и там видно GuID. Выглядит примерно так (у всех он разный) - c26c4f3c-3f66-4e99-8f8a-39405cfed220

Открыть реестр и искать тут: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Control\WMI\Autologger\EventLog-System\гуид в логах HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet002\Control\WMI\Autologger\EventLog-System\гуид в логах HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-System\гуид в логах

Открыть и там Enabled поставить в 0. Перезагрузка системы. Также можно вырубить любую ошибку или события которые флудят но на стабильность или скорость не влияют.