私はTDE
暗号化をよりよく理解するために開発環境で働いています。別のサーバーでのバックアップと復元と一緒に使用しています。いくつか質問がありましたが、対応する秘密鍵で証明書をバックアップする必要があることを知っています。
USE master;
GO
BACKUP CERTIFICATE Test
TO FILE = 'C:\Test.cer'
WITH PRIVATE KEY
(FILE = 'C:\Test.pvk',
ENCRYPTION BY PASSWORD = 'Example12#')
これらは、障害が発生した場合に新しいサーバーに移動/復元する必要があります。別のサーバーに復元する必要がある場合に必要となる、ソースサーバーからバックアップする必要があるものは他にありますか?
また、秘密鍵のストレージに関する提案はありますか?現時点での私の考えは、証明書、秘密鍵、およびパスワードを、個別にバックアップされ、オフサイトで複製されるKeePassデータベースにバックアップすることです。
それでも、KeePass秘密キーをどこにバックアップするかという疑問は残りますか?
別のサーバーに復元する場合は、証明書、秘密キー、データベースバックアップファイルを使用して復元できるはずです。
証明書がSQL Serverのデータベースに作成されると、証明書は 暗号化階層 の一部になります。マスターデータベース自体の証明書には、保護する必要のない公開鍵のみが含まれますが、マスターデータベースには、保護する必要がある別個の数学的に関連する秘密鍵も含まれます。秘密キーを保護する方法は、証明書を作成する前にマスターデータベースで作成したデータベースマスターキーを使用して秘密キーを暗号化することです。暗号化階層の次の層は、DMKがサービスマスターキーによって暗号化されることです。システムにはSMKが1つだけあり、それはマスターデータベースにあります。
暗号化されたバックアップを別のサーバーに復元するためにDMKとSMKは必要ありませんが、とにかくこれらの2つのキーをバックアップすると、リカバリがはるかに柔軟になります。
バックアップ暗号化証明書をマスターデータベースに復元する場合、バックグラウンドで行われるのは、秘密キーがファイルから読み取られ、restoreコマンドで指定したパスワードを使用して復号化され、データベースマスターキーを使用して暗号化されて保存されることです。ご存じのとおり、証明書の秘密鍵を使用して、バックアップファイルのデータベース暗号化キーを復号化し、データベースを正常に復元できます。
証明書とキーバックアップファイルを保存するための特別な推奨事項はありませんが、組織内で障害復旧を行うすべての人が利用できるようにする必要があります。
デニーチェリーの著書 『Securing SQL Server』で、証明書をバックアップするためのセキュリティのベストプラクティスを見つけました。