Criptografia de backup do banco de dados

2

Eu tenho tentado elaborar um esquema de criptografia de backup de banco de dados eficaz ultimamente.
Eu tenho um servidor Postgres 9.4, eu tenho a maior parte do esquema de backup desenvolvido, eu acho. Os backups serão armazenados em um arquivo .sql padrão, gzipados e depois executados no AES-CBC com OpenSSL.

A única parte em que estou tendo problemas são as teclas. Eu não quero usar uma única chave mestra, quero algum tipo de rotação ou geração de chaves. Algo em que todos os backups (ou pelo menos a maioria) têm chaves diferentes, mas também chaves que posso encontrar / gerar e usar facilmente se precisar. Eu dei uma olhada no Google, mas não encontrei nenhuma solução clara.

Estou disposto a avaliar soluções de criptografia totalmente diferentes também, não estou ligado ao AES-CBC / OpenSSL.

Qualquer solução será muito apreciada.
Obrigado.

    
por Wingar 16.07.2015 / 16:56

2 respostas

5

Use gpg ( GnuPG ).

Você poderá gerar várias chaves e criptografar um arquivo para descriptografia com qualquer chave da lista escolhida. Além disso, as chaves GPG não são simétricas - seu servidor precisa apenas de chaves públicas para criptografia. Chaves privadas, usadas para descriptografia, podem ser armazenadas com segurança em outro lugar.

Você pode, por exemplo, imprimir uma chave privada como QRcode para seu diretor e outra para armazenar em um cofre físico.

    
por 16.07.2015 / 17:54
1

O esquema que é implementado em pelo menos um DBMS comercial que eu conheço usa duas chaves, vamos chamá-las de chave mestra e chave de banco de dados.

A chave mestra é usada para criptografar a chave do banco de dados. A chave do banco de dados, que pode ser de nível superior, é usada para criptografar e descriptografar as imagens de backup.

A chave mestra pode ser girada com segurança, porque exige apenas que você descriptografe e recriptografe a chave do banco de dados.

Como a própria chave do banco de dados permanece inalterada, ela sempre pode ser usada para descriptografar e restaurar um backup, não importando a idade.

Se você fosse girar a chave do banco de dados, seria necessário descriptografar e criptografar novamente todos os backups mantidos, o que em muitos casos seria impraticável.

Você pode aplicar a abordagem sugerida por @Tometzky para criptografar a chave do banco de dados (embora pareça que é mais como uma adição da chave do que a rotação ).

    
por 16.07.2015 / 21:17