Share via


Firmas digitales para módulos kernel en sistemas que ejecutan Windows Vista

 

Microsoft Corporation

Actualizado junio de 2007

Se aplica a:
   Windows Vista
   Windows Server 2008

Resumen: Para Microsoft Windows Vista y versiones posteriores de la familia windows de sistemas operativos, el software en modo kernel debe tener una firma digital para cargar en sistemas informáticos basados en x64. Obtenga información sobre cómo administrar el proceso de firma para el software en modo kernel para Windows Vista. (22 páginas impresas).

La versión actual de este documento se mantiene en la Web en: https://www.microsoft.com/whdc/system/platform/64bit/kmsigning.mspx.

Contenido

Introducción
   Firmas digitales como procedimiento recomendado
   Opciones de firma de código en modo kernel
Proceso de firma de código en modo kernel
   Cómo obtener un certificado de publicación de software (SPC)
   Crear un archivo .cat firmado
   Agregar una firma incrustada a un archivo de imagen de controlador
Cómo deshabilitar la aplicación de firmas durante el desarrollo
Uso de la firma de pruebas
   Habilitación de la solución de problemas de firma de pruebas
   Detección de errores de carga de controladores
   Habilitación de eventos de registro del sistema de diagnóstico de integridad de código
   Opciones de depuración de comprobación de controladores
Recursos

Introducción

Tanto para los usuarios de consumidores como para empresas de Windows en todo el mundo, la protección de los datos personales y corporativos sigue siendo una preocupación principal. Microsoft se compromete a implementar nuevas formas de ayudar a restringir la propagación de software malintencionado. Las firmas digitales para el software en modo kernel son una manera importante de garantizar la seguridad en los sistemas informáticos.

Las firmas digitales permiten al administrador o al usuario final que instala software basado en Windows saber si un editor legítimo ha proporcionado el paquete de software. Cuando los usuarios eligen enviar Informe de errores de Windows datos a Microsoft después de producirse un error u otro error, Microsoft puede analizar los datos para saber qué software de los editores se estaba ejecutando en el sistema en el momento del error. Después, los editores de software pueden usar la información proporcionada por Microsoft para encontrar y corregir problemas en su software.

Windows Vista se basa en firmas digitales en código de modo kernel para aumentar la seguridad y estabilidad de la plataforma Microsoft Windows y habilitar nuevas experiencias de cliente con contenido Premium de próxima generación:

  • Los controladores deben estar firmados para los dispositivos que transmiten contenido protegido. Esto incluye controladores de audio que usan audio en modo de usuario protegido (PUMA) y controladores de audio protegidos (PAP) y controladores de dispositivos de vídeo que controlan los comandos protegidos de protección de salida de ruta de acceso de vídeo (PVP-OPM).
  • El software en modo kernel sin firmar no se cargará y no se ejecutará en sistemas basados en x64.

Nota: Incluso los usuarios con privilegios de administrador no pueden cargar código en modo kernel sin firmar en sistemas basados en x64. Esto se aplica a cualquier módulo de software que se cargue en modo kernel, incluidos los controladores de dispositivo, los controladores de filtro y los servicios de kernel.

El ámbito de la nueva directiva de firma de código de modo kernel está lejos de alcanzarse. Para los desarrolladores que publican software en modo kernel, esta directiva tiene los siguientes efectos:

  • Para cualquier componente en modo kernel que aún no esté firmado, los publicadores deben obtener un certificado de publicación de software (SPC) y usar el SPC para firmar todo el software en modo kernel de 64 bits que se ejecutará en sistemas informáticos basados en x64 que ejecuten Windows Vista. Esto incluye el software de servicios en modo kernel.

  • Los publicadores que proporcionan el controlador de dispositivo de 64 bits u otro software en modo kernel que ya está firmado a través del Programa de logotipos de Windows tendrán sus catálogos de controladores firmados con una firma de Windows Hardware Quality Labs (WHQL). Para probar completamente el paquete de controladores antes del envío a WHQL, firme el catálogo de controladores mediante un SPC.

  • En el caso especial de los controladores de arranque, también es necesario usar un SPC para firmar el archivo de imagen binaria del controlador para obtener un rendimiento óptimo del arranque del sistema.

    Nota Se dice que un controlador se inicia si el cargador del sistema operativo Windows Vista lo carga. Los controladores de arranque se pueden identificar de la siguiente manera: el controlador INF especifica el tipo de inicio como "Start=0" o un servicio de kernel se configura con un ServiceType como controlador de kernel o controlador del sistema de archivos e StartMode para que sea "boot".

La directiva de firma de código del modo kernel obligatoria se aplica a todo el software en modo kernel en sistemas basados en x64 que ejecutan Windows Vista. Sin embargo, Microsoft anima a los editores a firmar digitalmente todo el software, incluidos los controladores de dispositivos para plataformas de 32 y 64 bits. Windows Vista realiza la verificación de firma en modo kernel en sistemas x86 para admitir contenido multimedia protegido. Sin embargo, las firmas del controlador en modo kernel no son obligatorias para los sistemas de 32 bits.

En este artículo se describe cómo administrar el proceso de firma para el código en modo kernel para Windows Vista, incluido cómo obtener un certificado de publicación de software (SPC), directrices para proteger las claves y cómo firmar un paquete de controladores mediante las herramientas proporcionadas en el Kit de controladores de Windows (WDK).

Firmas digitales como procedimiento recomendado

Desde el lanzamiento de Windows 98, Microsoft ha promovido la firma de controladores para las clases de dispositivo designadas como un mecanismo para avanzar en la confiabilidad del controlador, proporcionar una mejor experiencia de usuario, reducir los costos de soporte técnico de los proveedores de software y hardware, y reducir el costo total de propiedad para los clientes.

En el caso de los controladores de dispositivos y otro software en modo kernel, los controladores firmados como parte del programa logotipo de Windows aumentan la confianza del usuario final en la calidad del software y mejoran la experiencia del usuario, ya que un logotipo de Windows que pertenece a un controlador indica que el controlador se ha probado y la firma digital que acompaña al logotipo de Windows confirma que no se ha modificado desde las pruebas.

Para la mayoría de los paquetes de controladores en modo kernel, se proporciona una firma digital en un archivo de catálogo firmado (.cat). Windows Hardware Quality Labs (WHQL) proporciona un archivo .cat firmado por Microsoft para distribuir con un paquete de controladores que cumpla los requisitos del programa logotipo de Windows.

