繁体   English   中英

在SQL Server 2008中加密和存储敏感数据

[英]Encrypting and storing sensitive data in SQL Server 2008

考虑以下图像,该图像显示了SQL Server中使用的加密层次结构。 请注意,第一个蓝色块表示SMK已使用DPAPI加密。 DPAPI使用当前登录的用户凭据(+更多)来加密数据,因此它是特定于计算机的。 这意味着SMK(以及DMK和任何派生的密码)将是特定于计算机的(实际上是由SQL Server的设置生成的)。 OTOH,我可以在SQL Server中创建/备份X.509证书(使用CREATE CERTIFICATE,BACKUP CERTIFICATE等)。

场景/问题:

我正在开发一个Web应用程序,该应用程序需要加密CC信息并将其存储在数据库列中。 我需要稍后再在另一台计算机上访问这些数据,因此在另一台计算机上还原数据库备份时,它应该是实际可读的(尽管对于有权访问上述证书的用户而言)。

我想知道当SMK特定于SQL Server的当前实例时,应该如何在另一台计算机上还原备份? 一旦这些加密的数据恢复到另一台计算机上,我应该怎么做?

更新:如果我做错了,请纠正我! 我们可以使用BACKUP SERVICE MASTER KEY TO FILE命令来备份当前使用的SMK。 但是,可以使用RESTORE SERVICE MASTER KEY FROM FILE命令在任何其他SQLServer上(在同一台计算机上/在同一台计算机上)还原该密钥。 还原SMK后,将再次使用DPAPI对其进行加密,以便密钥本身可以存储在计算机上的某个位置。

任何帮助将不胜感激,

加密层级

该图显示,可以通过DMK或通过密码来保护证书。 如果仅用密码保护它,则它应该是可移植的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM