Roy*_*mir 13 security sql-server
有人告诉我,如果攻击者可以访问未加密的 .bak 文件,他们就可以访问数据。
所以让我们看看这个场景:
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
Run Code Online (Sandbox Code Playgroud)
注意 - 这里没有密码。
然后我们通过以下方式加密我们的表:
UPDATE tbl1
SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO
Run Code Online (Sandbox Code Playgroud)
现在假设黑客得到了我的bak
文件。为了查看数据(在他自己的计算机和 sql-server 中),他所要做的就是:
SELECT
convert( NVARCHAR(max), decryptbykey(namePAss))
FROM tbl1
Run Code Online (Sandbox Code Playgroud)
他还能访问数据吗?
Run Code Online (Sandbox Code Playgroud)OPEN SYMMETRIC KEY MySymetricKey DECRYPTION` BY CERTIFICATE MyCertificate`
注意 - 这里没有密码。
就在这里。你MyCertificate
以某种方式打开了证书,不是吗?可能有几种情况,但其中任何一种情况都以密码结束:
在最后一个密钥中似乎没有密码,但有一个:服务帐户密码。备份在不同主机上恢复时,将缺少数据库主密钥的服务主密钥加密,这将使数据无法访问。
请参阅加密层次结构