TDE 准备:用于还原的密钥/证书备份

Tho*_*rin 10 sql-server encryption transparent-data-encryption

我在开发环境中工作以更好地理解TDE加密。我让它与另一台服务器上的备份和恢复一起工作。有几个问题,我知道我需要使用相应的私钥备份证书。

USE master; 
GO 
BACKUP CERTIFICATE Test
TO FILE = 'C:\Test.cer'
WITH PRIVATE KEY
(FILE = 'C:\Test.pvk',
ENCRYPTION BY PASSWORD = 'Example12#')
Run Code Online (Sandbox Code Playgroud)

如果发生故障,这些需要在新服务器上移动/恢复。在需要恢复到另一台服务器的情况下,我还需要从源服务器备份什么吗?

还有关于私钥存储的任何建议吗?我目前的想法是将证书、私钥和密码备份到单独备份和异地复制的 KeePass 数据库中。

这留下了一个问题,即将 KeePass 私钥备份到哪里?

Mic*_*her 5

如果您想在不同的服务器上恢复,您应该能够使用证书、私钥和数据库备份文件来进行。

在 SQL Server 的任何数据库中创建证书时,它都是加密层次结构的一部分。master 数据库中的证书本身只包含一个不需要保护的公钥,但是,master 数据库中也会包含一个单独的但在数学上相关的私钥,它确实需要保护。保护私钥的方法是使用您在创建证书之前在主数据库中创建的数据库主密钥对其进行加密。加密层次结构中的下一层是 DMK 由服务主密钥加密。系统上只有一个 SMK,它在主数据库中。

即使您不需要 DMK 和 SMK 将加密备份恢复到另一台服务器,我还是会备份这两个密钥,因为它使恢复更加灵活。

当您将备份加密证书恢复到主数据库时,幕后发生的是从文件中读取私钥,使用您在恢复命令中提供的密码解密,然后使用数据库主密钥加密并保存。如您所知,证书中的私钥随后可用于解密备份文件中的数据库加密密钥并成功恢复数据库。

我没有关于存储证书和密钥备份文件的具体建议,但它们确实需要对您和您组织中进行灾难恢复的任何人可用。