El proceso de creación de software en modo kernel firmado consta de dos actividades distintas pero relacionadas. Esto se puede hacer en paralelo porque el software normalmente no tiene que firmarse hasta relativamente tarde en el proceso de desarrollo.

  • Administración del proceso de firma. Normalmente, esto se controla mediante la administración de programas y los servicios de lanzamiento de software de los editores, e incluye:

    • Selección de la opción de firma adecuada.
    • Obtención de los certificados necesarios.
    • Administración de las claves de firma digital o de firma de código.

    Nota Para firmar digitalmente archivos binarios o catálogos de imágenes, un editor de software debe tener una clave de firma de código certificada, lo que significa que una entidad de certificación ha establecido suficientemente la identidad del publicador.

  • Implementar el controlador que se va a firmar. Normalmente, el equipo de desarrollo del publicador controla esto e incluye:

    • Implementar el propio controlador.
    • Creación de un paquete de controladores firmado para pruebas internas o versión.

Estos procesos se documentan para versiones anteriores de Windows en WDK y platform SDK. En este artículo se describen opciones adicionales relacionadas con la firma de código en modo kernel para Windows Vista.

Opciones de firma de código en modo kernel

Hay varias opciones disponibles para trabajar con los requisitos de firma de código en modo kernel (KMCS) en Windows Vista. Los archivos de controlador de firma no son necesarios para que Windows Vista cargue controladores al desarrollar código en modo kernel. En su lugar, los desarrolladores pueden usar uno de los mecanismos para deshabilitar temporalmente las comprobaciones en tiempo de carga por parte del kernel en sistemas de pruebas no automatizados y desarrollo. Sin embargo, es necesario probar la firma de paquetes de controladores para automatizar la instalación de un paquete de controladores en sistemas de prueba sin tener elementos emergentes de instalación de controladores. La infraestructura de administración de controladores (DMI) comprueba la firma del paquete de controladores durante la instalación y advierte a los usuarios de controladores sin firmar.

En la tabla siguiente se comparan las opciones de los módulos kernel de firma digital compatibles con Windows Vista.

Opciones para firmar módulos de kernel

Opciones de firma Funcionalidad comprobada para cumplir los requisitos del logotipo Identidad comprobada Uso previsto
Programa logotipo de Windows Release
Firma de código en modo kernel mediante un SPC No Release
Programa WHQL Test Signature No Prueba
Firma de prueba de KMCS No No Prueba

El programa Logotipo de Windows comprueba la funcionalidad correcta del controlador y garantiza una alta calidad y confiabilidad. Los paquetes de controladores enviados al programa logotipo de Windows están firmados digitalmente por Microsoft. El programa Logotipo de Windows acepta paquetes de dispositivos que se instalan a través del archivo INF para el hardware que cumple los requisitos del logotipo de Windows. El publicador de controladores envía el paquete de controladores después de completar las pruebas de comprobación de controladores para el Programa de logotipos de Windows. Los controladores que califican para el logotipo reciben un archivo .cat firmado por Microsoft. Para obtener información sobre el Programa de logotipos de Windows, consulte la sección Recursos al final de este documento.

Los desarrolladores pueden firmar el archivo de imagen de controlador o el catálogo de controladores con un SPC para realizar pruebas antes de enviar a WHQL con el fin de comprobar que el controlador se carga y funciona correctamente.

La firma de código en modo kernel mediante un SPC proporciona la identificación del publicador de un módulo de kernel que se carga en Windows Vista. No proporciona ningún nivel de certificación de funcionalidad ni confiabilidad del módulo kernel. Para los controladores que no califican para el logotipo de Windows o el logotipo de Windows no es uno de los requisitos del producto, el publicador puede crear un archivo .cat para el paquete de controladores y firmarlo con el SPC del publicador.

Importante La firma de código en modo kernel no reemplaza el programa WHQL. Microsoft anima a los editores a usar el programa logotipo de Windows para garantizar la calidad del controlador. La firma de código en modo kernel no requiere que el editor de software pase los requisitos de prueba del Programa de logotipos de Windows asociados con WHQL.

Un archivo .cat firmado es todo lo necesario para que la mayoría de los paquetes de controladores se instalen y carguen correctamente en sistemas x64, excepto los paquetes que contienen un controlador cargado por el cargador de arranque de Windows Vista. Un paquete de controladores que contenga un controlador de dispositivo cargado por el cargador de arranque de Windows Vista debe iniciar sesión de dos maneras:

  • El archivo binario del controlador del modo kernel que se carga en tiempo de arranque debe tener una firma insertada en el binario firmado con un SPC. Por motivos de simplicidad, puede ser más fácil insertar la firma de todos los archivos de imagen de controlador del paquete.
  • El paquete de controladores instalado mediante un archivo INF también debe tener un archivo de catálogo firmado, al igual que los paquetes de controladores que no contienen un controlador de inicio de arranque, para la comprobación de firmas durante la instalación.

Los fabricantes deben asegurarse de que los proveedores de hardware adquieran un SPC y firmen los controladores de arranque que se instalarán en los sistemas instalados por el fabricante.

Con fines de prueba durante el ciclo de desarrollo, se recomienda firmar código con un certificado de "prueba" en lugar de firmar con un certificado de versión. Los sistemas de Windows Vista solo reconocen un binario firmado de prueba cuando se habilita una opción de configuración de arranque que permite el uso de certificados de firma de prueba. La firma de prueba no está habilitada de forma predeterminada y la mayoría de los sistemas Windows Vista no confiarán en las firmas de prueba.

El programa WHQL Test Signature también es compatible con la firma de pruebas. Los participantes del programa pueden enviar paquetes de controladores para la firma de pruebas WHQL. La firma de los catálogos firmados de prueba se genera mediante un certificado emitido en la entidad raíz de prueba de Microsoft. La entidad raíz de prueba de Microsoft se acepta cuando la configuración de arranque de Windows Vista habilita la firma de prueba. Para obtener información sobre el Programa de firmas de prueba WHQL, consulte la sección Recursos al final de este documento.

Para la firma de "prueba" y "versión", el equipo de desarrollo debe seguir los procedimientos recomendados para la administración de claves, como se describe en Guía para proteger las claves de firma de código más adelante en este documento.

La firma de prueba se describe con más detalle en la sección Cómo usar la firma de prueba más adelante en este documento.

Proceso de firma de código en modo kernel

La firma digital de un archivo o catálogo de imágenes en modo kernel establece la integridad del archivo o archivos firmados. Los módulos de software nunca deben modificarse después de que se haya realizado la operación de firma de código. La modificación del archivo de imagen después de la firma de código da como resultado errores de comprobación de firma en tiempo de instalación y de tiempo de carga.

