gpt4 book ai didi

sql-server - 如何控制哪些用户可以解密 SQL Server 对称 key 加密

转载 作者:行者123 更新时间:2023-12-02 12:19:09 26 4
gpt4 key购买 nike

我正在考虑加密 SQL Server 中的一些敏感数据,例如银行帐号和社会安全号码,以便遵守新的州法律。我使用 SQL Server 2008 作为带有 .NET 代码的数据库。我已经使用 .NET 来加密密码,但为此我正在考虑使用 Microsoft 的内置加密,只需使用简单的对称 key 加密来加密我需要的几列数据。如果我采用 SQL Server 加密,我可以从外部报告工具解密数据,而不仅仅是在我的 .NET 应用程序中。这是我正在使用的示例: http://blog.sqlauthority.com/2009/04/28/sql-server-introduction-to-sql-server-encryption-and-symmetric-key-encryption-tutorial-with-script/

它使用 SQL Server 创建的证书,然后使用 DecryptByKey 函数来解密数据,但我试图确定这到底有多安全?如何控制哪些用户可以解密数据,或者任何人只要打开对称 key 并使用解密功能就可以解密数据?

最佳答案

您有两种选择:

  1. 加密控制。这样,只有知道密码的用户才能解密数据。缺点是用户每次访问数据时都必须输入解密密码。报告必须包含一个密码参数,运行报告的用户将使用数据访问密码填充该参数。应用程序必须向用户请求密码。网站必须向访问者请求密码。等等等等

  2. 访问控制。数据使用 SQL Server 本身有权访问的 key 进行加密(最终加密链一直延伸到服务主 key ,并使用 DPAPI 进行加密)。除了授予和拒绝 SELECT 之外,这不会为您提供更多保护:是访问控制,而不是加密控制。这种方案仅防止介质意外丢失(有人找到了包含您的数据库的磁盘,或者您丢失了包含数据库的笔记本电脑)。您可以使用 Transparent Data Encryption 实现相同的效果或文件级加密 ( BitLocker )。

常见的数据加密场景是用对称 key 对数据进行加密,然后用非对称 key (通常是证书的私钥)对对称 key 进行加密。然后,非对称 key 又用密码加密,并且在尝试访问数据时必须提供该密码。这种两级间接的主要原因是密码更改:当密码或私钥被泄露时,对称 key 将使用不同的非对称 key 重新加密,或者非对称 key 将使用不同的密码重新加密。这样,访问密码就已更改,无需重新加密所有数据。如果直接授予对称 key 访问权限,则密码泄露可能需要重新加密所有数据,可能是数 TB 的数据。

我提出的两个场景的不同之处在于非对称 key 是否也使用数据库主 key 进行加密。情况 1) 不是,情况 2) 是。这一切都在Encryption Hierarchy中有解释。 .

关于sql-server - 如何控制哪些用户可以解密 SQL Server 对称 key 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com