Wird der Netzwerkverkehr beim Schreiben von Remote-Backups mit SQL Server TDE verschlüsselt?

9

Sie sagen, dass es keine „dumme Frage“ gibt, also geht es weiter:

Ich verstehe, dass TDE ( SQL Server Transparent Data Encryption ) Daten in Ruhe verschlüsselt, sodass Ihre Datenbankdateien (.mdf) und Ihre Sicherungsdateien (.bak) verschlüsselt werden, falls jemand in Ihren Speicher eindringt und diese Dateien stiehlt. Ich verstehe auch, dass die Daten beim Lesen von der Festplatte entschlüsselt werden, so dass sie im Speicher (in Bewegung) unverschlüsselt sind. Daher werden Daten, die von einem Benutzer angefordert werden, der eine Remote-Abfrage ausführt (wählen Sie * aus SensitiveData), beim Reisen über das Netzwerk unverschlüsselt und sind daher abfanganfällig.

Unter der Annahme, dass alle oben genannten Punkte korrekt sind, ist hier meine dumme Frage: Wenn sich meine SQL Server-Instanz auf Computer A befindet und meine TDE-Datenbanksicherungen in den Speicher auf Remotecomputer B abgeschrieben werden, werden die Sicherungsvorgangsdaten auf ihrem Weg verschlüsselt Computer A soll auf Computer B auf die Festplatte geschrieben werden? Ich gehe davon aus, dass dies der Fall sein muss (da der Verschlüsselungsvorgang vermutlich zuerst auf Computer A ausgeführt wird), kann jedoch in keiner Microsoft-Dokumentation oder in den Blogs eine Bestätigung dafür finden. Und würde jemand während eines Wiederherstellungsvorgangs - sollte jemand die von der Festplatte auf Computer B übertragenen Daten abfangen, um die Datenbank auf Computer A wiederherzustellen - feststellen, dass die in Bewegung befindlichen Daten verschlüsselt sind?

SQLServerVillain
quelle
2
Es ist wirklich eine gute Frage
Shanky

Antworten:

7

Ja, Sicherungen werden beim Verschieben über das Netzwerk verschlüsselt, da TDE-Daten auf der Festplatte verschlüsselt werden und durch den Sicherungsvorgang niemals entschlüsselt werden .

Paul Randals Backup-Mythen :

Mythos 30-09) Backups lesen Daten durch den Pufferpool

Nein. Das Sicherungssubsystem öffnet seine eigenen Kanäle für die Datenbankdateien, um zu vermeiden, dass die Leistung beeinträchtigt wird, wenn alles in den Speicher von SQL Server eingelesen und auf das Sicherungsgerät zurückgesendet werden muss (und dabei auch der Pufferpool effektiv geleert wird). Wenn Sie nach einer Überprüfung der Seitenprüfsumme fragen, wird ein kleiner Teil des Speichers verwendet.

Wenn die Seiten in den Pufferpool geladen würden (der "normale" Speicherplatz, den SQL zum Zwischenspeichern von Datenbanktabellen- und Indexdaten verwendet), müssten sie entschlüsselt werden. Backups tun dies jedoch nicht, sondern geben lediglich verschlüsselte "Extents" (zusammenhängende 8-Seiten-Blöcke) an Ihr Backup-Ziel aus.

Ich konnte von Paul Randal eine Bestätigung erhalten, dass sein obiger Kommentar für TDE immer noch relevant ist :

Es funktioniert genauso. Der Pufferpool verschlüsselt und fügt dann eine Seitenprüfsumme hinzu, bevor eine Seite auf die Festplatte geschrieben wird. Backups lesen niemals den Pufferpool durch. Ja, bei einer Sicherung der TDE-Datenbank ist die Verschlüsselung noch vorhanden. Seitenprüfsummen werden validiert, jedoch durch Sicherungscode, nicht durch Pufferpoolcode.

Mit anderen Worten, wenn Sie CHECKSUMs in einer Datenbank aktiviert haben, werden diese (während normaler SQL-Schreibvorgänge) nach der Verschlüsselung hinzugefügt . Dies bedeutet, dass der Sicherungsprozess den unformatierten (verschlüsselten) Umfang lesen, die Prüfsumme validieren und die Sicherung schreiben kann, ohne die Daten zu entschlüsseln.

Dies ist mit ziemlicher Sicherheit der Grund dafür, dass (vor SQL 2016) das Aktivieren der Sicherungskomprimierung in einer Datenbank mit TDE nichts bewirkt hat, da verschlüsselte Daten nicht sehr komprimierbar sind :

