Compartir a través de


Release-Signing un controlador binario a través de una firma incrustada

Un archivo de catálogo firmado es todo lo que debe tener para instalar y cargar correctamente la mayoría de los paquetes de controladores. Sin embargo, la firma insertada de algunos archivos binarios en el paquete de controladores también puede ser necesaria para algunos escenarios. La firma insertada hace referencia a agregar una firma digital al propio archivo de imagen binaria del controlador, en lugar de confiar en la firma digital en un archivo de catálogo. Como resultado, la imagen binaria del controlador se modifica cuando el controlador está firmado.

La firma insertada de archivos binarios en modo kernel (por ejemplo, controladores y archivos de .dll asociados) son necesarios siempre que:

  • El archivo binario del controlador es un controlador de arranque. En versiones de 64 bits de Windows Vista y versiones posteriores de Windows, los requisitos de firma de código en modo kernel establecen que un controlador de inicio de arranque debe tener una firma insertada. Esto es necesario independientemente de si el paquete de controladores del controlador tiene un archivo de catálogo firmado digitalmente.

  • El archivo binario del controlador se instala a través de un medio que no implica un paquete de controladores y un archivo de catálogo.

Al igual que con los archivos de catálogo, la herramienta SignTool se usa para insertar una firma digital en archivos binarios en modo kernel mediante un certificado de prueba. En la siguiente línea de comandos se muestra cómo ejecutar SignTool para hacer lo siguiente:

  • Firma de prueba la versión de 64 bits del archivo binario del ejemplo Toastpkg, toaster.sys. En el directorio de instalación de WDK, este archivo se encuentra en el directorio src\general\toaster\toastpkg\toastcd\amd64 .

  • Use un certificado de publicador de software (SPC) emitido por una entidad de certificación comercial (CA).

  • Use un certificado cruzado compatible para SPC.

  • Asigne una marca de tiempo a la firma digital a través de una entidad de marca de tiempo (TSA).

Para probar el archivo toaster.sys , ejecute la siguiente línea de comandos:

Signtool sign /v /fd sha256 /ac MSCV-VSClass3.cer /s MyPersonalStore /n contoso.com /t http://timestamp.digicert.com amd64\toaster.sys

Donde:

  • El comando sign configura SignTool para firmar el archivo binario en modo kernel especificado, amd64\toaster.sys.

  • La opción /v habilita operaciones detalladas, en las que SignTool muestra mensajes de advertencia y ejecución correctos.

  • La opción /fd especifica el algoritmo de resumen de archivo que se va a usar para crear firmas de archivo. El valor predeterminado es SHA1.

  • La opción /ac especifica el nombre del archivo que contiene el certificado cruzado (MSCV-VSClass3.cer) obtenido de la ENTIDAD de certificación. Use el nombre de ruta de acceso completa si el certificado cruzado no está en el directorio actual.

  • La opción /s especifica el nombre del almacén de certificados personal (MyPersonalStore) que contiene el SPC.

  • La opción /n especifica el nombre del certificado (Contoso.com) instalado en el almacén de certificados especificado.

  • La opción /t especifica la dirección URL del TSA (http://timestamp.digicert.com) que marcará la marca de tiempo de la firma digital.

Importante

La inclusión de una marca de tiempo proporciona la información necesaria para la revocación de claves en caso de que la clave privada de firma de código del firmante esté en peligro.

  • amd64\toaster.sys especifica el nombre del archivo binario en modo kernel que se firmará.

Para obtener más información sobre SignTool y sus argumentos de línea de comandos, vea SignTool.

Para obtener más información sobre la firma de versión de un controlador a través de una firma insertada, consulte Paquetes de controladores de firma de versión y Firma de versión de un archivo de controlador.