Compartir a través de


Solución de problemas de instalación de firma de controladores

La instalación de un controlador firmado por la versión es la misma que se describe en Instalación, desinstalación y carga del paquete de controladores Test-Signed en firma de prueba, excepto para dos pasos adicionales necesarios al instalar con cualquiera de los métodos descritos allí.

Si el firmante del paquete de controladores aún no se ha configurado en el sistema para que sea de confianza, es posible que vea el siguiente cuadro de diálogo de Seguridad de Windows.

captura de pantalla que muestra el cuadro de diálogo de seguridad de Windows.

Al activar la casilla no se volverá a mostrar este cuadro de diálogo en el equipo si el controlador se instala de nuevo o si el controlador se quita por cualquier motivo.

Nota El sistema comprueba que la información del publicador es precisa en función del SPC que se usó para firmar el catálogo. Si se desconoce el nivel de confianza del publicador (como será true para Contoso.com), el sistema muestra el cuadro de diálogo. Para que continúe la instalación, el usuario debe seleccionar Instalar. Para más información sobre la instalación de controladores y confianza, consulte Procedimientos recomendados de firma de código.

Un controlador sin firmar mostrará el siguiente cuadro de diálogo, que permite a un usuario instalar un controlador sin firmar (es posible que esto no funcione en la versión x64 de Windows).

captura de pantalla que muestra el cuadro de diálogo de advertencia de seguridad de Windows.

Compruebe que el controlador de Release-Signed funciona correctamente

Use Administrador de dispositivos para ver las propiedades del controlador (descritas anteriormente para el controlador firmado por pruebas). A continuación se muestra la captura de pantalla para mostrar si el controlador está funcionando.

captura de pantalla que muestra el dispositivo del tostador en el administrador de dispositivos.

Solución de problemas de controladores de Release-Signed

A continuación se muestran varias formas comunes de solucionar problemas con la carga de controladores firmados o de prueba firmados:

  • Use Administrador de dispositivos para comprobar si el controlador está cargado y firmado, como se describe en Comprobación de que el controlador de Test-Signed funciona correctamente de la firma de prueba.
  • Abra el archivo setupapi.dev.log creado en el directorio %windir%\inf después de instalar el controlador. Consulte la sección sobre cómo establecer la entrada del Registro y cambiar el nombre del archivo setupapi.dev.log antes de instalar el controlador.
  • Compruebe el registro de auditoría de seguridad de Windows y los registros de eventos de integridad de código.

Análisis del archivo Setupapi.dev.log

Como se explicó antes, cualquier información de instalación del controlador se registrará (anexada) al archivo setupapi.dev.log en el directorio %windir%\inf. Al probar la instalación del paquete de controladores, si se cambia el nombre del archivo antes de instalar un controlador, se generará un nuevo archivo de registro. Un nuevo archivo de registro será más fácil buscar registros importantes desde una nueva instalación de controlador. Sin embargo, no se debe cambiar el nombre del archivo de registro como parte de un escenario de producción. El archivo de registro se puede abrir en cualquier software de edición de texto.

La mayoría de las columnas izquierdas pueden tener una sola signo de exclamación "!" o varias signos de exclamación "!!!". El signo de exclamación único es un mensaje de advertencia, pero el signo de exclamación triple indica un error.

Verá el siguiente signo de exclamación único al instalar una versión del paquete de controladores firmada con un certificado SPC proporcionado por un proveedor de CA. Estas son advertencias que el archivo cat aún no se ha comprobado.

!    sig:                Verifying file against specific (valid) catalog failed! (0x800b0109)
!    sig:                Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
     sig:                Success: File is signed in Authenticode(tm) catalog.
     sig:                Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

Si selecciona el botón "Instalar" en el cuadro de diálogo que se muestra cuando el firmante aún no es de confianza en esta máquina, verá el registro siguiente, que en la mayoría de los casos significa que el controlador se instalará y cargará correctamente. El Administrador de dispositivos no notificará ningún error ni una marca de exclamación amarilla para el controlador.

!    sto:           Driver package signer is unknown but user trusts the signer.

Si también ve el siguiente registro de errores en el archivo de registro, es posible que el controlador no se cargue.

El archivo setupapi.dev.log también ha notificado el siguiente error:

!!!  dvi:                          Device not started: Device has problem: 0x34: CM_PROB_UNSIGNED_DRIVER.

Tenga en cuenta que 0x34 es el código 52.

Para solucionar problemas, revise el archivo de registro y busque signos de exclamación junto a un archivo binario del controlador. Ejecute el signtool verify comando en el archivo cat y otros archivos binarios firmados incrustados.

Normalmente, la información del archivo de registro es suficiente para resolver el problema. Si las comprobaciones anteriores no encuentran la causa principal, compruebe el registro de auditoría de seguridad de Windows y los registros de eventos de integridad de código, que se describen en la sección siguiente.

Uso del registro de auditoría de Seguridad de Windows

Si el controlador no se pudo cargar porque no tiene una firma válida, se registrará como un evento de error de auditoría. Los eventos de error de auditoría se registran en el registro de seguridad de Windows, lo que indica que la integridad del código no pudo comprobar el hash de imagen del archivo de controlador. Las entradas de registro incluyen el nombre de ruta de acceso completa del archivo de controlador. Los eventos de auditoría del registro de seguridad solo se generan si la directiva de auditoría de seguridad local habilita el registro de eventos de error del sistema.

Nota El registro de auditoría de seguridad debe estar habilitado explícitamente. Para obtener más información, vea apéndice 3: Habilitar el registro de eventos de integridad de código y la auditoría del sistema.

Para examinar el registro de seguridad:

  1. Abra una ventana de comandos con privilegios elevados.
  2. Para iniciar Windows Visor de eventos, ejecute Eventvwr.exe. Visor de eventos también se puede iniciar desde la aplicación de administración de equipos de Panel de control.
  3. Abra el registro de auditoría de seguridad de Windows.
  4. Compruebe el registro de eventos de integridad del sistema con un identificador de evento de 5038.
  5. Seleccione y mantenga presionada (o haga clic con el botón derecho) en la entrada de registro y seleccione Propiedades del evento para mostrar su cuadro de diálogo Propiedades de evento, que proporciona una descripción detallada del evento.

La captura de pantalla siguiente muestra el cuadro de diálogo Propiedades del evento para un evento de registro de auditoría de seguridad causado por un archivo de Toaster.sys sin firmar.

captura de pantalla que muestra el cuadro de diálogo de propiedades del evento.

Uso del registro de eventos operativos de eventos de integridad de código

Si el controlador no se pudo cargar porque no se firmó o generó un error de verificación de imagen, La integridad de código registra los eventos en el registro de eventos operativos de integridad de código. Los eventos operativos de integridad de código siempre están habilitados.

Los eventos de integridad de código se pueden ver con Visor de eventos.

Para examinar el registro operativo de integridad de código

  1. Abra una ventana de comandos con privilegios elevados.
  2. Para iniciar Windows Visor de eventos, ejecute Eventvwr.exe. Visor de eventos también se puede iniciar desde la aplicación Administración de equipos Panel de control.
  3. Abra el registro de integridad de código de Windows.
  4. Seleccione y mantenga presionada (o haga clic con el botón derecho) en una entrada de registro y seleccione Propiedades del evento para mostrar su cuadro de diálogo Propiedades de evento, que proporciona una descripción detallada del evento.

La captura de pantalla siguiente muestra el cuadro de diálogo Propiedades del evento para un evento de registro operativo de integridad de código causado por un archivo de Toaster.sys sin firmar.

captura de pantalla que muestra el visor de eventos.

Uso de los eventos informativos en el registro detallado de integridad de código

La vista detallada del registro de información de integridad de código realiza un seguimiento de los eventos de todas las comprobaciones de comprobación de imágenes en modo kernel. Estos eventos muestran una comprobación correcta de la imagen de todos los controladores que se cargan en el sistema.

Para habilitar la vista detallada de integridad de código:

  1. Inicie Visor de eventos, como en el ejemplo anterior.
  2. Selet el nodo Integridad de código para darle el foco.
  3. Seleccione y mantenga presionado (o haga clic con el botón derecho) Integridad de código y seleccione el elemento Ver en el menú contextual.
  4. Seleccione Mostrar registros analíticos y de depuración. Esto crea un subárbol con dos nodos adicionales: Operativo y Detallado.
  5. Seleccione y mantenga presionado (o haga clic con el botón derecho) en el nodo Detallado y seleccione Las propiedades en el menú contextual.
  6. En la pestaña General, seleccione Habilitar registro para habilitar el modo de registro detallado.
  7. Reinicie el sistema para volver a cargar todos los archivos binarios en modo kernel.
  8. Después de reiniciar, abra el complemento Administración de equipos MMC y vea el registro de eventos detallado de integridad de código.

Algunos problemas de firma de controladores conocidos adicionales se describen en el Apéndice 4: Problemas de firma de controladores.