Como criptografar rapidamente um arquivo com o AES?

67

Eu quero criptografar um arquivo usando o AES-256. Como posso fazer isso de forma rápida e fácil, e como posso - ou outra pessoa - descriptografar novamente?

    
por Stefano Palazzo 09.09.2011 / 17:46

5 respostas

76

Infelizmente, não há uma solução fácil para proteger suas coisas. Pense no seu caso de uso, talvez algo diferente de simples AES seja mais adequado.

Se você quiser uma criptografia independente de plataforma muito simples, use openssl .

Observação: você pode usar isso para ocultar o birthday-gift-ideas.txt do seu colega de quarto, mas não espere que ele seja seguro contra um invasor determinado!

  1. Como foi apontado nos comentários, esse método usa uma função de derivação de chave ingênua, portanto, sua senha precisa ser superlativamente boa para que você tenha uma chance de ser seguro.
  2. Além disso, esse método não autentica o texto cifrado, o que significa que um invasor pode modificar ou corromper o conteúdo sem que você perceba.
  3. Para muitos tipos de segurança, a criptografia simplesmente não é suficiente (por exemplo, você não pode simplesmente usar criptografia para se comunicar com segurança)

Se você ainda quiser usar o openssl:

  • Criptografia:

    openssl aes-256-cbc -in attack-plan.txt -out message.enc

  • Descriptografia:

    openssl aes-256-cbc -d -in message.enc -out plain-text.txt

Você pode obter o openssl para base64 -codificar a mensagem usando a opção -a na criptografia e na descriptografia. Dessa forma, você pode colar o texto cifrado em uma mensagem de e-mail, por exemplo. Vai ficar assim:

stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=

Note que você tem uma opção de cifras e modos de operação. Para uso normal, recomendo aes 256 no modo CBC. Estes são os modos de cifras que você tem disponível (contando apenas AES):

aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb

Veja também:

Por favor, note:

O OpenSSL pedirá uma senha. Esta não é uma chave de criptografia, não está limitada a 32 bytes! Se você vai transferir arquivos com outra pessoa, seu segredo compartilhado deve ser muito strong. Você pode usar este site para ter uma noção de como sua senha é boa:

  • link (isso não leva em conta nenhum ataque de dicionário!)
  • link (pelo menos, verifique se há senhas comuns)

Aviso: verifiquei que esses sites não enviam sua senha para o servidor, mas isso pode mudar a qualquer momento. Use esses sites com ferramentas de desenvolvimento / inspetor e verifique se eles enviam algo antes de digitar sua senha strong.

    
por Stefano Palazzo 09.09.2011 / 17:49
17

Eu gosto de usar o comando gpg :

Criptografar:

gpg --cipher-algo AES256 --symmetric filename.tar.gz

Abreviação:

gpg --cipher-algo AES256 -c filename.tar.gz

Isso pedirá uma frase secreta.

Descriptografar:

gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg

Abreviação:

gpg -o filename.tar.gz -d filename.tar.gz.gpg

Você também pode adicionar cipher-algo AES256 a ~/.gnupg/gpg.conf para tornar o AES256 o padrão. (De acordo com a manpage, é CAST5 )

    
por scrrr 18.04.2014 / 13:44
14

7z (quando a opção senha é usada) usa uma criptografia AES de 256 bits (com SHA256 key stretching ).

Instale-o ( p7zip-full ), clique com o botão direito em um arquivo ou diretório que deseja criptografar e escolha Comprimir , .7z e Outras opções / Senha .

Para descriptografia, clique com o botão direito do mouse no arquivo .7z e escolha Extrair aqui .

    
por arrange 09.09.2011 / 18:30
3

aescrypt

O site vinculado contém uma ferramenta de criptografia / descriptografia AES de código aberto de 256 bits e é multiplataforma - MacOs, Windows, Linux e outros através de Java.

Criptografar: aescrypt -e <file>

Descriptografar: aescrypt -d <file>

Você pode fazer backup e criptografar sua pasta pessoal usando a sintaxe:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes

instalação do ubuntu

Faça o download e extraia a fonte

make
sudo make install

outras plataformas

Faça o download dos binários ou do código-fonte do site.

    
por fossfreedom 10.09.2011 / 22:21
2

Muitas das sugestões que eu teria feito já foram apresentadas neste tópico. Basicamente, o openssl é realmente a maneira mais fácil de criptografar um arquivo ou script. No entanto, eu alertaria contra o uso de AES-256 só porque ele não está disponível em todas as versões do openssl em algumas plataformas. A maioria dos sistemas operacionais mais recentes ... ou seja Linux tem isso. Mas outros, como o AIX 5.3, não (acho que o HP-UX também). Se você pretende usar seu arquivo ou script em diferentes plataformas, eu recomendo strongmente o uso de AES-128 porque isso está disponível em todos os lugares.

Como você pode "rápida e facilmente" criptografar um arquivo usando o AES-128?

Um site como www.ShellScrypt.com usa o openssl AES-128 intensamente para criptografar scripts de shell e em seguida, torna as cópias criptografadas dos scripts executáveis. Tudo o que você precisa fazer é colar o script no site e um arquivo zip será gerado para você. Esse arquivo zip conterá a versão criptografada (e executável, se for um script) do seu arquivo. Isso permite que você " facilmente " e " convenientemente " criptografem um arquivo / script sem ter que satisfazer qualquer requisito de pacote ou módulo em cada sistema no qual você pretende usar o script. executar vários encantamentos complexos e confusos de comandos openssl.

Abaixo, é mostrado um comando básico criptografar / descriptografar openssl que usa o AES-128:

test@test-VirtualBox:~$ 
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$ 
test@test-VirtualBox:~$
    
por SimplifiedWorkings 31.05.2016 / 07:17