Es posible que un paquete de controladores que contenga varios archivos se firme mediante un catálogo. El paquete de controladores debe tener un archivo de catálogo firmado (.cat) que se usa para identificar al publicador cuando se instala el paquete de controladores y comprobar la imagen del controlador cuando se carga en el kernel. El archivo de catálogo contiene un certificado digital que identifica al publicador, además de hashes del contenido del paquete que permite al sistema comprobar que los archivos del paquete no se han modificado.

Como se mencionó anteriormente, los controladores de inicio de arranque deben tener firmas incrustadas en el archivo de imagen del controlador. Las firmas incrustadas en los archivos de imagen del controlador de inicio de arranque optimizan el rendimiento de arranque del sistema operativo eliminando la necesidad de localizar el archivo appropriate.cat cuando el cargador del sistema operativo comprueba la firma del controlador.

La firma de controladores no es necesaria para cada compilación durante el proceso de desarrollo del controlador. Los desarrolladores pueden deshabilitar el cumplimiento de la firma de controladores como se describe en Cómo deshabilitar la aplicación de firmas durante el desarrollo más adelante en este documento.

En las secciones siguientes se describe cómo obtener y administrar certificados. Los mecanismos de firma de paquetes de controladores se describen más adelante en este documento.

Cómo obtener un certificado de publicación de software (SPC)

Obtenga un SPC para firmar el software en modo kernel que cumpla la directiva de firma de código del modo kernel obligatoria mediante los pasos siguientes:

  1. Obtenga un SPC de una entidad de certificación comercial que emite certificados digitales para firmar código de modo kernel. La lista de entidades de certificación que proporcionan certificados de publicación de software (o certificados de firma de código) que se pueden usar para la firma de código en modo kernel está disponible en la página web de firma de código del modo kernel de Microsoft Vista .
  2. Descargue un certificado cruzado correspondiente de la página web microsoft Cross-certificates for Windows Vista Kernel Mode Code Signing (Firma de código del modo kernel de Windows Vista ) para la entidad de certificación raíz que emitió el SPC. El certificado cruzado se usa en la firma digital para el código de modo kernel para que la firma se pueda comprobar hasta una entidad raíz de confianza conocida para el kernel de Windows Vista.

Cuando solicite un certificado de publicación de software desde una entidad de certificación comercial, siga las instrucciones del sitio web de la ENTIDAD de certificación para obtener e instalar el certificado de firma de código en la máquina donde va a usar la clave privada para firmar código.

Guía para proteger las claves de firma de código

Las claves criptográficas que están en el centro del proceso de firma de código deben estar bien protegidas y tratadas con el mismo cuidado que los activos más valiosos para cualquier empresa. Estas claves representan una identidad de empresa. Cualquier código firmado con estas claves aparece en Windows como si contenga una firma digital válida que se pueda rastrear a la empresa. Si se roban las claves, podrían usarse para firmar de forma fraudulenta código malintencionado y, posiblemente, dar lugar a la entrega de código que contiene un troyano o virus que parece provenir de un editor legítimo.

Para obtener información detallada sobre la protección segura de claves privadas, consulte los procedimientos recomendados de firma de código.

Uso de certificados cruzados con firma de código en modo kernel

La firma de código en modo kernel usa certificados cruzados como parte del proceso de firma de código. Un certificado cruzado es un certificado X.509 emitido por una entidad de certificación (CA) que firma la clave pública para el certificado raíz de otra entidad de certificación. El cargador del sistema operativo Windows Vista y el kernel reconocen certificados cruzados en la comprobación de las firmas del controlador. Los certificados cruzados permiten que el kernel tenga una única entidad raíz de Microsoft de confianza, pero también proporcionan la flexibilidad de ampliar la cadena de confianza a varias CA comerciales que emiten certificados de publicador de software.

Los certificados cruzados permiten a los desarrolladores y publicadores usar certificados de publicador de software para firmar el software en modo kernel. Los desarrolladores que usan la firma de código en modo kernel descargarán el archivo correcto entre certificados (.cer) en el sistema donde se realiza la operación de firma digital. Los publicadores no necesitan distribuir el archivo entre certificados con su paquete de software o controlador. El certificado cruzado se incluirá con la firma digital en el archivo de imagen del controlador o en el catálogo de paquetes de controladores. Los usuarios que instalan el paquete de controladores no tendrán que realizar ningún paso de configuración para Que Windows Vista compruebe la firma digital que incluye un certificado cruzado.

Importante SignTool en el WDK de Windows Vista Beta2 es la única versión de SignTool que actualmente admite la adición de certificados cruzados a una firma digital. Las versiones anteriores de SignTool en el SDK de plataforma de Windows Server 2003 o DDK no admiten la adición de certificados cruzados.

Los certificados cruzados para varias CA que se usarán para la firma de código en modo kernel están disponibles para su descarga desde el sitio web de Microsoft WHDC. Para obtener más información, vea Microsoft Cross-certificates for Windows Vista Kernel Mode Code Signing in the Resources at the Resources at the end of this paper.

Los detalles sobre cómo agregar el certificado cruzado a la firma digital se describen en las secciones Cómo firmar un archivo .cat y Agregar una firma incrustada a un archivo de imagen de controlador.

Generación de certificados de prueba

Los certificados de prueba se usan en lugar de LOS SPC para probar módulos de software de modo kernel de firma de prueba que no están para su distribución o lanzamiento fuera de la organización. La firma de prueba aplica una firma digital a los archivos binarios del modo kernel o a los catálogos de paquetes de controladores que se usan con fines de prueba internos. La firma de prueba se describe con más detalle en la sección Cómo usar la firma de prueba más adelante en este documento. Cuando se usa un certificado de prueba para la firma de código en modo kernel, no se requiere un certificado cruzado.

Los certificados de prueba se pueden generar mediante una ENTIDAD de certificación empresarial o mediante la utilidad Makecert. Para obtener más información sobre el uso de una entidad de certificación empresarial para emitir certificados de firma de prueba dentro de su organización, consulte Procedimientos recomendados de firma de código.

En el ejemplo siguiente, Makecert genera un certificado de prueba emitido por la raíz de prueba predeterminada, almacena la clave privada en un contenedor de claves y envía el certificado a un almacén de certificados y un archivo de certificado:

Makecert –r –pe –ss SubjectCertStoreName –n "CN= CertName" OutputFile.cer

