Criptografar arquivos usando gpg (e eles simétricos criptografando a chave) - é uma coisa normal de se fazer no mundo * nix?

3

Eu li um monte de artigos sobre o uso do gpg para criptografar e-mails, mas eu gostaria de usá-lo para criptografar alguns arquivos - principalmente um monte de * .isos. Eu vou descrever o que eu pensei que faria, então você pode atirar em mim ou apenas adicionar algumas sugestões.

Eu vou fazer

tar -cvjf myiso.iso.tar.bz2 myiso.iso

e eu pretendo criptografar este myisio.tar.bz2, usando uma chave gerada pelo gpg (não sei exatamente como fazer isso. Vou ler a man page). Eu vou salvar essa chave gpg gerada que usei para essa criptografia em uma unidade flash e codificá-la com uma chave simétrica.

É para insano ?

    
por Somebody still uses you MS-DOS 03.11.2011 / 06:02

1 resposta

7

Você pode usar o GPG para criptografar simetricamente um arquivo com uma frase secreta ( gpg -c ). Se a senha tiver entropia suficiente, você não precisará de uma etapa extra para gerar uma chave secreta. O que significa "entropia suficiente"? Sua criptografia precisa suportar ataques offline, onde o invasor pode fazer tentativas de quebra tão rápido quanto o hardware permitir. Com uma pequena fazenda de PCs, o invasor pode conseguir algumas centenas de bilhões de tentativas por segundo, o que é aproximadamente 2 ^ 69 por década. Então, com uma entropia de 2 ^ 70, você estará seguro. Isso significa que, se sua frase secreta consistir em letras completamente aleatórias (maiúsculas ou minúsculas) e dígitos, ela deverá ter 12 caracteres.

Agora, para armazenar essa frase secreta, você pode usar o GPG com seus pares de chaves usuais. Use gpg --gen-key para gerar um par de chaves e gpg -e para criptografar a senha usada para criptografar o arquivo grande para um ou mais pares de chaves.

Aqui está um esboço sobre como fazer a criptografia (note que evito colocar a frase secreta na linha de comando ou no ambiente, para garantir que outro usuário não possa encontrá-la olhando para a saída ps enquanto o comando está sendo executado):

passphrase=$(pwgen -s 12 -1)
echo "The passphrase for myiso.iso.gpg is: $passphrase" |
gpg -e -r somebody -r somebodyelse >passphrase.gpg
echo "$passphrase" | gpg -c --passphrase-fd 3 3<&0 <myiso.iso >myiso.iso.gpg

e como descriptografar:

passphrase=$(gpg -d <passphrase.gpg)
echo "$passphrase" | gpg -d --passphrase-fd 3 3<&0 <myiso.iso.gpg >myiso.iso

O motivo para usar uma frase secreta (um segredo compartilhado) em vez de criptografar diretamente é permitir que o arquivo seja compartilhado entre várias pessoas. Apenas a pequena frase secreta precisa ser criptografada novamente se você quiser adicionar um destinatário (a remoção de um destinatário só faz sentido se você souber que o destinatário não teve acesso ao texto simples e requer a reencodificação do texto criptografado).

    
por 03.11.2011 / 23:28