Entwickeln von Anwendungen mithilfe von Always Encrypted mit Secure Enclaves

Gilt für: SQL Server 2019 (15.x) und höhere Versionen in der 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, um Always Encrypted mit sicheren Enklaven zu unterstützen.

  • Ihre SQL Server-Instanz oder Ihr Datenbankserver in Azure SQL-Datenbank müssen, falls zutreffend/erforderlich, korrekt für Enklaven und Attestierung konfiguriert sein. Weitere Informationen finden Sie unter Einrichten der Secure Enclave und Attestierung.
  • Stellen Sie sicher, dass Ihre Anwendung:
    • Verwendet eine Version des Clienttreibers, die Always Encrypted mit sicheren Enklaven unterstützt.

    • 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-Enklaven Host-Überwachungsdienst, Keine
      Azure SQL-Datenbank SGX-Enklaven (in Datenbanken der DC-Serie) Microsoft Azure-Nachweis
      Azure SQL-Datenbank VBS-Enklaven Keine
    • Legt eine Attestierungs-URL fest, die für Ihre Umgebung gültig ist, wenn Sie die Attestierung verwenden.

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: