Saltar para: Post [1], Comentários [2], Pesquisa e Arquivos [3]

Anders Bateva

Nonfiction Litblog. Fichamentos / clippings / recortes de não-ficção. Prospecções literárias em: Ciências Sociais; Informática; e Ciências Ambientais.

Anders Bateva

Nonfiction Litblog. Fichamentos / clippings / recortes de não-ficção. Prospecções literárias em: Ciências Sociais; Informática; e Ciências Ambientais.

¿VeraCrypt →((🔑 senhas ∧ 🔑 keyfiles) ⊃ RAM)?

Este post consiste de um resumo do artigo a seguir:

ANÁLISE DA MEMÓRIA DE ACESSO RANDÔMICO: ARQUIVOS MAPEADOS PELO VERACRYPT - Anderson Luís Moreira
Universidade Católica de Brasília - 2015


O VeraCrypt é um sistema de software para a criação e manutenção de volumes criptografados (containers) on-the-fly-encrypted. Ou seja, os dados são criptografados automaticamente antes de serem salvos e decodificados logo após serem carregados, sem intervenção do usuário. Nenhum dado armazenado em um container pode ser lido (descriptografado) sem a utilização das chaves de criptografia corretas, como senha e key-file(s) este último se existir. O software criptografa o sistema de arquivo inteiro, como por exemplo: Nomes de arquivos, nomes de pastas, o conteúdo de cada arquivo, espaço livre, metadados, etc. Os arquivos são automaticamente descriptografados (em memória / RAM) enquanto são lidos ou copiados. Da mesma forma, os arquivos que estão sendo gravados ou copiados para o container VeraCrypt são automaticamente criptografados on-the-fly (antes de serem escritos no disco) na RAM.
— Anderson Luís

O artigo visa analisar se é possível pegar as chaves criptográficas dos containers criados pelo VeraCrypt enquanto este programa está em execução, afinal, a memória RAM (memória temporária volátil) é o único local onde não há criptografia dos dados manipulados pelo programa enquanto ele está em execução. Após ser finalizado, os dados que estavam na RAM podem ser apagados (aleatoriamente) e aí restariam apenas os dados criptografados no disco rígido. Em outros termos, a memória RAM parece ser o ponto mais fraco de todo o processo.

Para copiar a memória RAM do computador periciado, foi usado o programa DumpIt (para Windows), e para copiar uma imagem do disco, o software dcfldd (para UNIX e similares) - criado pelo Laboratório de Forênsica Computacional do Departamento de Defesa dos EUA. Para analisar a memória RAM, foi usado o programa forense código-aberto Volatility. O processo foi feito 4 vezes, para garantir um padrão no funcionamento do VeraCrypt.

De forma relativamente simples, as keyfiles do volume criptografado foram encontradas, com base em comparação de datas de acesso a arquivos e execução de programas - lembrando que isso apenas porquê esses registros foram tirados diretamente da memória RAM - . As keyfiles, conforme a documentação própria do VeraCrypt, são arquivos que, usados em combinação com as senhas, provêem mais segurança à criptografia, pois sem os arquivos certos não é possível montar o volume. Tendo o realizador do estudo encontrado as keyfiles, pôde montar o volume.

Porém, para de fato acessar o volume, é preciso saber também a senha! A senha não é guardada em forma pura, como texto simples, mas como hash. Ou seja, estão codificadas de uma maneira "praticamente impossível" de reverter, só sendo usável se o usuário digitar a mesma senha no programa, este gerar o mesmo hash, comparar com o hash guardado e eles coincidirem. O desenvolvedor do estudo tentou encontrá-la na memória RAM, onde ficaria armazenada, mas observou que o VeraCrypt em particular tem o devido cuidado de sobrescrever esses dados, impedindo que a senha pura ou os hashes sejam encontráveis nesse tipo de análise posterior.

Dentre os fatores que a equipe de desenvolvimento do VeraCrypt se propôs a melhorar [em relação ao TrueCrypt], o tratamento dos dados armazenados temporariamente na memória RAM foi um ponto de fundamental importância para o presente artigo.
— Anderson Luís

A única alternativa a encontrar a senha ou hash seria quebrá-la na força bruta (tentativas sucessivas exaustivas), mas o uso de derivação de chaves torna isso imprático... se o usuário seguiu a boa prática de usar senha adequada. Se a senha for fraca, ainda pode ser possível! Mas é tema para outros estudos...

Licença Creative CommonsO texto deste post de Anders Bateva está licenciado com uma Licença Creative Commons - Atribuição 4.0 Internacional.

3 réplicas

Objectar post