一家公司需要存儲敏感數據。請現在不要談論證書。瞭解SQL Server加密(通過密碼)?
一個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...)
一切都好。
問題:
當程序員打開了一個對稱密鑰,他必須在知道密碼。我不認爲程序員應該知道密碼。這怎麼解決?
如果上帝黑客得到了整個
.bak
文件,他恢復了自己的家用機上的備份 - 他可以查看它的程序員之一寫的SP,並看到密碼。然後HACKER可以這樣做:OPEN SYMMETRIC KEY SecureSymmetricKey1 解密的BY PASSWORD = N'blabla」
我缺少什麼?
感謝您的幫助。
我可以知道你是如何解決這個問題的嗎?我有同樣的困境。 –