Cómo firmar un controlador de dispositivo no firmado en Windows

Cómo firmar cualquier controlador sin firmar en Windows x64 (Windows 11, 10, 8.1, 7)

Trabajar con controladores sin firmar en Windows de 64 bits puede ser un verdadero fastidio. Todas las versiones modernas de Windows los bloquean por defecto, ya que representan un riesgo para la seguridad. Si tiene hardware antiguo o un controlador personalizado sin firmar, quizá se pregunte cómo solucionar este problema. Firmar el controlador usted mismo es una buena forma de evitar esos molestos errores, aunque es un proceso un poco largo. Lo que busca es un paquete de controladores firmado en el que Windows confíe lo suficiente como para instalarlo sin generar errores, especialmente al usar herramientas como `pnputil`.No siempre es sencillo, pero sin duda es posible si sigue estos pasos. Prepárese para generar su propio certificado, crear un archivo de catálogo y firmar los archivos con herramientas como `signtool`.No es tan complicado como parece, pero prepárese para dedicarle algo de tiempo, especialmente al trabajar con certificados y archivos de catálogo.—

Cómo solucionar la instalación de un controlador sin firmar en Windows: paso a paso

Crear un certificado de conductor autofirmado

Esto es fundamental. Windows, por supuesto, no confía automáticamente en tu certificado autofirmado, así que tendrás que crear uno. Esto ayuda a Windows a considerar tu controlador como legítimo para su instalación. Por qué: Genera una CA raíz de confianza que puedes usar para firmar tu controlador, lo que reduce la resistencia de Windows a la instalación. Cuándo: Cuando intentas instalar un controlador sin firmar y recibes errores como «El INF de terceros no contiene información de firma digital».Resultado esperado: Un nuevo certificado de firma de código autofirmado añadido a tu almacén de confianza.Cómo: – Primero, cree un directorio para sus certificados, por ejemplo, `C:\DriverCert` – Abra PowerShell como administrador y ejecute: powershell $todaydate = Get-Date $add3year = $todaydate. AddYears(3) $cert = New-SelfSignedCertificate -Subject «WOSHUB» -Type CodeSigningCert -CertStoreLocation cert:\LocalMachine\My -NotAfter $add3year – Exporte este certificado a un archivo PFX con protección de contraseña (por ejemplo, `P@ss0wrd`): powershell $CertPassword = ConvertTo-SecureString -String «P@ss0wrd» -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath C:\DriverCert\myDrivers.pfx -Password $CertPassword – También necesitará el archivo `.cer` para Más tarde: powershell $certFile = Export-Certificate -Cert $cert -FilePath C:\DriverCert\drivecert.cer – Ahora, importe el certificado a los almacenes de confianza de Windows (esto hace que Windows lo acepte): powershell Import-Certificate -CertStoreLocation Cert:\LocalMachine\AuthRoot -FilePath C:\DriverCert\drivecert.cer Import-Certificate -CertStoreLocation Cert:\LocalMachine\TrustedPublisher -FilePath C:\DriverCert\drivecert.cer Nota rápida: en algunas configuraciones, es posible que deba agregar el certificado manualmente mediante `certlm.msc` si no se registra correctamente. Consejo práctico: en algunas configuraciones, Windows no confía en el certificado de inmediato, por lo que es posible que deba reiniciar o volver a iniciar sesión.—

Cree el archivo de catálogo (.CAT) para su controlador

Ahora, Windows busca un archivo de catálogo que codifica todos los archivos de sus controladores y confirma que no haya ninguna manipulación. Por qué es útil: Un archivo de catálogo asocia los archivos de sus controladores con su firma, lo que facilita la instalación de Windows. Cuándo se aplica: Cuando los archivos de controlador (.sys, .inf) no están firmados o si desea que la instalación del controlador sea fluida. Resultado esperado: Un archivo `.cat` generado sin errores.Cómo: – Copie los archivos de sus controladores (por ejemplo, `xg20gr.sys`, `xg20gr.inf`) en una carpeta, por ejemplo, `C:\DriverCert\xg20`.cmd md C:\DriverCert\xg20 xcopy c:\tools\drv1\*.* C:\DriverCert\xg20 /i /c /k /e /r /y – Use la herramienta `inf2cat.exe` de WDK: cmd «C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x86\inf2cat.exe» /driver:»C:\DriverCert\xg20″ /os:10_X64 /verbose > *Nota:* Si `inf2cat` arroja errores sobre `DriverVer`, simplemente edite su archivo `.inf`: busque la sección `[Version]` y configure una fecha reciente como `DriverVer=05/01/2009, 9.9.9.9`, que a veces hace que Windows piense que su controlador es compatible.—

