Entwickeln von Anwendungen mithilfe von Always Encrypted mit Secure Enclaves
Gilt für: SQL Server 2019 (15.x) und höher – nur Windows Azure SQL-Datenbank
Always Encrypted mit Secure Enclaves ist eine Erweiterung von Always Encrypted, die umfangreichere Funktionen für Anwendungsabfragen in verschlüsselten vertraulichen Datenbankspalten bietet. Dabei kommen Secure Enclave-Technologien zum Einsatz, mit deren Hilfe der Abfrageexecutor in der Datenbank-Engine Berechnungen zu verschlüsselten Spalten an eine Secure Enclave im Datenbank-Engine-Prozess delegieren kann.
Voraussetzungen
Ihre Umgebung muss die folgenden Anforderungen erfüllen, damit das Ausführen von Anweisungen um Always Encrypted mit Secure Enclaves zu unterstütz wird.
- Die SQL Server-Instanz oder die Datenbank und der Server in Azure SQL-Datenbank müssen ordnungsgemäß für die Unterstützung von Enklaven und Nachweisen konfiguriert werden. Weitere Informationen finden Sie unter Einrichten von Secure Enclaves und Nachweisen.
- Verbessern Sie die Leistungsfähigkeit Ihrer Anwendung:
Verwendet eine Clienttreiberversion unterstützt Always Encrypted mit sicheren Enklaven.
Aktiviert Always Encrypted beim Herstellen einer Verbindung mit Ihrer Datenbank.
Legt ein Nachweisprotokoll fest, das bestimmt, ob der Clienttreiber die Enklave vor der Übermittlung von Enklavenabfragen nachweisen muss, und falls ja, welcher Nachweisdienst verwendet werden soll. Die neuesten Treiberversionen unterstützen die folgenden Nachweisprotokolle:
- Microsoft Azure Attestation – erzwingt den Nachweis mithilfe von Microsoft Azure Attestation.
- Host Guardian Service – erzwingt den Nachweis mithilfe des Host Guardian Service.
- Keine – ermöglicht die Verwendung von Enklaven ohne Nachweis.
Die folgende Tabelle gibt Nachweisprotokolle an, die für bestimmte SQL-Produkte und Enklaventechnologien gültig sind:
Produkt Enklave-Technologie Unterstützte Nachweisprotokolle SQL Server 2019 (15.x) und höher VBS-Enclaves Host-Überwachungsdienst, Keine Azure SQL-Datenbank SGX-Enklaven (DC-Reihendatenbanken) Microsoft Azure Attestation Azure SQL-Datenbank VBS-Enclaves Keine Legt eine Nachweis-URL fest, die für Ihre Umgebung gültig ist, wenn Sie einen Nachweis verwenden.
- Wenn Sie SQL Server und den Host-Überwachungsdienst verwenden, finden Sie weitere Informationen unter Ermitteln und Freigeben der HGS-Nachweis-URL.
- Wenn Sie Azure SQL-Datenbank mit Intel SGX Enklaven und Microsoft Azure Attestation verwenden, finden Sie weitere Informationen unter Ermitteln der Nachweis-URL für Ihre Nachweisrichtlinie.
Clienttreiber für Always Encrypted mit Secure Enclaves
Zum Entwickeln von Anwendungen mit Always Encrypted mit Secure Enclaves benötigen Sie eine Version des SQL-Clienttreibers, die Secure Enclaves unterstützt. Der Clienttreiber spielt die folgende wichtige Rolle:
- Bevor Sie eine Abfrage, für die eine sichere Enklave verwendet wird, zur Ausführung an SQL Server oder Azure SQL Datenbanken senden, initiiert der Treiber einen Enclave-Nachweis (sofern konfiguriert), um zu prüfen, ob die Secure Enclave vertrauenswürdig ist und ohne Risiko zur Verarbeitung vertraulicher Daten verwendet werden kann. Weitere Informationen zum Nachweis finden Sie unter Secure Enclave-Nachweis.
- Der Clienttreiber richtet eine sichere Sitzung mit der Enklave ein, indem er ein gemeinsames Geheimnis aushandelt.
- Der Treiber verwendet das gemeinsame Geheimnis zur Verschlüsselung der Spaltenverschlüsselungsschlüssel, die von der Enclave zum Verarbeiten der Abfrage benötigt werden, und sendet die Schlüssel an SQL Server, von wo aus sie zur Entschlüsselung an die Secure Enclave weitergeleitet werden.
- Abschließend sendet der Treiber die Abfrage zur Ausführung, wodurch in der Secure Enclave Berechnungen ausgelöst werden.
Always Encrypted mit Secure Enclaves wird von folgenden Clienttreibern unterstützt:
Microsoft .NET-Datenanbieter für SQL Server in .NET Framework 4.6 oder höher und .NET Core 2.1 oder höher Wenn Sie VBS-Enklaven ohne Nachweis verwenden möchten, ist Version 4.1 oder höher erforderlich, die mit .NET Framework 4.6.1 oder höher und .NET Core 3.1 kompatibel ist.
- Weitere Informationen finden Sie unter Verwenden von Always Encrypted mit dem Microsoft .NET-Datenanbieter für SQL Server.
- Ein Schritt-für-Schritt-Tutorial finden Sie unter Tutorial: Entwickeln einer .NET-Anwendung mithilfe von Always Encrypted mit Secure Enclaves.
- Weitere Informationen finden Sie unter Beispiel zur Veranschaulichung der Verwendung von Always Encrypted mit Secure Enclaves mit einem Azure Key Vault-Anbieter.
Microsoft ODBC Driver for SQL Server, Version 17.4 oder höher. Wenn Sie VBS-Enklaven ohne Nachweis verwenden möchten, ist mindestens Version 18.1 oder höher erforderlich.
- Weitere Informationen finden Sie unter Using Always Encrypted with the ODBC Driver (Verwenden von Always Encrypted mit dem ODBC-Treiber).
- Informationen zum Aktivieren von Enclave-Berechnungen für eine Datenbankverbindung mithilfe von ODBC finden Sie im Abschnitt Aktivieren von Always Encrypted mit Secure Enclaves.
Microsoft JDBC-Treiber für SQL Server, Version 8.2 oder höher Wenn Sie VBS-Enklaven ohne Nachweis verwenden möchten, ist mindestens Version 12.2 oder höher erforderlich.
- Weitere Informationen finden Sie unter Verwenden von Always Encrypted mit Secure Enclaves mit dem JDBC-Treiber.
.NET Framework-Datenanbieter für SQL Server in .NET Framework 4.7.2 oder höher.
- Weitere Informationen finden Sie unter Verwenden von Always Encrypted mit dem .NET Framework-Datenanbieter für SQL Server
- Ein Schritt-für-Schritt-Tutorial finden Sie unter Tutorial: Entwickeln einer .NET Framework-Anwendung mithilfe von Always Encrypted mit sicheren Enklaven.
Hinweis
Die Verwendung des .NET Framework-Datenanbieter für SQL Server (System.Data.SqlClient) wird für die neue Entwicklung nicht empfohlen. Weitere Informationen finden Sie unter System.Data.SqlClient.