Atestación de clave de TPM
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:
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.
Una CA (Entidad de certificación) establece la confianza en el TPM a través de la EKPub o el EKCert.
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.
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:
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.
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.
Configuración de la entidad de certificación para el modelo de confianza de TPM
Confianza basada en las credenciales de usuario: no se requiere ninguna configuración específica.
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.
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:
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.
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.
Pestaña Atestación de la clave
Se trata de una nueva pestaña para Windows Server 2012 R2:
Elija un modo de atestación entre las tres opciones posibles.
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:
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).
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
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:
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.
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
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:
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.
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:
Las opciones de compatibilidad no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:
Entidad de certificación: Windows Server 2012 R2
Destinatario del certificado: Windows 8.1/Windows Server 2012 R2
Las opciones de criptografía no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:
Categoría de proveedor: proveedor de almacenamiento de claves
Nombre de algoritmo: RSA
Proveedores: Proveedor criptográfico de la plataforma Microsoft
Las opciones de control de solicitudes no están configuradas correctamente. Asegúrese de que estén configuradas de la siguiente manera:
La opción Permitir que la clave privada se pueda exportar no debe estar seleccionada.
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.
Para comprobar la confianza de una EKPub, realice los dos pasos siguientes:
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
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>
Para comprobar la confianza de una EKCert, realice los dos pasos siguientes:
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
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