Administración de identidades de hardware de confianza
El servicio Trusted Hardware Identity Management controla la administración de caché de certificados de todos los entornos de ejecución de confianza (TEE) que residen en Azure. También proporciona información de base de computación de confianza (TCB) para aplicar una línea de base mínima para las soluciones de atestación.
Interacciones de atestación y Trusted Hardware Identity Management
Trusted Hardware Identity Management define la línea de base de seguridad de Azure para los nodos de computación confidencial de Azure (ACC) y almacena en caché la garantía de los proveedores de TEE. Los servicios de atestación y los nodos de ACC pueden usar la información almacenada en caché para validar las TEE. En el diagrama siguiente se muestran las interacciones entre un servicio de atestación o un nodo, Trusted Hardware Identity Management y un host de enclave.
Preguntas más frecuentes
¿Cómo usar Trusted Hardware Identity Management con procesadores Intel?
Para generar ofertas de Intel SGX e Intel TDX, Intel Quote Generation Library (QGL) necesita acceso a la garantía de validación o generación de ofertas. Toda esta garantía o partes de ella se deben capturar desde Trusted Hardware Identity Management. Puede capturarlo mediante Intel Quote Provider Library (QPL) o la biblioteca cliente de Azure Data Center Attestation Primitives (DCAP).
La fecha de "próxima actualización" de la API del servicio de almacenamiento en caché interno de Azure, que usa Azure Attestation, parece que no está actualizada. ¿Sigue en funcionamiento y se puede usar?
El campo tcbinfo
contiene la información de TCB. El servicio Trusted Hardware Identity Management proporciona información de tcbinfo
anterior de manera predeterminada. La actualización a la información de tcbinfo
más reciente de Intel provocaría errores de atestación para los clientes que no hayan migrado al SDK de Intel más reciente, así como interrupciones.
Sin embargo, Open Enclave SDK y Azure Attestation no examinan la fecha de nextUpdate
y pasarán la atestación.
¿Qué es la biblioteca de Azure DCAP?
La biblioteca de Azure Data Center Attestation Primitives (DCAP), un reemplazo de Intel Quote Provider Library (QPL), captura la garantía de generación y validación de ofertas directamente del servicio Trusted Hardware Identity Management. La captura de material de garantía directamente del servicio Trusted Hardware Identity Management garantiza que todos los hosts de Azure tengan garantías disponibles en la nube de Azure para reducir las dependencias externas. La versión que se recomienda actualmente de la biblioteca DCAP es la 1.11.2.
¿Dónde puedo descargar la biblioteca de Azure DCAP más reciente?
Use los vínculos siguientes para descargar los paquetes:
Para versiones más recientes de Ubuntu (por ejemplo, Ubuntu 22.04), debe usar el Intel QPL.
¿Por qué Trusted Hardware Identity Management e Intel tienen líneas de base diferentes?
Trusted Hardware Identity Management e Intel proporcionan diferentes niveles de línea de base de la base de computación de confianza. Cuando los clientes asumen que Intel tiene las líneas de base más recientes, deben asegurarse de que se cumplen todos los requisitos. Este enfoque puede provocar una interrupción si los clientes no han actualizado a los requisitos especificados.
Trusted Hardware Identity Management adopta un enfoque más lento para actualizar la línea de base de TCB para que los clientes puedan hacer los cambios necesarios a su propio ritmo. Aunque este enfoque proporciona una línea de base de TCB anterior, los clientes no experimentarán una interrupción si no han cumplido los requisitos de la nueva línea de base de TCB. Este es el motivo por el que la línea de base de TCB de Trusted Hardware Identity Management es una versión diferente de la línea de base de Intel. Queremos capacitar a los clientes para que cumplan los requisitos de la nueva línea de base de TCB a su ritmo, en lugar de obligarlos a actualizar y provocar una interrupción que requeriría volver a priorizar las series de tareas.
Con los procesadores Intel Xeon E, puedo obtener mis certificados directamente desde Intel PCS. ¿Por qué, con procesadores escalables Intel Xeon a partir de la 4ª generación, necesito obtener los certificados de Administración de identidades de hardware de confianza? ¿Y cómo puedo capturar esos certificados?
A partir de la 4ª generación de procesadores escalables Intel® Xeon®, Azure realiza un registro indirecto en el servicio de registro de Intel mediante el manifiesto de plataforma y almacena el certificado PCK resultante en el servicio de Administración de identidades de hardware de confianza (THIM) que Azure usa el registro indirecto, ya que el servicio de registro de Intel no almacenará claves raíz para una plataforma en este caso y esto se refleja mediante false
en la marca CachedKeys
en certificados PCK.
Como se usa el registro indirecto, toda la comunicación siguiente con PCS Intel requeriría el manifiesto de plataforma, que Azure no proporciona a las máquinas virtuales (VM).
En su lugar, las máquinas virtuales tienen que ponerse en contacto con la THIM para recibir certificados PCK.
Para recuperar un certificado PCK, puede usar el Intel QPL o la biblioteca de Azure DCAP.
¿Cómo usar Intel QPL con Trusted Hardware Identity Management?
Es posible que los clientes quieran la flexibilidad de usar Intel QPL para interactuar con Trusted Hardware Identity Management sin tener que descargar otra dependencia de Microsoft (es decir, la biblioteca cliente de Azure DCAP). Los clientes que quieran usar Intel QPL con el servicio Trusted Hardware Identity Management deben ajustar el archivo de configuración de Intel QPL, sgx_default_qcnl.conf.
La garantía de generación o comprobación de ofertas usada para generar las ofertas de Intel SGX o Intel TDX se puede dividir en las siguientes opciones:
- El certificado PCK. Para recuperarlo, los clientes deben usar un punto de conexión de Trusted Hardware Identity Management.
- El resto del material de garantía de comprobación o generación de ofertas. Para recuperarlo, los clientes pueden usar un punto de conexión de Trusted Hardware Identity Management o un punto de conexión de Intel Provisioning Certification Service (PCS).
El archivo de configuración de Intel QPL (sgx_default_qcnl.conf) contiene tres claves para definir los puntos de conexión de garantías. La clave pccs_url
define el punto de conexión que se utiliza para recuperar los certificados PCK. La clave collateral_service
puede definir el punto de conexión que se utiliza para recuperar todas las demás garantías de comprobación o generación de ofertas. Si no se define la clave collateral_service
, se recupera toda la garantía de comprobación de ofertas desde el punto de conexión definido con la clave pccs_url
.
En la tabla siguiente, se muestra cómo se pueden establecer estas claves.
Nombre | Posibles puntos de conexión |
---|---|
pccs_url |
Punto de conexión de Trusted Hardware Identity Management: https://global.acccache.azure.net/sgx/certification/v3 . |
collateral_service |
Punto de conexión de Trusted Hardware Identity Management (https://global.acccache.azure.net/sgx/certification/v3 ) o punto de conexión Intel PCS. El archivo sgx_default_qcnl.conf siempre muestra el punto de conexión más actualizado de la clave collateral_service . |
El siguiente fragmento de código es de un ejemplo de un archivo de configuración de Intel QPL:
{
"pccs_url": "https://global.acccache.azure.net/sgx/certification/v3/",
"use_secure_cert": true,
"collateral_service": "https://global.acccache.azure.net/sgx/certification/v3/",
"pccs_api_version": "3.1",
"retry_times": 6,
"retry_delay": 5,
"local_pck_url": "http://169.254.169.254/metadata/THIM/sgx/certification/v3/",
"pck_cache_expire_hours": 24,
"verify_collateral_cache_expire_hours": 24,
"custom_request_options": {
"get_cert": {
"headers": {
"metadata": "true"
},
"params": {
"api-version": "2021-07-22-preview"
}
}
}
}
En los procedimientos siguientes se explica cómo cambiar el archivo de configuración de Intel QPL y activar los cambios.
En Windows
Haga los cambios en el archivo de configuración.
Asegúrese de que haya permisos de lectura para el archivo desde la siguiente ubicación del registro y clave o valor.
[HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL] "CONFIG_FILE"="<Full File Path>"
Reinicie el servicio AESMD. Por ejemplo, abra PowerShell como administrador y use los comandos siguientes:
Restart-Service -Name "AESMService" -ErrorAction Stop Get-Service -Name "AESMService"
En Linux
Haga los cambios en el archivo de configuración. Por ejemplo, puede usar Vim para los cambios mediante el siguiente comando:
sudo vim /etc/sgx_default_qcnl.conf
Reinicie el servicio AESMD. Abra cualquier terminal y ejecute los comandos siguientes:
sudo systemctl restart aesmd systemctl status aesmd
¿Cómo solicitar garantías en una máquina virtual confidencial?
Use el ejemplo siguiente en un invitado de máquina virtual confidencial (CVM), para solicitar garantías de AMD que incluya el certificado VCEK y la cadena de certificados. Para más información sobre estas garantías y su origen, consulte Certificado de clave de aprobación de chip con versiones (VCEK) y especificación de la interfaz de KDS.
Parámetros del identificador URI
GET "http://169.254.169.254/metadata/THIM/amd/certification"
Cuerpo de la solicitud
Nombre | Escribir | Description |
---|---|---|
Metadata |
Boolean | Si se establece en True , se permite devolver material de garantía. |
Solicitud de ejemplo
curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"
Respuestas
Nombre | Descripción |
---|---|
200 OK |
Muestra el material de garantía disponible en el cuerpo HTTP en formato JSON |
Other Status Codes |
Describe por qué se produjo un error en la operación |
Definiciones
Clave | Descripción |
---|---|
VcekCert |
Certificado X.509v3 tal y como se define en RFC 5280 |
tcbm |
Base de computación de confianza |
certificateChain |
Certificados AMD SEV Key (ASK) y AMD Root Key (ARK) |
¿Cómo solicitar garantías de AMD en un contenedor de Azure Kubernetes Service en un nodo de CVM?
Siga estos pasos para solicitar garantías de AMD en un contenedor confidencial:
Para empezar, cree un clúster de Azure Kubernetes Service (AKS) en un nodo de CVM o agregue un grupo de nodos de CVM a un clúster existente:
Cree un clúster de AKS en un nodo de CVM:
Cree un grupo de recursos en una de las regiones compatibles con CVM:
az group create --resource-group <RG_NAME> --location <LOCATION>
Cree un clúster de AKS con un nodo de CVM en el grupo de recursos:
az aks create --name <CLUSTER_NAME> --resource-group <RG_NAME> -l <LOCATION> --node-vm-size Standard_DC4as_v5 --nodepool-name <POOL_NAME> --node-count 1
Configure kubectl para conectarse al clúster:
az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME>
Agregue un grupo de nodos de CVM a un clúster de AKS existente:
az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1
Compruebe la conexión al clúster con el comando
kubectl get
. Este comando devuelve una lista de los nodos del clúster.kubectl get nodes
En el ejemplo de salida siguiente se muestra el nodo único que creó en los pasos anteriores. Asegúrese de que el estado del nodo es
Ready
.NOMBRE STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agente 6 m 44 s v1.12.8 Cree un archivo curl.yaml con el siguiente contenido. Define un trabajo que ejecuta un contenedor curl para capturar la garantía de AMD del punto de conexión de Trusted Hardware Identity Management. Para más información sobre los trabajos de Kubernetes, consulte la documentación de Kubernetes.
apiVersion: batch/v1 kind: Job metadata: name: curl spec: template: metadata: labels: app: curl spec: nodeSelector: kubernetes.azure.com/security-type: ConfidentialVM containers: - name: curlcontainer image: alpine/curl:3.14 imagePullPolicy: IfNotPresent args: ["-H", "Metadata:true", "http://169.254.169.254/metadata/THIM/amd/certification"] restartPolicy: "Never"
El archivo curl.yaml contiene los argumentos siguientes.
Nombre Escribir Description Metadata
Boolean Si se establece en True
, se permite devolver material de garantía.Aplique el archivo curl.yaml para ejecutar el trabajo:
kubectl apply -f curl.yaml
Compruebe el pod y espere a que complete su trabajo:
kubectl get pods
Este es un ejemplo de respuesta:
Denominación Ready Estado Reinicios Age Curl-w7nt8 0/1 Completado 0 72 s Ejecute el siguiente comando para obtener los registros de trabajo y comprobar que funciona. Una salida correcta debe incluir
vcekCert
,tcbm
ycertificateChain
.kubectl logs job/curl
Pasos siguientes
- Obtenga más información sobre la documentación de Azure Attestation.
- Obtenga más información sobre la computación confidencial de Azure.