Existe uma ferramenta para criptografar um arquivo ou diretório?


66

Qual é a maneira mais popular de criptografar arquivos ou pastas individuais?


A pergunta é um pouco incerta. Deseja criptografar e descriptografar manualmente os arquivos ou em tempo real?
psusi 23/02

4
Em vez de 'mais popular', pode ser útil ajustar uma solução aos seus requisitos (conforme a pergunta de psusi). Você está procurando uma combinação de código-fonte fácil, confiável, nativo, seguro, rápido e aberto? Todos ou alguns deles?
belacqua 23/02

7
Eu gostaria de acrescentar que, ao contrário do que algumas respostas afirmam, o TrueCrypt não é considerado Software Livre ou Código Aberto pelo Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / etc.
janc

Respostas:


46

O GnuPG (GPG) pode usar criptografia assimétrica e simétrica. A criptografia assimétrica envolve duas chaves, uma chave pública para criptografia e uma chave privada para descriptografia. Consulte a resposta do djeikyb nesta página para o uso de chaves assimétricas.

Para criptografia simétrica, as chaves de criptografia e descriptografia são iguais. É importante perceber que a maioria das pessoas é muito ruim na escolha de senhas fortes. Assim, um esquema de criptografia que usa senhas deve usar uma função de derivação de chave que consome mais recursos (tempo, memória) para diminuir os ataques de força bruta.

Para uma descrição do KDF do GnuPG, consulte esta postagem do Crypto Stack Exchange . Exemplo de uso de criptografia simétrica:

gpg --symmetric < unencrypted_file > encrypted_file

Descriptografia:

gpg --decrypt < encrypted_file > decrypted_file

Observe que o gpgcache do symkey é armazenado em cache por padrão (comportamento documentado). Para evitar isso, use a --no-symkey-cacheopção conforme descrito em uma resposta relacionada .

Página de manual do gpg .


resposta antiga para usuários que podem escolher boas chaves, veja a nota abaixo

Para arquivos únicos, opensslé muito útil, especialmente quando o arquivo é enviado por um canal não seguro (por exemplo, email). É grátis (em dinheiro e em liberdade), ao contrário do Truecrypt, que só é gratuito em dinheiro.

NOTA : a senha digitada aqui será processada por uma iteração MD5 1 . Se você escolheu uma senha "123456", terá muito pouca segurança.

Criptografar:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

Você será solicitado a fornecer uma senha, que deve ser inserida duas vezes.

Descriptografar:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

Página de manual para o programa enc .

1 openssl enc usa a função digest definida pela -mdopção (md5 padrão) e chama a função EVP_BytesToKey()com uma contagem de iterações de 1. Isso pode ser encontrado na fonte openssl em apps/enc.c.


Existe uma maneira de fazer isso sem um passpharse?
Assaf Lavie

@Assaf Lavie: O OpenSSL não suporta arquivos de chave, se você quis dizer isso, embora possa ler uma senha da primeira linha de um arquivo. Leia a página de manual no openssl, seção Argumentos de frase secreta .
precisa saber é o seguinte

Além disso, você pode usar o sinalizador "-a", que permite copiar o texto criptografado, da seguinte forma: "openssl aes-256-cbc -a -salt -in unencrypted_file -out encrypted_file"
v2r

@ v2r Para adicionar para outros leitores: -abase64 codifica a entrada (apelido de -base64), para decriptografá-la, você também precisa adicionar a -aopção.
Lekensteyn

11
@Lio aes-256é um apelido para aes-256-cbc, não há diferença. CBC é um modo de operação para cifras de bloco. Consulte a página de manual de enc(1)para obter uma lista das cifras suportadas.
Lekensteyn

30

Eu uso o cavalo marinho para isso. É um front-end do Gnome para o GnuPG e se integra bem ao nautilus:Integração Nautilus

Para obter a integração do nautilus, instale o pacote seahorse-nautilusno Centro de Software: seahorse-nautilus Instalar seahorse-nautilus


3
isto só funciona se você tiver um BPM chaves criadas em seu sistema ...
hhlp

3
@hhlp: a resposta de djeikyb explica como fazer isso.
Idbrii

