1

在我的场景中,我使用对称密钥来加密我的非对称密钥,后者用于加密一些敏感数据,这些数据应该只对选定的人群可用。

对称密钥是用密码加密的,我需要的是这个密钥有多个密码的可能性,这样每个密码就足以打开这个密钥。

我知道可以使用向现有对称密钥添加密码

ALTER KEY MySymKey ADD ENCRYPTION BY PASSWORD = 'newpasswd'

问题是是否已经通过密码添加新加密并且这里的每个密码都会打开它,或者密钥只是被新密码额外加密并且必须提供所有密码和/或其他加密数据(证书,其他钥匙等)打开这把钥匙?

如果后者为真,我如何创建相同对称密钥但密码不同的多个副本?

4

1 回答 1

1

我使用对称密钥来加密我的非对称密钥

我真的希望这是一个错字,而您正在以另一种方式进行。正确的层次加密始终是对称密钥来加密数据和证书/非对称密钥来加密加密密钥。

至于您的问题:向密钥添加新加密不会删除以前的加密。一个密钥可以添加多个密码。但是,从您的示例来看,您计划将密码添加到对称密钥中,这可能是不正确的。

层次结构之所以重要,是由两个因素驱动的:

  • 对称密钥加密速度很快,非对称密钥加密速度极慢。因此,直接数据加密始终由快速密钥(对称密钥)完成。

  • 数据加密密钥需要定期更换,以降低冲突概率并减轻一些分析攻击,以及减少密钥丢失时暴露的表面。这是通过简单地更改密钥并使用新密钥加密数据来完成的(重新加密旧数据不仅令人望而却步,而且还会否定密钥轮换的好处)。新密钥使用用户证书/非对称密钥/密码进行加密,从而将其打开以供使用。

请花一些时间阅读相关的 MSDN 文章(从上面链接的文章开始),这些东西真的很容易搞砸,你最终会得到“完美加密”(即你失去了解密数据的能力) ) 或更糟糕的是,大量的烟雾和镜子会混淆您的密钥管理和层次结构完全被破坏的事实。

于 2011-12-30T17:52:20.473 回答