Criptografia Simétrica

Após toda aquela introdução de criptografar e descriptografar usando XOR, que tal começar a criptografar e descriptografar arquivos de verdade?

Existem diversas ferramentas para esta finalidade, porém, a ferramenta que utilizarei para a criptografia é o OpenSSL. Parte integrante da maioria (todas?) distribuições de Linux, é capaz de lidar com diversos tipos de algoritmos, simétricos ou assimétricos, é capaz ainda de gerar certificados digitais, e o melhor de tudo: È completamente grátis.

Para quem só tem windows instalado no computador, restam três opções:

1) Instalar o linux em outra partição ou em máquinas virtuais
2) Instalar o linux em outro computador
3) Baixar o port para windows do OpenSSL

Eu não testei a versão para windows, mas, acredito que funcione😛

Neste artigo, vou criar um arquivo, codificar-lo com o algoritmo AES usando como chave “123456”, e em seguida, descriptografar.

O primeiro passo é criar o arquivo. Vou criar um arquivo contendo meu nome, “Frederico Pandolfo”, para isto, digitarei no shell:

echo “Frederico Pandolfo” > texto_original.txt

O arquivo texto_original.txt foi criado e contém meu nome. Para criptografar é fácil:

openssl enc -aes256 -a -e -in texto_original.txt -out texto_cifrado.txt

o sistema perguntará:

enter aes-256-cbc encryption password: 123456
Verifying – enter aes-256-cbc encryption password: 123456

Traduzindo o comando:

openssl = Openssl…. o programa que quero executar.

enc – informa que quero trabalhar com cifras simétricas

-aes256 – informa que quero codificar usando aes256

-a – informa que a saída deve ser em formato -base64 (em vez de -a pode ser usado -base64, o resultado é o mesmo). Resumidamente, com -a o arquivo é gerado de tal forma que somente caracteres imprimíveis (letras e números) são utilizados, permitindo assim o envio em formato texto normalmente. Sem a opção, é gerado um arquivo sem este cuidado, pode ser enviado como arquivo anexado em e-mails, disquetes, etc. Gerando com  -a é possível que eu copie e cole o conteúdo do arquivo cifrado neste blog, ou envie-o como sendo o texto de um e-mail.

-e – informa que eu quero ENCRYPTar o arquivo

-in <arquivo> – é o arquivo a ser codificado
-out <arquivo> – é o arquivo a ser gerado, já codificado.

é possível passar a senha através do parâmetro -k senha (-k 123456) ou -kfile <arquivosenha> – A primeira forma (-k) coloca a chave em risco pois a chave é passada na linha de comando, podendo ser acessível através do comando ps -ax. Usando kfile, a primeira linha do arquivo é utilizado como senha.

Vamos ver o resultado?

frederico@frederico-desktop:~/chaves$ cat texto_original.txt
Frederico Pandolfo
frederico@frederico-desktop:~/chaves$ cat texto_cifrado.txt
U2FsdGVkX186cpQ4zwp2LnRgXzXZGVnxnVmE7KMNR2zUHiYgGpG0mVetACM4NjWp

E agora, o processo inverso:

frederico@frederico-desktop:~/chaves$ openssl enc -aes256 -d -a -k 123456 -in texto_cifrado.txt
Frederico Pandolfo

Repare na opção -d, ela informa que eu quero DECRYPTar o arquivo. A ausencia da opção -out faz com que o conteudo seja jogado para a tela.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: