Desejo criptografar arquivos de backup criados e compactados regularmente de contêineres OpenVZ, antes que eles deixem o servidor e sejam copiados para o espaço de backup do provedor via ftp.
Eles variam em tamanho, de 6 a 50 GB (depois de compactados, lzo) UPDATE ... e são criados automaticamente pelo ambiente de virtualização Proxmox.
Vários comentários aqui e ali sobre mcrypt ("qualidade de código / suporte") ou openssl ("não para arquivos grandes") que me fazem pensar se eles se encaixam. O que você pode recomendar?
Além disso: não consigo dividir o arquivo de backup durante a compactação em partes menores e não quero fazer isso depois por motivos de desempenho. Tive experiências ruins com duplicidade e quero evitá-la, caso queira mencionar isso.
O ambiente do servidor é o Debian 7.
Outros sugeriram várias ferramentas de criptografia simétrica adequadas para pipelining, como
aespipe
. Eu suspeito que eles serão tão eficientes quanto você pode obter, dado que a criptografia é um tipo de coisa bastante cara para a CPU, e não é uma má sugestão.Mas sugiro considerar uma ferramenta assimétrica como
gpg
. A criptografia em massa oculta ainda será por meio de uma cifra simétrica usando uma chave nonce, mas toda a questão do gerenciamento de chaves se torna muito mais fácil com a cadeia de ferramentas GPG disponível.Em particular, o uso de uma cifra simétrica simples para criptografar os backups destrói fatalmente a segurança (na medida em que a mesma chave é usada para criptografar todos os backups e o servidor deve ter acesso a ela regularmente) ou aumenta substancialmente o seu complexidade (na medida em que você usa uma chave diferente para cada backup e agora deve gerenciá-los manualmente).
Com uma ferramenta como
gpg
, você pode gerar um único par de chaves para a criptografia de todos os backups, e o servidor que criptografa precisa apenas da metade pública para criptografar os backups. Você pode manter a chave privada separadamente, sob segurança normal ou - se razões de negócios assim o exigirem - dividir a chave entre muitos indivíduos, alguns subgrupos dos quais são necessários para reconstituir a chave privada, usando protocolos padrão de compartilhamento de chaves.