Defesa pessoal com o GPG, Nautilus Scripts, partições encriptadas e leves doses de paranoia

Que tal aumentar a segurança dos seus arquivos com algumas práticas bem simples e ferramentas de segurança nativas sem esquentar muito a cabeça?

[ Hits: 44.097 ]

Por: Bruno Rafael Santos em 23/09/2011 | Blog: https://cutt.ly/4H7vrPh


Segurança de arquivos: usando o GPG



O GPG é baseado em uma tecnologia conhecida como OpenPgp, que é um padrão internacional de segurança considerado bastante confiável e amplamente utilizado. O OpenPgp possui um sistema de criptografia um pouco diferente daquele com o qual estamos acostumados.

Geralmente arquivos zip encriptados em AES256 possuem apenas uma senha que os abre e fecha. O OpenPgp tem um sistema baseado em chaves onde uma é pública e outra é privada. Ele foi criado para que pessoas e grupos pudessem compartilhar arquivos encriptados entre si de forma segura.

Terminologia:
  • Chave Privada: esta chave é responsável por decriptar os arquivos. Ela é exclusiva do dono.
  • Senha: esta senha não tem nada haver com a encriptação, como nos arquivos Zip. Ela serve para proteger a Chave Privada.
  • Chave Pública: esta chave pode ser distribuída por aí, ele serve para encriptar os arquivos.

Basicamente, a Chave Pública é como uma senha que só serve para encriptar. Assim, podemos distribuir nossa chave pública para amigos e colegas de trabalho e todos eles poderão criar arquivos encriptados para nós, mas ninguém será capaz de abri-los sem a Chave Privada. Esta, por sua vez, é exclusivamente nossa e deve ser mantida em local seguro.

A Chave Privada pode tanto decriptar quanto assinar arquivos e assim assegurar sua autenticidade, por acaso é como o uso de chaves OpenPgp que os gerenciadores de pacotes verificam se os arquivos rpm e deb da vida são originais ou não. Ambas as chaves OpenPgp são códigos grandes e complicados, humanamente intragáveis, exatamente como uma boa senha deve ser.

Essa é uma das grandes vantagens deste sistema, você tem senhas de alta segurança sem nenhum super esforço mental.

E tem mais uma coisa interessante sobre OpenPgp que é a senha, não as chaves, mas a senha que protege a Chave Privada. Imagine que você tenha o hábito saudável (e paranoico) de mudar suas senhas de 6 em 6 meses. Agora você tem um monte de arquivos encriptados no disco (zip com aes256, por exemplo), alguns são de antigos projetos. Você terá que descompactar, decriptar, recompactar e encriptar todo mundo novamente a cada troca de senha. Isso se um deles não escapar, aí você já esqueceu a senha anterior e o conteúdo do arquivo será dado como perdido...

Graças ao OpenPgp isso deixa de ser preocupação. É que a "senha" que realmente protege os arquivos é a chave privada e essa você nunca vai mudar. Por outro lado a "senha" que a protege pode ser mudada livremente e os arquivos encriptados com o uso dela podem ser decriptados depois que ela for mudada, o que importa e que a Chave Privada seja sempre a mesma. Isto torna o gerenciamento de arquivos encriptados mais simples.

Funcionalidade básica do Gnu Privacy Guard

O GPG é uma ferramenta de console, bastante simples de usar diga-se, mas temos alternativas para operá-la. Primeiro veremos como ela funciona em sua forma mais básica. O comando é gpg e recebe alguns argumentos como opções de encriptação e nome do arquivo. As opções são inúmeras e extremamente específicas. Além disto o gpg tem uma sintaxe extremamente permissiva que o torna prático e ao mesmo tempo confuso. Veremos aqui uma sequencia de comandos simples do gpg:
  • gpg --help: ajuda do gpg.
  • man gpg: ajuda completa do gpg, vale a pena dar uma lida.
  • gpg --sign chave arquivo: assina o arquivo mencionado.
  • gpg --encrypt chave arquivo: encripta o arquivo com a chave mencionada. Lembre-se que você pode ter várias.
  • gpg --decrypt arquivo: decripta o arquivo, não precisa mencionar a chave porque você TEM que ter a chave privada do arquivo, ele só pedirá a senha.
  • gpg --list-keys: lista as chaves públicas para encriptação. Aqui você pega o identificador da chave para usá-lo nos comandos acima.
  • gpg --list-secret-keys: lista as chaves privadas, geralmente você só tem a sua...

Você só precisará listar as Chaves Privadas se quiser exportar suas chaves. É bom lembrar que sem a Chave Privada os arquivos são praticamente irrecuperáveis. Então é uma boa manter sua Chave Privada guardada em um local seguro, afinal, estamos tentando proteger os nossos arquivos contra roubo e precisaremos dela para recuperar os arquivos do backup. Os seguintes comandos permitem exportar as chaves públicas e privadas:
  • gpg --export -a chave > arquivo: exporta a chave pública mencionada para um arquivo.
  • gpg --export-secret-keys -a chave > arquivo: exporta a chave privada mencionada para um arquivo.
  • gpg --import arquivo: importa chaves para o gpg, ele não faz distinção para importar.

Tem um artigo muito bom no VOL cobrindo as principais opções do gpg: Assinatura e criptografia de dados com GPG

Usando o GPG e o Seahorse

Para quem é avesso ao console ou prefere algo mais prático temos o Seahorse. Este aplicativo faz parte do Gnome e além de fornecer uma interface para operar o gpg ele também acrescenta algumas funcionalidades para o ambiente.

Para instalar o Seahorse basta procurar no gerenciador de pacotes. Aqui está uma lista de pacotes do YUM e suas funcionalidades:
  • seahorse: interface principal que gerencia chaves gpg.
  • seahorse-plugins: existem vários pacotes com este nome que adicionam integração com o seahorse em aplicativos como gedit, nautilus e empathy.

Com o Seahorse teremos acesso à maioria das funcionalidades do gpg e mais algumas. Por exemplo, uma vez instalado o Seahorse assume o controle dos logins em sua conta de usuário. Então a maioria dos programas do Gnome passarão a depositar senhas no Seahorse de forma segura o que adiciona uma funcionalidade a todo o sistema.

Os plugins tornam a integração com o Nautilus e outros aplicativos totalmente transparente. Poderemos encriptar arquivos e pastas inteiras rapidamente sem grandes complicações. Ele também permite publicar suas chaves públicas em diretórios na Web além de importar chaves de outras pessoas que estejam disponíveis online.

A única coisa que o Seahorse não faz é exportar Chaves Privadas, isso ele não faz nem sob ameaça, para isto só o console.

Criando uma Chave Pessoal:

Além das chaves OpenPgp o Seahorse também é um gerenciador de chaves SSH e outros tipos de senha. A criação das chaves e serviços como um todo é bem simples:
A criação da chave pode demorar um pouco pois ela é relativamente complexa. As opções padrão são as recomendadas. Uma vez criada, ela fica listada em "Minhas Chaves Pessoais". A aba "Outras Chaves" guarda as Chaves Públicas que você coleciona e a aba "Senhas" guarda senhas do sistema.

Opções da chave:

Uma vez criada a chave pessoal é possível adicionar assinaturas a ela e fotografia do dono. Nas opções da chave também é possível mudar a senha que dá acesso à Chave Privada.
Com a chave criada é possível usar os serviços do Seahorse por todo o Gnome. As opções de encriptação e desencriptação de arquivos estão disponíveis no menu de contexto de todos os arquivos. Para encriptar, basta selecionar uma chave. Para decriptar ou assinar é necessário fornecer a senha da chave privada escolhida.

Lembre-se que para encriptar diretórios é necessário primeiro compactá-las, mas o plugin se oferece para fazer isso. Como a encriptação do gpg afeta o arquivo todo, qualquer formato de arquivo compactado serve.

Quando se insere a chave para assinar ou decriptar um arquivo o Seahorse se oferece para gerir esta senha para você. Geralmente ele guarda a senha durante toda uma sessão do Gnome ou por alguns minutos.

Se você guardar a senha no Seahorse ela será protegida pela senha de sua conta de usuário, mas se essa senha for quebrada então o Seahorse ficará exposto, por isso é melhor manter a senha das chaves OpenPgp na cabeça mesmo.
Além do Nautilus, o Gedit também tem acesso direto aos recursos do gpg como a encriptação dos arquivos abertos.

Página anterior     Próxima página

Páginas do artigo
   1. Noções de segurança de dados: importância e ferramentas
   2. Segurança de arquivos: usando o GPG
   3. Removendo arquivos com segurança: Nautilus Scripts e o comando Shred
   4. Partições encriptadas e sistemas de arquivos compartilhados
   5. Outras coisinhas
Outros artigos deste autor

Recuperação de arquivos do LibreOffice

Devo atender? Um ótimo aplicativo para bloquear Telemarketing

Assinatura de documentos PDF em lote via Bash

Tutorial GIMP: Preparando mapas para artigos científicos

Python para pesquisadores: material didático

Leitura recomendada

Deface: A arte de desconfigurar sites

Código Aberto já não é uma questão de gosto

Servidor de e-mail seguro com ClamAV e MailScanner

Segurança SSH com DenyHosts

Descobrir a senha de configuração pelo browser de um Access Point (AP)

  
Comentários
[1] Comentário enviado por removido em 23/09/2011 - 19:58h

eita cabra medroso!!!
kkkkkkkkkkkkkkkkkkkkkkk

parabéns, um excelente trabalho. Muito completo!
;-))

[2] Comentário enviado por tonnytg em 23/09/2011 - 20:09h

Hehe, tantas opções que temos e sempre haverá formas de quebrar ou acesar isso tudo.
Tava lendo a pouco tempo também preocupado com historicos da net, já que google mantém seu rastro por ip.
Tava usando o duckduckgo e acabei esbarrando uma noticia do wall street falando sobre supercookies que não são facéis de remover e fazem log do que vc acessa para as empresas saberem seus acessos =S

http://online.wsj.com/article/SB10001424053111903480904576508382675931492.html

[3] Comentário enviado por julio_hoffimann em 24/09/2011 - 17:49h