11
Estou querendo criptografar minha chave GPG.
KI4JGT

19

TrueCrypt : Software de criptografia de disco freeware disponível na fonte , inseguro e descontinuado .


2
+1, encfs - com ou sem uma GUI - é muito útil e suficiente para a maioria dos propósitos.
loevborg 23/02

3
O Cryptkeeper é incrível - simples, poderoso e fácil de configurar com o Dropbox ( askubuntu.com/questions/19613/… ).
Scaine

O TrueCrypt não é fornecido no Ubuntu (ou em qualquer outra distribuição importante) por questões de licenciamento.
MagicFab

2
TrueCrypt não é de código aberto. en.wikipedia.org/wiki/…
yuric

4
'AVISO: O uso de TrueCrypt não é seguro' - TrueCrypt
user457015

16

Um método cli seria o GnuPG , e talvez alcatrão. Este é um pequeno guia para referência, você realmente deve ler a documentação.

Primeira corrida gpg --gen-key. Siga as instruções para gerar seu par de chaves pública / privada. Agora você pode criptografar arquivos: gpg -e foo.txt. Isso criará um arquivo chamado foo.txt.gpg. O GnuPG não exclui o arquivo não criptografado original, você decide se deseja que ele fique por perto. Para descriptografar foo.txt.gpg, execute gpg foo.txt.gpg. A descriptografia solicitará que você substitua os arquivos existentes.

Se você precisar criptografar um diretório, tar primeiro:

tar -cf foo.tar foo/
gpg -e foo.tar

Você pode renomear o arquivo criptografado da maneira que desejar. Quando descriptografado, o nome do arquivo original é preservado.


2
As vantagens deste método são: Primeiro, não requer a instalação de pacotes adicionais; Segundo, não requer acesso root. Eu adicionaria compactação ao comando tar (xz ou gz).
Pantera

12

Há também o eCryptfs , que o Ubuntu usa para criptografar diretórios pessoais.

Você pode selecionar a criptografia do diretório inicial na instalação ou configurar um único diretório, $HOME/Privatepor padrão, usando o utilitário ecryptfs-setup-private . Esta pasta pode ser configurada para montar automaticamente no login e desmontar no logout. Cada arquivo e pasta dentro dele $HOME/Private, recursivamente, serão criptografados.


Infelizmente o eCryptfs é MUITO lento. Além disso, existem alguns bugs na versão mais recente
Rux

Pelo contrário, se algo eCryptfs for mais rápido que gpg; por padrão, o gpg tenta compactar antes de criptografar. E eCryptfs agora também é utilizado pela maioria Android de
Xen2050

2

Você também pode usar "Academic Signature" para usar a criptografia de curva elíptica com uma GUI wxWidgets. É de código aberto, mas não nos repositórios. Faz principalmente criptografia assimétrica, assinaturas e carimbos de data / hora do ECC. Mas a ferramenta também possui uma entrada de menu para chamar o Gnupg (RSA) e acesso direto à criptografia / descriptografia simétrica de arquivos que oferecem AES e outros algoritmos. Sua página inicial está aqui: https://www.academic-signature.org

Eu o uso muito para proteger arquivos em trânsito e para assinar digitalmente documentos acadêmicos (transcrições, cartas de recomendação, listas de notas, etc.)


1

Peguei algumas das outras sugestões e criei um invólucro de script de shell simples (para os preguiçosos)

https://github.com/orionM/ssl-crypt-tools

aproveitar


11
hmm, bash script usando openssl aes-256-cbc ...Você sabe, em vez de usar, if [ $? -ne 0 ] ; then... fivocê pode simplesmente usar ||? E há pessoas que acham que o OpenSSL "* teve várias falhas importantes de segurança no ano passado [ Heartbleed ], enquanto os documentos Snowden mostram que o GPG é um dos poucos programas que podem atrapalhar a NSA quando usados ​​corretamente. O código do OpenSSL também é uma fossa completa e tem uma cobertura de teste terrível. (Divulgação: [ele] trabalha [s] em um projeto "O OpenSSL é uma porcaria; vamos consertar isso".) - jbarlow * "
Xen2050
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.