Então, eu estava perguntando no chat sobre a segurança dos arquivos de backup do SQL Server.
Disseram-me que, se um invasor tiver acesso ao arquivo .bak não criptografado, poderá ter acesso aos dados.
Então, vamos olhar para este cenário:
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate
aviso - não há senha aqui.
e então criptografamos nossas tabelas por:
UPDATE tbl1
SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO
Agora digamos que um hacker pegou meu bak
arquivo. Tudo o que ele precisa fazer para visualizar os dados (em seu próprio computador e sql-server) é:
SELECT
convert( NVARCHAR(max), decryptbykey(namePAss))
FROM tbl1
Ele ainda seria capaz de acessar os dados?
Sim existe. Você abriu o certificado de
MyCertificate
alguma forma , não foi? Pode haver vários casos, mas qualquer um deles acaba com uma senha:Na última chave parece não haver senha, mas existe uma: a senha da conta de serviço. O backup, quando restaurado em um host diferente, não terá a criptografia da chave mestra de serviço da chave mestra do banco de dados e isso tornará os dados inacessíveis.
Consulte a hierarquia de criptografia
A resposta curta é não, pois eles precisariam da chave mestra do banco de dados e sua senha.
Aqui está uma boa visão geral da criptografia de certificados: http://www.mssqltips.com/sqlservertip/1319/sql-server-2005-encryption-certificates-overview/
E um para chaves mestras: http://www.mssqltips.com/sqlservertip/1312/managing-sql-server-2005-master-keys-for-encryption/