0x80090005

O código de erro 0x80090005 é um problema comum no Windows, associado ao Serviço Criptográfico. Geralmente indica falhas no armazenamento de chaves ou na configuração do sistema. Para resolverlo, tente reiniciar o serviço ou instalar atualizações pendentes. Si persiste, consulte la documentación oficial de Microsoft.

Conteúdo

Código de error de Windows 0x80090005

O código de erro 0x80090005 es un código HRESULT standard en los sistemas operativos Windows 10 e Windows 11, que indica un problema relacionado con operaciones criptográficas, específicamente un "Bad Keyset" o conjunto de claves inválido. Este error se associa principalmente con el subsistema de Criptografía de Windows (CryptoAPI) y los proveedores de servicios criptográficos (CSPs), que são componentes-chave para o manuseamento de chaves, certificados y criptografia en aplicações como atualização do Windows, servicios de autenticación y procesos de seguridad. Su relevancia radica en que puede interrumpir operaciones críticas de sistema, Como a instalação de atualizações, el acceso a recursos protegidos o la ejecución de aplicações que dependen de la integridad criptográfica, lo que puede comprometer la estabilidad y la seguridad del sistema.

Introdução

O código de erro 0x80090005, conhecido como NTE_BAD_KEYSET, se origina en el framework de erros HRESULT de Microsoft, que se utiliza para reportar falls en operaciones de software, especialmente en contextos de programación y servicios del sistema. En el ámbito de Windows 10 e 11, este erro é particularmente relevante devido à crescente dependência de funcionalidades de segurança avançadas, como la encriptación de datos, la gestión de certificados y la integración con servicios en la nube. Por exemplo, pode aparecer durante processos de Windows Update al tentar verificar firmas digitales, en operações de Microsoft Edge o en aplicações que utilizan la API CryptoAPI para manejar claves privadas o públicas.

El error se manifiesta en escenarios comunes como la configuración de cuentas de usuario, la instalación de software firmado digitalmente o la resolución de problemas de red que involucran autenticación. A sua importância para administradores de sistemas e desenvolvedores reside no facto de indicar potenciais vulnerabilidades na infraestrutura criptográfica, que poderiam ser exploradas por ameaças externas. No Windows 11, com o seu enfoque na segurança reforçada através de características como Secure Boot e TPM (Módulo de plataforma confiável), este erro pode surgir com mais frequência em ambientes empresariais onde se manipulam dados sensíveis. Historicamente, embora presente desde versões anteriores como o Windows 7, su incidência ha aumentado con la adopción de Windows 10 e 11 devido à complexidade crescente dos ecossistemas de aplicações e serviços na cloud.

Para utilizadores avançados, compreender 0x80090005 implica reconhecer o seu papel no ecossistema de erros HRESULT, que facilita o diagnóstico preciso em ambientes de desenvolvimento. Este erro não afeta apenas componentes nativos do Windows, mas também a aplicações de terceiros que interagem com APIs como CryptAcquireContext ou CryptGenKey, o que o torna um indicador-chave de problemas subjacentes na gestão de chaves criptográficas.

Detalles Técnicos

O código de erro 0x80090005 faz parte da estrutura HRESULT, un formato estandarizado en Windows para representar resultados de operaciones, definido na documentação do Windows SDK. Un HRESULT es un valor de 32 bits que se compõe de vários elementos: o bit mais significativo indica o severidad (0 para éxito, 1 para fallo), los bits 16-26 representam o código de instalação (facility code), e os bits inferiores 16 bits contêm o código de error específico. No caso de 0x80090005, descompõe-se da seguinte forma:

  • Severidade: El bit alto (8 em hexadecimal) indica um erro (FAILURE), o que significa que a operação não foi concluída com sucesso.
  • Código de Facilidades: 0x900 (equivalente a 2304 em decimal), que corresponde a FACILITY_SECURITY ou mais especificamente a subinstalações relacionadas com CryptoAPI e SSPI (Interface de Suporte de Segurança (Security Support Provider Interface)). Isto liga-o diretamente a componentes de segurança como o serviço Cryptographic Services.
  • Código Específico: 0x0005, que se traduz em NTE_BAD_KEYSET, um erro definido no ficheiro winerror.h do SDK do Windows, indicando que o conjunto de chaves criptográficas é inválido ou inacessível.

Tecnicamente, este error se genera cuando las APIs de CryptoAPI, O que CryptAcquireContext o CryptGetKeySetParam, intentan acceder a un contenedor de claves (keyset) que está corrupto, mal configurado o con permisos insuficientes. Estas APIs forman parte del proveedor de servicios criptográficos (CSP), que no Windows 10 e 11 puede incluir módulos como CNG (Cryptography Next Generation) o el antiguo CSP basado en RSA. Por exemplo, en un contexto de desarrollo, un desarrollador podría encontrar este error al invocar funciones como:

