Desarrollo de aplicaciones mediante Always Encrypted con enclaves seguros

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores: solo Windows Azure SQL Database

Always Encrypted con enclaves seguros amplía Always Encrypted para habilitar funcionalidades más completas de las consultas de la aplicación en columnas de bases de datos confidenciales cifradas. Aprovecha las tecnologías de enclaves seguros para permitir que el ejecutor de las consultas en Motor de base de datos delegue los cálculos de las columnas cifradas en un enclave seguro dentro del proceso de Motor de base de datos.

Requisitos previos

El entorno debe cumplir los siguientes requisitos para admitir Always Encrypted con enclaves seguros.

  • La instancia de SQL Server o el servidor de bases de datos en Azure SQL Database deben estar correctamente configurados para admitir enclaves y atestación, si procede o se requiere. Para obtener más información, vea Configuración del enclave seguro y la atestación.
  • Asegúrese de que su solicitud:
    • Usa una versión de controlador de cliente compatible con Always Encrypted con enclaves seguros.

    • Habilita la opción Always Encrypted al conectarse a la base de datos.

    • Establece un protocolo de atestación, que determina si el controlador cliente debe atestar el enclave antes de enviar consultas de enclave y, en caso afirmativo, qué servicio de atestación debe usar. Las versiones más recientes de los controladores admiten los siguientes protocolos de atestación:

      • Microsoft Azure Attestation: aplica la atestación mediante Microsoft Azure Attestation.
      • Servicio de protección de host: aplica la certificación mediante el servicio de protección de host.
      • Ninguno - permite usar enclaves sin atestación.

      La siguiente tabla especifica los protocolos de atestación válidos para determinados productos SQL y tecnologías de enclave:

      Producto Tecnología de enclave Protocolos de atestación admitidos
      SQL Server 2019 (15.x) y posterior Enclaves de VBS Servicio de protección de host, Ninguno
      Azure SQL Database Enclaves SGX (en bases de datos de la serie DC) Microsoft Azure Attestation
      Azure SQL Database Enclaves de VBS Ninguno
    • Establece una URL de atestación válida para su entorno, si usa atestación.

Controladores cliente para Always Encrypted con enclaves seguros

Para desarrollar aplicaciones mediante Always Encrypted con enclaves seguros, necesita una versión del controlador de cliente de SQL que admita los enclaves seguros. El controlador de cliente desempeña un papel fundamental:

  • Antes de enviar una consulta que usa un enclave seguro a SQL Server o Azure SQL Database para su ejecución, el controlador inicia la atestación del enclave (si está configurado) para verificar que el enclave seguro es de confianza y puede usarse de forma segura para procesar datos confidenciales. Para obtener más información sobre la atestación, consulte Atestación de un enclave seguro.
  • El controlador cliente establece una sesión segura con el enclave negociando un secreto compartido.
  • El controlador usa el secreto compartido para cifrar las claves de cifrado de columna que el enclave necesitará para procesar la consulta y envía las claves a SQL Server, que las reenvía al enclave seguro que descifra las claves.
  • Por último, el controlador envía la consulta para su ejecución, lo que desencadena los cálculos dentro del enclave seguro.

Los siguientes controladores de cliente admiten Always Encrypted con enclaves seguros:

Consulte también