Los argumentos de Makecert en el ejemplo hacen lo siguiente:

  • -r
    Crea un certificado autofirmado, es decir, el certificado es un certificado raíz.
  • -Pe
    Convierte la clave privada asociada al certificado exportable.
  • -ssSubjectCertStoreName
    Especifica el nombre del almacén de certificados que contiene el certificado raíz.
  • **-n "CN=**CertName"
    Especifica un nombre para el certificado. Si no se proporciona un nombre de certificado, el nombre predeterminado del certificado es "Joe's Software Emporium".
  • OutputFile.cer
    Nombre del archivo en el que se guarda el certificado raíz.

Hay disponible un script de comando de ejemplo mediante makecert en WDK. El nombre del archivo de script es, selfsign_example.txt, ubicado en el directorio "bin\selfsign". Para poder instalar el paquete de controladores, debe agregar los certificados de prueba al almacén de certificados en la máquina de prueba de destino.

En el ejemplo siguiente se muestra cómo agregar los certificados de prueba al almacén raíz de confianza y al almacén de publicadores de confianza en la máquina de prueba de destino.

certmgr.exe -add OutputFile.cer -s -r localMachine root 
certmgr.exe -add OutputFile.cer -s -r localMachine trustedpublisher

Los argumentos de Certmgr en el ejemplo hacen lo siguiente:

  • -Añadir
    Agrega el certificado en el archivo de certificado a un almacén de certificados.
  • -s
    Indica que el almacén de certificados es un almacén del sistema.
  • -r
    Indica que la ubicación del Registro del almacén del sistema está en HKEY_LOCAL_MACHINE clave.
  • Root o trustedpublisher
    Indica el nombre del almacén de certificados del sistema.

Para obtener más información sobre Certmgr y Makecert, consulte los recursos al final de este documento.

Crear un archivo .cat firmado

Las herramientas usadas para generar y firmar archivos de catálogo, MakeCat y SignTool, se proporcionan en el WDK de Windows Vista.

Nota Signtool.exe y MakeCat.exe se encuentran en el directorio "bin\selfsign" del WDK.

Cómo crear un archivo .cat

Un archivo .cat firmado digitalmente contiene los hashes de todos los módulos en modo kernel que se comprueban cuando se cargan en el kernel. El archivo de catálogo también puede incluir hashes para otros archivos del paquete de software, como programas de aplicación en modo de usuario (.exes) y extensiones de aplicación (.dlls). Microsoft recomienda que el archivo .cat contenga los hashes de todos los archivos de un paquete de software.

El archivo .cat contiene una lista de hashes de archivo que corresponden a un conjunto especificado de archivos. Un hash de archivo es el producto de un hash SHA1 a través de un archivo de destino. No se usa un hash de archivo plano para archivos, como controladores, que usan el formato de archivo ejecutable portátil (PE). En su lugar, las secciones pertinentes, como el encabezado PE, los datos ejecutables y los atributos autenticados, se aplica un hash selectivo.

Cuando se carga un controlador en la memoria, el kernel de Windows Vista realiza un hash SHA1 en las secciones pertinentes del archivo de imagen binaria del controlador. Windows comprueba que el archivo no se ha alterado comparando el valor hash resultante con la lista de hash binarios del archivo .cat asociado.

Si instala el controlador con un archivo INF a través de Plug and Play, use la herramienta Signability del WDK para crear un catálogo como se describe a continuación. De lo contrario, cree manualmente un catálogo como se describe en El procedimiento para crear un catálogo manualmente más adelante en este documento.

Cómo crear un catálogo mediante la capacidad de firma

La signabilidad es una herramienta que se usa para validar archivos INF y crear un archivo de catálogo basado en el archivo INF. Se incluye en el WDK y se puede ejecutar desde el entorno de compilación de WDK. La firma requiere un archivo INF válido para el paquete de controladores. Para obtener información sobre cómo crear un archivo INF, consulte la documentación de WDK. Para crear un catálogo con la herramienta de firma, continúe de la siguiente manera:

Uso de la capacidad de firma para crear un catálogo

  1. Cree un directorio de paquete de controladores que contenga todos los archivos del paquete de controladores.
  2. Cree un archivo INF en el directorio del paquete de controladores y edítelo para Windows Vista. En concreto, cambie la fecha de compilación a 4/1/2006 o posterior y la versión a 6. Por ejemplo: DriverVer=04/01/2006, 6.0.1.0
  3. Ejecute Signability para crear un archivo .cat válido basado en el archivo INF:
    • Ejecute Signability.exe y use la GUI para crear el archivo de catálogo.

    • Ejecute Signability desde la línea de comandos. Tenga en cuenta que package_directory debe ser la ruta de acceso completa al directorio del paquete.

      Signability.exe /auto /cat /driver:package_directory /os:512
      

En este ejemplo se crea un archivo .cat en el directorio driver_package , mediante varios argumentos que admite Signability:

  • /Automático
    Configura la herramienta Signability para que se ejecute sin necesidad de interacción del usuario.
  • /Gato
    Configura la herramienta Signability para generar el archivo de catálogo cuyo nombre proporciona el archivo INF del paquete de controladores.
  • /driver:DriverPath
    Proporciona la ruta de acceso al directorio que contiene los archivos de paquete de controladores.
  • /os:nnn
    Configura la herramienta Signability para comprobar que el archivo INF del paquete de controladores cumple los requisitos de las versiones de Windows especificadas por el valor de marca nnn. 512 es el valor de Windows Vista, Edición de 64 bits.

Cómo crear un catálogo manualmente

Para crear manualmente un archivo .cat, use primero un editor de texto para crear un archivo de definición de catálogo (.cdf). El archivo .cdf incluye una lista de los archivos que se van a catalogar y sus atributos.

En el ejemplo siguiente se muestra el contenido de un archivo .cdf típico denominado Good.cdf. El paquete que se va a catalogar contiene dos archivos, File1 y File2. El archivo .cat resultante se denomina Good.cat.

[CatalogHeader]
Name=Good.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
<hash>File1=File1
<hash>File2=File2

Se crea un archivo .cat con la herramienta de línea de comandos MakeCat, que se incluye con el SDK de plataforma y WDK. La herramienta MakeCat:

  • Comprueba la lista de atributos de cada archivo enumerado.
  • Agrega los atributos enumerados al archivo .cat.
  • Aplica hash a cada uno de los archivos enumerados.
  • Almacena los hashes de cada archivo en el archivo .cat.

