Was ist der Unterschied zwischen Always Encrypted und Transparent Data Encryption in SQL Server 2016?

40

Während ich dies schreibe, warte ich noch auf die offizielle Veröffentlichung von SQL Server 2016, damit wir die Nützlichkeit der Funktion "Immer verschlüsselt" untersuchen können.

Ich möchte nur wissen, welche spezifischen Unterschiede zwischen Always Encrypted und der derzeit verfügbaren transparenten Datenverschlüsselung in SQL Server 2016 bestehen, damit wir die richtige Entscheidung für zukünftige Projekte treffen können.

RoastBeast
quelle
Bei der Einstellung Immer verschlüsselt verschlüsseln / entschlüsseln die Client-Treiber Daten, bevor sie auf SQL Server zugreifen, während TDE auf SQL Server selbst ausgeführt wird. IMHO TDE ist in Cloud / Secure-Rechenzentrumszenarien meistens nutzlos (scrollen Sie zu "TDE ist in der Cloud nicht sehr nützlich"). Wenn Sie sich für erweiterte Datensicherheit interessieren, sollten Sie auch Crypteron ausprobieren . Vollständige Offenlegung: Ich arbeite dort
DeepSpace101

Antworten:

48

Nachteile der transparenten Datenverschlüsselung im Vergleich zu "Immer verschlüsselt":

  • Schützt nur Daten im Ruhezustand - Backups und Datendateien sind "sicher", aber Daten in Bewegung oder im Speicher sind anfällig
  • Nur die gesamte Datenbank
  • Alle Daten werden auf die gleiche Weise verschlüsselt
  • Die Sicherungskomprimierung kann länger dauern und kontraproduktiv sein

    • Tatsächlich gibt es hier in SQL Server 2016 einige Verbesserungen , die sich dem widersetzen, was wir normalerweise über das Komprimieren verschlüsselter Daten gewusst haben - es ist viel besser als in früheren Versionen, aber vermutlich noch schlimmer als nur eine Handvoll Spalten zu verschlüsseln (ungetestet).
  • tempdb übernimmt auch die Verschlüsselung - bleibt auch nach Deaktivierung von TDE erhalten
  • Benötigt Enterprise Edition
  • Daten immer zugänglich für Sysadmin

Always Encrypted behebt alle diese Probleme teilweise oder vollständig:

  • Daten sind in Ruhe, in Bewegung und im Speicher geschützt - viel mehr Kontrolle über Zertifikate, Schlüssel und genau, wer Daten entschlüsseln kann
  • Kann nur eine einzelne Spalte sein
  • Der Verschlüsselungstyp ist eine Wahl:
    • Kann deterministische Verschlüsselung verwenden, um Indizes und Punktsuchen (z. B. SSN) zu unterstützen
    • Kann zufällige Verschlüsselung für höheren Schutz verwenden (z. B. Kreditkartennummer)
  • Da es nicht datenbankweit ist, ist die Backup-Komprimierung nicht unbedingt betroffen. Je mehr Spalten Sie verschlüsseln, desto schlechter wird das Ergebnis
  • Tempdb ist nicht beteiligt
  • Ab SQL Server 2016 Service Pack 1 funktioniert Always Encrypted jetzt in allen Editionen
  • Daten können vor sysadmin geschützt werden (nicht jedoch vor sysadmin UND Windows-Sicherheit / cert / key-Admins. Mit anderen Worten, Sie können die Verantwortung trennen, solange diese beiden Gruppen nicht kollidieren.)

Es gibt jedoch eine Einschränkung: Nicht alle Treiber und Anwendungen können direkt mit den verschlüsselten Daten umgehen. In einigen Fällen müssen daher die Treiber aktualisiert / geändert und / oder der Code geändert werden.

Aaron Bertrand
quelle
Können Sie mir bitte erklären, wie Always Encrypted Daten im Speicher verschlüsselt? Ich habe versucht, diese Informationen im MSDN zu finden, aber es werden nur ruhende Daten und Daten in Bewegungsverschlüsselung beschrieben. Vielen Dank :)
Victoria Malaya
1
@Victoria Die Daten werden vom Anbieter verschlüsselt, bevor SQL Server sie jemals sieht. Daher empfängt SQL Server einen verschlüsselten Wert, speichert diesen verschlüsselten Wert auf der Festplatte und lädt den verschlüsselten Wert in den Speicher, wenn sich diese Seite im Speicher befindet. Die Verschlüsselung erfolgt im Speicher nicht so, wie Sie es sich vorstellen, und die Entschlüsselung erfolgt nur, wenn ein Client über ein Zertifikat verfügt, das entschlüsselt werden kann ...
Aaron Bertrand
2
Meines Wissens besteht einer der größten Unterschiede in der Abfrage der Daten. Mit TDE können Sie jede Abfrage ausführen, wie Sie es normalerweise tun würden. Mit AE sind Sie in Bezug auf die Abfrage der verschlüsselten Spalten sehr eingeschränkt, dh Sie können nur Gleichheitsvergleiche durchführen (und dies erfordert die Auswahl einer deterministischen Verschlüsselung). Es gibt keine Überprüfung von Datumsbereichen, keine LIKE-Abfragen usw.
Musefan
3

Einfach ausgedrückt, TDE sind Daten, die im Ruhezustand verschlüsselt sind (auf der Festplatte), und AE sind Daten, die auf der Leitung zusätzlich verschlüsselt sind.

Chad Mattox
quelle
Ich denke, Sie könnten das rückwärts haben, nein?
Zwerdlds
Sollte es nicht so sein: TDE werden im Ruhezustand Daten verschlüsselt, während AE auf dem Kabel, im Ruhezustand und im Speicher Daten verschlüsselt?
RoastBeast
AFAIK: Sie können TDE und Force Protocol Encryption auf dem MS SQL-Server kombinieren , um es auch auf der Leitung verschlüsseln zu lassen.
TiloBunt