【问题标题】:How to best secure encryption keys for SQL Always Encrypted如何最好地保护 SQL Always Encrypted 的加密密钥
【发布时间】:2020-06-03 13:21:26
【问题描述】:

这是我的要求:

  • 一个数据库,其中至少 1 个表上的至少 1 个列是敏感的,应该加密
  • DBA 和使用 SSMS 访问数据库的人员应该无法查看列的明文值
  • 会有一个客户端 asp.net 应用程序能够检索和解密数据,以及插入和更新到表中

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

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

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

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

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

【问题讨论】:

    标签: asp.net encryption ssms always-encrypted


    【解决方案1】:

    创建了两个密钥,即列主密钥 (CMK) 和列加密密钥 (CEK)。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 2015-11-25
      • 2019-08-04
      • 1970-01-01
      相关资源
      最近更新 更多