SQL Serverencryption – 旋转PCI符合性的密钥

PCI合规性要求每年轮换一次密钥。 我不断遇到的“密钥轮换”的定义是解密你的数据,然后用一个新的密钥重新encryption。 真? 每个人都每年都解密/encryption所有的encryption数据?

目前,我已经有3个服务器上有16个数据库,每个数据库中有多个表 – 这只会继续增长。 手动这样做会带来巨大的错误机会,导致我的数据无法读取。 是的,我可以写些东西来做这个…但是这真的是每个人都在做的事情吗?

所以问题是你是手动处理,还是你可以推荐一个负担得起的(主观,我知道)第三方工具?

我已经看到了一些关于“改变”层次结构中更高级别键的build议。 我们使用推荐的数据库主密钥层次结构来encryption一个证书,这个证书encryption了一个对数据进行encryption的对称密钥。

首先,这似乎不符合“旋转钥匙”的定义。 其次,即使我更改了DMK或证书,也不能阻止用相同的对称密钥来解密数据,而这个对称密钥可能是坏人被盗/破解的。

你的“旋转键”的定义是正确的。 您需要使用“旧”密钥解密数据,并使用“新密钥”对其进行重新encryption。 有很多商店每年都这样做,是的 – 这是一个很大的工作,最好的自动化程序完成(你可以写自己的工具 – 我没有意识到任何第三方的,但我肯定他们存在)。


<咆哮>

对PCI-DSS 2.0要求的解释3.6.4“对已经达到其encryption结束时间的密钥进行encryption密钥更改(例如,在经过了定义的时间段之后…”,因为“您必须每年旋转密钥或世界将会结束“是短视的,并且在我/我的审计人员的意见中是不正确的:如果您使用足够强大的algorithm(例如AES-256)并且没有已知的密钥旋转违规,则密钥不会提供更好的安全性 – 实际上它创造了一个新的风险(只要解密/重新encryption你的数据,旧的密钥需要被提供给一个程序 – 即使机器做这个工作是安全的,它仍然需要把密钥放入不止一个地方)。

请注意,如果你想成功地做出这个论证,你需要两件事情:一个对密码学有基本了解的审计员,一个在NIST出版物800-57 (特别是“推荐的cryptoperiods ”表)中飞行的可防御策略。 例如,我们的政策要求AES-256(不受实际攻击,而且会永远采取暴力行动),并且在有人直接访问密钥的人被终止的时候强制轮换(系统pipe理员的关键人员,特定的C级官员)。

</咆哮>