Compartir a través de


Firma de atestación controladores de Windows 10+

En este artículo se describe cómo firmar un controlador mediante la firma de atestación. Para obtener información detallada y requisitos para la firma de atestación, consulta Controladores firmados de atestación de Windows 10.

Importante

A partir del 1 de marzo de 2023, los controladores firmados de atestación destinados a audiencias comerciales ya no se publican en Windows Update. Los controladores firmados de atestación para escenarios de prueba siguen siendo compatibles al seleccionar las opciones CoDev o Test Registry Key /Surface SSRK .

Requisitos previos

  • Lea y comprenda los requisitos de los controladores firmados de atestación de Windows 10.

  • Regístrese para el programa Desarrollador de hardware. Si aún no está registrado, siga los pasos descritos en Cómo registrarse para el Programa para desarrolladores de hardware de Microsoft Windows.

  • Debe tener un certificado de firma de código de validación extendida (EV). Compruebe si la organización ya tiene un certificado de firma de código. Si su empresa ya tiene un certificado, tenga el certificado disponible. Si su organización no tiene un certificado, deberá adquirir un certificado EV.

  • Siga el proceso descrito en Descargar kits y herramientas para Windows 10 para descargar e instalar el Kit de controladores de Windows (WDK).

  • (Opcional) Descargue el ejemplo de controlador de eco que se usa en este artículo.

Creación del archivo CAB

En esta sección, recorreremos el proceso de creación de un envío de archivos CAB. Usaremos el ejemplo de controlador de eco para ilustrar el proceso.

Un envío de archivo CAB típico debe contener lo siguiente:

  • El propio controlador, por ejemplo, Echo.sys

  • Archivo INF del controlador que usa el panel para facilitar el proceso de firma.

  • Archivo de símbolos que se usa para la información de depuración. Por ejemplo, Echo.pdb. El archivo .pdb es necesario para las herramientas automatizadas de análisis de bloqueos de Microsoft.

  • Los archivos .CAT de catálogo son necesarios y se usan solo para la comprobación de la empresa. Microsoft vuelve a generar archivos de catálogo y reemplaza los archivos de catálogo que se enviaron.

Nota:

Cada carpeta de controladores del archivo CAB debe admitir el mismo conjunto de arquitecturas. Por ejemplo, deben admitir x86, x64 o todos deben admitir x86 y x64.

No use rutas de acceso de recurso compartido de archivos UNC al hacer referencia a las ubicaciones del controlador (\\\server\share). Debe usar una letra de unidad asignada para que el CAB sea válido.

Para crear el archivo CAB:

  1. Recopile los archivos binarios que se van a iniciar sesión en un único directorio. En este ejemplo, usaremos C:\\Echo.

  2. Abra una ventana de símbolo del sistema como Administrador.

  3. Escriba MakeCab /? para ver las opciones MakeCab:

    C:\Echo> MakeCab /?
    Cabinet Maker - Lossless Data Compression Tool
    
    MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
    MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
    
    source         File to compress.
    destination    File name to give compressed file.  If omitted, the
                   last character of the source file name is replaced
                   with an underscore (_) and used as the destination.
    /F directives  A file with MakeCAB directives (may be repeated). Refer to
                   Microsoft Cabinet SDK for information on directive_file.
    /D var=value   Defines variable with specified value.
    /L dir         Location to place destination (default is current directory).
    /V[n]          Verbosity level (1..3).
    
  4. Prepare un archivo de entrada DDF de archivo cab. Para nuestro controlador Echo, podría tener un aspecto similar al siguiente.

    ;*** Echo.ddf example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ; Specify the subdirectory for the files.  
    ; Your cab file should not have files at the root level,
    ; and each driver package must be in a separate subfolder.
    .Set DestinationDir=Echo
    ;Specify files to be included in cab file
    C:\Echo\Echo.Inf
    C:\Echo\Echo.Sys
    
  5. Escriba lo siguiente para crear el archivo CAB.

    C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
    

    La salida de MakeCab debe mostrar el número de archivos en el archivo CAB creado. En este caso, debe haber dos archivos.

    C:\Echo> MakeCab /f Echo.ddf
    Cabinet Maker - Lossless Data Compression Tool
    
    17,682 bytes in 2 files
    Total files:              2
    Bytes before:        17,682
    Bytes after:          7,374
    After/Before:            41.70% compression
    Time:                     0.20 seconds ( 0 hr  0 min  0.20 sec)
    Throughput:              86.77 Kb/second
    
  6. Busque el archivo CAB en el Disk1 subdirectorio. Puede seleccionar el archivo CAB en Explorador de archivos para comprobar que contiene los archivos esperados.

