Introdução
Neste laboratório, você aprenderá a utilizar o OpenSSL para criptografia e descriptografia de arquivos, uma habilidade fundamental em cibersegurança. Através de exercícios práticos, você exercitará a geração de uma chave simétrica e a aplicação da criptografia AES para proteger dados sensíveis.
Este laboratório guiará você pela instalação do OpenSSL, pela criação de um arquivo de teste e pela execução de um ciclo completo de criptografia e descriptografia. Esta experiência prática ajudará a compreender as técnicas fundamentais de proteção de dados utilizadas em aplicações do mundo real.
Instalar e Verificar o OpenSSL
Nesta etapa, você instalará o OpenSSL, um kit de ferramentas poderoso para implementar comunicações seguras. Embora o OpenSSL geralmente já venha incluído em distribuições Linux, esta etapa garante que ele esteja instalado corretamente e pronto para uso.
Primeiro, verifique se o OpenSSL está instalado conferindo a versão instalada.
openssl version
Você deverá ver uma saída semelhante à seguinte, indicando a versão do OpenSSL no seu sistema.
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
Por fim, você pode exibir o menu de ajuda para ver uma lista de comandos disponíveis e confirmar que o OpenSSL está funcionando corretamente.
openssl help
Este comando listará as diversas operações criptográficas que o OpenSSL pode realizar, as quais exploraremos nas próximas etapas.
Criar um Arquivo de Exemplo para Criptografia
Nesta etapa, você criará um arquivo de texto simples para usar em nossos exercícios de criptografia e descriptografia. Usar um arquivo conhecido nos permite verificar facilmente se o processo funciona corretamente, comparando o conteúdo original com o descriptografado.
Seu terminal já deve estar no diretório /home/labex/project. Criaremos o arquivo aqui.
Primeiro, use o editor de texto nano para criar um novo arquivo chamado sample.txt.
nano sample.txt
Assim que o nano abrir, digite o seguinte texto no editor:
This is a sample text file for encryption testing.
LabEx Cybersecurity Lab - AES Encryption Demo.
Agora, salve o arquivo e saia do nano:
- Pressione
Ctrl + Opara gravar as alterações no arquivo. - Pressione
Enterpara confirmar o nome do arquivo (sample.txt). - Pressione
Ctrl + Xpara sair do editor.
Para confirmar que o arquivo foi criado corretamente, exiba seu conteúdo usando o comando cat.
cat sample.txt
A saída deve mostrar exatamente o texto que você digitou:
This is a sample text file for encryption testing.
LabEx Cybersecurity Lab - AES Encryption Demo.
Este arquivo de exemplo está agora pronto para o processo de criptografia nas próximas etapas.
Gerar uma Chave de Criptografia Simétrica
Nesta etapa, você gerará uma chave simétrica, que é uma chave secreta usada tanto para criptografar quanto para descriptografar dados. Usaremos o OpenSSL para criar uma chave aleatória forte, adequada para a criptografia AES-256, um padrão altamente seguro e amplamente adotado.
Certifique-se de estar no diretório do seu projeto, /home/labex/project.
cd ~/project
Use o comando openssl rand para gerar 32 bytes (256 bits) de dados aleatórios e salvá-los em formato hexadecimal em um arquivo chamado symmetric_key.hex.
openssl rand -hex 32 > symmetric_key.hex
Visualize a chave gerada para ver como ela se parece.
cat symmetric_key.hex
A saída será uma string hexadecimal de 64 caracteres, que representa sua chave de 256 bits. Ela será parecida com isto (sua chave será diferente):
2f8b5e9a1c3d4e6f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f
Como esta chave pode desbloquear seus dados, é fundamental protegê-la. Use o comando chmod para definir as permissões do arquivo de modo que apenas o proprietário do arquivo (você) possa ler e escrever nele.
chmod 600 symmetric_key.hex
Por fim, verifique as permissões do arquivo com ls -l.
ls -l symmetric_key.hex
A saída deve mostrar as permissões como -rw-------, confirmando que o arquivo está protegido.
-rw------- 1 labex labex 65 Nov 15 10:30 symmetric_key.hex
Com a chave gerada e protegida, você está pronto para criptografar o arquivo de exemplo.
Criptografar o Arquivo com AES
Agora você usará a chave simétrica para criptografar o sample.txt. Utilizaremos a cifra de criptografia AES-256-CBC. O AES (Advanced Encryption Standard) com uma chave de 256 bits é um algoritmo de criptografia robusto, e o CBC (Cipher Block Chaining) é um modo de operação que aumenta a segurança ao tornar cada bloco criptografado dependente do anterior.
O comando openssl enc gerencia a criptografia. Especificaremos a cifra, o arquivo de entrada, o arquivo de saída e o arquivo da chave.
Execute o seguinte comando para criptografar o sample.txt e salvar a saída em sample.enc.
openssl enc -aes-256-cbc -in sample.txt -out sample.enc -pass file:symmetric_key.hex
-aes-256-cbc: Especifica a cifra de criptografia.-in sample.txt: O arquivo de entrada para criptografar.-out sample.enc: O nome do arquivo de saída (criptografado).-pass file:symmetric_key.hex: Instrui o OpenSSL a usar o conteúdo desymmetric_key.hexcomo a senha (chave).
Após executar o comando, liste os arquivos para ver o novo arquivo criptografado, sample.enc.
ls -l
Você notará que o sample.enc é ligeiramente maior que o sample.txt devido ao overhead da criptografia, como preenchimento (padding) e metadados.
total 12
-rw-r--r-- 1 labex labex 96 Nov 15 10:35 sample.enc
-rw-r--r-- 1 labex labex 89 Nov 15 10:20 sample.txt
-rw------- 1 labex labex 65 Nov 15 10:30 symmetric_key.hex
Se você tentar visualizar o conteúdo do arquivo criptografado, verá dados binários ilegíveis.
cat sample.enc
A saída distorcida confirma que o arquivo foi criptografado com sucesso.
Descriptografar o Arquivo e Verificar a Integridade
Nesta etapa final, você descriptografará o sample.enc para recuperar o texto original. Isso confirmará que sua chave funciona e que todo o ciclo de criptografia e descriptografia foi bem-sucedido.
Para descriptografar o arquivo, você usará o comando openssl enc novamente, mas desta vez com a flag -d para especificar a descriptografia.
Execute o seguinte comando para descriptografar o sample.enc e salvar o resultado em um novo arquivo, sample.dec.
openssl enc -d -aes-256-cbc -in sample.enc -out sample.dec -pass file:symmetric_key.hex
Agora, vamos verificar se a descriptografia funcionou. A melhor maneira de conferir é comparar o arquivo descriptografado (sample.dec) com o arquivo original (sample.txt). O comando diff é perfeito para isso.
diff sample.txt sample.dec
Se os arquivos forem idênticos, este comando não produzirá nenhuma saída, o que significa que a descriptografia foi bem-sucedida.
Para uma confirmação visual final, exiba o conteúdo do arquivo descriptografado.
cat sample.dec
A saída deve ser exatamente igual ao seu arquivo sample.txt original:
This is a sample text file for encryption testing.
LabEx Cybersecurity Lab - AES Encryption Demo.
Você agora criptografou um arquivo com sucesso e o descriptografou de volta à sua forma original usando o OpenSSL.
Resumo
Neste laboratório, você adquiriu experiência prática com criptografia e descriptografia de arquivos usando o OpenSSL. Você aprendeu a gerar uma chave simétrica forte, utilizá-la para criptografar um arquivo com o algoritmo AES-256 e, em seguida, descriptografar o arquivo para restaurar os dados originais. Este processo é uma habilidade fundamental para a proteção de informações sensíveis em cibersegurança.