Para crear un archivo .cat

  1. Use un editor de texto para crear un archivo .cdf que contenga una lista de archivos que se van a catalogar, con sus atributos.
  2. Ejecute MakeCat en el archivo .cdf.

Nota MakeCat no modifica el archivo .cdf.

En el ejemplo siguiente se muestra cómo crear un archivo .cat de Good.cdf. La marca -v especifica la versión detallada de MakeCat. Los archivos hash y el archivo Good.cat recién generado se colocan en la misma carpeta que File1 y File2.

MakeCat -v Good.cdf

El archivo .cat ya está listo para firmarse.

Para obtener más información sobre MakeCat y el formato de los archivos .cdf, consulte la documentación de MakeCat que se muestra en recursos al final de este documento.

Cómo firmar un archivo .cat

El archivo .cat generado por MakeCat contiene todos los hashes de archivo necesarios para instalar módulos en modo kernel en el sistema de un usuario. Sin embargo, el archivo también debe estar firmado digitalmente.

Un archivo .cat está firmado con la herramienta de línea de comandos SignTool. La firma digital del catálogo, que se usa para comprobar los archivos de imagen en modo kernel, debe contener un certificado cruzado. El certificado cruzado se agrega mediante una nueva opción de comando a SignTool.

Importante Debes usar la versión de SignTool de WDK de Windows Vista Beta2 para agregar el certificado cruzado a la firma digital.

En el ejemplo siguiente se muestra cómo usar Signtool para firmar un archivo .cat con un SPC y la clave privada correspondiente que se importa en el almacén de certificados de Windows. Para obtener información sobre cómo usar Signtool con un HSM, consulte la documentación de SignTool que se muestra en los recursos al final de este documento.

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll Good.cat

En este ejemplo se usan varios de los argumentos que SignTool admite:

  • Firmar
    Configura la herramienta para firmar el archivo .cat denominado CatFileName.cat.
  • /v
    Especifica la opción detallada para la ejecución correcta y los mensajes de advertencia*.*
  • /Ca
    Agrega el certificado cruzado del archivo CrossCertificateFile a la firma digital.
  • /s
    Especifica un almacén de certificados denominado SPCCertificateStore.
  • /n
    Especifica un certificado con el nombre de sujeto SPCSubjectName.
  • /tURL
    Especifica que la firma digital se marcará por tiempo en la entidad de marcas de tiempo (TSA) indicada por la dirección URL.

Importante La niebla de firma de controlador o catálogo incluye una marca de tiempo para proporcionar 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.

Durante la instalación del dispositivo, si el SPC que se usó para firmar ha expirado y la firma no estaba marca de tiempo, el archivo .cat no está instalado y Windows no permite cargar el controlador. Sin embargo, si la firma está marca de tiempo por una autoridad de marca de tiempo de confianza, el archivo .cat se instala y Windows permite cargar el controlador.

Firma del archivo de descarga autoextraído

El software publicado para su distribución en un sitio web de soporte técnico de productos normalmente se empaqueta en un archivo de archivo autoextraído. El archivo ejecutable autoextraíble se descarga mediante un explorador web y el contenido extraído antes de que el usuario empiece a instalarse en su equipo. Use el SPC que firmó el archivo .cat del paquete de controladores para firmar digitalmente el archivo .exe autoextraícelo.

Firmar digitalmente el archivo .exe autoextraír identifica al publicador del archivo de archivo y garantiza la integridad del archivo de extracción automática .exe que se descarga a través de Internet. Los usuarios que descargan el archivo de .exe autoextrayen normalmente obtendrán un cuadro de diálogo de confianza, o advertencia de seguridad, cuando decidan descargar y ejecutar el archivo autoextraído.

En Windows Vista, si el usuario examina los detalles del cuadro de diálogo Advertencia de seguridad y selecciona "Instalar software siempre desde el nombre> del <publicador", esta opción simplificará la confirmación posterior cuando se instale un paquete de controladores. Cuando se instala el paquete de controladores, se le preguntará al usuario si confía en el publicador del paquete de controladores firmado antes de que comience la instalación del controlador. Si el usuario seleccionó la opción para instalar siempre software desde el publicador del controlador cuando descargó el archivo de .exe autoextraído, no se producirá el símbolo del cuadro de diálogo de confianza durante la instalación del controlador.

Cómo instalar un archivo .cat firmado

En el caso de los controladores instalados a través de Plug and Play, no se espera ningún cambio en el proceso de instalación. La instalación de un controlador firmado insertado no requiere ningún procesamiento especial más allá de los mecanismos de configuración y INF estándar. Tenga en cuenta que solo los usuarios que son miembros del grupo Administradores pueden instalar paquetes de controladores.

Los controladores que no se instalan a través de Plug and Play deben instalar sus archivos .cat en la carpeta raíz del catálogo del sistema. La instalación de un catálogo en la carpeta raíz del catálogo se puede administrar mediante llamadas API de catálogo de Win32 existentes, específicamente CryptCATAdminAddCatalog.

Agregar una firma incrustada a un archivo de imagen de controlador

Para optimizar el rendimiento de la comprobación del controlador en tiempo de arranque, los archivos binarios del controlador de arranque deben tener una firma insertada mediante el SPC además del archivo .cat firmado para el paquete. La firma insertada ahorra un tiempo significativo durante el arranque del sistema operativo porque no es necesario que el cargador del sistema operativo busque el archivo .cat en el controlador. Un sistema típico de Windows Vista puede tener más de cien archivos de catálogo diferentes en el almacén raíz del catálogo. La búsqueda del archivo de catálogo correcto para comprobar el hash de imagen de un controlador determinado puede implicar una gran sobrecarga del sistema en la búsqueda de varios catálogos para el archivo correcto.

Los controladores de arranque se identifican en función del valor StartType del servicio de SERVICE_BOOT_START (0).

Las firmas incrustadas no interfieren con la firma o validación de archivos .cat. Tenga en cuenta que los hash contenidos en catálogos y firmas incrustadas excluyen selectivamente la parte de firma del formato de archivo PE.

Para usar Signtool.exe para insertar una firma en un archivo binario del controlador de arranque mediante un SPC y una clave privada correspondiente importada en el almacén de certificados de Windows, use el siguiente comando:

SignTool sign /v /ac CrossCertificateFile /s SPCCertificateStore /n SPCSubjectName /t http://timestamp.verisign.com/scripts/timestamp.dll winloaddriver.sys

