terça-feira, 10 de março de 2009

To hash or not to hash: Eis a questão

O assunto hash como comprovação de integridade veio a tona algumas semanas atrás nos blogs dos EUA. Além do já conhecido "birthday attack", foram levantadas novas polêmicas em relação a esta forma de cálculo. De certa forma, o assunto retornou porque não faz muito tempo um grupo de pesquisadores conseguiu emitir um certificado digital válido atacando vulnerabilidades do MD5. Depois do burburinho inicial, a polêmica do uso de hashs acabou por retornar.

O fato novo é que, desta vez, a discussão não parou no uso do algoritmo X, Y ou Z. De certa forma, foi mais profunda e acredito que tenha ajudado a levantar questões ainda não respondidas. Sim, porque em muitas situações, adotamos um procedimento como o correto a ser feito para todas as ocasiões, sem o menor questionamento, e acaba por ficar anos assim. Isso me lembra a estória do caminho das cabras. Há quem diga que, há alguns séculos, as cabras criavam suas próprias rotas no pasto, em busca de alimento. Os colonizadores, ao chegar, percebiam mais facilidade naquele caminho, pois a vegetação ali já estaria menos densa. Ao usá-los com frequência, acabaram por alargar a vegetação a sua volta e criaram ali as primeiras ruas. O progresso chegou e o primeiro passo foi asfaltar as ruas da tal cidade. Hoje, crianças perguntam aos avós porque determinada rua faz curva, enquanto que outras são retas e ninguém sabe a resposta. É porque aquele era o caminho das cabras ...

Pois bem, a polêmica foi boa para se repensar nos procedimentos e não ficarmos colocando asfalto sobre caminho de cabras. Um dos pontos questionados foi por que é obrigatório o uso de hash em casos de comprovação de integridade, quando os algoritmos usados já foram quebrados. É possível uma prova não ser admitida só porque alguém quebrou o algoritmo que comprovaria a sua integridade ??? E o caso de Live Forensics, onde o hash não vai ser igual porque o ambiente muda o tempo todo, já que ainda está em uso ? Houve ainda quem falasse da própria forense de memória, e que não dá para usar esta forma de comprovação de integridade.

Entre perguntas para cá e para lá, gostei muito da postura e opiniões de um dos participantes. Algo que ele ponderou, e que vale para nós brasileiros, é que não há nenhuma exigência legal de que seja usado o hash para a garantia de integridade. Isso foi um procedimento adotado e que agora precisa ser questionado. No caso americano, não haveria nenhum ponto no que eles conhecem como Dalbert Challenge que eliminaria uma prova só porque o hash dela não está idêntico. Outro ponto muito bem indicado é que a prova deve ter uma integridade estrutural por si mesma. Se ela não tiver, então não há caso. Simplificando o que ele disse, não podemos nunca basear uma conclusão em um único ponto, mas sim em um conjunto de vestígios que irão comprovar a história toda. Não podemos dizer que alguém é pedófilo porque simplesmente uma foto foi encontrada em um HD, mas poderemos se a foto estiver em um diretório particular, com algum tipo de classificação, se encontrarmos vestígios de que ela foi baixada em um site e que este site está gravado nos favoritos, ou ainda achamos atalhos no "recent documents" apontando para ela. Neste caso, é inegável a conclusão, e um hash não faria a menor falta ao processo.

O que você tem feito para constatar a integridade de dumps de memória ? E em casos onde o conteúdo só está on-line ? Ou ainda, caso seja impossível capturar toda a mídia, o que você usa como procedimento ? Comente !

Até o próximo post !

Nenhum comentário: