Atestación de clave de TPM

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 y Windows Server 2012.

Autor: Justin Turner, ingeniero sénior de escalación de soporte técnico con el grupo de Windows

Nota

Este contenido está escrito por un ingeniero de asistencia al cliente de Microsoft y está destinado a los arquitectos de sistemas y administradores con experiencia que están buscando explicaciones técnicas más detalladas de características y soluciones de Windows Server 2012 R2 que los temas que se suelen proporcionar en TechNet. Sin embargo, no ha experimentado los mismos pasos de edición, por lo que parte del lenguaje puede parecer menos perfeccionado de lo que se encuentra normalmente en TechNet.

Información general

Aunque la compatibilidad con claves protegidas por TPM existe desde Windows 8, no había ningún mecanismo para que las entidades de certificación atestiguaran criptográficamente que la clave privada del solicitante de certificados está realmente protegida por un Módulo de plataforma segura (TPM). Esta actualización permite a una entidad de certificación realizar esa atestación y reflejarla en el certificado emitido.

Nota

En este artículo se supone que el lector está familiarizado con el concepto de plantilla de certificado (como referencia, consulte Plantillas de certificado). También se supone que el lector está familiarizado con cómo configurar entidades de certificación empresariales para emitir certificados basados en plantillas de certificado (como referencia, consulte Lista de comprobación: Configuración de CA para emitir y administrar certificados).

Terminología

Término Definición
EK Clave de aprobación. Se trata de una clave asimétrica contenida dentro del TPM (insertada en el momento de la producción). La EK es única para cada TPM y puede identificarla. La EK no se puede modificar ni quitar.
EKpub Hace referencia a la clave pública de la EK.
EKPriv Hace referencia a la clave privada de la EK.
EKCert Certificado de EK. Un certificado emitido por el fabricante de TPM para EKPub. No todos los TPM tienen EKCert.
TPM Módulo de plataforma segura. Un TPM está diseñado para proporcionar funciones relacionadas con la seguridad basadas en hardware. El chip del TPM es un procesador de criptografía seguro diseñado para realizar operaciones criptográficas. El chip incluye varios mecanismos de seguridad física que hacen que sea resistente a las alteraciones y que las funciones de seguridad no permitan que el software malintencionado realice alteraciones.

Información previa

A partir de Windows 8, se puede usar un Módulo de plataforma segura (TPM) para proteger la clave privada de un certificado. El proveedor de almacenamiento de claves (KSP) del proveedor criptográfico de la plataforma Microsoft habilita esta característica. Hubo dos problemas con la implementación:

  • No se garantizaba que una clave estuviera realmente protegida por un TPM (alguien puede suplantar fácilmente un KSP de software como un KSP de TPM con credenciales de administrador local).

  • No se ha podido limitar la lista de TPM que pueden proteger los certificados emitidos por la empresa (en caso de que el administrador de PKI quiera controlar los tipos de dispositivos que se pueden usar para obtener certificados en el entorno).

Atestación de clave de TPM

La atestación de claves de TPM es la capacidad de la entidad que solicita un certificado de demostrar criptográficamente a una entidad de certificación que la clave RSA de la solicitud de certificado está protegida por "un" o "el" TPM en el que la CA confía. El modelo de confianza de TPM se describe más adelante en la sección Información general de implementación de este artículo.

¿Por qué es importante la atestación de claves de TPM?

Un certificado de usuario con una clave atestada de TPM proporciona mayor seguridad gracias a las características que ofrece el TPM como la imposibilidad de exportación, la protección contra ataques de repetición o el aislamiento de las claves.

Con la atestación de claves de TPM, ahora es posible un nuevo modelo de administración: un administrador puede definir el conjunto de dispositivos que los usuarios pueden usar para acceder a los recursos corporativos (por ejemplo, VPN o punto de acceso inalámbrico) y tienen garantías sólidas de que no se puede usar ningún otro dispositivo para acceder a ellos. Este nuevo paradigma de control de acceso es seguro porque está vinculado a una identidad de usuario enlazada a hardware, que es más segura que una credencial basada en software.

¿Cómo funciona la atestación de claves de TPM?

