首页 > 解决方案 > 如何最好地保护 SQL Always Encrypted 的加密密钥

问题描述

这是我的要求:

因此,如果我在必要的列上启用始终加密,任何正常查询都将检索这些列的密文。美好的。

客户端应用程序将具有Column Encryption Setting=Enabled连接字符串,因此将具有加密和解密数据的能力。

但是如何阻止某人连接 SSMS 并启用相同的列加密设置?然后他们可以从表中选择并查看明文。

简而言之,我如何应用权限,以便只有特定 AD 组中的人员(不包括 DBA)有权访问加密密钥以解密数据?

是否像确保 .net 应用程序所在的 IIS 不在同一台服务器上一样简单,并且仅在该 IIS 机器上创建列主密钥证书?

标签: asp.netencryptionssmsalways-encrypted

解决方案


有两个密钥被创建为列主密钥 (CMK) 和列加密密钥 (CEK)。

列主密钥仅存储在应用程序端,而列加密密钥将存储在 SQL Server 端。

结果是,一旦客户端拥有 CMK,您可以通过更改连接字符串来激活加密,然后驱动程序将查找此 CMK。没有它,数据就无法解密。


推荐阅读