web-dev-qa-db-ja.com

SQL Server TDEを使​​用してリモートバックアップを書き込むときに、ネットワークトラフィックは暗号化されますか?

彼らは「愚かな質問」のようなものはないと言っているので、ここに行きます:

SQL Server 透過的データ暗号化(TDE)は保存データを暗号化するので、誰かがストレージに侵入して盗んだ場合にデータベースファイル(.mdf)とバックアップファイル(.bak)が暗号化されることを理解していますそれらのファイル。また、ディスクから読み取ったときにデータが復号化され、メモリ内で(暗号化されて)暗号化されないことも理解しています。したがって、リモートクエリ(select * from SensitiveData)を実行しているユーザーによって要求されたデータは、ネットワーク上を移動するときに暗号化されないため、傍受されやすくなります。

したがって、上記のすべてが正しいと仮定すると、ここに私の愚かな質問があります:SQL ServerインスタンスがコンピューターAにあり、TDEデータベースのバックアップがリモートコンピューターBのストレージに書き込まれる場合、バックアップ操作データは暗号化されますか?コンピューターAから移動してコンピューターBのディスクに書き込まれるので?(暗号化操作はコンピューターAで最初に行われると想定しているため)必要があると思いますが、これの確認はいずれにもありません。 Microsoftのドキュメントまたはブログ。同様に、復元操作中に–コンピュータBのディスクから転送されているデータを傍受して、コンピュータAのデータベースを復元する人はいますか–暗号化されたデータが暗号化されているのを見つけましたか?

9

はい、TDEデータはディスク上で暗号化されており、バックアップ操作によって暗号化が解除されることはないため、ネットワークを介して移動するときにバックアップは暗号化されます

ポールランダルのバックアップの神話

神話30-09)バックアップはバッファプールを介してデータを読み取ります

いいえ。バックアップサブシステムは、データベースファイルへの独自のチャネルを開いて、すべてをSQL Serverのメモリに読み込んでバックアップデバイスに戻すというパフォーマンスへの影響を回避します(また、プロセス内のバッファプールを効果的にフラッシュします)。ページのチェックサムチェックを要求すると、それはメモリの小さな部分を使用します。

ページがバッファプールにロードされた場合(SQLがデータベーステーブルとインデックスデータをキャッシュするためにSQLが使用する「通常の」メモリ空間)、それらを復号化する必要があります。しかし、バックアップはそれを行いません、それらはあなたのバックアップ先に生の暗号化された「エクステント」(連続した8ページのチャンク)を単にダンプします。

Paul Randalから 確認を得ることができました。彼の上記のコメントはまだTDEに関連しています

まったく同じように機能します。バッファプールは暗号化を行い、ページをディスクに書き込む前にページチェックサムを追加します。 バックアップneverはバッファープールを介して読み取られません。したがって、はい、TDEデータベースのバックアップには暗号化がまだ含まれています。ページチェックサムは検証されますが、バッファープールコードではなくバックアップコードによって検証されます。

つまり、データベースでCHECKSUMを有効にした場合、それらは(通常のSQL書き込み操作中に)暗号化が発生した後に追加されます。つまり、バックアッププロセスでは、データを復号化せずに、生の(暗号化された)エクステントの読み取り、チェックサムの検証、およびバックアップの書き込みを行うことができます。

これは、ほぼ確実に(SQL 2016より前の)TDEを使​​用してデータベースでバックアップ圧縮を有効にしても何も実行されなかった理由です。 暗号化されたデータはあまり圧縮できないため

これは、TDE暗号化データベースのバックアップが取られたときに、データベースページがバックアップされたときに復号化されないためです。それらは通常と同じ暗号化された状態でバックアップされ、次に圧縮されます。本来、暗号化されたデータは非常にユニークであるため、データ圧縮は暗号化されたデータに対してあまり効果がありません。

復元操作についても、同じ原則が適用されます。暗号化されたバックアップはネットワーク全体で暗号化されたままであり、まだ暗号化された状態で復元サーバーのディスクに書き込まれます。復元が完了した後、データベースがメモリにロードされたときにのみ暗号化が解除されます。

7
BradC

...バックアップ操作データがコンピューターAからコンピューターBのディスクに書き込まれるときに暗号化されますか?

はい、バッファプールに入るときに復号化され、出るときに暗号化されます。この状況では、ディスクに書き込むため、最初に暗号化されてから書き込まれます。書き込みはネットワークを介して行われるため、データ自体は暗号化されますが、ネットワークトラフィックの他の部分は暗号化されません。

...復元操作中...移動中のデータが暗号化されていることに気付くでしょうか?

はい、上記と同じですが逆順です。データはディスク上で暗号化されており、暗号化された状態で読み取られて転送されています。次に、インスタンスに到達し、バッファプールに読み込まれ、途中で暗号化が解除されます。

3
Sean Gallardy