Desarrollo de aplicaciones mediante Always Encrypted con enclaves seguros
Se aplica a: SQL Server 2019 (15.x) y versiones posteriores: solo Windows Base de datos de Azure SQL
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.
- Si usa SQL Server y el Servicio de protección de host (HGS), vea Determinación y uso compartido de la dirección URL de atestación de HGS.
- Si usa Azure SQL Database con enclaves Intel SGX y Microsoft Azure Attestation, vea Determinar la URL de atestación para su directiva de 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:
Proveedor de datos de Microsoft .NET para SQL Server en .NET Framework 4.6 o posterior, y .NET Core 2.1 o posterior. Si quiere usar enclaves SBV sin atestación, se requiere la versión 4.1 o posterior, que es compatible con .NET Framework 4.6.1 o superior y .NET Core 3.1.
- Para más información, vea Uso de Always Encrypted con el proveedor de datos Microsoft .NET Framework para SQL Server.
- Para seguir un tutorial paso a paso, consulte Tutorial: Desarrolle una aplicación de .NET mediante Always Encrypted con enclaves seguros.
- Además, vea Ejemplo que muestra el uso del proveedor de Azure Key Vault con Always Encrypted habilitado con enclaves seguros.
Microsoft ODBC Driver for SQL Server, versión 17.4 o superior. Si quiere usar enclaves SBV sin atestación, se requiere la versión 18.1 o superior.
- Para obtener más información, vea Uso de Always Encrypted con ODBC Driver.
- Para obtener información sobre cómo habilitar los cálculos de enclave para una conexión de base de datos mediante ODBC, vea la sección Habilitación de Always Encrypted con enclaves seguros.
Microsoft JDBC Driver para SQL Server, versión 8.2 o superior. Si quiere usar enclaves SBV sin atestación, se requiere la versión 12.2 o superior.
- Para obtener más información, vea Uso de Always Encrypted con enclaves seguros con el controlador JDBC.
Proveedor de datos .NET Framework para SQL Server en .NET Framework 4.7.2 o superior.
- Para obtener más información, consulte Uso de Always Encrypted con el proveedor de datos .NET Framework para SQL Server.
- Para ver un tutorial detallado, vea Tutorial: Desarrollar una aplicación .NET Framework mediante Always Encrypted con enclaves seguros
Nota:
No se recomienda usar el proveedor de datos .NET Framework para SQL Server (System.Data.SqlClient) para el nuevo desarrollo. Para obtener más información, vea System.Data.SqlClient.