首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在Server中使用非对称密钥?

为什么在Server中使用非对称密钥?
EN

Database Administration用户
提问于 2013-11-12 17:51:39
回答 1查看 1.9K关注 0票数 8

我已经阅读了关于Server加密的多个资源,每个人都是这样做的,但是没有人解释为什么我们在Server中使用非对称密钥。我的意思是,当我们遵循“正确”的过程,首先对称地加密数据,然后是非对称密钥或证书,就像在MSDN中一样:

因此,如果我有数据,首先,我用对称密钥加密它,以加快和避免重新加密,如果受到破坏。然后我们用第二层加密来保护密钥。

现在假设我用密码保护第二个密钥。在这种情况下,证书、非对称密钥或对称密钥有什么优势?在我看来,我们从未使用过此策略的证书或非对称密钥的公共方面,因为我们只使用解密方面。那么,我们选择的三种方法中哪一种不应该是不可知论的?我们可以撤销对所有三个密钥类型的访问,并授予使用所有三个密钥的权限。为什么不使用另一个对称密钥呢?

我在这里看到的唯一不同是,您可以使用DMK保护Cert或Asym密钥,这样用户就不需要输入密码。这使得访问更容易,而代价是失去强制用户输入第二个密码的安全性。

这是正确的理解吗?

EN

回答 1

Database Administration用户

发布于 2016-10-20 13:50:20

正确的密钥层次结构是服务主密钥保护数据库主密钥,数据库主密钥保护非对称密钥或证书,非对称密钥或证书可用于加密,也可用于保护用于加密的对称密钥。键是按这个顺序创建的。系统创建并保护SMK,DMK和后续密钥由用户创建。

SQL Server中密钥层次结构的设计保护了数据和密钥不受损害。请记住,对于对称密钥,相同的密钥用于加密和解密数据,或者在本例中用于其他密钥。在数据库主密钥保护的层次结构中引入非对称密钥或证书的主要目的是防止从数据库内部对DMK和SMK的攻击。如果有人恶意地想获得未经加密的DMK,那么此人需要做两件事之一。要么解密服务主密钥并使用它解密DMK,这是不可能的,因为只有数据库引擎才能使用数据保护API来进行解密,或者尝试从层次结构的顶部向下解密,如果没有非对称密钥或证书,这是可能的。

Server中所有经签名或加密的对称密钥都位于每个数据库中名为sys.crypt_properties的系统表中,包括主数据库中服务主密钥的加密。不对称密钥类型中没有包含私钥的系统表。如果层次结构中的所有密钥都是对称密钥,那么SMK将加密DMK,DMK将加密将数据加密的对称密钥。由于对称密钥的工作方式,这也意味着,如果有人为数据打开对称密钥,理论上它可以解密DMK,而解密的DMK可以被恶意用户保存或用于解密SMK,因为相同的密钥用于加密和解密。这就是为什么需要非对称密钥或证书作为加密层次结构的集成部分的原因。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/53197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档