如何为SQL Always Encrypted最好地保护加密密钥

问题描述 投票:0回答:1

这是我的要求:

  • 至少在一张表上至少有一列的数据库是敏感的,应该加密
  • DBA和使用SSMS访问数据库的人应该不能查看列的纯文本值
  • 将有一个客户端asp.net应用程序,它将能够检索和解密数据,以及插入和更新表

因此,如果我始终对必要的列启用加密,则任何常规查询都将检索这些列的密文。精细。

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

但是要阻止某人与SSMS连接并启用相同的列加密设置是什么?然后,他们可以从表中选择并查看纯文本。

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

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

asp.net encryption ssms always-encrypted
1个回答
0
投票
创建了两个密钥,分别是列主密钥(CMK)和列加密密钥(CEK)。

列主键仅存储在应用程序端,而列条目键将存储在SQL Server端。

结果是,一旦客户端有了CMK,当您更改连接字符串时,只有具有以上CMK的那些客户端才能够成功解密列。

© www.soinside.com 2019 - 2024. All rights reserved.