0x80090005

Error code 0x80090005 is a common issue in Windows, associated with the Cryptographic Service. It usually indicates failures in key storage or system configuration. To fix it, try restarting the service or installing pending updates. If it persists, consult the official Microsoft documentation.

Contents

Windows error code 0x80090005

The error code 0x80090005 is a standard HRESULT code in Windows operating systems 10 and Windows 11, which indicates a problem related to cryptographic operations, específicamente un "Bad Keyset" or invalid keyset. This error is mainly associated with the Windows Cryptography subsystem (CryptoAPI) and cryptographic service providers (CSPs), which are key components for handling keys, certificates and encryption in applications such as Windows Update, servicios de autenticación y procesos de seguridad. Su relevancia radica en que puede interrumpir operaciones críticas de sistema, como la instalación de actualizaciones, el acceso a recursos protegidos o la ejecución de aplicaciones que dependen de la integridad criptográfica, lo que puede comprometer la estabilidad y la seguridad del sistema.

Introducción

The error code 0x80090005, known as NTE_BAD_KEYSET, se origina en el framework de errores HRESULT de Microsoft, que se utiliza para reportar fallos en operaciones de software, especialmente en contextos de programación y servicios del sistema. En el ámbito de Windows 10 Y 11, este error es particularmente relevante debido a la creciente dependencia en características de seguridad avanzadas, como la encriptación de datos, Certificate management and integration with cloud services. For example, may appear during Windows Update processes when attempting to verify digital signatures, in Microsoft Edge operations or in applications that use the CryptoAPI to handle private or public keys.

The error occurs in common scenarios such as setting up user accounts, installing digitally signed software, or troubleshooting network issues involving authentication. Its significance for system administrators and developers lies in that it highlights potential vulnerabilities in the cryptographic infrastructure, which could be exploited by external threats. In Windows 11, con su énfasis en la seguridad mejorada a través de características como Secure Boot y TPM (Trusted Platform Module), este error puede surgir con más frecuencia en entornos empresariales donde se manejan datos sensibles. Históricamente, aunque presente desde versiones anteriores como Windows 7, su incidencia ha aumentado con la adopción de Windows 10 Y 11 debido a la complejidad creciente de los ecosistemas de aplicaciones y servicios en la nube.

For advanced users, comprender 0x80090005 implica reconocer su rol en el ecosistema de errores HRESULT, que facilita el diagnóstico preciso en entornos de desarrollo. Este error no solo afecta a componentes nativos de Windows, sino también a aplicaciones de terceros que interactúan con APIs como CryptAcquireContext o CryptGenKey, lo que lo convierte en un indicador clave de problemas subyacentes en la gestión de claves criptográficas.

Detalles Técnicos

The error code 0x80090005 forma parte de la estructura HRESULT, un formato estandarizado en Windows para representar resultados de operaciones, definido en la documentación del Windows SDK. Un HRESULT es un valor de 32 bits que se compone de varios elementos: el bit más significativo indica la severidad (0 para éxito, 1 para fallo), los bits 16-26 representan el código de instalación (facility code), y los bits inferiores 16 bits contienen el código de error específico. En el caso de 0x80090005, se descompone de la siguiente manera:

  • Severidad: El bit alto (8 en hexadecimal) indica un error (FAILURE), which means that the operation was not completed successfully.
  • Facility Code: 0x900 (equivalente a 2304 en decimal), que corresponde a FACILITY_SECURITY o más específicamente a subinstalaciones relacionadas con CryptoAPI y SSPI (Security Support Provider Interface). Esto lo vincula directamente a componentes de seguridad como el servicio Cryptographic Services.
  • Código Específico: 0x0005, que se traduce en NTE_BAD_KEYSET, un error definido en el archivo winerror.h del SDK de Windows, indicating that the cryptographic keyset is invalid or inaccessible.

Técnicamente, this error occurs when the CryptoAPI APIs, What CryptAcquireContext O CryptGetKeySetParam, attempt to access a key container (keyset) that is corrupt, misconfigured or has insufficient permissions. These APIs are part of the cryptographic service provider (CSP), which in Windows 10 Y 11 can include modules such as CNG (Cryptography Next Generation) or the old RSA-based CSP. For example, in a development context, a developer might encounter this error when invoking functions like:

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

The affected processes include services such as svchost.exe (that hosts CryptSvc), lsass.exe (para autenticación) and applications that rely on certificates, such as Microsoft Store or Windows updates. Dependencias clave incluyen el Registro de Windows (where key settings are stored), the certificate store (Certificate Store) and hardware components like TPM in Windows 11. In production environments, this error can propagate through inter-process dependencies, like when a Windows Update service queries keys to verify integrity.

For a deeper analysis, administrators can use tools like the Windows debugger (WinDbg) to inspect the HRESULT flow, or consult the Microsoft Learn documentation on system errors, where constants such as NTE_BAD_KEYSET (defined as 0x80090005 in winerror.h).

Causas Comunes