Parabéns Bruno!

Ótimo artigo! Muito bem explicado e, ao mesmo tempo, objetivo.

Abraço!

[4] Comentário enviado por tatuiano em 25/09/2011 - 21:23h

verdade.tanto que essa semana alterei minha senha no vol.

[5] Comentário enviado por nicolo em 27/09/2011 - 14:42h

É um artigo legal. poderia ter indo mais fundo do cryptsetup e no truecrypt para pastas, conteiners e partições. A referência apontada é pouco prática.

No Brasil não há nem preocupação com segurança, nem boas leis para garantir a privacidade e do cidadão. Todos escafuncham onde querem roubam senhas e fazem bagunça sem conseqüência.

Divulgar princípios úteis de segurança é muito bom. Parabéns.




[6] Comentário enviado por davimendes em 28/09/2011 - 10:55h

Cara tá mto bom isso aki!

Parabéns!

[7] Comentário enviado por santosbrc em 28/09/2011 - 15:12h

Agradeço os comentários pessoal.

bakunin, até pesquisei esses assuntos, mas preferi manter o texto enxuto e objetivo. Já viajei demais com o UMASK e outras coisas que estavam fora do meu plano original ;)

[8] Comentário enviado por astdarkness em 03/10/2011 - 00:36h

Ótimo artigo!! Parabéns. Faltou citar o TrueCript que foi uma das ferramentas usada pelo banqueiro da Oportunity que nem o FBI conseguiu quebrar a criptografia dos hd's. Vlw

[9] Comentário enviado por ceejay-br em 07/11/2011 - 22:59h

Parabéns pelo artigo Rafael.

Só quero retificar uma coisa em relação às permissões em octal.
Elas são 1 - executar, 2 - excrever, 4 - ler. Sendo assim, com o octal 754 você tem permissão total a seus arquivos (rwx), o grupo selecionado tem leitura e execução (r-x) e os demais usuários somente leitura (r--).

Um abraço!

[10] Comentário enviado por xiloba em 31/12/2011 - 21:15h

Parabéns, Rafael.
Sensacional! Há muitos tutoriais sobre gpg, mas nenhum explicou tão bem quanto você.
Tive várias dúvidas sobre uso de gpg, pgp etc. e aqui, consegui entender melhor.

Olha uma contribuição sobre como encriptar um arquivo usando sua chave, e deletar o arquivo de origem:
pwgen -1 -y -s 256 >securitypasswd.txt && gpg -e -r andré securitypasswd.txt && rm -f securitypasswd.txt

Acima, eu usei o pwgen para criar uma chave de 256 dígitos, jogá-la para um arquivo chamado securitypasswd.txt, encriptá-lo e remover o arquivo em que foi salva a chave, pois já o tenho encriptado.

está aqui a fonte:http://vivaolinux.com.br/topico/UbuntuBR/Ha-como-encriptar-um-arquivo-e-apagar-o-original-tudo-num-so-comando

E esta outra contribuição e um script criado pelo colega rai3mb. Este script encripta duas vezes um arquivo ou diretório; primeiro o faz com o zip; depois, fá-lo com o gpg (com criptografia simétrica):

#!/bin/bash
# MOstra o texto na tela, espera o usuário fornecer um valor e guarda na variável ARQUIVO
read -p 'Digite o nome do arquivo/diretório a ser encriptado: ' ARQUIVO
# Teste se é arquivo -f, ou diretório -d
! [ -f "$ARQUIVO" -o -d "$ARQUIVO" ] && echo -e "\nO arquivo/diretório '$ARQUIVO' não existe!" && exit 0
zip -e -r "$ARQUIVO".zip "$ARQUIVO" && gpg -c "$ARQUIVO".zip


fonte:http://vivaolinux.com.br/topico/Shell-Script/script-para-encriptar-um-arquivo-duas-vezes

[11] Comentário enviado por santosbrc em 02/01/2012 - 19:07h

Vlw pelas dicas André e e Charles. Estou estudando o shell script agora para automatizar algumas tarefas como backups e implantar umas soluções mais personalizadas aqui no meu note. Essa dica do André é um bom norte para scripts. E obrigado pela correção Charles, fiz várias modificações nesse umask antes de publicar, mas como não tenho a menor ideia de como realmente funciona acabei deixando escapar.

[12] Comentário enviado por marcoaw em 06/01/2012 - 11:25h

Muito bom este artigo, infelizmente nos dias em que vivemos , temos que ter senha até para morrer rsrs.
Acho interessante as diversas formas de criptografias. Pretendo utiliza-las.
Valeu mesmo pela dica !!!
Belo Artigo !!!

[13] Comentário enviado por removido em 16/04/2012 - 10:17h

Faltou falar de HTTPS em fibra óptica com criptografia quãntica usando AES prá reforçar contra Man-InThe-Middle Attack!

Fora isso acho que está bom. :-)

[14] Comentário enviado por kleber-rr em 16/05/2012 - 15:57h

Excelente artigo. Parabens.

[15] Comentário enviado por removido em 15/06/2012 - 13:11h

Entrei achando que era uma nova arte marcial....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts