一家公司需要存储敏感数据。请让我们现在不要谈论证书。
DBA执行以下操作:
CREATE SYMMETRIC KEY SecureSymmetricKey1
WITH ALGORITHM = DESX
ENCRYPTION BY PASSWORD = N'blabla';
程序员想要加密数据并执行以下操作:
-- open key
OPEN SYMMETRIC KEY SecureSymmetricKey1
DECRYPTION BY PASSWORD = N'blabla'
-- actual encrpyt
DECLARE @encrypted_str VARBINARY(MAX)
SET @encrypted_str = EncryptByKey(Key_GUID('SecureSymmetricKey1'),'my data');
另一个程序员想要读取数据,所以他这样做了:
DECLARE @decrypted_str VARBINARY(MAX)
SET @decrypted_str = DecryptByKey(...encrypted_str...)
一切都好。
问题 :
当程序员打开对称密钥时,他必须知道密码。我认为程序员不应该知道密码。如何解决?
如果 GOD 黑客获得了整个
.bak
文件并在自己的家用计算机上恢复了备份 - 他可以查看其中一位程序员编写的 SP,并查看密码。然后黑客可以做:打开对称密钥 SecureSymmetricKey1 密码解密 = N'blabla'
我错过了什么?
感谢您的帮助。