MS SQL Serverの暗号化とバックアップについて


13

そこで SQL Serverバックアップファイルの安全性についてチャット質問しました

攻撃者が暗号化されていない.bakファイルにアクセスできる場合、データにアクセスできると言われます。

このシナリオを見てみましょう:

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate

注意-ここにはパスワードはありません。

次に、テーブルを暗号化します:

UPDATE tbl1
 SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO

ハッカーが私のbakファイルを手に入れたとしましょう。(自分のコンピューターとSQLサーバーで)データを表示するために彼がしなければならないことは:

SELECT  
       convert( NVARCHAR(max), decryptbykey(namePAss)) 
FROM tbl1

彼はまだデータにアクセスできますか?

回答:


9
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION`  
 BY CERTIFICATE MyCertificate`

注意-ここにはパスワードはありません。

はいあります。MyCertificate どういうわけか、証明書を開きましたよね?いくつかのケースが考えられますが、いずれもパスワードで終わります:

  • パスワードを使用して証明書を開きました(明らかに、この場合はパスワードがあります)
  • 証明書はデータベースマスタキーで暗号化され、DBMKパスワードを使用してデータベースマスタキーを開きました->それがパスワードです
  • 証明書はデータベースマスターキーで暗号化され、DBMKはサービスマスターキーで暗号化されます。サービスマスターキーは、サービスアカウントDPAPIストレージキーを使用して順番に開かれました。DPAPIストレージキーは、アカウントパスワードで暗号化され、パスワードです

最後のキーにパスワードがないように見えますが、パスワードがあります:サービスアカウントのパスワード。バックアップを別のホストに復元すると、データベースマスターキーのサービスマスターキー暗号化が失われ、データにアクセスできなくなります。

暗号化階層を参照してください


こんにちは、パスワードはありますが、前の段階です。作成者:CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DB Master key password!' GO-パスワードを使用して作成しました。しかし、奇妙なことは、私がそれを開くと、パスワードが必要ないことです。これはあなたが貼り付けたコードです。これは私が理解できないことです。ハッカーの場合-私はそれを作成するために使用されるパスワードを気にしません。OPEN SYMMETRIC KEY MySymetricKey DECRYPTION BY CERTIFICATE MyCertificate`を実行するだけで、ここにはパスワードはありません。私を修正してください
ロイナミール

3
@RoyiNamir Remusの最後の箇条書きを参照してください。パスワードは指定していませんが、証明書は保護されています。この場合、最終的にはサービスアカウントのパスワードによって保護されます。
マークストーリースミス

@Remusあなたは私の新しい質問(非常に関連した)で見てくださいすることができdba.stackexchange.com/questions/29287/...
Royi Namir

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.