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: 43.820 ]

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

GNU Parallel: criando atividades em paralelo com shell script

Campos no LibreOffice: usos e abusos

Guia Rápido do Miniconda para Aplicações Científicas - Instalação e Configuração

Recuperação de arquivos do LibreOffice

Tutorial GIMP: Preparando mapas para artigos científicos

Leitura recomendada

Melhorando o nível de segurança com chflags

Distribuição CAINE Linux para forense digital: em Live-CD, pendrive, máquina virtual ou direto em seu Ubuntu 10.04

Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros

Instalação do Freeradius com suporte a EAP-TLS e PEAP-TTLS MSCHAPv2 no Ubuntu

Vírus em Linux?

  
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