Firmar el archivo CAB con el certificado EV

  1. Use el proceso recomendado por el proveedor de certificados EV para firmar el archivo CAB con el certificado EV. Por ejemplo, para firmar el archivo CAB con un certificado SHA256, algoritmo de síntesis o marca de tiempo, escriba el siguiente comando:

    C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
    

    Importante

    Recuerde usar los procedimientos recomendados del sector para administrar la seguridad del proceso de firma de código EV.

Enviar el archivo cab firmado de EV mediante el Centro de partners

  1. Vaya al panel de hardware del Centro de partners e inicie sesión con sus credenciales.

  2. Seleccione Submit new hardware (Enviar nuevo hardware).

    Captura de pantalla de la lista de hardware enviado.

  3. En la sección Paquetes y propiedades de firma, escriba un nombre de producto para el envío de controladores. Este nombre se puede usar para buscar y organizar los envíos de controladores.

    Nota:

    Si comparte su controlador con otra empresa, verá este nombre.

  4. Deje las dos opciones de firma de prueba desactivadas.

  5. En Firmas solicitadas, seleccione las firmas que desea incluir en el paquete de controladores.

    Captura de pantalla que muestra las opciones para enviar el controlador de eco para la firma.

  6. Desplázte hacia abajo por la página y seleccione Enviar.

  7. Una vez completado el proceso de firma, descargue el controlador firmado desde el panel de hardware.

Validación de que el controlador se firmó correctamente

Complete los pasos siguientes para asegurarse de que el controlador se firmó correctamente.

  1. Después de descargar el archivo de envío, extraiga el archivo de controlador.

  2. Abra una ventana de símbolo del sistema como Administrador.

  3. Escriba el siguiente comando para comprobar que el controlador se firmó según lo previsto.

    C:\Echo> SignTool verify Echo.Sys
    
  4. Para enumerar información adicional y hacer que signtool compruebe todas las firmas de un archivo con varias firmas, escriba el siguiente comando:

     C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
    
  5. Para confirmar que las EKU del controlador completen los pasos siguientes.

    1. Abra el Explorador de Windows y busque el archivo binario. Seleccione y mantenga presionado (o haga clic con el botón derecho) en el archivo y seleccione Propiedades.

    2. En la pestaña Firmas digitales , seleccione el elemento enumerado en la lista Firma.

    3. Seleccione Detalles y, después, Ver certificado.

    4. En la pestaña Detalles , seleccione Uso mejorado de claves.

Cuando el panel renuncia al controlador, se usa el siguiente proceso.

  • Anexa una firma insertada de Microsoft SHA2.
  • Si los archivos binarios del controlador están incrustados por el cliente con sus propios certificados, esas firmas no se sobrescribirán.
  • Crea y firma un nuevo archivo de catálogo con un certificado SHA2 de Microsoft. Este catálogo reemplaza cualquier catálogo existente proporcionado por el cliente.

Prueba del controlador en Windows 10

Siga estas instrucciones para instalar el controlador de ejemplo.

  1. Abra una ventana de símbolo del sistema como Administrador. Vaya a la carpeta del paquete de controladores y escriba el siguiente comando.

    C:\Echo> devcon install echo.inf root\ECHO
    
  2. Confirme que el proceso de instalación del controlador no muestra "Windows no puede comprobar el publicador de este software de controlador". Cuadro de diálogo Seguridad de Windows.

Creación de un envío con varios controladores

Para enviar varios controladores al mismo tiempo:

  1. Cree un subdirectorio para cada controlador, como se muestra a continuación.

    Diagrama que muestra una estructura de directorios de firma de controladores de ejemplo.

  2. Prepare un archivo de entrada DDF de archivo CAB que haga referencia a los subdirectorios. Es posible que tenga un aspecto similar a este:

    ;*** Submission.ddf multiple driver example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ;Specify files to be included in cab file
    ; First Driver
    .Set DestinationDir=DriverPackage1
    C:\DriverFiles\DriverPackage1\Driver1.sys
    C:\DriverFiles\DriverPackage1\Driver1.inf
    ; Second driver
    .Set DestinationDir=DriverPackage2
    C:\DriverFiles\DriverPackage2\Driver2.sys
    C:\DriverFiles\DriverPackage2\Driver2.inf