En general, la atestación de claves de TPM se basa en los siguientes pilares:

  1. Cada TPM se distribuye con una clave asimétrica exclusiva, denominada clave de aprobación (EK), grabada por el fabricante. La parte pública de esta clave la conocemos como EKPub y la clave privada asociada como EKPriv. Algunos chips TPM también tienen un certificado de EK emitido por el fabricante para la EKPub. Este certificado lo denominamos EKCert.

  2. Una CA (Entidad de certificación) establece la confianza en el TPM a través de la EKPub o el EKCert.

  3. Un usuario demuestra a la CA que la clave RSA para la que se solicita el certificado está relacionada criptográficamente con la EKPub y que el usuario posee la EKpriv.

  4. La entidad de certificación emite un certificado con un OID de directiva de emisión especial para indicar que la clave ahora está atestada como protegida por un TPM.

Introducción a la implementación

En esta implementación, se supone que se configura una CA empresarial de Windows Server 2012 R2. Además, los clientes (Windows 8.1) están configurados para inscribirse en esa entidad de certificación empresarial mediante plantillas de certificado.

Hay tres pasos para implementar la atestación de claves de TPM:

  1. Planee el modelo de confianza de TPM: el primer paso es decidir qué modelo de confianza de TPM se va a usar. Se admiten tres formas para hacerlo:

    • Confianza basada en las credenciales de usuario: la entidad de certificación empresarial confía en la EKPub proporcionada por el usuario como parte de la solicitud de certificado y no se realiza ninguna validación distinta de las credenciales de dominio del usuario.

    • Confianza basada en EKCert: la entidad de certificación empresarial valida la cadena de EKCert que se proporciona como parte de la solicitud de certificado en una lista administrada por el administrador de cadenas de certificados de EK aceptables. Las cadenas aceptables las define el fabricante y se expresan mediante dos almacenes de certificados personalizados en la entidad de certificación emisora (un almacén para la CA intermedia y otro para los certificados de CA raíz). Este modo de confianza indica que todos los TPM de un fabricante determinado son de confianza. Tenga en cuenta que en este modo, los TPM que se usan en el entorno deben contener EKCerts.

    • Confianza basada en EKPub: la entidad de certificación empresarial valida que la EKPub proporcionada como parte de la solicitud de certificado aparece en una lista administrada por el administrador de EKPubs permitidas. Esta lista se expresa como un directorio de archivos donde el nombre de cada archivo de este directorio es el hash SHA-2 de la EKPub admitida. Esta opción ofrece el nivel de garantía más alto, pero requiere más esfuerzo administrativo, ya que cada dispositivo se identifica individualmente. En este modelo de confianza, solo los dispositivos que han agregado su EKPub de TPM a la lista de permitidos de EKPubs pueden inscribirse para un certificado atestiguado por TPM.

    En función del método que se use, la entidad de certificación aplicará un OID de directiva de emisión diferente al certificado emitido. Para más información sobre los OID de directiva de emisión, vea la tabla de OID de directiva de emisión en la sección Configuración de una plantilla de certificado de este artículo.

    Tenga en cuenta que es posible elegir una combinación de modelos de confianza de TPM. En este caso, la entidad de certificación aceptará cualquiera de los métodos de atestación, y los OID de la directiva de emisión reflejarán todos los métodos de atestación que se realicen correctamente.

  2. Configure la plantilla de certificado: la configuración de la plantilla de certificado se describe en la sección Detalles de implementación de este artículo. En este artículo no se explica cómo se asigna esta plantilla de certificado a la entidad de certificación empresarial ni cómo se proporciona acceso de inscripción a un grupo de usuarios. Para obtener más información, vea Lista de comprobación: Configurar entidades de certificación para emitir y administrar certificados.

  3. Configuración de la entidad de certificación para el modelo de confianza de TPM

    1. Confianza basada en las credenciales de usuario: no se requiere ninguna configuración específica.

    2. Confianza basada en EKCert: el administrador debe obtener los certificados de cadena de EKCert de los fabricantes de TPM e importarlos a dos nuevos almacenes de certificados, creados por el administrador, en la CA que realiza la atestación de claves de TPM. Para más información, vea la sección Configuración de CA de este artículo.

    3. Confianza basada en EKPub: el administrador debe obtener la EKPub para cada dispositivo que necesitará certificados atestados por TPM y agregarlos a la lista de EKPubs permitidas. Para más información, vea la sección Configuración de CA de este artículo.

    Nota

    • Esta funcionalidad necesita Windows 8.1 o Windows Server 2012 R2.
    • No se admite la atestación de claves de TPM para KSP de tarjeta inteligente de terceros. Se debe usar el KSP del proveedor criptográfico de la plataforma Microsoft.
    • La atestación de claves de TPM solo funciona para las claves RSA.
    • No se admite la atestación de claves de TPM para una CA independiente.
    • La atestación de claves de TPM no admite el procesamiento de certificados no persistentes.

Detalles de implementación

Configuración de una plantilla de certificado

Para configurar la plantilla de certificado para la atestación de claves de TPM, siga estos pasos de configuración:

  1. Pestaña Compatibilidad

    En la sección Configuración de compatibilidad:

    • Asegúrese de que Windows Server 2012 R2 esté seleccionado para la Entidad de certificación.

    • Asegúrese de que Windows 8.1/Windows Server 2012 R2 está seleccionado para el Destinatario del certificado.

    Screenshot that highlights the Certificate recipient list.

  2. Pestaña Criptografía

    Asegúrese de que el Proveedor de almacenamiento de claves está seleccionado para la Categoría de proveedor y de que RSA está seleccionado para el Nombre de algoritmo. Asegúrese de que la opción Las solicitudes deben usar uno de los siguientes proveedores está seleccionada y de que la opción Proveedor criptográfico de la plataforma Microsoft está seleccionada en Proveedores.

    Screenshot that highlights the Provider Category and Algorithm name lists.

  3. Pestaña Atestación de la clave

    Se trata de una nueva pestaña para Windows Server 2012 R2:

    Screenshot that shows the Key Attestation tab.

    Elija un modo de atestación entre las tres opciones posibles.

    Screenshot that shows the attestation modes.

    • Ninguno: significa que no se debe usar la atestación de claves.

    • Necesaria, de ser posible para el cliente: permite que los usuarios de un dispositivo que no admite la atestación de claves de TPM todavía se inscriban para ese certificado. Los usuarios que pueden realizar la atestación se distinguirán con un OID de directiva de emisión especial. Es posible que algunos dispositivos no puedan realizar la atestación debido a un TPM antiguo que no admite la atestación de claves o a que el dispositivo no tiene ningún TPM.

    • Obligatorio: el cliente debe realizar la atestación de claves de TPM; de lo contrario, se producirá un error en la solicitud de certificado.

    A continuación, elija el modelo de confianza de TPM. Existen tres opciones:

    Screenshot that shows the TPM trust models.

    • Credenciales de usuario: permitir que un usuario de autenticación garantice un TPM válido mediante la definición de sus credenciales de dominio.

    • Certificado de aprobación: la EKCert del dispositivo debe validarse mediante certificados de entidad de certificación intermedia de TPM administrados por el administrador en un certificado de CA raíz administrado por el administrador. Si elige esta opción, debe configurar almacenes de certificados EKCA y EKRoot en la CA emisora, como se describe en la sección Configuración de CA de este artículo.

    • Clave de aprobación: la EKPub del dispositivo debe aparecer en la lista administrada por el administrador de PKI. Esta opción ofrece el nivel de garantía más alto, pero requiere más esfuerzo administrativo. Si elige esta opción, debe configurar una lista de EKPub en la entidad de certificación emisora, como se describe en la sección Configuración de CA de este artículo.

    Por último, decida qué directiva de emisión se mostrará en el certificado emitido. De forma predeterminada, cada tipo de cumplimiento tiene un identificador de objeto asociado (OID) que se insertará en el certificado si pasa ese tipo de cumplimiento, como se describe en la tabla siguiente. Tenga en cuenta que es posible elegir una combinación de métodos de cumplimiento. En este caso, la entidad de certificación aceptará cualquiera de los métodos de atestación, y el OID de la directiva de emisión reflejará todos los métodos de atestación que se realicen correctamente.

    OID de la directiva de emisión

    OID Tipo de atestación de la clave Descripción Nivel de garantía
    1.3.6.1.4.1.311.21.30 EK "EK comprobada": para obtener una lista de EK administrada por el administrador Alto
    1.3.6.1.4.1.311.21.31 Certificado de aprobación "Certificado comprobado de EK": cuando se valida la cadena de certificados EK Media
    1.3.6.1.4.1.311.21.32 Credenciales de usuario "EK de confianza en uso": para EK atestada por el usuario Bajo

    Los OID se insertarán en el certificado emitido si se selecciona Incluir directivas de emisión (la configuración predeterminada).

    TPM Key attestation

    Sugerencia

    Un posible uso de tener el OID presente en el certificado es limitar el acceso a VPN o la conexión de red inalámbrica a determinados dispositivos. Por ejemplo, la directiva de acceso podría permitir la conexión (o el acceso a una VLAN diferente) si el OID 1.3.6.1.4.1.311.21.30 está presente en el certificado. Esto le permite limitar el acceso a los dispositivos cuya EK de TPM está presente en la lista de EKPUB.

