sql-server – 如何控制用户可以解密SQL Server对称密钥加密的内
我正在考虑加密SQL Server中的一些敏感数据,例如银行帐号和社会安全号码,以符合新的州法律.我使用SQL Server 2008作为我的.NET代码数据库.我使用.NET来加密密码,但为此我想通过简单的对称密钥加密加密我需要的几列数据来使用微软的内置加密.如果我使用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函数来解密数据,但我试图确定它到底有多安全?如何控制用户可以解密数据的内容,或者任何人只要打开对称密钥并使用解密功能就可以执行此操作? 解决方法你有两个选择:>加密控制.只有这一点,知道密码的用户才能解密数据.缺点是用户每次访问数据时都必须输入解密密码.报告必须包含一个Password参数,运行报告的用户填写数据访问密码.应用程序必须从用户请求密码.网站必须向访问者请求密码.等等等等 通用数据加密方案是使用对称密钥加密数据,然后使用非对称密钥(通常是证书的私钥)加密对称密钥.然后使用密码对非对称密钥进行加密,并且在尝试访问数据时必须提供此密码.这种两级间接的主要原因是密码更改:当密码或私钥被泄露时,对称密钥使用不同的非对称密钥重新加密,或者使用不同的密码重新加密非对称密钥.这样,访问密码已更改,无需重新加密所有数据.如果访问权限将直接授予对称密钥,则密码泄露可能需要重新加密所有数据,可能是数TB的数据. 我提出的两个场景的不同之处在于非对称密钥是否也与数据库主密钥一起使用.案例1)它不是,案例2)它是.这一切都在Encryption Hierarchy中解释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |