SQL Server 列级加密 - 轮换密钥

Mik*_*Dev 5 encryption sql-server sql-server-2005 sql-server-2008

我们正在考虑对敏感数据使用 SQL Server 列(单元)级加密。当我们最初加密列时应该没有问题,但是我们要求每年加密密钥都需要更改。看来这个要求可能有问题。

假设:包含敏感数据列的表将有 5 亿条记录。

以下是我们考虑实施的步骤。加解密过程中数据是在线的,这个过程需要多长时间?

  • 最初加密列
  • 新年
  • 解密列
  • 使用新密钥加密该列。

问题:列解密/加密时数据是否在线(可以查询)?SQL Server 是否提供允许在数据在线时进行关键更改的功能?

酒吧开发者

vor*_*aq7 2

您当然可以编写一个应用程序来执行解密/加密(SELECT数据输出,解密,使用新密钥重新加密,然后返回UPDATE- 敏感数据永远不会以这种方式以未加密的方式存储),但是您是每年的密钥轮换会产生大量的开销,随着数据库的增长,这种开销只会变得更大。还有一个问题是,必须在重新加密舞蹈所需的时间内维护两个密钥(现在可能是一个小时,明年可能是几天,具体取决于您的增长率和加密复杂性......)

您可能需要评估年度更改要求背后的业务/安全逻辑,并查看是否可以通过对解密密钥实施合理的控制以及“在发生泄露或疑似泄露的情况下”更改密钥的要求来获得同等的安全性。 ..