Configuración de CA

  1. Configuración de almacenes de certificados EKCA y EKROOT en una CA emisora

    Si elige Certificado de aprobación para la configuración de la plantilla, realice los pasos de configuración siguientes:

    1. Use Windows PowerShell para crear dos almacenes de certificados nuevos en el servidor de la entidad de certificación (CA) que realizará la atestación de claves de TPM.

    2. Obtenga los certificados de la entidad de certificación intermedia y raíz de los fabricantes que desea permitir en el entorno empresarial. Esos certificados deben importarse en los almacenes de certificados creados anteriormente (EKCA y EKROOT) según proceda.

    El siguiente script de Windows PowerShell realiza ambos pasos. En el ejemplo siguiente, el fabricante de TPM Fabrikam ha proporcionado un certificado raíz FabrikamRoot.cer y un certificado de CA emisora Fabrikamca.cer.

    PS C:>\cd cert:
    PS Cert:\>cd .\\LocalMachine
    PS Cert:\LocalMachine> new-item EKROOT
    PS Cert:\ LocalMachine> new-item EKCA
    PS Cert:\EKCA\copy FabrikamCa.cer .\EKCA
    PS Cert:\EKROOT\copy FabrikamRoot.cer .\EKROOT
    
  2. Configuración de la lista de EKPUB si se usa el tipo de atestación EK

    Si elige Clave de aprobación en la configuración de la plantilla, los pasos de configuración siguientes son crear y configurar una carpeta en la CA emisora, que contiene archivos de 0 bytes, cada uno con nombre para el hash SHA-2 de una EK permitida. Esta carpeta actúa como una "lista de permitidos" de los dispositivos que pueden obtener certificados atestiguados por claves de TPM. Dado que debe agregar manualmente la EKPUB para cada dispositivo que requiera un certificado atestiguado, proporciona a la empresa una garantía de los dispositivos que están autorizados para obtener certificados atestados con clave de TPM. La configuración de una entidad de certificación para este modo requiere dos pasos:

    1. Cree la entrada del Registro EndorsementKeyListDirectories: use la herramienta de línea de comandos Certutil para configurar las ubicaciones de carpetas donde se definen EKpubs de confianza, tal como se describe en la tabla siguiente.

      Operación Sintaxis de comandos
      Adición de ubicaciones de carpetas certutil.exe -setreg CA\EndorsementKeyListDirectories +"<folder>"
      Eliminación de ubicaciones de carpetas certutil.exe -setreg CA\EndorsementKeyListDirectories -"<folder>"

      El comando EndorsementKeyListDirectories en certutil es una configuración del Registro como se describe en la tabla siguiente.

      Nombre del valor Tipo Datos
      EndorsementKeyListDirectories REG_MULTI_SZ <Ruta de acceso LOCAL o UNC a las listas de permitidos de EKPUB>

      Ejemplo:

      \\blueCA.contoso.com\ekpub

      \\bluecluster1.contoso.com\ekpub

      D:\ekpub

      HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<Nombre saneado de la CA>

      EndorsementKeyListDirectories contendrá una lista de rutas de acceso UNC o del sistema de archivos local, cada una de las cuales apunta a una carpeta a la que la entidad de certificación tiene acceso de lectura. Cada carpeta puede contener cero o más entradas de lista de permitidos, donde cada entrada es un archivo con un nombre que es el hash SHA-2 de una EKpub de confianza, sin extensión de archivo. La creación o edición de esta configuración de clave del Registro requiere un reinicio de la entidad de certificación, al igual que las opciones de configuración del Registro de CA existente. Sin embargo, las modificaciones en las opciones de configuración surtirán efecto inmediatamente y no será necesario reiniciar la entidad de certificación.

      Importante

      Proteja las carpetas de la lista contra la manipulación y el acceso no autorizado mediante la configuración de permisos para que solo los administradores autorizados tengan acceso de lectura y escritura. La cuenta de equipo de la entidad de certificación requiere acceso de solo lectura.

    2. Rellene la lista de EKPUB: use el siguiente cmdlet de Windows PowerShell para obtener el hash de clave pública de la EK de TPM mediante Windows PowerShell en cada dispositivo y, a continuación, envíe este hash de clave pública a la CA y almacénelo en la carpeta EKPubList.

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      PS C:>$b=new-item $a.PublicKeyHash -ItemType file
      

