SQL Server 中的对称密钥和证书角色?

Roy*_*mir 3 security sql-server certificate

1)

CREATE SYMMETRIC KEY SecureSymmetricKey
    WITH ALGORITHM = DESX
    ENCRYPTION BY PASSWORD = N'StrongPassword';
Run Code Online (Sandbox Code Playgroud)

我想弄清楚 SQL Server 加密。

  • 一旦我执行了上面的代码,有什么方法可以稍后找出密码值是SecureSymmetricKey什么?

2)

如果现在我这样做Certificates:我是(管理员)创建的

CREATE MASTER KEY ENCRYPTION
BY PASSWORD = 'DB Master key password!'
GO
Run Code Online (Sandbox Code Playgroud)

只有我知道密码。

后来我:

CREATE CERTIFICATE MyCertificate
WITH SUBJECT = 'My Certificate Subject'


CREATE SYMMETRIC KEY MySymetricKey
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE MyCertificate
Run Code Online (Sandbox Code Playgroud)

到现在为止,一切正常。

现在,当黑客来到电脑前,他所要做的就是

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
Run Code Online (Sandbox Code Playgroud)

进而 :

SELECT  
       convert( NVARCHAR(max), decryptbykey(namePAss)) 
FROM  tbl1
Run Code Online (Sandbox Code Playgroud)

那么证书的保护在哪里?没有人问他密码(就像密码加密一样(如我的第一个问题)...?他只需要知道证书名称

通过证书打开对称密钥 MySymetricKey 解密 MyCertificate

找出证书名称不是问题......那么来自黑客的解密数据的保护在哪里?

3)

当我使用

CREATE SYMMETRIC KEY SecureSymmetricKey
    WITH ALGORITHM = DESX
    ENCRYPTION BY PASSWORD = N'StrongPassword';


DECLARE  @str NVARCHAR(100)
SET @str = 'lala';

OPEN SYMMETRIC KEY SecureSymmetricKey
    DECRYPTION BY PASSWORD = N'StrongPassword';
Run Code Online (Sandbox Code Playgroud)

我要保护谁的数据? 数据从客户端发送到服务器?(数据是通过纯文本发送的 - 在发送数据之前我无法激活 SQL 命令......)或有权访问 SQL 服务器的人?

Rem*_*anu 7

您正在防止意外的媒体丢失(带有数据库的笔记本电脑丢失,带有数据库副本或备份副本的驱动器出现在跳蚤市场上)等。应用程序) 需要在用户不提供密码的情况下访问数据仅提供对媒体丢失的访问。加密密钥层次结构根植于系统 DPAPI 加密密钥,即服务帐户的密码。这种情况永远不会保护访问您的 SQL Server 的黑客,也不是为了保护这样的人。

另一种方法是在用户每次使用应用程序时询问密码并使用此密码打开加密密钥层次结构顶部的密钥(通常是数据库中的证书)。这种方案很少部署在一些多租户场景中,当租户不信任托管操作/管理员时。


Bre*_*zar 5

保护措施是,如果有人获得此数据库的副本(通过窃取备份、制作用户数据库的 SAN 快照、窃取用户数据库的硬盘驱动器等)并尝试将它们附加到另一个 SQL Server,他们将无法做到。

它并不能保护一切——它只是图片的一部分。有关更多信息,请查看 Denny Cherry 所著的优秀书籍《Securing SQL Server》:

http://www.amazon.com/Securing-SQL-Server-Protecting-Attackers/dp/1597496251/ref=sr_1_1?ie=UTF8&qid=1325431386&sr=8-1