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


10

我正在开发环境中工作,以更好地了解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私钥备份到哪里的问题?

Answers:


5

如果要在其他服务器上还原,则应该能够使用证书,私钥和数据库备份文件来还原。

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

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

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

对于存储证书和密钥备份文件,我没有特别的建议,但是您和组织中进行灾难恢复的任何人都需要使用它们。


1

在Denny Cherry的《保护SQL Server的安全》一书中,我找到了备份证书的最佳安全实践:

  • 将证书备份刻录到两张不同的CD上
  • 将每张CD放入密封并签名的信封中
  • 标记这些证书用于哪个系统的信封
  • 将一张CD放入公司经理的办公室保险箱中
  • 将第二张CD存放在其他安全位置
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.