En este ejemplo se usan varios de los argumentos que SignTool admite:

  • Firmar
    El comando sign configura la herramienta para firmar el controlador denominado winloaddriver.sys.
  • /v
    Especifica la opción detallada para la ejecución correcta y los mensajes de advertencia*.*
  • /Ca
    Agrega el certificado cruzado del archivo CrossCertificateFile a la firma digital.
  • Opciones de /s
    Especifica el almacén de certificados denominado SPCCertificateStore.
  • /n
    Especifica el certificado con el nombre de sujeto SPCSubjectName.
  • /tURL
    Especifica que la firma digital debe tener la marca de tiempo del TSA indicada por la dirección URL.

Importante: El catálogo o controlador debe tener una marca de tiempo, ya que esto proporcionará información necesaria para la revocación de claves en caso de que la clave de firmante esté en peligro.

Cómo comprobar una firma incrustada

En el procedimiento siguiente se muestra cómo comprobar una firma incrustada con el Explorador de Windows.

Para comprobar las firmas incrustadas

  1. Mientras se ejecuta Windows Vista, haga clic con el botón derecho en el archivo .sys controlador y haga clic en Propiedades en el menú contextual.
  2. Haga clic en la pestaña Firmas digitales , si está presente.
    • Si esta pestaña no está presente, el archivo no tiene una firma incrustada.
  3. Seleccione el firmante y haga clic en Detalles para abrir el cuadro de diálogo Detalles de firma .
  4. Haga clic en Ver certificado para abrir las páginas de propiedades del certificado.
    • Compruebe que no haya cuadros de diálogo de advertencia.
    • Compruebe que el nombre del firmante de los certificados es Publisher está registrado con una entidad de certificación reconocida.
  5. Haga clic en la pestaña Ruta de certificación .
    • Compruebe que el nombre del firmante del certificado superior sea raíz de verificación de código de Microsoft.

Para comprobar las firmas incrustadas mediante signtool.exe para la directiva de firma de código en modo kernel

  • Signtool.exe se puede usar para comprobar la firma en un archivo .cat mediante el siguiente comando:
Signtool verify /kp /c tstamd64.cat toaster.sys

Compruebe que el hash de imagen del archivo toaster.sys se encuentra en el archivo de catálogo. La herramienta devuelve la cadena "Success".

Cómo deshabilitar la aplicación de firmas durante el desarrollo

Durante las primeras fases de desarrollo, los desarrolladores pueden deshabilitar la aplicación en Windows para que la firma de controladores no sea necesaria. Las siguientes opciones están disponibles para que los desarrolladores deshabiliten temporalmente la aplicación de firma de código en modo kernel para que Windows Vista cargue un controlador sin firmar.

  • Asociación de un depurador de kernel. La asociación de un depurador de kernel activo al equipo de destino deshabilita la aplicación de firmas de modo kernel en Windows Vista y permite que el controlador se cargue.

  • Con la opción F8. Una opción de arranque avanzado F8 introducida con Windows Vista("Deshabilitar el cumplimiento de firmas de controlador") está disponible para deshabilitar la aplicación de firma de kernel solo para la sesión de arranque actual. Esta configuración no se conserva en las sesiones de arranque.

  • Establecer la configuración de arranque. Hay disponible una configuración de arranque en la versión Beta2 de Windows Vista que deshabilita la aplicación de firmas de modo kernel que se conservarán en las sesiones de arranque.

    Windows Vista incluye una herramienta de línea de comandos, BCDedit, que se puede usar para establecer la opción en Windows Vista Beta2 para deshabilitar las comprobaciones de firma. Para usar BCDedit, el usuario debe ser miembro del grupo Administradores en el sistema y ejecutar el comando desde un símbolo del sistema con privilegios elevados. Para iniciar un símbolo del sistema con privilegios elevados, cree un acceso directo de escritorio para cmd.exe y, a continuación, haga clic con el botón derecho y "Ejecutar como administrador".

    A continuación se muestra un ejemplo de ejecución de BDCedit en el símbolo del sistema:

    // Disable enforcement – no signing checks
    Bcdedit.exe –set nointegritychecks ON 
    
    // Enable enforcement – signing checks apply
    Bcdedit.exe –set nointegritychecks OFF 
    
    // Disabling integrity check on an alternate OS 
    // specified by a GUID for the system ID
    Bcdedit.exe –set {4518fd64-05f1-11da-b13e-00306e386aee} nointegritychecks ON 
    

Nota La opción Bcdedit para deshabilitar las comprobaciones de integridad solo está disponible para cargar controladores sin firmar en la versión Beta2 de Windows Vista. Para obtener más información, consulte las preguntas más frecuentes sobre el editor de BCD en el sitio web de MSDN.

Uso de la firma de pruebas

La firma de prueba proporciona opciones adicionales para las organizaciones de desarrollo para incorporar la firma de código en modo kernel para el software de versión preliminar que no está listo para su publicación. La firma de prueba permite el uso de certificados de firma de código de prueba para firmar controladores que se cargarán en Windows Vista cuando la configuración de arranque de Windows Vista permita firmas de prueba.

La firma de prueba puede ser adecuada para usarla en los escenarios siguientes:

  • Los equipos de desarrollo deben probar versiones preliminares de un controlador en sistemas de prueba en los que no resulta práctico adjuntar un depurador de kernel.
  • Las pruebas automatizadas del software en modo kernel hacen que no sea práctico usar la opción de arranque avanzado F8 para deshabilitar temporalmente la aplicación de firmas de controladores en cada ciclo de arranque de la máquina.

La firma de prueba permite a los desarrolladores firmar versiones preliminares de archivos binarios del modo kernel de forma que Windows Vista pueda comprobar y cargar el controlador firmado. La firma de prueba implica las siguientes diferencias respecto a la firma normal de producción o versión:

  • Los certificados usados para la firma de prueba se pueden generar mediante la herramienta de firma de código Makecert.exe, o emitidos por una ENTIDAD de certificación empresarial, en lugar de usar un SPC emitido por una CA comercial.
  • La opción de configuración de arranque de Windows Vista para habilitar la firma de pruebas debe estar habilitada en el sistema windows Vista que cargará el controlador firmado de prueba.

Las organizaciones de desarrollo pueden configurar una PKI empresarial y emitir sus propios certificados de firma de código de prueba para usarlos para la firma de pruebas. Cuando Windows Vista habilita la firma de prueba, la verificación de la firma digital en el binario del controlador aceptará los certificados emitidos por cualquier entidad de certificación o emisora. La firma de prueba comprueba que la imagen del controlador está firmada, pero la validación de la ruta de acceso del certificado realizada en modo kernel no requiere que el emisor se configure como una entidad raíz de confianza. Esto permite a las organizaciones usar firmas individuales en archivos binarios de prueba, en función de las credenciales emitidas para la firma de código dentro de la organización. Microsoft recomienda esta forma de implementación para probar la firma de código en modo kernel.

