2016-12-09 2 views
0

SQL Serverデータベースのマスターキー(DMK)パスワードはどこに保存されていますか?それはマスターデータベースに格納されていますか?レジストリに?ハッカーがmdfファイルを保持すると、DMKの作成に使用されたパスワードを取得できますか?SQL Server DMKパスワード

+0

クリアには何も格納されておらず、最後のキーはハードウェア暗号化デバイスであるHSMモジュールにも存在します。 –

答えて

0

SQL Serverには、Encryption Hierarchyがあります。すべてが何かによって暗号化されています。それぞれのデータベースにDatabase Mater Keyを作成して、その中の証明書、非対称鍵および対称鍵を保護することができます。DMKを使用してそれらを暗号化します。

Database master keys are protected by the Service Master Key. The Service Master Key is created by SQL Server setup and is encrypted with the Windows Data Protection API (DPAPI).

enter image description here

のは、我々は、データベースのバックアップを持っていると言うと、私たちの地元のインスタンスに復元してみましょう。 DMKがencrtpyedされたときに(私の場合には、そう

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'I_DO_NOT_KNOW_THE_PASS'; 

SELECT *, CAST(DecryptByAsymKey(AsymKey_ID(N'smGK_АSymmetricKey_01'), BufferEncryptedEmail) AS NVARCHAR(444)) 
FROM SecurityUsersAssimetricKey 

CLOSE MASTER KEY 

Msg 15313, Level 16, State 1, Line 1 The key is not encrypted using the specified decryptor.

:私は、証明書を暗号化するために、DMKパスワードを知らなくても、ecnryptedデータの一部を読み取ろうとした場合、私は、次のエラーを取得しています)パスワードによって、私は唯一のパスワードを知らecnryptedデータを読み取ることができます。

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'smGK_MasterKeyPassword'; 

SELECT *, CAST(DecryptByAsymKey(AsymKey_ID(N'smGK_АSymmetricKey_01'), BufferEncryptedEmail) AS NVARCHAR(444)) 
FROM SecurityUsersAssimetricKey 

CLOSE MASTER KEY 

全体のデータを保護するために、あなたはbackup encryptionが行われたか確認することができます。


バックアップ暗号化が適用される場合、バックアップは証明書を使用して暗号化されます。これが証明されなければ、バックアップを復元することはできません。この証明書は、好きな場所に保存できます。一般的に、あなたは真剣な力のために正しい - データベースが復元された場合、DMKを強制的に強制しようとすることができます。ただし、バックアップを使用してデータベースを復元できない場合は、何もできません。

+0

SQL ServerはHSMモジュールを使用して、サービスマスターキーでさえもサーバーに格納されないようにします –

+0

はい、SQL Serverはこれをどのように認識しますか - "Msg 15313、レベル16、状態1、行1指定されたdecryptorを使用します "。これはDMKパスワードをどこかに保存したことを意味しますか?それは同じではないことを確認しますか? –

+0

@ PanagiotisKanavosプロダクションでこのようなモジュールを使用していますか?私はそのような使用法の長所と短所が不思議です。 – gotqn