【问题标题】:SQL Server 2008 symmetric key opening with different passwords?使用不同密码打开 SQL Server 2008 对称密钥?
【发布时间】:2011-12-30 14:55:02
【问题描述】:

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

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

我知道可以使用

向现有对称密钥添加密码
ALTER KEY MySymKey ADD ENCRYPTION BY PASSWORD = 'newpasswd'

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

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

【问题讨论】:

    标签: sql-server passwords encryption-symmetric


    【解决方案1】:

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

    我真的希望这是一个拼写错误,而您正在以另一种方式进行操作。正确的hierarchy encryption 始终是用于加密数据的对称密钥和用于加密加密密钥的证书/非对称密钥。

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

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

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

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

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

    【讨论】:

    • 不,我也是这样做的。我知道经典的加密层次结构,我实际上需要一种非对称密钥的权限管理,所以不是每个人都可以使用它。由于我不能将 MS SQL 服务器用于此策略,因此我实施了解决方案,我使用不同的密码对同一非对称密钥的多个版本进行加密——用户必须提供正确的密码才能应用非对称密钥。这就是我想要的。
    猜你喜欢
    • 2011-10-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多