Подробный гайд: Ошибка «Указан неправильный алгоритм» (0x80090008)

Гайд по ошибке 0x80090008: причины, диагностика и решение проблем с криптографией в Windows, RDP, сертификатах и СКЗИ

2026.04.23                  


Подробный гайд: Ошибка «Указан неправильный алгоритм» (0x80090008)Подробный гайд: Ошибка «Указан неправильный алгоритм» (0x80090008) Код ошибки: 0x80090008
Внутреннее имя: NTE_BAD_ALGID / CRYPT_E_BAD_ALGID (CryptoAPI)
Суть: Система не может выполнить криптографическую операцию, так как указанный алгоритм шифрования, хэширования или подписи не поддерживается, отключён политикой безопасности, несовместим между клиентом и сервером либо повреждён криптографический стек.


1. Почему возникает ошибка?

Причина Описание
Отключённые/устаревшие алгоритмы Windows 10/11 и Server 2019+ по умолчанию отключают SHA-1, RC4, 3DES, MD5. Легаси-клиенты или старые сертификаты вызывают ошибку.
Несоответствие Cipher Suites Клиент и сервер не имеют общих наборов шифров для TLS/SSL/RDP.
Политика FIPS Включённый режим FIPS (FipsAlgorithmPolicy=1) блокирует все не-FIPS-алгоритмы.
Повреждённое хранилище сертификатов Коррупция CertStore, повреждённые CRL/OCSP, неверные цепочки доверия.
Проблемы СКЗИ КриптоПро, ViPNet, Рутокен, JaCarta: устаревшая версия, конфликт провайдеров, несовместимость с обновлённой Windows.
Групповые политики Ограничения System cryptography: Use FIPS..., Network security: Configure encryption types allowed..., отключение TLS 1.2.
Рассинхронизация времени Сертификаты проверяются по времени. Отклонение >5 минут ломает валидацию и криптографические сессии.

2. Базовые шаги (безопасные, выполнять в первую очередь)

Шаг 1. Проверка даты, времени и часового пояса

w32tm /query /status
  • Убедитесь, что время совпадает с NTP-сервером.
  • Включите автоматическую синхронизацию: timedate.cpl → вкладка «Время по Интернету».

Шаг 2. Перезапуск криптографических служб

net stop cryptsvc
net start cryptsvc

- Очистите кэш CAPI (опционально, если служба зависла):

  ren C:\Windows\System32\catroot2 catroot2.old
  ren C:\Windows\System32\catroot2.bak catroot2

После этого может потребоваться перезагрузка. Не делайте, если активно идут Windows Update.

Шаг 3. Обновление системы

  • Установите все накопительные обновления (Settings → Windows Update).
  • Для Server: проверьте servicing stack update (SSU) и LCU.
  • Многие исправления CryptoAPI/Schannel поставляются только через KB.

Шаг 4. Проверка политики FIPS

  1. Win + Rsecpol.msc
  2. Локальные политики → Параметры безопасности
  3. Найдите: Системная криптография: использовать алгоритмы, совместимые с FIPS
  4. Если включено → попробуйте отключить (требует перезагрузки).
    В домене настройка управляется GPO. Не отключайте без согласования с ИБ.

3. Решение по сценариям

Сценарий A: Ошибка при подключении по RDP

Симптом: 0x80090008 в журнале RDP, «Произошла внутренняя ошибка», «Указанный алгоритм не поддерживается»

Что делать:

  1. Обновите RDP-клиент (Microsoft Remote Desktop из Microsoft Store или latest mstsc.exe).
2. На сервере проверьте политику шифрования RDP:
  • gpedit.mscКонфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удалённых рабочих столов → Узел сеансов → Безопасность
  • Требовать использование определённого уровня безопасности при подключении → установите SSL (TLS 1.0) или Согласование (временное решение).

3. Включите TLS 1.2 на сервере (если отключён):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
   "Enabled"=dword:00000001
   "DisabledByDefault"=dword:00000000

4. Временно отключите NLA (только для диагностики!):

  • Свойства системы → Удалённый доступ → Разрешить подключения... → Снять галочку «Разрешить подключения только с компьютеров, на которых запущен удалённый рабочий стол с проверкой подлинности на уровне сети»

Сценарий B: Ошибка при установке/проверке сертификата

Симптом:

  • certutil -verify или certmgr.msc выдаёт 0x80090008, цепочка не строится

Что делать:

1. Проверьте алгоритм подписи корневого/промежуточного сертификата:
  • Откройте сертификат → вкладка ПодробноАлгоритм подписи.
  • Если sha1RSA → замените на sha256RSA/sha384RSA/sha512RSA. SHA-1 заблокирован в современных Windows.