El uso de certificados generados por la herramienta de makecert.exe también es aceptable para la firma de pruebas. Sin embargo, los certificados generados por makecert a menudo no proporcionan información de identidad útil y no hay ninguna manera de realizar un seguimiento de qué desarrollador individual creó una versión firmada de prueba del binario de versión preliminar.

Nota La versión Beta2 de Windows Vista solo acepta certificados de prueba generados por la herramienta makecert. Los certificados de firma de código de prueba emitidos por una entidad de certificación empresarial para la firma de pruebas no están disponibles en Windows Vista Beta2.

Las instrucciones de Signtool de este documento funcionan de la misma manera si usa un SPC o un certificado generado por la utilidad makecert, o mediante un certificado emitido por una entidad de certificación empresarial. La única diferencia suele ser el emisor y el nombre del firmante en el certificado.

El programa WHQL Test Signature también es compatible con la firma de pruebas. Los participantes del programa pueden enviar paquetes de controladores para firmas de prueba WHQL. La firma de los catálogos firmados de prueba se genera mediante un certificado emitido en la entidad raíz de prueba de Microsoft. La entidad raíz de prueba de Microsoft se acepta de forma predeterminada en Windows Vista Beta2 como parte del programa beta. En la versión final de Windows Vista, la entidad raíz de prueba de Microsoft se acepta cuando la configuración de arranque de Windows Vista habilita la firma de pruebas.

Los archivos binarios del modo kernel firmados de prueba no se cargarán en sistemas windows Vista de forma predeterminada. Las firmas digitales en archivos binarios firmados de prueba no son válidas en los sistemas Windows Vista de forma predeterminada porque la directiva de firma de código en modo kernel no acepta y no confía en los certificados de firma de prueba.

Habilitación de la firma de pruebas

Use la herramienta de línea de comandos Bcdedit para habilitar la firma de pruebas. Para usar BCDedit, el usuario debe ser miembro del grupo Administradores en el sistema y ejecutar el comando desde un símbolo del sistema con privilegios elevados. Para iniciar un símbolo del sistema con privilegios elevados, cree un acceso directo de escritorio para cmd.exe y, a continuación, haga clic con el botón derecho y "Ejecutar como administrador".

A continuación se muestra un ejemplo de ejecución de BDCedit en el símbolo del sistema:

// Accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING ON 

// Do not accept test signed kernel mode signatures
Bcdedit.exe –set TESTSIGNING OFF 

La TESTSIGNING opción de configuración de arranque determina si Windows Vista acepta archivos binarios del modo kernel firmados de prueba. La opción no está definida de forma predeterminada, lo que significa que las firmas digitales en controladores de modo kernel firmados de prueba no comprobarán y no se cargarán. Cuando Windows Vista acepta archivos binarios de modo kernel firmados de prueba, es posible que algunos contenidos premium protegidos no sean accesibles en el sistema.

Solución de problemas

Hay pasos específicos que puede seguir para identificar y solucionar posibles problemas relacionados con la comprobación de las firmas de código del modo kernel. En esta sección se proporciona información sobre cómo solucionar problemas con el cumplimiento de la firma de controladores. Las herramientas principales para solucionar problemas de firma de controladores son las siguientes:

  • Detección de errores de carga de controladores
  • Habilitación de eventos de registro del sistema de diagnóstico de integridad de código.

La aplicación del tostador incluida en el WDK de Windows Vista se usa como ejemplo. La aplicación del tostador se puede encontrar en el WDK en el directorio "src\general\toaster".

Detección de errores de carga de controladores

La aplicación del tostador instala un controlador de dispositivo (toaster.sys), que, para este ejemplo, no está firmado. El síntoma de un problema con el controlador sin firmar es que el dispositivo del tostador no se inicia. Con el Administrador de dispositivos, puede comprobar el estado del dispositivo Toaster y ver el estado del controlador, como se muestra en la siguiente imagen de pantalla.

Bb530195.digitalsigskernmodules01(en-us,MSDN.10).gif

Figura 1. Error del controlador sin firmar

El dispositivo no se pudo iniciar porque el controlador del dispositivo no estaba firmado y el cumplimiento de la firma del modo kernel bloqueó la carga del controlador en el kernel. Para identificar definitivamente el origen del problema, configuramos el sistema para habilitar el diagnóstico de cumplimiento de la firma, como se describe a continuación.

Habilitación de eventos de registro del sistema de diagnóstico de integridad de código

El cumplimiento de la firma de código en modo kernel se implementa mediante un componente de Windows Vista conocido como Integridad de código. La integridad de código genera eventos de diagnóstico y un evento de registro de auditoría del sistema cuando la firma de un módulo de kernel no se puede comprobar correctamente.

  • Los eventos operativos de integridad de código siempre están habilitados. Los eventos operativos son Eventos de advertencia cuando se produjo un error en una comprobación de imagen al cargar un archivo binario en modo kernel.
  • Los eventos de auditoría del sistema de integridad de código se generan cuando la directiva de auditoría del sistema está habilitada. La directiva de auditoría del sistema no está habilitada de forma predeterminada.
  • Los eventos detallados de integridad de código son eventos de información de análisis y depuración que muestran todas las comprobaciones de comprobación de imágenes correctas al cargar archivos binarios en modo kernel. Los eventos detallados no están habilitados de forma predeterminada.

Los eventos de integridad de código se pueden ver en el Visor de eventos, que forma parte del complemento MMC administración de equipos. (En el botón Inicio , haga clic con el botón derecho en Equipo y seleccione Administrar).

El flujo de eventos Integridad de código se encuentra en la jerarquía siguiente:

Visor de eventos:> Registros de aplicaciones y servicios -> Microsoft -> Windows -> CodeIntegrity

Bb530195.digitalsigskernmodules02(en-us,MSDN.10).gif

Ilustración 2. Eventos de integridad de código

El registro operativo de integridad de código muestra los eventos generados por el kernel cuando un controlador en modo kernel produce un error en una comprobación de imagen cuando se carga el controlador. El error de comprobación de imágenes puede deberse a una serie de motivos, entre los que se incluyen los siguientes:

  • El controlador no se ha firmado, pero un administrador ha instalado en el sistema y la integridad del código no permite que el controlador se cargue.
  • El controlador se firmó, pero el archivo de imagen del controlador se modificó o alteró y la modificación invalidó la firma del controlador.
  • Es posible que el dispositivo de disco del sistema tenga errores de dispositivo al leer el archivo de imagen del dispositivo desde sectores de disco incorrectos.