The causes of the error 0x80090005 are usually related to issues in cryptographic resource management, and can vary depending on the system configuration. Then, the most frequent causes are detailed, with examples to illustrate real scenarios:

  • Key container corruption: One of the most common causes is corruption in the cryptographic key store, which can occur due to hard drive failures, interruptions during write operations or conflicts with antivirus software. For example, if a user tries to access a certificate in the Certificate Store and the associated keyset is damaged, the error is triggered during the call to CryptAPI.

  • Problemas de permisos y accesos: In configurations Multi -user or domains Active Directory, insufficient permissions in the Registry (for example, in keys under HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography) can cause this error. A typical scenario is when a process does not have the necessary rights (such as SeManageVolumePrivilege) to read or write in the keyset, which is common in environments with strict security policies.

  • Conflicts with software or drivers: Failed Windows updates or the installation of third-party software that modifies cryptographic files (such as TPM drivers or custom CSPs) can cause incompatibilities. For instance, if an antivirus interferes with the CryptSvc service, cryptographic operations fail, generando 0x80090005.

  • Hardware or firmware issues: In Windows 11, where TPM is mandatory for certain functions, a faulty or outdated TPM firmware can result in this error during secure boot or encryption processes BitLocker. Un ejemplo es cuando el sistema no puede acceder al keyset almacenado en TPM debido a un error de hardware.

  • Configuraciones incorrectas en el Registro o políticas de grupo: Modificaciones manuales en el Registro, como alterar valores bajo HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProviders, pueden desestabilizar el CSP, especialmente si se eliminan accidentalmente entradas relacionadas con claves maestras.

  • Actualizaciones pendientes o conflictos de versiones: In Windows 10 Y 11, si hay actualizaciones de seguridad pendientes que afectan a CryptoAPI (como parches KBxxxx), el error puede surgir durante la verificación de firmas. For example, en un sistema con Windows Update deshabilitado, las claves criptográficas pueden volverse obsoletas.

These causes are not mutually exclusive and often combine, requiriendo un diagnóstico exhaustivo para identificar el factor principal.

Pasos de Resolución

The resolution of the error 0x80090005 requires a systematic approach, utilizando herramientas de command line And Registry edits for advanced users. It is crucial to follow these steps carefully, ya que operaciones como editar el Registro pueden provocar inestabilidad si no se realizan correctamente. Siempre realice copias de seguridad y ejecute comandos en un entorno de prueba antes de aplicarlos en producción.

  1. Initial check and diagnosis: Inicie ejecutando el System file checker (SFC) to detect corruption in system files. Open an elevated command prompt and run:

    sfc /scannow

    This will scan and repair protected files. Si se detectan problemas, proceed to DISM para restaurar la imagen del sistema:

    DISM /Online /Cleanup-Image /RestoreHealth
  2. Repair cryptographic services: Restart the Cryptographic Services service via PowerShell or CMD. In PowerShell, use:

    Get-Service -Name CryptSvc | Restart-Service

    For a deeper diagnosis, ejecute certutil to check and repair the certificate store:

    certutil -store

    If corrupted keysets are identified, delete and regenerate with:

    certutil -delstore "My" "NombreDelCertificado"
  3. Registry edits: Access Editor del Registro (regedit.exe) and navigate to HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography. Verifique y corrija permisos en subclaves como "Providers". For example, make sure the user has read/write rights. Riesgo: Any error here could make the system inoperable; use PowerShell scripts to automate, What:

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

    Best practice: Exporte la clave antes de modificar.

  4. Uso de herramientas avanzadas: Si el error persiste, utilice PowerShell scripts para resetear CSPs. Example:

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

    Para problemas de TPM en Windows 11, ejecute:

    tpm.msc

    y reinicie el módulo.

  5. Verificación de hardware y actualizaciones: Actualice el firmware de TPM a través de la herramienta de Microsoft y ejecute Windows Update para instalar parches relevantes. Si el error se debe a drivers, use pnputil para gestionar componentes.

Recuerde documentar cada paso y monitorear logs en Event Viewer para evitar recurrencias.

Related Errors

The error 0x80090005 forma parte de la familia de códigos HRESULT relacionados con criptografía y seguridad, específicamente aquellos con facility code 0x900 (FACILITY_SECURITY). Then, una tabla con errores relacionados y sus conexiones:

Código de Error Description Conexión con 0x80090005
0x80090001 NTE_BAD_UID (Identificador de usuario inválido) Similar, ocurre en accesos a keysets; a menudo precede a 0x80090005 en secuencias de errores criptográficos.
0x80090006 NTE_BAD_SIGNATURE (Firma inválida) Relacionado con verificación de integridad, 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 (Access denied) From the FACILITY_WIN32 family, 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.

Estos errores comparten patrones comunes, como problemas en CryptoAPI, y su diagnóstico conjunto es esencial para resolver problemas sistémicos.

Historical Context

The error 0x80090005 tiene sus raíces en el desarrollo de CryptoAPI en Windows NT y ha evolucionado con las versiones posteriores de Windows. In 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. However, con Windows 10 (introduced in 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.

In Windows 11, Microsoft ha refinado el manejo de errores HRESULT a través de actualizaciones como las de .NET Framework y Windows SDK, introduciendo mejoras en el diagnóstico, como herramientas integradas en PowerShell 7.0+. For example, parches como KB5008212 han abordado vulnerabilidades que podrían generar 0x80090005, especialmente en entornos con TPM 2.0. Históricamente, 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 mejoran 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.

References and Further Reading

Para una exploración más profunda, It is recommended to consult these sources to keep the information up to date.

Subscribe to our Newsletter

We will not send you SPAM mail. We hate it as much as you.