Always Encrypted versleutelt op kolomniveau in de client-driver, voordat data SQL Server bereikt. Een DBA met sysadmin-rechten ziet de data niet. Voor BSN, medisch dossier of betaalkaartdata is dit het juiste niveau van scheiding.
Deterministic versus randomized encryption
Deterministic produceert dezelfde ciphertext voor dezelfde plaintext. Equality-queries en index lookups blijven mogelijk, maar pattern analysis is theoretisch denkbaar. Randomized is veiliger maar laat geen joins, indexes of WHERE-clauses toe op de kolom. Per kolom de afweging maken.
Secure enclaves voor rich queries
Sinds SQL Server 2019 ondersteunt Always Encrypted with secure enclaves: queries als LIKE, range scans en sort op encrypted data via een vertrouwde uitvoeringsruimte (VBS enclaves of Intel SGX). Dit verbreedt de toepassing aanzienlijk maar vereist extra infrastructuur.
Key management: CMK en CEK
Column Master Key in een external store (Azure Key Vault, Windows Certificate Store, HSM). Column Encryption Key in de database, encrypted met de CMK. CEK roteren is een maintenance-taak. CMK roteren is een reëncryptie-traject.
Applicatie-impact
De applicatie-driver (.NET, JDBC, ODBC) moet Always Encrypted-aware zijn. Connection string krijgt Column Encryption Setting=Enabled. ORM's hebben soms specifieke configuratie nodig. Stored procedures met encrypted parameters moeten parameters expliciet typen.
Wanneer wel en wanneer niet
Voor kolommen die de DBA niet hoort te zien: BSN, salaris, medische diagnose, kaartnummer. Niet voor kolommen waarop u zware analytische queries draait, tenzij u secure enclaves heeft. Praktisch: voor de meeste klanten 5 tot 20 kolommen in de hele database.
Verwant: Freelance SQL DBA, SQL Server TDE.