Una entrada de registro operativo para un error de comprobación de imagen de controlador sin firmar o modificado tiene un aspecto similar al del ejemplo siguiente:

Bb530195.digitalsigskernmodules03(en-us,MSDN.10).gif

Figura 3. Entrada de registro operativo

El evento indica que el controlador de la tostadora (toaster.sys) no se pudo cargar porque no estaba firmado (o la imagen de toaster.sys que está intentando cargar no es la misma que el publicador firmó digitalmente).
Todos los mensajes de registro de eventos de integridad de código se enumeran en la sección Mensajes de registro de eventos de integridad de código a continuación.

Eventos del registro de auditoría del sistema

La integridad de código genera eventos de registro de auditoría del sistema correspondientes a los eventos de advertencia operativa cuando se produce un error en la comprobación de imágenes de un controlador en modo kernel. Los eventos de registro del sistema se pueden ver en el Visor de eventos en la vista Registros de Windows, Registro del sistema.

Es posible que los eventos de auditoría del sistema no estén habilitados en todos los sistemas de Windows Vista. Use el complemento MMC Configuración de seguridad local para comprobar o habilitar "Auditar eventos del sistema" en las Directivas locales, Configuración de directiva de auditoría.

Eventos informativos en el registro detallado

Los eventos informativos de integridad de código adicionales para todas las comprobaciones de comprobación de imágenes en modo kernel están disponibles mediante la vista de eventos detallados. Estos eventos muestran una comprobación correcta de la imagen de todos los controladores cargados en el sistema.

Los pasos para habilitar la vista de eventos detallados de integridad de código son los siguientes:

  1. Haga clic con el botón izquierdo en la vista Operativa para mostrar los eventos de integridad de código actuales (si los hay).
  2. Haga clic con el botón izquierdo en el nodo Integridad de código para establecer el foco.
  3. Haga clic con el botón derecho en el nodo Integridad de código para obtener el menú contextual.
  4. Seleccione Vista.
  5. Seleccione Mostrar registros analíticos y de depuración.
  6. Esto crea un subárbol con dos nodos adicionales, El operativo y el nodo Detallado .
  7. Haga clic con el botón derecho en el nodo Detallado y seleccione Propiedades.
  8. Seleccione la hoja General y seleccione la opción Habilitarregistro . Esto debe habilitar el modo de registro detallado.
  9. Reinicie el sistema para volver a cargar todos los archivos binarios del modo kernel.
  10. Después del reinicio, abra el complemento Administración deequipos y vea el registro de eventosdetallado de integridad de código.

Puede comprobar si toaster.sys está firmado correctamente de la siguiente manera:

En este caso concreto, toaster.sys es un controlador PnP y se denomina en un archivo de catálogo (tstamd64.cat en "\src\general\toaster\toaster\toastpkg\toastcd". Use la utilidad SignTool para comprobar si toaster.sys está firmado correctamente mediante el siguiente comando:

Signtool verify /kp /c tstamd64.cat toaster.sys

Opciones de depuración de comprobación de controladores

En algunos casos, es posible que los desarrolladores quieran aplicar la directiva de firma de código del modo kernel obligatoria incluso cuando se adjunta un depurador. Un ejemplo de esto es cuando una pila de controladores tiene un controlador sin firmar (como un controlador de filtro) que no se carga, lo que puede invalidar toda la pila. Dado que la asociación de un depurador permite cargar el controlador sin firmar, el problema parece desaparecer en cuanto se adjunta el depurador. La depuración de este tipo de problema puede ser difícil. Para facilitar la depuración en este caso, la integridad de código admite una clave del Registro que se puede establecer para aplicar la aplicación de firma del modo kernel incluso cuando se adjunta un depurador.

Hay dos marcas definidas en el registro que controlan el comportamiento de integridad de código en el depurador. Las marcas no se definen de forma predeterminada.

Cree el valor del Registro de la siguiente manera:

Key:   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI
Value:   DebugFlags      REG_DWORD   

Valores posibles:

  • 00000001
    Da como resultado una interrupción de depuración en el depurador y el controlador sin firmar se puede cargar con g.
  • 00000010
    Ci omitirá la presencia del depurador y los controladores sin firmar no se podrán cargar.

Cualquier otro valor da como resultado la carga de controladores sin firmar: esta es la directiva predeterminada.

Mensajes de registro de eventos de integridad de código

A continuación se muestran los eventos de advertencia registrados en el registro operativo de integridad de código:

  • "La integridad del código no puede comprobar la integridad de la imagen del nombre> de archivo <porque no se encontró el hash de archivo en el sistema".
  • "Integridad de código detectó un controlador sin firmar".
  • "Este evento está relacionado con la supervisión de calidad de software (SQM)."

A continuación se muestran los eventos de información registrados en el registro detallado de integridad de código:

  • "Integridad de código encontró un conjunto de hashes de imagen por página para el nombre> de archivo < en un nombre >de catálogo de catálogos<".
  • "Integridad de código encontró un conjunto de hashes de imagen por página para el nombre> de archivo < en el certificado incrustado de imagen".
  • "Integridad de código encontró un hash de archivo para el nombre de archivo < en un nombre>> de catálogo de catálogos<".
  • "Integridad de código encontró un hash de archivo para el nombre> de archivo < en el certificado insertado de imagen".
  • "La integridad del código determinó que se carga un nombre> de archivo del módulo < kernel sin firmar en el sistema. Consulte con el publicador para ver si hay disponible una versión firmada del módulo kernel".
  • "La integridad del código no puede comprobar la integridad de imagen del nombre> de archivo < porque no se encontró el conjunto de hashes de imagen por página en el sistema".
  • "La integridad del código no puede comprobar la integridad de la imagen del nombre> de archivo < porque no se encontró el conjunto de hashes de imagen por página en el sistema. La imagen puede cargarse porque el depurador del modo kernel está conectado".
  • "La integridad del código no puede comprobar la integridad de la imagen del nombre> de archivo < porque no se encontró un hash de archivo en el sistema. La imagen puede cargarse porque el depurador del modo kernel está conectado".
  • "Integridad de código no pudo cargar el catálogo de nombres> de < archivo".
  • "La integridad del código cargó correctamente el catálogo de nombres> de < archivo".

Recursos