Introdução

Introdução

OpenSSL é um poderoso kit de ferramentas de criptografia. Muitos de nós já usamos o OpenSSL para criar chaves privadas da RSA ou CSR (solicitação de assinatura de certificado). No entanto, você sabia que pode usar o OpenSSL para comparar a velocidade do seu computador ou que também pode criptografar arquivos ou mensagens? Este artigo fornecerá algumas dicas simples de seguir sobre como criptografar mensagens e arquivos usando o OpenSSL.

Criptografar e descriptografar mensagens

Primeiro, podemos começar criptografando mensagens simples. O comando Linux a seguir criptografará uma mensagem “Bem -vindo ao LinuxCareer.com ”usando a codificação Base64:

$ eco "Bem -vindo ao LinuxCareer.com "| OpenSSL ENBASE64
V2VSY29TZSB0BYBMAW51eENHCMVLCI5JB20K

A saída do comando acima é uma string criptografada contendo mensagem codificada “Bem -vindo ao LinuxCareer.com ”. Para descriptografar a string codificada de volta à sua mensagem original, precisamos reverter o pedido e anexar -d opção para descriptografia:

$ echo "v2vsy29tzsb0bybmaw51eenhcmvlci5jb20k" | OpenSSL ENC -BASE64 -D
Bem -vindo ao LinuxCareer.com

A criptografia acima é simples de usar, no entanto, falta uma característica importante de uma senha, que deve ser usada para criptografia. Por exemplo, tente descriptografar a string a seguir com uma senha “passar“:

U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ2DB7IPD7KEXJ

Para fazer isso, use OpenSSL novamente com o método -d de opção e codificação AES-256-CBC:

ECHO "U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ2DB7IPD7KEXJ" | OpenSSL ENC -AES -256 -CBC -D -A

Como você provavelmente já adivinhou, para criar uma mensagem criptografada com uma senha como a acima, você pode usar o seguinte comando Linux:

 $ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC -A Digite a senha de criptografia AES-256-CBC:
Verificação-digite a senha de criptografia AES-256-CBC:
U2FSDGVKX185E3H2ME2D+QMCFKESXDTN8NCN/4SBLR8 =


Se você deseja armazenar a saída do OpenSSL em um arquivo em vez de stdout, basta usar o redirecionamento do stdout “>”. Ao armazenar a saída criptografada em um arquivo, você também pode omitir -a opção, pois você não precisa mais da saída para ser baseada em texto ASCII:

$ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC> OpenSSL.dat
Digite senha de criptografia AES-256-CBC:
Verificação-digite a senha de criptografia AES-256-CBC:
$ FILE OpenSSL.dat
OpenSSL.DAT: dados

Para descriptografar o OpenSSL.Dat Arquive de volta ao seu uso de mensagem original:

$ OpenSSL ENC -AES -256 -CBC -D -in OpenSSL.dat
Digite senha de descriptografia AES-256-CBC:
OpenSSL

Criptografar e descriptografar o arquivo

Para criptografar arquivos com o OpenSSL é tão simples quanto criptografar mensagens. A única diferença é que, em vez do eco comando nós usamos o -em opção com o arquivo real que gostaríamos de criptografar e -fora Opção, que instruirá o OpenSSL a armazenar o arquivo criptografado em um determinado nome:

Aviso: verifique se o arquivo de saída criptografado recebe um nome de arquivo diferente do arquivo de entrada simples original. Também é recomendável fazer poucos testes de criptografia/descriptografar em dados fictícios antes de criptografar conteúdo importante.

$ OpenSSL ENC -AES -256 -CBC -IN /ETC /Services -Out Services.dat

Para descriptografar o uso do arquivo de serviços: uso:

$ OpenSSL ENC -AE -256 -CBC -D -in Services.DAT> Serviços.TXT
Digite senha de descriptografia AES-256-CBC:

Criptografar e descriptografar o diretório

Caso você precise usar o OpenSSL para criptografar um diretório inteiro que faria, o FIRS, T precisar criar o Gzip Tarball e, em seguida, criptografar o tarball com o método acima ou você pode fazer as duas coisas ao mesmo tempo usando o Pipe:

# tar cz /etc | OpenSSL ENC -AES -256 -CBC -OUT etc.alcatrão.gz.dat
alcatrão: removendo os líderes '/' dos nomes de membros
Digite senha de criptografia AES-256-CBC:
Verificação-digite a senha de criptografia AES-256-CBC:

Para descriptografar e extrair todo o Diretório ETC/ para você o uso atual do diretório de trabalho:

# OpenSSL ENC -AES -256 -CBC -D -in etc.alcatrão.gz.dat | Tar xz
Digite senha de descriptografia AES-256-CBC:

O método acima pode ser bastante útil para backups criptografados automatizados.



Usando chaves públicas e privadas

Nesta seção, mostraremos como criptografar e descriptografar arquivos usando chaves públicas e privadas. Primeiro, precisamos gerar chaves privadas e públicas. Isso pode ser simplesmente feito por:

$ OpenSSL Genrsa -Out private_key.PEM 1024
Gerando a chave privada RSA, módulo de 1024 bits
.. ++++++
.. ++++++
E é 65537 (0x10001)

A partir da chave privada, podemos gerar chave pública:

$ OpenSSL RSA -Em Private_Key.PEM -OUT Public_Key.PEM -Outform Pem -pubout
Escrevendo a chave RSA

Neste ponto, você deve ter uma chave pública e privada disponível em seu diretório de trabalho atual.

$ ls
chave privada.PEM public_key.PEM

Em seguida, criamos algum arquivo de amostra chamado Encrypt.txt com qualquer texto arbitrário:

$ eco "Bem -vindo ao LinuxCareer.com "> criptografar.TXT
$ Cat Encrypt.TXT
Bem -vindo ao LinuxCareer.com

Agora estamos prontos para criptografar este arquivo com a chave pública:

$ OpenSSL rsautl -Encrypt -inkey public_key.PEM -pubin -in Encrypt.txt -out Encrypt.dat
$ ls
Encrypt.DAT Encrypt.txt private_key.PEM public_key.PEM
$ Encrypt.dat
Encrypt.DAT: dados

Como você pode ver nosso novo criptografia.o arquivo dat não é mais arquivos de texto. Para descriptografar este arquivo, precisamos usar a chave privada:

$ OpenSSL rsautl -Decrypt -inkey private_key.Pem -in Encrypt.dat -out new_encrypt.TXT
$ cat new_encrypt.TXT
Bem -vindo ao LinuxCareer.com

A sintaxe acima é bastante intuitiva. Como você pode ver, descriptografamos um arquivo criptografado.dat em seu formulário original e salvá -lo como new_encrypt.TXT. Você pode, por exemplo.

Conclusão

O que você acabou de ler foi uma introdução básica à criptografia OpenSSL. Quando se trata de OpenSSL como um kit de ferramentas de criptografia, literalmente não tem limite para o que você pode fazer. Para ver como usar diferentes métodos de codificação, consulte a página Manual OpenSSL: Homem OpenSSL

Tutoriais do Linux relacionados:

  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Como gerar um certificado SSL autoassinado no Linux
  • Coisas para instalar no Ubuntu 20.04
  • Teste de referência de unidade USB no Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Como comparar o desempenho do disco no Linux
  • Testando clientes HTTPS usando o OpenSSL para simular um servidor
  • Mastering Bash Script Loops
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…