VBS-capable hardware
OEM hardware configuration
Hypervisor protected code integrity (HVCI) compliant
En reposo
Cifrar datos inactivos cuando
se almacenan en archivos de
base de datos, archivos de
copia de seguridad, archivos
de registro, etc.
Los ejemplos incluyen:
Cifrado de base de datos
transparente (TDE) de SQL
Server
En uso
Proteger/cifrar datos
que está en uso durante el
cómputo
Primera solución en la
industria:
Always Encrypted
En tránsito
Cifrar los datos que fluyen
entre las aplicaciones y la base
Los ejemplos incluyen:
TLS
en uso
Columna
con datos
sensibles
Encriptado con Encriptado con
Column Encryption Key
(CEK)
Column Master Key
(CMK)
Almacenado en los metadatos de
la base de datos (de forma
encriptada)
Almacenado en un almacén de claves
externo:
• Almacén de claves de Azure
• Almacén de certificados de
Windows
• Módulo de seguridad de hardware
• un almacén de claves
personalizado
Param Encrypted
CEK Value
CMK Store
Provider Name
CMK Path
@Name AZURE_KEY_VAULT https://my.vault.a
zure.net:443/keys
/CMK1/b94d985
Param Encrypted
CEK Value
CMK Store
Provider Name
CMK Path
@SSN AZURE_KEY_VAULT https://my.vault.a
zure.net:443/keys
/CMK1/b94d985
EXEC sp_execute_sql
N'SELECT Name FROM Patients WHERE SSN = @SSN'
, @params = N'@SSN VARCHAR(11)', @SSN=0x7ff6a54ae6d
exec sp_describe_parameter_encryption
@params = N'@SSN VARCHAR(11)'
, @tsql = N'SELECT Name FROM Patients WHERE SSN =
@SSN'
Name
0x19cae706fbd9
Name
John Smith
Result set (plaintext)
using (SqlCommand cmd = new SqlCommand(
"SELECT Name FROM Patients WHERE SSN =
@SSN“
, conn))
{
cmd.Parameters.Add(new SqlParameter(
"@SSN", SqlDbType.VarChar, 11).Value =
"111-22-3333");
SqlDataReader reader =
cmd.ExecuteReader();
}
Cliente
SQL Server
o Azure SQL Database
Name SSN
0x19cae7…0x7ff6a54…
0xfbd9ae… 0x654ae6…
Patients table
CEK
CMK Store
CMK
Sistema operativo
Aplicación
Hipervisor
Hardware
Aplicación
Código
Datos
mientras se conservan las
consultas enriquecidas y se
proporciona cifrado en contexto
Plaintext
Enclave
Enclave
Plaintext
Servicio de atestación
Enclave
Plaintext
Laboratorio Poc
Laboratorio Poc
Producción
Confianza
Confianza
Windows
Enclave
Servicio de guardián de host
HGS
La verificación del lado del cliente pasa si:
• El certificado de estado del host se ha firmado
con una clave privada correspondiente a la clave
pública HGS.
• El informe de enclave se ha firmado con una
clave privada correspondiente a la clave pública
VBS del host en el certificado de mantenimiento
del host.
• El informe de enclave contiene una firma de
código de enclave específica.
• El informe de enclave indica que el enclave no es
un enclave de depuración.
https://aka.ms/AlwaysEncryptedwithSecureEnclaves
https://blogs.msdn.Microsoft.com/sqlsecurity/Tag/Always-Encrypted/
AEwithEnclaves@microsoft.com

Introducción a conceptos de SQL Server Secure Enclaves

  • 6.
    VBS-capable hardware OEM hardwareconfiguration Hypervisor protected code integrity (HVCI) compliant
  • 11.
    En reposo Cifrar datosinactivos cuando se almacenan en archivos de base de datos, archivos de copia de seguridad, archivos de registro, etc. Los ejemplos incluyen: Cifrado de base de datos transparente (TDE) de SQL Server En uso Proteger/cifrar datos que está en uso durante el cómputo Primera solución en la industria: Always Encrypted En tránsito Cifrar los datos que fluyen entre las aplicaciones y la base Los ejemplos incluyen: TLS
  • 13.
  • 14.
    Columna con datos sensibles Encriptado conEncriptado con Column Encryption Key (CEK) Column Master Key (CMK) Almacenado en los metadatos de la base de datos (de forma encriptada) Almacenado en un almacén de claves externo: • Almacén de claves de Azure • Almacén de certificados de Windows • Módulo de seguridad de hardware • un almacén de claves personalizado
  • 15.
    Param Encrypted CEK Value CMKStore Provider Name CMK Path @Name AZURE_KEY_VAULT https://my.vault.a zure.net:443/keys /CMK1/b94d985 Param Encrypted CEK Value CMK Store Provider Name CMK Path @SSN AZURE_KEY_VAULT https://my.vault.a zure.net:443/keys /CMK1/b94d985 EXEC sp_execute_sql N'SELECT Name FROM Patients WHERE SSN = @SSN' , @params = N'@SSN VARCHAR(11)', @SSN=0x7ff6a54ae6d exec sp_describe_parameter_encryption @params = N'@SSN VARCHAR(11)' , @tsql = N'SELECT Name FROM Patients WHERE SSN = @SSN' Name 0x19cae706fbd9 Name John Smith Result set (plaintext) using (SqlCommand cmd = new SqlCommand( "SELECT Name FROM Patients WHERE SSN = @SSN“ , conn)) { cmd.Parameters.Add(new SqlParameter( "@SSN", SqlDbType.VarChar, 11).Value = "111-22-3333"); SqlDataReader reader = cmd.ExecuteReader(); } Cliente SQL Server o Azure SQL Database Name SSN 0x19cae7…0x7ff6a54… 0xfbd9ae… 0x654ae6… Patients table CEK CMK Store CMK
  • 24.
  • 26.
    mientras se conservanlas consultas enriquecidas y se proporciona cifrado en contexto Plaintext Enclave
  • 27.
  • 29.
  • 33.
  • 34.
  • 37.
    Windows Enclave Servicio de guardiánde host HGS La verificación del lado del cliente pasa si: • El certificado de estado del host se ha firmado con una clave privada correspondiente a la clave pública HGS. • El informe de enclave se ha firmado con una clave privada correspondiente a la clave pública VBS del host en el certificado de mantenimiento del host. • El informe de enclave contiene una firma de código de enclave específica. • El informe de enclave indica que el enclave no es un enclave de depuración.
  • 39.