Solución de problemas

Los campos de atestación de claves no están disponibles en una plantilla de certificado

Los campos de atestación de claves no están disponibles si la configuración de la plantilla no cumple los requisitos de atestación. Estas son las razones comunes:

  1. Las opciones de compatibilidad no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:

    1. Entidad de certificación: Windows Server 2012 R2

    2. Destinatario del certificado: Windows 8.1/Windows Server 2012 R2

  2. Las opciones de criptografía no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:

    1. Categoría de proveedor: proveedor de almacenamiento de claves

    2. Nombre de algoritmo: RSA

    3. Proveedores: Proveedor criptográfico de la plataforma Microsoft

  3. Las opciones de control de solicitudes no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:

    1. La opción Permitir que la clave privada se pueda exportar no debe estar seleccionada.

    2. La opción Archivar clave privada de cifrado de sujeto no debe estar seleccionada.

Comprobación del dispositivo de TPM para la atestación

Use el cmdlet de Windows PowerShell Confirm-CAEndorsementKeyInfo para comprobar que un dispositivo de TPM específico es de confianza para la atestación por entidades de certificación. Hay dos opciones: una para comprobar EKCert y la otra para comprobar una EKPub. El cmdlet se ejecuta localmente en una entidad de certificación o en CA remotas mediante la comunicación remota con Windows PowerShell.

  1. Para comprobar la confianza de una EKPub, realice los dos pasos siguientes:

    1. Extraiga la EKPub del equipo cliente: la EKPub se puede extraer de un equipo cliente a través de Get-TpmEndorsementKeyInfo. Desde un símbolo del sistema con privilegios elevados, ejecute lo siguiente:

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      
    2. Compruebe la confianza de una EKCert en un equipo de CA: copie la cadena extraída (el hash SHA-2 de la EKPub) en el servidor (por ejemplo, por correo electrónico) y pásela al cmdlet Confirm-CAEndorsementKeyInfo. Tenga en cuenta que este parámetro debe tener 64 caracteres.

      Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
      
  2. Para comprobar la confianza de una EKCert, realice los dos pasos siguientes:

    1. Extraiga la EKCert del equipo cliente: la EKCert se puede extraer de un equipo cliente a través de Get-TpmEndorsementKeyInfo. Desde un símbolo del sistema con privilegios elevados, ejecute lo siguiente:

      PS C:>\$a=Get-TpmEndorsementKeyInfo
      PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cer
      
    2. Compruebe la confianza de una EKCert en un equipo de CA: copie la EKCert extraída (EkCert.cer) en la entidad de certificación (por ejemplo, por correo electrónico o xcopy). Por ejemplo, si copia el archivo de certificado de la carpeta "c:\diagnose" en el servidor de CA, ejecute lo siguiente para finalizar la comprobación:

      PS C:>new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "c:\diagnose\myEKcert.cer" | Confirm-CAEndorsementKeyInfo
      

Vea también

Información general sobre la tecnología del Módulo de plataforma seguraRecurso externo: Módulo de plataforma segura