Criptografia

Criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da “chave secreta”), o que a torna difícil de ser lida por alguém não autorizado. A chave criptográfica é um valor secreto que modifica um algoritmo de encriptação, de modo a revelar o seu conteúdo. Vamos ver uma forma de usar esse conhecimento para proteger seus arquivos e informações no computador em mídias removíveis.

open-lock

A fechadura da porta da frente de casa tem uma série de pinos. Cada um desses pinos possui múltiplas posições possíveis. Quando alguém põe a chave na fechadura, cada um dos pinos é movido para uma posição específica. Se as posições ditadas pela chave são as que a fechadura precisa para ser aberta, ela abre, caso contrário, não. Uma senha de e-mail funciona da mesma forma, para você ter acesso aos seus dados. Mas e as informações contidas em seu HD, estão protegidas?

Existem basicamente dois tipos de criptografia:

  • Algoritmos de chave simétrica (ou privada): a chave, na prática, representa um segredo, partilhado entre duas ou mais partes, que podem ser usadas para manter um canal confidencial de informação. Podem ser divididos em cifras de fluxo (cifram os bits da mensagem um a um) e em cifras por bloco (pegam um número de bits e cifram como uma única unidade, geralmente 64 ou 128 bits).
  • Algoritmos de chave assimétrica (ou pública): a chave é distribuída livremente para todos os correspondentes (via e-mail ou outras formas). Uma mensagem cifrada com a chave pública pode somente ser decifrada pela sua chave privada correspondente.
Uso do Algoritmo criptografado pelo método assimétrico para garantir privacidade. Fonte: UFRJ http://www.gta.ufrj.br/grad/09_1/versao-final/assinatura/Criptografia.htm
Uso do Algoritmo criptografado pelo método assimétrico para garantir privacidade. Fonte: UFRJ.

Dentre os algoritmos (leia mais sobre algoritmos clicando aqui) para encriptar informações no computador estão o AES (Advanced Encryption Standard, um dos algoritmos mais populares usados para criptografia de chave simétrica), Serpent e Twofish. Todos são suportados pelo programa Truecrypt.

TrueCrypt é um aplicativo de código aberto para Windows, Mac e Linux que cria volumes criptografados que podem ser montados como unidades virtuais. Pode encriptar uma partição do disco rígido ou um outro dispositivo de armazenamento como um flash drive USB. Encripta automaticamente em tempo real (on-the-fly) de uma forma “transparente”. Possibilita dois níveis de proteção: caso seja obrigado a revelar a senha, há uma segunda proteção na qual o acesso aos dados estará preservado.

RSA é um algoritmo de criptografia de dados cujo nome é dado pelas iniciais dos sobrenomes dos três professores do Instituto de Tecnologia de Massachusetts que o inventaram. Trata-se de um “par de chaves” (uma pública e outra privada), e suas propriedades matemáticas são tais que uma mensagem criptografada com a chave pública só pode ser descriptografada por alguém que conhece a chave privada, o que garante confidencialidade.

Contudo, qualquer um pode criar um par de chaves, armazenar qualquer identidade nele, e fingir ser a identidade de sua escolha. Uma solução envolve o conceito de uma “Certification Authority” (CA), formalizado pelo padrão X.509. Esse termo cobre uma entidade que possui um par de chaves confiável conhecido como um “root certificate”. Esse certificado só é usado para assinar outros certificados (par de chaves), após os passos apropriados terem sido tomados para checar a identidade armazenada no par de chaves. Como CAs públicos apenas emitem certificados em troca de uma (pesada) taxa, também é possível criar um certificado de autoridade privado dentro da companhia.

Futuro: Criptografia Quântica

A técnica reunindo o conceito de criptografia e a teoria quântica. Stephen Wiesner explica em artigo publicado em 1983 como a teoria quântica pode ser usada para unir duas mensagens em uma única transmissão quântica na qual o receptor poderia decodificar cada uma das mensagens porém nunca as duas simultaneamente, pela impossibilidade de violar uma lei da natureza (o princípio de incerteza de Heisenberg). Não confundir com a Computação Quântica, uma área da física e engenharia em desenvolvimento que pretende projetar e construir um computador que, em teoria, teria uma capacidade de processamento muito superior ao dos computadores atuais por conseguirem realizar cálculos simultâneos. Veja mais no artigo da wikipedia.

Criptografia no Linux

Para criptografar um disco inteiro (como um pendrive USB), o modo mais popular de fazê-lo é usar a ferramenta TrueCrypt. O kernel do Linux inclui a sua própria solução de criptografia de disco, o dm-crypt, que pode ser manipulada através de uma ferramenta de baixo nível chamada cryptsetup, que permite implementar criptografia com senhas ou arquivos de chave.

O cryptsetup pode ser instalado através do comando “apt-get install cryptsetup”. Após identificar qual o dispositivo (no caso, “/dev/sdb1”), pode-se deletar qualquer conteúdo existente usando o wipefs (primeira linha) ou zerar o disco inteiro (segunda linhas):

$ sudo wipefs -a /dev/sdb1
$ sudo cat /dev/zero > /dev/sdb1

O comando a seguir cria um container LUKS (Linux Unified Key Setup) de criptografia abstrato no disco, que pode ser aberto fornecendo a senha correta. Um dispositivo virtual mapeado é fornecido para criptografar todos os dados escritos a ele transparentemente, com os dados criptografados escritos no disco:

$ sudo cryptsetup luksFormat /dev/sdb1

O dispositivo pode ser aberto utilizando o modo gráfico (Nautilus, por exemplo) ou através do comando abaixo (os dois comandos seguintes são para montar o sistema em um determinado diretório). É possível abrir o Nautilus como root através do comando “sudo nautilus&”, permitindo a edição e gravação dos arquivos (e não só a visualização). Em ambos, deve ser informada a senha, se não nem a visualização dos arquivos e diretórios é possível:

$ sudo cryptsetup luksOpen /dev/sdb1 cripto
$ sudo mkdir -p /media/cripto
$ sudo mount /dev/mapper/cripto /media/cripto

O dispositivo de blocos em /dev/mapper/cripto pode ser utilizado da mesma maneira que qualquer outro dispositivo (como super usuário); todas as operações de disco são abstraídas pelas operações de criptografia. Por exemplo, para criar nele um sistema de arquivos ext4 e renomeá-lo, verifique o nome temporário que o dispositivo foi montado depois de executar o comando “cryptsetup luksFormat” através de “fdisk -l” (deve aparecer “/dev/mapper” seguido de um código maluco) e utilize os seguintes comandos:

$ sudo mkfs.ext4 /dev/mapper/luks-codigo-maluco
$ sudo e2label /dev/mapper/luks-codigo-maluco cripto

Depois de utilizá-lo, deve-se desmontar e fechar o dispositivo mapeado, para que a senha seja necessária para reabri-lo, através do Nautilus ou comandos a seguir:

$ sudo umount /media/cripto
$ sudo cryptsetup luksClose /dev/mapper/cripto

Resumidamente, para reabrir o pendrive criptografado no debian, insira o dispositivo, informe a senha ao ser perguntado (montagem automática) e depois abra o nautilus/caja como root (abrir nova sessão como root ou usar o terminal para chamar o programa usando “sudo caja”, por exemplo) para poder editar os arquivos. Depois, basta desmontar e retirar o pendrive.

Veja mais em Criptografia no Linux: Discos e Criptografia no Linux – uma opção.

3 comments

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.