定期更改 SQL Server 中加密数据库的对称密钥和证书?

Posted

技术标签:

【中文标题】定期更改 SQL Server 中加密数据库的对称密钥和证书?【英文标题】:Periodically change the symmetric key and certificate for a encrypted database in SQL Server? 【发布时间】:2015-04-15 12:08:19 【问题描述】:

如何加密逻辑是数据库主密钥 -> 证书 -> 对称密钥 -> 解密数据。我想定期更改证书/对称密钥以确保对称密钥/证书是安全的。

【问题讨论】:

你会如何处理已经用旧的对称密钥/证书加密的数据? 我不想要任何更改/触摸加密数据是否可以在不触摸加密数据的情况下更改对称密钥/证书?我只想定期维护以更改密钥和证书作为安全最佳实践。 一旦您更改了现有密钥,旧数据将使用不同的密钥进行加密,而新数据将使用不同的密钥进行加密。现在在运行SELECT 时,您在解密数据时会遇到问题(除非您解密所有数据,然后使用新密钥重新加密)。通常,这些密钥不会离开您位于安全位置的数据库。 因此更改密钥/证书的唯一可能性是解密整个数据集,重新生成密钥/证书并重新加密。相当乏味的过程,但看起来别无选择。这有助于微软应该明确在密钥维护/重新创建密钥过程中声明。 您可以使用此线程blogs.msdn.com/b/lcris/archive/2006/03/13/550904.aspx中提到的过程更改证书 【参考方案1】:

如果您使用的是 TDE:

ALTER DATABASE ENCRYPTION KEY
REGENERATE WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER ASYMMETRIC KEY your_key_encryption_key

会成功的。

如果您的数据在列级别加密,则您必须循环浏览每一行并使用ENCRYPTBYKEY(key_guid('new_key'), DECRYPTBYKEY(data)) 更新每一行。

【讨论】:

以上是关于定期更改 SQL Server 中加密数据库的对称密钥和证书?的主要内容,如果未能解决你的问题,请参考以下文章

微服务SpringCloud—Config Server对称加密

聊一聊非对称加密在接口参数中的简单实现

HTTP的加密

非对称加密RSA算法俗解

sql数据加密有几种方法?

sql数据加密有几种方法?