O Bacula permite criptografia na gravação dos dados no storage, a partir da sa[ida do cliente (file daemon). Na restauração, assinaturas de arquivos são validadas e qualquer inconformidade [e reportada. Em em nenhum momento, o Director ou Storage Daemon tem acesso aos dados criptografados.
* Esta implementação não criptografa meta-informações do arquivo.
Encriptação e validação são implementadas utilizados chaves privadas RSA, casadas com certificados p[ublicos x509 auto assinados. Este esquema [e conhecido como PKI ou infra-estrutura de chave púublica.
Cada File-daemon deverá ter sua própria chave pública/privada. Em adição a esse par, qualquer número de chaves mestres pode ser especificada — essas chaves podem ser utilizadas para descriptografar qualquer backup em caso de perda da chave do File Daemon. Apenas o certificado da chave pública será visível para o file daemon A chave mestre privada nunca deve ser armazenada no cliente.
As chaves mestre devem ser guardadas em segurança, preferencialmente num confre corta-fogo. Também não deve ser guardada na mesma máquina do Storage Daemon ou Director, se houver preocupação com atividade maliciosa nestas máquinas.
Menos críticas que as chaves mestras, as chaves do File Daemon Keys também são candidatas a serem backupeadas de maneira off-site.
NOTA!!! Se as chaves de criptografia forem perdidas, os backups serão irrecuperáveis.
O algorítimo básico utilizado para cada sessão de backup, é:
1. O file daemon gera uma chave de sessão.
2. The FD criptografa utilizando PKE para todos os recipientes (o file daemon e qualquer chave mestre).
3. O FD usa a chave de sessão para fazer a criptografia simétrica dos dados.
Implementando o suporte a criptografia
./configure –with-openssl …
Detalhes Técnicos da Criptografia
Esta implementaçào utiliza AES-CBC de 128 bits, com sessão simétrica criptografada RSA. A chave RSA é suprida pelo usuário. Se vocë estiver executando o OpenSSL 0.9.8r, a assinatura do arquivo utiliza SHA-256 — do contráario, SHA-1 é utilizado.
A informação escrita no volume suporta criptografia simétrica e assimétrica.
Criptografia simétrica:
– 128, 192, and 256-bit AES-CBC
– Blowfish-CBC
Criptografia Assimétrica (usada para criptografar as chafes de sessão):
– RSA
Algorítimos:
– MD5
– SHA1
– SHA256
– SHA512
Geração das chaves Públicas/Privadas:
Crie um par de chaves mestras com:
cd /etc/bacula && openssl genrsa -out master.key 2048 && openssl req -new -key master.key -x509 -out master.cert && cat master.key master.cert >master.pem
Crie um par de chaves para cada um dos File Daemons:
openssl req -new -x509 -nodes -out fd-example.pem -keyout fd-example.pem
Neste caso, tipicamente a extenção .cert se refere a um certificado de codificação X509 que contém apenas uma chave pública.
Exemplo de Configuração:
bacula-fd.conf
FileDaemon { Name = example-fd FDport = 9102 # where we listen for the director WorkingDirectory = /var/bacula/working Pid Directory = /var/run Maximum Concurrent Jobs = 20 PKI Signatures = Yes # Enable Data Signing PKI Encryption = Yes # Enable Data Encryption PKI Keypair = /etc/bacula/fd-example.pem # Public and Private Keys PKI Master Key = /etc/bacula/master.cert # ONLY the Public Key # PKI Keypair = /etc/bacula/master.pem ## só utilizar se perder a chave original }
Descriptografando com a chave mestra:
* Primeiro, a chave mestra privada e a pública devem ser concatenatas num s[o arquivo. Ex.: cat master.key master.cert >master.keypair
* Configure a opção PKI Keypair no respectivo bacula-fd.conf:
PKI Keypair = /etc/bacula/master.pem
* Comece o restore. A chave mestra será utilizada para descriptografar os dados.
Disponível em: Português