Criptografar arquivo tar assimetricamente

2

Eu quero alcançar algo como

tar -c directory | openssl foo > encrypted_tarfile.dat

Eu preciso da ferramenta openssl para usar criptografia de chave pública.

Eu encontrei uma pergunta anterior sobre criptografia simétrica no comando promt (sic! ), o que não é suficiente. Eu dei uma olhada na página do manual openssl (1) e encontrei apenas criptografia simétrica. O openssl realmente não suporta criptografia assimétrica?

Basicamente, muitos usuários devem criar seus arquivos tar criptografados e armazená-los em um local central, mas apenas poucos podem lê-los.

    
por DerMike 22.02.2011 / 16:10

4 respostas

3

As rotinas de criptografia assimétrica do OpenSSL estão no subcomando rsautl . (Nas versões recentes do OpenSSL, isso foi substituído pelo comando pkeyutl , mas os argumentos parecem ser os mesmos.)

Criptografar um arquivo tar usando a chave pública de alguém:

openssl rsautl -encrypt -inkey Bob.pub -pubin -in foo.tar -out foo.tar.enc

Eles podem descriptografar o arquivo tar usando sua chave privada:

openssl rsautl -decrypt -inkey Bob -in foo.tar.enc -out foo.tar

Observe que o SSH e o SSL usam diferentes formatos de chave, portanto, se você quiser usar uma chave SSH para a criptografia / descriptografia, não será possível usar ~ / .ssh / id_rsa.pub como está.

    
por 11.12.2013 / 16:38
2

Use gpg --encrypt .

Com "-r" você pode passar o ID do usuário.

Veja

man gpg
    
por 22.02.2011 / 16:16
1

Caso você não queira configurar a infraestrutura gpg e apenas deseja criptografar o arquivo usando um par de chaves pública / privada, a seguinte ferramenta pode ser útil: link . Você precisará do mono no linux para executá-lo.

aviso de isenção: eu escrevi

    
por 25.11.2013 / 05:53
1

Aqui estão dois exemplos de man openssl :

Send encrypted mail using triple DES:

 openssl smime -encrypt -in in.txt -from [email protected] \
        -to someone@somewhere -subject "Encrypted message" \
        -des3 user.pem -out mail.msg
Sign and encrypt mail:

 openssl smime -sign -in ml.txt -signer my.pem -text \
        | openssl smime -encrypt -out mail.msg \
        -from [email protected] -to someone@somewhere \
        -subject "Signed and Encrypted message" -des3 user.pem

Alguma confusão vem do fato de que s/mime e des3 são mencionados. Mas, de fato, o seguinte acontece nos exemplos acima:

  • Uma nova chave simétrica aleatória é gerada
  • O arquivo é criptografado usando a chave simétrica
  • A chave simétrica é criptografada usando um algoritmo assimétrico com uma chave pública armazenada em user.pem
  • A chave simétrica criptografada, o arquivo criptografado e os metadados são colocados em um contêiner padrão

O resultado final é que in.txt arquivo é criptografado em mail.msg file, portanto, somente o usuário que possui a chave privada correspondente a user.pem public key pode descriptografá-lo.

    
por 11.12.2013 / 14:48