Eu tenho um servidor de backup, que cria arquivos xz
compactados tar
de árvores de diretório para backup. Esses arquivos tar podem ficar enormes (vários TBs), split
divididos em pedaços (2,5 TB), e cada pedaço é gravado em uma fita LTO-6, e as fitas ficam fora do local.
Agora eu quero adicionar criptografia. Posso GPG criptografar o arquivo tar antes de dividir, usando criptografia de chave pública-privada e com um ou mais destinatários (chaves públicas de administrador).
No entanto, em caso de recuperação, pelo menos um administrador precisa colocar sua chave privada no servidor de backup, pois os arquivos são grandes demais para serem descompactados em qualquer outro lugar.
O GPG usa um esquema de criptografia híbrida sob o capô, com uma cifra simétrica como AES com uma chave de sessão, e somente essa chave de sessão recebe a chave pública-privada criptografada para os destinatários.
Existe uma maneira de permitir que um administrador forneça a chave de sessão para descriptografar o arquivo a ser recuperado sem colocar a chave privada no servidor de backup ?
Eu poderia reinventar a roda, é claro:
- crie uma chave de sessão aleatória no servidor de backup para cada arquivo a ser copiado
- use criptografia simétrica GPG para criptografar o arquivo
- use criptografia assimétrica GPG para criptografar a chave da sessão para cada destinatário
Mas existe uma maneira "padrão" ou embutida ou de práticas recomendadas de alcançar acima?
head
e tal. A abordagem resolve minha coceira original.Parece que a maior parte da sua pergunta foi respondida, no entanto, se sua equipe de administradores tiver cuidado com as chaves privadas que acabam fora do controle local, você pode considerar
sshfs
montar os backups remotos em uma sessão ssh.Instale via apt no sistema de cada administrador remoto
Supondo que a configuração ssh dos administradores seja semelhante a abaixo
Seus administradores podem usar algo como abaixo para montar
Para desmontar após a inspeção, o administrador remoto pode usar o seguinte
O lado bom do uso do sshfs é que apenas as chaves públicas para o GnuPG e ssh são necessárias no servidor remoto, as chaves privadas relacionadas permanecem nos sistemas que os possuem. A segunda parte interessante é que, até ser lida ou acessada, a maioria das informações do arquivo permanece em seu sistema de arquivos relacionado.
Se você ainda estiver procurando ferramentas para facilitar a criptografia automática de logs ou diretórios, talvez queira verificar a ferramenta prof of concept que eu enviei para o GitHub (especificamente o Cenário Quatro escrito para
sshsf
uso) que, com uma pequena personalização, criptografará felizmente quase todos os dados via GnuPG. Mas esteja avisado de que é experimental e alguns de seus recursos podem causar corrupção de dados se forem mal utilizados. O código fonte é menor que ~ 1600 ~ linhas, portanto é muito possível auditar em menos de um fim de semana.Pode-se obter segurança adicional configurando a configuração ssh do servidor remoto para chroot os usuários, permitindo apenas o acesso ao diretório criptografado e desativando o shell interativo das chaves de administrador usadas dessa maneira.
fonte
Se você quiser que a chave secreta seja mantida fora dos discos rígidos, crie um ramdisk (lembra-se deles?) E carregue as chaves secretas no local seguro, não no servidor, conforme necessário. Use-o para descriptografar e, quando terminar, substitua-o por / dev / random. O segredo precisa ser usado na RAM para ser usado pelo GPG, então por que não duas vezes?
Se você não pode permitir que uma chave secreta esteja no servidor, mesmo na RAM, há uma impossibilidade técnica. O GPG deve ter a chave secreta em algum lugar para descriptografar qualquer coisa.
Informações sobre o Ramdisk: /unix/66329/creating-a-ram-disk-on-linux
fonte