Dies liegt daran, dass bei Sicherungen einer TDE-verschlüsselten Datenbank die Datenbankseiten beim Sichern nicht entschlüsselt werden. Sie werden in demselben verschlüsselten Zustand gesichert, in dem sie sich normalerweise befinden, und dann komprimiert . Verschlüsselte Daten sind von Natur aus sehr einzigartig, sodass die Datenkomprimierung gegen verschlüsselte Daten nicht viel bringt.

Für einen Wiederherstellungsvorgang gilt das gleiche Prinzip. Die verschlüsselte Sicherung bleibt im gesamten Netzwerk verschlüsselt und wird in ihrem noch verschlüsselten Zustand auf die Festplatte des Wiederherstellungsservers geschrieben. Sie werden erst entschlüsselt, wenn die Datenbank nach Abschluss der Wiederherstellung in den Speicher geladen wird.

BradC
quelle
3

... werden die Daten des Sicherungsvorgangs verschlüsselt, wenn sie von Computer A auf die Festplatte von Computer B geschrieben werden?

Ja, es wird beim Eintritt in den Pufferpool entschlüsselt und beim Verlassen verschlüsselt. In dieser Situation wird, da wir auf die Festplatte schreiben, diese zuerst verschlüsselt und dann geschrieben. Da die Schreibvorgänge über das Netzwerk erfolgen, werden die Daten selbst verschlüsselt, andere Teile des Netzwerkverkehrs jedoch nicht.

... während eines Wiederherstellungsvorgangs ... würden sie feststellen, dass bewegte Daten verschlüsselt sind?

Ja, da das gleiche wie oben gilt, jedoch in umgekehrter Reihenfolge. Daten wurden auf der Festplatte verschlüsselt, werden gelesen und im verschlüsselten Zustand übertragen. Dann gelangt es zur Instanz und wird in den Pufferpool geladen, wo es als Schritt auf dem Weg unverschlüsselt wird.

Sean Gallardy
quelle
1
Ich denke, das ist richtig, aber ich bin mir nicht sicher, ob es aus den von Ihnen genannten Gründen richtig ist. Ich dachte, dass ein BACKUP die Rohdatenbank EXTENTS (keine Seiten) auf die Festplatte sendet und daher den Entschlüsselungsschritt umgeht, wenn sie in den Speicher geladen werden. Ich könnte mich irren, suche aber jetzt nach Dokumentation.
BradC
1
Siehe es, siehe Paul Randals Mythos 30-09 : "Das Backup-Subsystem öffnet seine eigenen Kanäle für die Datenbankdateien, um zu vermeiden, dass die Leistung beeinträchtigt wird, wenn alles in den Speicher von SQL Server eingelesen und wieder auf das Backup-Gerät übertragen werden muss." Erwähnt TDE nicht speziell, aber wenn der Sicherungsprozess ein eigener Kanal ist, scheint es eine Verschwendung zu sein, ihn zu entschlüsseln, nur um ihn sofort neu zu verschlüsseln. Es könnte sogar CHECKSUMS validieren und / oder Komprimierung ohne Entschlüsselung anwenden, wenn diese aktiviert sind.
BradC
@BradC Ich habe nicht gesagt, dass das Backup selbst auf diese Weise funktionieren würde, sondern wie der Verschlüsselungs- / Entschlüsselungsprozess mit Daten im Ruhezustand funktionieren würde. Wenn es nicht eindeutig ist, werde ich es ändern, aber ich sage nicht, dass ein Backup so funktioniert, wenn und wo die Verschlüsselung / Entschlüsselung erfolgt.
Sean Gallardy
Wenn der Sicherungsprozess jedoch den Pufferpool nicht verwendet, ist Ihre Argumentation falsch, auch wenn die Schlussfolgerung (Sicherungspakete werden verschlüsselt) aus einem anderen Grund richtig ist.
BradC
@BradC Nein, der Grund dafür ist, dass es bereits auf die Festplatte geschrieben und daher bereits verschlüsselt ist. Ich bin mir nicht sicher, wie Sie feststellen, dass ein Backup entschlüsselt und dann über den BP erneut verschlüsselt wird. Ich fand es ziemlich einfach zu sagen, dass es bereits verschlüsselt war, so dass das Kopieren auf eine andere Festplatte oder das Kopieren von einer anderen Festplatte es nicht entschlüsselt ... Ich bin mir nicht sicher, wie Sie dies verwirren.
Sean Gallardy