Firme sus archivos de conductor con el certificado

Aquí es donde su controlador obtiene una firma correcta. Por qué es útil: Firma digitalmente todos los archivos de su controlador y el catálogo, lo que garantiza que Windows cumpla con los requisitos de firma de controladores. Cuándo se aplica: Cuando planea instalar controladores sin firmar en un sistema Windows seguro y sin errores. Resultado esperado: Un catálogo firmado (.cat) con las firmas de sus controladores.Cómo: – Cambie al directorio con `signtool.exe`, que normalmente se encuentra en su WDK: cmd cd «C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64» – Firme el archivo del catálogo: cmd signtool sign /f C:\DriverCert\myDrivers.pfx /p P@ss0wrd /tr http://timestamp.digicert.com /td SHA256 /v C:\DriverCert\xg20\xg20gr.cat *Consejo profesional:* Si recibe errores sobre algoritmos de resumen, agregue `/fd SHA256`.- Confirme la firma: cmd signtool verify /v /pa C:\DriverCert\xg20\xg20gr.cat Si todo salió bien, verá un mensaje confirmando el éxito.—

Instalar el controlador firmado en Windows

Ya casi está: es hora de instalar el controlador recién firmado. Por qué es útil: Con la firma correcta, Windows considera el controlador como confiable y no lo bloquea durante la instalación. Cuándo se aplica: Después de firmar el controlador y ayudar a Windows a verlo como legítimo. Resultado esperado: El controlador finalmente se instala correctamente sin advertencias de seguridad.Cómo: – Ejecute el comando `pnputil` como administrador: cmd pnputil /add-driver C:\DriverCert\xg20\xg20gr.inf /install – O bien, use el comando `pnputil` en PowerShell o el Símbolo del sistema con derechos de administrador: cmd pnputil -i -a C:\DriverCert\xg20\xg20gr.inf – Durante la instalación, Windows mostrará el mensaje «¿Desea instalar este software de dispositivo?»; haga clic en Instalar.- Si la instalación falla, consulte `C:\Windows\inf\setupapi.dev.log` para obtener pistas. Por lo general, errores como «falló la validación de la firma» significan que el certificado del controlador no es confiable. Asegúrese de que su certificado se importe en Trusted Root y Trusted Publishers.—

Nota especial para controladores de kernel y arranque seguro

Si trabaja con controladores en modo kernel y el Arranque seguro está habilitado, la situación se complica. Los controladores de kernel firmados con un certificado propio normalmente no se cargarán con el Arranque seguro activado a menos que estén correctamente firmados por Microsoft o certificados por WHQL. Para solucionar esto: – Deberá desactivar el Arranque seguro temporalmente mediante la BIOS, o – Firme el controlador de kernel con un certificado de firma válido de Microsoft (que implica el Kit de Laboratorio de Hardware de Windows y el proceso WHQL).Para los controladores en modo usuario, esto no suele ser un gran problema: pueden ejecutarse incluso con el Arranque seguro activado, siempre que estén correctamente firmados o el sistema esté configurado en modo de prueba (bcdedit /set testsigning on).—

Resumen

  • Cree un certificado de firma de código autofirmado e impórtelo en tiendas de confianza.
  • Genere un archivo de catálogo (.cat) para sus archivos de controlador.
  • Firme el archivo de catálogo (y los archivos del controlador si es necesario) con `signtool`, incluida una marca de tiempo.
  • Instale el controlador usando `pnputil`, ahora que las firmas son válidas.

Resumen

Este proceso no es el más rápido, pero es mejor que tener que luchar contra Windows cada vez que intentas instalar controladores sin firmar. Una vez firmados los controladores, las futuras instalaciones deberían ser más fluidas, especialmente si trabajas con hardware personalizado o desarrollas controladores de prueba. Ojalá que esto ayude y que por fin ese hardware antiguo funcione sin complicaciones.