2. Очистите кэш CRL/OCSP:

   certutil -urlcache CRL delete
   certutil -urlcache * delete
3. Проверьте цепочку доверия:
   certutil -verify -urlfetch path\to\cert.cer
  1. Убедитесь, что промежуточные сертификаты установлены в Промежуточные центры сертификации.

Сценарий C: Работа с СКЗИ (КриптоПро, ViPNet, Рутокен)

Симптом:

  • Ошибка в браузере, 1С, ЭДО, при подписании/шифровании

Что делать:

  1. Обновите СКЗИ до последней стабильной версии (КриптоПро 5.0 R2+, ViPNet CSP 5.x).
2. Проверьте регистрацию провайдеров:
   certutil -csplist

Должны быть видны Crypto-Pro GOST R 34.10-2012, VIPNet CSP и т.д.
3. Переустановите CSP в режиме администратора, выберите Восстановить настройки по умолчанию.
4. В КриптоПро: Инструменты → Настройки → Алгоритмы → убедитесь, что выбраны ГОСТ Р 34.11-2012 256/512, а не устаревшие 1994 года.
5. Проверьте лицензии и срок действия сертификата токена.


Сценарий D: TLS/SSL ошибки в приложениях/браузерах

Симптом:

  • ERR_SSL_VERSION_OR_CIPHER_MISMATCH, SEC_E_ALGORITHM_MISMATCH

Что делать:

1. Включите TLS 1.2/1.3 в Windows:
   # Проверка
   Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -ErrorAction SilentlyContinue

Если ключей нет, создайте:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
   "Enabled"=dword:00000001
   "DisabledByDefault"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
   "Enabled"=dword:00000001
   "DisabledByDefault"=dword:00000000
  1. Отключите SSLv3/TLS 1.0/1.1 (если включены) → они могут вызывать fallback-ошибки.
  2. Проверьте набор шифров сервера: testssl.sh или nmap --script ssl-enum-ciphers.
  3. В браузере: chrome://flagsTLS 1.3Enabled.

4. Диагностика и логи

Источник Как использовать
Просмотр событий → Журналы приложений и служб → Microsoft → Windows → CAPI2 Ищите события 11, 30, 41, 81 с кодом 0x80090008. Показывают, какой алгоритм/сертификат вызвал ошибку.
Просмотр событий → System → источник Schannel Ошибки TLS-рукопожатий, несоответствие Cipher Suites.
Просмотр событий → Applications and Services Logs → Microsoft → Windows → TerminalServices-RemoteConnectionManager Для RDP-ошибок.
Команды certutil -verify, certutil -urlcache *, gpresult /h report.html, schannel события в Event Viewer
Wireshark Фильтр tls.handshake.type == 1 или tls.alert → покажет, на каком этапе согласования алгоритмов происходит сбой.

5. Профилактика

Мера Описание
Регулярные обновления CryptoAPI/Schannel исправляются через накопительные обновления.
Только SHA-256+ и TLS 1.2/1.3 Откажитесь от SHA-1, RC4, 3DES, SSLv3, TLS 1.0/1.1 в инфраструктуре.
Актуальные сертификаты Используйте ГОСТ Р 34.10-2012 или RSA 2048+ с SHA-256/384/512.
Совместимость СКЗИ Перед обновлением Windows проверяйте матрицу совместимости вендора СКЗИ.
Тестирование в staging Любые изменения в политиках шифрования тестируйте на непродуктивных узлах.
Мониторинг CAPI2 Настройте алерты по событиям 0x80090008 в SIEM/SCCM.

6. Когда обращаться к специалистам?

  • Ошибка массово возникает после обновления Windows/сертификатов.
  • Требуется миграция с ГОСТ 2001/2012, RSA 1024/SHA-1 на современные алгоритмы.
  • Инфраструктура использует аппаратные HSM, смарт-карты, сложные цепочки доверия.
  • Необходимо провести аудит криптографических настроек домена (GPO, Schannel, CSP, PKI).
  • Ошибка блокирует работу критичных систем (1С, ЭДО, РДП-ферма, веб-шлюз).

Приложения

Быстрый PowerShell-чекер

# Проверка TLS 1.2
Test-Connection -ComputerName localhost -Quiet
[Net.ServicePointManager]::SecurityProtocol

# Проверка FIPS
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" | Select FipsAlgorithmPolicy

# Список криптопровайдеров
certutil -csplist | Select-String "Provider"

Итог:

  • Ошибка 0x80090008 почти всегда связана с несоответствием или блокировкой криптографического алгоритма. Начните с проверки времени, обновления Windows, отключения FIPS (если применимо) и диагностики через CAPI2. В 90% случаев проблема решается обновлением СКЗИ/сертификатов или включением TLS 1.2.