HRESULT hr = CryptAcquireContext(&hProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0);
if (FAILED(hr)) {
    // hr podría ser 0x80090005
}

Os processos afetados incluem serviços como svchost.exe (que aloja CryptSvc), lsass.exe (para autenticação) y aplicaciones que dependen de certificados, como Microsoft Store o actualizaciones de Windows. Dependências chave incluem o Registo do Windows (donde se almacenan configuraciones de claves), o armazenamento de certificados (Certificate Store) y componentes de hardware como TPM en Windows 11. Em ambientes de produção, este error puede propagarse a través de dependencias interprocesos, como cuando un servicio de Windows Update consulta claves para verificar integridad.

Para un análisis más profundo, los administradores pueden usar herramientas como el depurador de Windows (WinDbg) para inspeccionar el fluxo HRESULT, o consultar la documentación de Microsoft Learn sobre erros del sistema, donde se detallan las constantes como NTE_BAD_KEYSET (definida como 0x80090005 en winerror.h).

Causas Comunes

Las causas del error 0x80090005 suelen estar relacionadas con problemas en la gestión de recursos criptográficos, e podem variar conforme a configuração do sistema. A seguir, detalham-se as causas mais frequentes, con ejemplos para ilustrar escenarios reais:

  • Corrupción de contenedores de claves: Uno de los motivos más comunes es la corrupción en el almacén de claves criptográficas, que pode acontecer devido a falhas no disco duro, interrupciones durante operações de escritura o conflitos con software antivirus. Por exemplo, si un utilizador intenta acceder a um certificado na Certificate Store y o keyset asociado está dañado, el error se ativa durante la llamada a CryptAPI.

  • Problemas de permisos y acessos: En configuraciones multiutilizador o dominios Active Directory, permisos insuficientes en el Registo (por exemplo, en claves bajo HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography) podem gerar este erro. Un escenario típico é quando un processo no tiene los derechos necesarios (como SeManageVolumePrivilege) para ler o escribir en el keyset, lo que es común en entornos con políticas de seguridad estrictas.

  • Conflictos con software o drivers: Actualizaciones fallidas de Windows o la instalação de software de terceros que modifica archivos criptográficos (como drivers de TPM o CSPs personalizados) puede causar incompatibilidades. Por exemplo, si un antivirus interfiere com el servicio CryptSvc, las operaciones criptográficas fallan, generando 0x80090005.

  • Problemas de hardware o firmware: No Windows 11, donde el TPM es obrigatório para certas funções, Um TPM defeituoso ou com firmware desatualizado pode resultar neste erro durante processos de arranque seguro ou encriptação de BitLocker. Um exemplo é quando o sistema não consegue aceder ao conjunto de chaves armazenado no TPM devido a um erro de hardware.

  • Configurações incorretas no Registo ou políticas de grupo: Modificaciones manuales en el Registro, como alterar valores em HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProviders, podem desestabilizar o CSP, especialmente se entradas relacionadas com chaves mestras forem eliminadas acidentalmente.

  • Atualizações pendentes ou conflitos de versões: No Windows 10 e 11, se houver atualizações de segurança pendentes que afetem o CryptoAPI (como patches KBxxxx), o erro pode surgir durante a verificação de assinaturas. Por exemplo, num sistema com o Windows Update desativado, as chaves criptográficas podem ficar obsoletas.

Estas causas não são mutuamente exclusivas e frequentemente se combinam, requiring a diagnóstico exaustivo para identificar o fator principal.

Pasos de Resolución

La resolución del error 0x80090005 requer uma abordagem sistemática, utilizando herramientas de linha de comando y ediciones de Registro para usuarios avanzados. Es crucial seguir estas etapas con precaución, uma vez que operações como editar o Registo podem provocar instabilidade se não forem realizadas corretamente. Faça sempre cópias de segurança e execute comandos num ambiente de teste antes de os aplicar em produção.

  1. Verificación inicial y diagnóstico: Inicie executando el Verificador de arquivos do sistema (SFC) para detetar corrupção em ficheiros do sistema. Abra uma linha de comandos elevada e execute:

    sfc /scannow

    Isto irá analisar e reparar ficheiros protegidos. Si se detectan problemas, prossiga para DISM para restaurar la imagen del sistema:

    DISM /Online /Cleanup-Image /RestoreHealth
  2. Reparação de serviços criptográficos: Reinicie o serviço Cryptographic Services através de PowerShell ou CMD. No PowerShell, use:

    Get-Service -Name CryptSvc | Restart-Service

    Para un diagnóstico más profundo, ejecute certutil para verificar e reparar o repositório de certificados:

    certutil -store

    Se forem identificados keysets corruptos, elimine e gere novamente com:

    certutil -delstore "My" "NombreDelCertificado"
  3. Edições no Registo: Acceda al Editor de inscrição (regedit.exe) y navegue a HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography. Verifique y corrija permisos en subclaves como "Providers". Por exemplo, certifique-se de que o utilizador tem direitos de leitura/escrita. Risco: Qualquer erro aqui poderia tornar o sistema inoperável; use scripts de PowerShell para automatizar, O que:

    Set-ItemProperty -Path "HKLM:SOFTWAREMicrosoftCryptography" -Name "SomeKey" -Value "CorrectValue" -Type String

    Melhor prática: Exporte a chave antes de modificar.

  4. Uso de ferramentas avançadas: Si el error persiste, utilice Scripts PowerShell para redefinir CSPs. Exemplo:

    $keyPath = "HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNEL"
    Remove-ItemProperty -Path $keyPath -Name "Protocols" -ErrorAction SilentlyContinue

    Para problemas de TPM no Windows 11, ejecute:

    tpm.msc

    e reinicie o módulo.

  5. Verificación de hardware y actualizaciones: Atualize o firmware do TPM através da ferramenta da Microsoft e execute o Windows Update para instalar patches relevantes. Se o erro se dever a drivers, use pnputil para gerir componentes.

Lembre-se de documentar cada passo e monitorizar logs no Event Viewer para evitar recorrências.

Erros Relacionados

O erro 0x80090005 faz parte da família de códigos HRESULT relacionados com criptografia e segurança, especificamente aqueles com facility code 0x900 (FACILITY_SECURITY). A seguir, una tabla con errores relacionados y sus conexiones:

Código de Erro Descrição Conexão com 0x80090005
0x80090001 NTE_BAD_UID (Identificador de utilizador inválido) Semelhante, ocorre em acessos a keysets; frequentemente precede 0x80090005 em sequências de erros criptográficos.
0x80090006 NTE_BAD_SIGNATURE (Firma inválida) Relacionado com verificação de integridade, común en escenarios de Windows Update donde 0x80090005 indica problemas subyacentes en claves.
0x80090016 NTE_KEYSET_NOT_FOUND (Keyset no encontrado) Directamente conectado, ya que 0x80090005 puede derivar de un keyset ausente o corrupto.
0x80070005 E_ACCESSDENIED (Acesso negado) De la familia FACILITY_WIN32, a menudo coexiste con 0x80090005 en casos de permisos insuficientes en operaciones criptográficas.
0x80072F8F Error de Windows Update relacionado con certificados Indirectamente ligado, ya que problemas en CryptoAPI pueden escalar a errores de actualización, compartiendo causas como corrupción de claves.

Estes erros partilham padrões comuns, como problemas no CryptoAPI, y su diagnóstico conjunto es esencial para resolver problemas sistémicos.

Contexto Histórico

O erro 0x80090005 tiene sus raíces en el desarrollo de CryptoAPI en Windows NT y ha evolucionado con las versiones posteriores de Windows. No Windows 7, este error era menos frecuente, limitándose principalmente a operaciones locales de criptografía, como en Outlook para el manejo de certificados de correo. Porém, con Windows 10 (introduzido em 2015), su incidencia aumentó debido a la integración de servicios en la nube y la mejora de la seguridad, como Secure Boot y BitLocker, que dependen más de TPM y CNG.

No Windows 11, Microsoft ha refinado el manejo de errores HRESULT a través de actualizaciones como las de .Estrutura NET y Windows SDK, introduciendo mejoras en el diagnóstico, como herramientas integradas en PowerShell 7.0+. Por exemplo, parches como KB5008212 han abordado vulnerabilidades que podrían generar 0x80090005, especialmente en entornos con TPM 2.0. Historicamente, desde Windows XP, este error se ha mantenido consistente en su definición, pero su contexto ha cambiado: en versiones legacy, era más asociado con CSPs tradicionales, mientras que en Windows 10/11, se extiende a CNG y APIs modernas.

Microsoft ha emitido varias actualizaciones para mitigar este error, como en las acumulaciones de seguridad de 2022, que melhoran la resiliencia de CryptoAPI ante corrupción. Para desarrolladores, la evolución se refleja en el SDK, donde herramientas como WinDbg han ganado funcionalidades para rastrear HRESULT en tiempo real.

Referências e Leitura Adicional

Para uma exploração mais profunda, se recomenda consultar estas fontes para manter a informação atualizada.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.