1)
CREATE SYMMETRIC KEY SecureSymmetricKey
WITH ALGORITHM = DESX
ENCRYPTION BY PASSWORD = N'StrongPassword';
我正在尝试了解 SQL Server 加密。
- 一旦我执行了上面的代码,以后有什么方法可以找出 的密码值是
SecureSymmetricKey
多少?
2)
如果现在我正在这样做Certificates
:我是管理员并创建了:
CREATE MASTER KEY ENCRYPTION
BY PASSWORD = 'DB Master key password!'
GO
只有我知道密码。
后来我:
CREATE CERTIFICATE MyCertificate
WITH SUBJECT = 'My Certificate Subject'
CREATE SYMMETRIC KEY MySymetricKey
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE MyCertificate
直到现在,一切都还好。
现在,当黑客进入计算机时,他所要做的就是:
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
接着 :
SELECT
convert( NVARCHAR(max), decryptbykey(namePAss))
FROM tbl1
那么证书的保护在哪里呢?没有人问他密码(就像密码加密(如我的第一个问题)......?他只需要知道证书名称
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
找出证书名称是什么不是问题......那么黑客解密数据的保护在哪里?
SQL Server 中证书的目的是保护对称密钥,但更多的是保护您的离线数据:.mdb 文件和备份。一旦攻击者有权访问正在运行的 SQL 实例(具有访问数据和运行解密的足够权限),它并不是真正设计用于阻止对数据的访问。