sábado, 7 de setembro de 2013

Criptografando arquivos com GPG no Linux

4 comments
Uma das maiores diferenças entre transações on-line e transações presenciais é que, enquanto nessas últimas as partes se encontram e podem trocar documentos de identificação, as transações on-line geralmente ocorrem sem que as partes jamais se encontrem.

Daí surge o problema: como uma parte saberá de fato a identidade da outra? É justamente por causa dessa dificuldade que muitas brechas para fraudes se abrem na internet: consumidores compram produtos que nunca são entregues, e lojas virtuais vendem para falsos compradores. Algumas técnicas foram criadas para tentar minimizar esses problemas.

Uma técnica comum (adotada, por exemplo, pelos bancos) é, antes de realizar transações on-line, fazer a identificação prévia presencial. Para se acessar um serviço de um banco na intranet, é necessário primeiro comparecer no banco, levar os documentos, fazer a identificação e apenas aí obter uma senha para acesso on-line. Essa técnica, entretanto, é limitada, pois exige que as partes se encontrem, o que nem sempre é possível.

Lojas on-line, que vendem produtos sem nunca encontrar seus clientes, tentam fazer identificações de maneira indireta, perguntando por dados que (supostamente) apenas o comprador deveria saber. O dado pessoal mais comumente exigido (até porque é geralmente
essencial para se fazer uma compra) é o número do cartão de crédito, assim como alguns dígitos verificadores; e é nesse mesmo sentido que, por exemplo, para comprar passagens aéreas da Gol é necessário informar dados como CPF, data de nascimento, etc.

Mas essas técnicas, que existem desde os primórdios da internet comercial, já estão ultrapassadas. Mais e mais os hackers estudam brechas no esquema e elaboram maneiras de se aproveitar dessas vulnerabilidades.

Por Yan Lucas Yamada, webmaster do site Guia do Notebook.

 
Hoje eu vou mostrar como é simples criptografar um arquivo com GnuPG , isso pode ser realmente útil para criptografar um único arquivo, onde você armazene suas senhas ou alguma informação pessoal que você deseja manter mais seguro.

A Ferramenta GPG permite que você use criptografia de chave pública-privada para criptografar e descriptografar arquivos em Windows e Linux. O benefício de criptografia de chave pública-privada é que você pode manter sua chave pública disponível para todos, e usá-la de qualquer lugar para criptografar arquivos. Uma vez criptografado com a chave pública, esses arquivos só poderão ser descriptografados com a chave privada.

Assim, no exemplo vamos adotar um sistema que vai usar um certificado que consiste em duas chaves distintas, uma pública e uma privada.

+ CHAVE PRIVADA: deve permanecer exclusivamente nas mãos do titular do certificado.
O proprietário irá usá-la para descriptografar arquivos que forem enviados para ele, e que agora podem ser enviados também com protocolos inseguros (email, ftp, http upload)

+ CHAVE PÚBLICA: pode ser distribuída para todo mundo, sem qualquer risco de perigo. Ela será usada apenas para criptografar arquivos dirigidos ao proprietário do certificado, somente o proprietário da chave privada relacionada pode descriptografar o arquivo.

A chave pública pode ser distribuída para qualquer pessoa, sem qualquer controle. O fato de que ela caia em mãos erradas não constitui qualquer perigo. A preocupação deve ser exclusivamente com à Chave Privada, que deve permanecer estritamente nas mãos dos legítimos proprietários.

A primeira coisa a se fazer, é gerar um par de chaves pública / privada. Este par de chaves é gerado com o comando # gpg --gen-key, conforme mostrado abaixo:

Nessa etapa, eu criei uma chave DSA de 2048 bits de comprimento e definí que a chave não irá expirar, como ID de usuário da chave informei o nome blogdodanilo, endereço de e-mail e opcionalmente um comentário.
Foi também gerada uma frase de segurança para proteger a chave.

 
Você poderá listar as chaves públicas ou privadas nesse computador, como os seguintes comandos: # --list-key (para chaves públicas) e # gpg -k (para chaves privadas). conforme exemplo abaixo:

CRIPTOGRAFANDO ARQUIVO COM CHAVE PÚBLICA
Cenário:
O usuário João deseja enviar um arquivo criptografado para Maria. João precisará receber e importar a Chave Pública de Maria, e utilizar essa Chave Pública para criptografar o arquivo.
Por sua vez, somente Maria que possui a Chave Privada, conseguirá descriptografar o arquivo de João.

Na vida real, você deverá enviar sua chave pública via e-mail ou publicá-lo em um site para que os interessado em lhe enviar uma arquivo criptografado possam utilizar a sua chave pública criptografar esse arquivo, com o seguinte comando:
Note que no meio do processo, o sistema pede para que você informe um Chave Pública, para o arquivo ser criptografado. Foi informada a chave "blogdodanilo", note também que você poderia utilizar mais de uma chave, como não foi minha intenção, apenas apertei Enter sem informar mais nada.

Após o processo de encriptação, o sistema mantém o arquivo original e gera um segundo arquivo com a extensão .gpg, conforme abaixo:

Após isso, somente o usuário que possuir a Chave Privada poderá acessar o conteúdo deste arquivo, veja que nem mesmo o autor do arquivo poderá mais abri-lo.

DESCRIPTOGRAFANDO ARQUIVO COM CHAVE PRIVADA
Voltando ao Cenário:
Após o usuário João receber e importar a Chave Pública fornecida por Maria, ele utiliza o comando [ gpg -e "nome_do_arquivo" ], para criptografar o arquivo. Após isso ele deve enviar o arquivo .gpg à Maria.
Por sua vez, Maria pode descriptografar o arquivo, por ser quem possui a Chave Privada que faz par com a Chave Pública que foi utilizada para criptografar o arquivo por João.

Para descriptografar o arquivo, basta executar o seguinte comando: 
Esse comando irá criar uma cópia do arquivo sem a extensão .gpg.

EXPORTANDO SUA CHAVE PÚBLICA
Conforme já sabemos, você precisa disponibilizar a sua Chave Pública, para que outras pessoas possam lhe enviar arquivos criptografados.

Na figura abaixo é mostrado o comando para realizar a exportação da chave:
Veja também que a chave blogdodanilo.pub foi exportada para o diretório.

IMPORTANDO CHAVES PÚBLICAS
Voltando ao Cenário:
Para que o usuário João "criptografasse" o arquivo para Maria, foi preciso que João importasse a Chave Pública de Maria.

Esse processo é utilizado sempre que você quiser enviar um arquivo criptografado para alguém. Será necessário importar a Chave Pública do destinatário, conforme na figura abaixo:


E aí, você também protege seu arquivos com o GnuPG, tem alguma dúvida ou informação sobre o assunto? Fique a vontade para deixar um comentário.



4 comentários: