Compartir vía


Versión de directivas de atestación 1.0

Los propietarios de instancias pueden usar la directiva de Azure Attestation para definir lo que se tiene que validar durante el flujo de atestación. En este artículo se presentan los trabajos del servicio de atestación y el motor de directivas. Cada tipo de atestación tiene su propia directiva de atestación. La gramática y el procesamiento admitidos son muy similares.

Versión de directiva 1.0

La versión mínima de la directiva admitida por el servicio es la versión 1.0.

A diagram that shows Azure Attestation using policy version 1.0.

El flujo del servicio de atestación es el siguiente:

  • La plataforma envía la evidencia de atestación en la llamada de atestación al servicio de atestación.
  • El servicio de atestación analiza la evidencia y crea una lista de notificaciones que se usa en la evaluación de atestación. Estas notificaciones se clasifican lógicamente como conjuntos de notificaciones entrantes.
  • La directiva de atestación cargada se usa para evaluar la evidencia sobre las reglas creadas en la directiva de atestación.

La versión de directiva 1.0 tiene tres segmentos:

  • version: El número de versión de la gramática que se sigue.
  • authorizationrules: Una colección de las reglas de notificación que se comprobarán en primer lugar para determinar si la atestación debe continuar con issuancerules. Use esta sección para filtrar las llamadas que no requieran que se apliquen las reglas de emisión. No se puede emitir ninguna notificación desde esta sección al token de respuesta. Estas reglas se pueden usar para provocar un error en la atestación.
  • issuancerules: Colección de las reglas de notificación que se evalúan para agregar más información al resultado de la atestación tal y como se definió en la directiva. Las reglas de notificación se aplican en el orden en el que se definen. También son opcionales. Estas reglas se pueden usar para agregar al conjunto de notificaciones salientes y al token de respuesta. Estas reglas no se pueden usar para provocar un error en la atestación.

Las notificaciones siguientes son compatibles con la versión 1.0 de la directiva como parte de las notificaciones entrantes.

Atestación de TPM

Use estas notificaciones para definir reglas de autorización en una directiva de atestación del Módulo de plataforma segura (TPM):

  • aikValidated: Valor booleano que contiene la información de si el certificado de la clave de identidad de atestación (AIK) se ha validado o no.
  • aikPubHash: Cadena que contiene la clave pública de AIK en base64 (SHA256) en formato DER.
  • tpmVersion: valor entero que contiene la versión principal de TPM.
  • secureBootEnabled: Valor booleano que indica si está habilitado el arranque seguro.
  • iommuEnabled: Valor booleano que indica si está habilitada la unidad de administración de memoria de entrada y salida.
  • bootDebuggingDisabled: Valor booleano que indica si está deshabilitada la depuración de arranque.
  • notSafeMode: valor booleano que indica si Windows no se está ejecutando en modo seguro.
  • notWinPE: Valor booleano que indica si Windows no se está ejecutando en modo WinPE.
  • vbsEnabled: Valor booleano que indica si la seguridad basada en virtualización (VBS) está habilitada.
  • vbsReportPresent: Valor booleano que indica si hay disponible un informe de enclave de VBS.

Atestación de VBS

Use las siguientes notificaciones para definir reglas de autorización en una directiva de atestación de VBS:

  • enclaveAuthorId: valor de cadena que contiene el valor codificado en Base64Url del id. de creador del enclave. Es el identificador del creador del módulo principal del enclave.
  • enclaveImageId: valor de cadena que contiene el valor codificado en Base64Url del id. de imagen del enclave. Es el identificador de la imagen del módulo principal del enclave.
  • enclaveOwnerId: valor de cadena que contiene el valor codificado en Base64Url del id. de propietario del enclave. Es el identificador del propietario del enclave.
  • enclaveFamilyId: valor de cadena que contiene el valor codificado en Base64Url del id. de familia del enclave. Es el identificador de la familia del módulo principal del enclave.
  • enclaveSvn: valor entero que contiene el número de versión de seguridad del módulo principal del enclave.
  • enclavePlatformSvn: valor entero que contiene el número de versión de seguridad de la plataforma que hospeda el enclave.
  • enclaveFlags: valor entero que contiene las marcas que describen la directiva de tiempo de ejecución del enclave.

Directivas de ejemplo para varios tipos de atestación

Directiva de ejemplo para TPM:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};