117
Pós-Graduação em Ciência da Computação VALIDAÇÃO DE DADOS ATRAVÉS DE HASHES CRIPTOGRÁFICOS: Uma Avaliação na Perícia Forense Computacional Brasileira por José Paulo da Silva Lima Dissertação de Mestrado [email protected] www.cin.ufpe.br/posgraduacao RECIFE 2015

Validação de Dados Através de Hashes Criptográficos: Uma

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Validação de Dados Através de Hashes Criptográficos: Uma

Pós-Graduação em Ciência da Computação

VALIDAÇÃO DE DADOS ATRAVÉS DE HASHESCRIPTOGRÁFICOS: Uma Avaliação na Perícia Forense

Computacional Brasileira

por

José Paulo da Silva Lima

Dissertação de Mestrado

[email protected]/∼posgraduacao

RECIFE2015

Page 2: Validação de Dados Através de Hashes Criptográficos: Uma
Page 3: Validação de Dados Através de Hashes Criptográficos: Uma

Centro de InformáticaPós-Graduação em Ciência da Computação

José Paulo da Silva Lima

VALIDAÇÃO DE DADOS ATRAVÉS DE HASHES CRIPTOGRÁFICOS:Uma Avaliação na Perícia Forense Computacional Brasileira

Este trabalho foi apresentado ao Programa de Pós-Graduação emCiência da Computação do Centro de Informática da UniversidadeFederal de Pernambuco como requisito parcial para obtenção dograu de Mestre em Ciência da Computação.

Orientador: Ruy José Guerra Barretto de Queiroz.

RECIFE2015

Page 4: Validação de Dados Através de Hashes Criptográficos: Uma

Catalogação na fonteBibliotecário Jefferson Luiz Alves Nazareno CRB4-1758

L732v Lima, José Paulo da Silva.Validação de Dados Através de Hashes Criptográficos: Uma Avaliação

na Perícia Forense Computacional Brasileira / José Paulo da Silva Lima –Recife: O autor, 2015.

115 f.: fig., tab.

Orientador: Ruy José Guerra Barretto de Queiroz.Dissertação (Mestrado) – Universidade Federal de Pernambuco. CIn.,

Ciência da Computação, 2015.Inclui referências e anexos.

1. Criptografia de dados (computação). 2. Computadores - Medidasde segurança. 2. Crime por computador - Investigação. I. Queiroz, RuyJosé Guerra Barretto de. (Orientador). II. Título.

005.82 CDD (22. ed.) UFPE-MEI 2015-130

Page 5: Validação de Dados Através de Hashes Criptográficos: Uma

Dissertação de Mestrado apresentada por José Paulo da Silva Lima à Pós-Graduação em

Ciência da Computação do Centro de Informática da Universidade Federal de

Pernambuco, sob o título “Validação de Dados Através de Hashes Criptográficos:

Uma Avaliação na Perícia Forense Computacional Brasileira” orientada pelo Prof.

Ruy José Guerra Barretto de Queiroz e aprovada pela Banca Examinadora formada

pelos professores:

______________________________________________ Prof. Vinicius Cardoso Garcia Centro de Informática/UFPE ______________________________________________ Prof. Alexandre Freire Pimentel Departamento de Ciências Jurídicas / UNICAP _______________________________________________ Prof. Ruy José Guerra Barretto de Queiroz Centro de Informática / UFPE Visto e permitida a impressão. Recife, 31 de agosto de 2015. ___________________________________________________ Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.

Page 6: Validação de Dados Através de Hashes Criptográficos: Uma
Page 7: Validação de Dados Através de Hashes Criptográficos: Uma

Dedico este trabalho aos meus pais,que tanto trabalharam e se esforçaramem me dar uma educação de qualidade.

Page 8: Validação de Dados Através de Hashes Criptográficos: Uma
Page 9: Validação de Dados Através de Hashes Criptográficos: Uma

Agradecimentos

Agradeço a Deus pela minha vida, pois sinto que sou abençoado por ter uma famíliaunida, ter saúde e inteligência para desenvolver minha vida acadêmica e profissional.Espero que esta dissertação seja uma das muitas conquistas que serei conduzido por Ele aalcançar.

Agradeço meu pai José Teixeira e minha mãe Severina Maria por terem se esforçadotanto para dar uma educação de qualidade, tanto a minha irmã Maria Paula quanto amim.

Agradeço a José Leandro pelos anos de convivência e, por ter se tornado meu maiorconfidente e meu principal apoio nos momentos difíceis, e por dividir comigo todos os risose alegrias vividas.

Agradeço ao meu orientador, o professor Ruy de Queiroz, por ter transmitido tantoconhecimento e ter me dado a liberdade para pesquisar e desenvolver este tema. Agradeçotambém aos professores Alexandre Pimentel e Vinicius Garcia que compuseram a bancade avaliação.

Agradeço a CAPES, por ter financiado parte da minha pesquisa. Agradeço tambéma Universidade Federal de Pernambuco, especialmente ao Centro de Informática, poroferecer uma excelente estrutura para que pudesse desenvolver meu trabalho acadêmico.Agradeço a todos professores, funcionários e alunos do CIn com quem tive convivência epartilha de conhecimentos. Muito obrigado a todos!

Este trabalho foi desenvolvido no LATEX, e por isso agradeço ao grupo abnTEX21 quecontribuíram no desenvolvimento desse projeto, auxiliando-me na escrita desta dissertaçãodentro das normas da ABNT.

A todos que me ajudaram de alguma forma na realização deste trabalho, meu maissincero obrigado.

1 Mais informações sobre este projeto podem ser obtidas na Página oficial do projeto e no Fórum oficial.

Page 10: Validação de Dados Através de Hashes Criptográficos: Uma
Page 11: Validação de Dados Através de Hashes Criptográficos: Uma

“Always look on the bright side of life”.Eric Idle (Monty Python: Life of Brian, 1979)

Page 12: Validação de Dados Através de Hashes Criptográficos: Uma
Page 13: Validação de Dados Através de Hashes Criptográficos: Uma

ResumoA criptografia tem três princípios básicos: garantir a confidencialidade das mensagens,que elas não sejam alteradas por intrusos e que a mensagem flua entre o remetente edestinatário sem que haja a interrupção desta comunicação. Visto resumidamente as metasde um esquema criptográfico, podemos observar o quão importante a criptografia é nosdias atuais. Funções hash são usadas comumente para garantir a integridade de dados,ou seja, garantir que os dados não foram mudados. Os hashes acabam sendo usados emdiversas áreas, especialmente na perícia computacional onde o perito prova que não alterouos dados que ele coletou. Porém, seria necessário que houvesse um maior cuidado com autilização de hashes, afinal existem muitos deles que são considerados inseguros e podemcontinuar a ser usados indevidamente. Visto isso, este trabalho tenta analisar o cenárioatual dentro da perícia forense computacional e da legislação de alguns países, com oobjetivo de apontar melhorias para que despertem uma preocupação quanto a confiançana utilização dos hashes criptográficos.

Palavras-chaves: Criptografia. Funções Hash. Forense Computacional.

Page 14: Validação de Dados Através de Hashes Criptográficos: Uma
Page 15: Validação de Dados Através de Hashes Criptográficos: Uma

AbstractThe cryptography has three basic principles: ensure the confidentiality of messages, don’tbe changed by intruders and the message flow between the sender and the recipient withoutany interruption in communication. Considering the goals of a cryptographic scheme, wecan realise how important encryption is today. Hash functions are commonly used toensure data integrity, that is, ensure that the data haven’t changed. Hashes are used invarious fields, especially in computer forensics where the specialist proves that he didn’tmanipulate the data he collected. However, it would be necessary a greater concern withthe use of hashes, after all there are many of them who are considered unsafe and can tocontinue to be used incorrectly. Considering it, this paper attempts to analyze the currentsituation within the computer forensic expertise and the legislation of some countries, inorder to point out improvements to awaken a concern with the confidence in the use ofcryptographic hashes.

Key-words: Cryptography. Hash Functions. Computer Forensics.

Page 16: Validação de Dados Através de Hashes Criptográficos: Uma
Page 17: Validação de Dados Através de Hashes Criptográficos: Uma

Lista de ilustrações

Figura 1 – Incidentes reportados entre 2008 e 2014 . . . . . . . . . . . . . . . . . . 34Figura 2 – Incidentes reportados em 2014 . . . . . . . . . . . . . . . . . . . . . . . 37Figura 3 – Fases do processo de investigação forense . . . . . . . . . . . . . . . . . 48Figura 4 – Início da cifragem MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . 66Figura 5 – Bloco pronto para a cifragem MD5 . . . . . . . . . . . . . . . . . . . . 66Figura 6 – Modelo de execução do SHA-1 . . . . . . . . . . . . . . . . . . . . . . . 71Figura 7 – Exemplo de curva elíptica . . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 18: Validação de Dados Através de Hashes Criptográficos: Uma
Page 19: Validação de Dados Através de Hashes Criptográficos: Uma

Lista de tabelas

Tabela 1 – Comportamento dos malwares . . . . . . . . . . . . . . . . . . . . . . . 38Tabela 2 – Representatividade de peritos em informática no Brasil . . . . . . . . . 43Tabela 3 – Algoritmos simétricos, assimétricos, híbridos e hashes . . . . . . . . . . 58Tabela 4 – Funções hash: estado da arte . . . . . . . . . . . . . . . . . . . . . . . 63Tabela 5 – Constantes e funções usadas em cada fase do SHA-1 . . . . . . . . . . 70Tabela 6 – Comparação entre o tamanho de chaves . . . . . . . . . . . . . . . . . 75

Page 20: Validação de Dados Através de Hashes Criptográficos: Uma
Page 21: Validação de Dados Através de Hashes Criptográficos: Uma

Lista de abreviaturas e siglas

ABNT Associação Brasileira de Normas Técnicas

abnTEX2 Absurdas Normas para TEX

AES Advanced Encryption Standard

API Application Programming Interface

Bit Binary digit

CAINE Computer Aided Investigative Environment

CAPES Coordenação de Aperfeiçoamento de Pessoal de Nível Superior

CD Compact Disc

CERT.br Centro de Estudos, Resposta e Tratamento de Incidentes de Segurançano Brasil

CIn Centro de Informática da UFPE

CNJ Conselho Nacional de Justiça

CPU Central Processing Unit

DEFT Digital Evidence & Forensics Toolkit

DES Data Encryption Standard

DoS Denial of Service

DVD Digital Versatile Disc

ECC Elliptic Curve Cryptography

FDTK Forense Digital ToolKit

HD Hard Disk

HMAC Hash-based Message Authentication Code

IBM International Business Machines Corporation

ICP-Brasil Infraestrutura de Chaves Públicas Brasileira

IDEA International Data Encryption Algorithm

Page 22: Validação de Dados Através de Hashes Criptográficos: Uma

IP Internet Protocol

IPSec IP Security Protocol

MAC Message Authentication Code

MD4 Message-Digest algorithm 4

MD5 Message-Digest algorithm 5

NIST National Institute of Standards and Technology

NMAC Nested Message Authentication Code

NSA National Security Agency

N/A Não aplicável

N/R Não respondeu

PJe Processo Judicial Eletrônico

PROJUDI Processo Judicial Digital

P2P Peer-to-peer

RAID Redundant Array of Inexpensive Disks

RAM Random Access Memory

RC6 Rivest Cipher 6

REMnux Reverse-Engineering Malware

RIPEMD RACE Integrity Primitives Evaluation Message Digest

RSA Rivest-Shamir-Adleman Algorithm

SAJ Sistema de Automação da Justiça

Senasp Secretaria Nacional de Segurança Pública

SET Secure Electronic Transaction

SHA Secure Hash Algorithm

S/MIME Secure/Multipurpose Internet Mail Extensions

TLS Transport Layer Security

TOR The Onion Router

Page 23: Validação de Dados Através de Hashes Criptográficos: Uma

TRF-5 Tribunal Regional Federal da 5ª Região (Recife)

UFPE Universidade Federal de Pernambuco

UNICAP Universidade Católica de Pernambuco

VI Vetor de Inicialização

VM Virtual Machine

3DES Triple Data Encryption Standard

Page 24: Validação de Dados Através de Hashes Criptográficos: Uma
Page 25: Validação de Dados Através de Hashes Criptográficos: Uma

Lista de símbolos

≈ Aproximadamente

← Atribuição

‖ Concatenação

:= Definição

� Deslocamento de bits a esquerda

6= Diferente

R Grupo dos números reais

Q Grupo dos números racionais

= Igualdade

→ Implica, mapeamento da função

∈ Pertence

¬ Operador lógico de negação

∧ Operador lógico “E”

∨ Operador lógico “OU”

⊕ Operador lógico “OU EXCLUSIVO”

≤ Maior ou igual

Page 26: Validação de Dados Através de Hashes Criptográficos: Uma
Page 27: Validação de Dados Através de Hashes Criptográficos: Uma

Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.1.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.2 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.3.1 Quanto aos Fins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.3.2 Quanto aos Meios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321.3.3 Quanto a Forma de Abordagem . . . . . . . . . . . . . . . . . . . . . . . 32

2 REFERENCIAL TEÓRICO . . . . . . . . . . . . . . . . . . . . . . . 332.1 Segurança Computacional . . . . . . . . . . . . . . . . . . . . . . . . . 332.1.1 Malwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.1.1.1 Defesa usando a criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.2 Perícia Forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.2.1 Perícia Forense Computacional . . . . . . . . . . . . . . . . . . . . . . . . 422.3 Criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.3.1 Conceitos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.3.1.1 Tipos de ataque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.3.1.2 Sigilo perfeito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.3.1.3 MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

2.3.1.3.1 HMAC e NMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.3.1.4 Assinatura Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.3.1.5 Hash Criptográfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

2.3.2 MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652.3.2.1 Evolução do MD4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.3.2.2 Funcionamento do MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

2.3.2.3 Falhas do MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

2.3.3 SHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682.3.3.1 Funcionamento do SHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

2.3.3.2 Falhas do SHA-0 e SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2.3.3.3 Diferenças entre as versões do SHA . . . . . . . . . . . . . . . . . . . . . . . . 72

2.3.4 Curvas Elípticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732.3.4.1 Introdução matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

2.3.4.2 Esquema criptográfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 28: Validação de Dados Através de Hashes Criptográficos: Uma

3 ASPECTOS LEGAIS E ANÁLISE DOS FATOS . . . . . . . . . . . . 773.1 Legislação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.1.1 Brasil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.1.1.1 Processo Eletrônico Brasileiro . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.1.2 União Europeia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.1.3 Reino Unido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.1.4 Estados Unidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.2 Análise dos fatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.2.1 Criptografia utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853.2.2 Perícia Forense Brasileira . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.2.3 Atual legislação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4 CONSIDERAÇÕES FINAIS . . . . . . . . . . . . . . . . . . . . . . . 894.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

ANEXOS 99

ANEXO A – DIAGNÓSTICO DA PERÍCIA CRIMINAL NO BRASIL101

ANEXO B – PADRÕES E ALGORITMOS CRIPTOGRÁFICOS DAICP-BRASIL . . . . . . . . . . . . . . . . . . . . . . . 103

ANEXO C – DIRECTIVA 1999/93/CE DE 13 DE DEZEMBRODE 1999 . . . . . . . . . . . . . . . . . . . . . . . . . 113

Page 29: Validação de Dados Através de Hashes Criptográficos: Uma

27

1 Introdução

Desde de que a escrita foi criada, passamos a registrar e validar informações. Sejaatravés de uma assinatura, um papel timbrado ou carimbo, temos ciência de que taldocumento veio do suposto autor ao notar quaisquer destes identificadores citados. Porémfalsificar qualquer um desses “validadores” é algo totalmente trivial, além disso não hágarantias de que o documento foi alterado durante seu percurso.

A partir desta preocupação em garantir a não alteração da mensagem e quehaja confidencialidade de seu conteúdo, surgem os conceitos de criptografia. A palavracriptografia surgiu da união das palavras gregas “kryptós” que significa “escondido”, e“gráphein” que significa “escrita”.

Antes mesmo de surgir o conceito de criptografia, hieróglifos1 eram produzidos comuma linguagem particular, onde muitos deles permanecem intraduzíveis até hoje por nãohaver conhecimento de como foram escritos. Comparando com nossa criptografia atual,não há conhecimento da chave desses hieróglifos.

Até o século XIX tanto a escrita quanto a criptografia evoluíram, mas durante oséculo XX tivemos uma grande transformação com a invenção do computador e da internet.Os meios como a informação era transmitida e como garantir sua autenticidade, tambémsofreriam mudanças.

A comunicação, que antes era feita somente em meio físico através da escrita empapel, hoje pode até nem ser palpável, visto que a informação agora flui em meio digital.A escrita hoje é apenas um dos modos de se passar informação, esta pode ser repassadaatravés de vídeos, fotos, áudios e vários outros formatos de arquivos circulando através dainternet. Com a digitalização da comunicação, as garantias de segurança tiveram de seralocadas junto ao canal de transmissão dos dados.

O volume de dados que são criados e transferidos diariamente no mundo chega a seralgo imensurável, porém uma preocupação comum ligada a todo este volume de informaçõesé a segurança para transmiti-los e guardá-los, sem haver alteração ou interceptação dealgum pacote de dados.

Esta preocupação em manter tais informações seguras, faz com que a criptografiaseja cada vez mais utilizada para garantir sigilo e confiabilidade dos dados. Seu uso variadesde de validar um simples torrent, até sigilar táticas de um exército durante algumaintervenção secreta.

1 “Cada um dos sinais da escrita pictográfica dos antigos egípcios e de outros povos, como os maias.[. . . ] Qualquer sinal ou caráter cujo sentido não é óbvio”. (MARTINELLI; TERCIOTTI, 2012).

Page 30: Validação de Dados Através de Hashes Criptográficos: Uma

28 Capítulo 1. Introdução

A criptografia chegou a compor a comunicação alemã durante a 2ª guerra mundial. AAlemanha dominou o início da guerra devido ao Enigma, que era a máquina de encriptaçãousada pelos alemães para sigilar todas as mensagens trocadas. Porém a Alemanha saiuderrotada depois que a criptografia do Enigma foi quebrada na Inglaterra, por um grupode criptógrafos liderados por Alan Turing.

Devido ao avanço tecnológico e a grande revolução que tivemos na criptografiagraças ao poder computacional, podemos dizer que estamos presenciando o momento dacriptografia moderna, que tenta garantir o mesmo sigilo, integridade e disponibilidade dacriptografia clássica, utilizada antes da invenção dos computadores.

A criptografia moderna surgiu no período após a Segunda Guerra mundial com umdesafio maior, pois um computador pode simular vários cenários e uma simples cifragem,por exemplo, de embaralhamento ou de substituição de caracteres, é trivialmente quebradausando a computação dos dados recebidos ou até mesmo com um Ataque de Força Bruta.Na criptografia moderna os esquemas de cifragem se tornaram mais robustos pensandoque nem mesmo o mais potente computador consiga quebrar o esquema criptográfico.

Então os atuais algoritmos utilizam-se de artifícios criptográficos que o deixamseguros, como a utilização de MAC a fim de garantir a integridade e autenticidade damensagem através de um cálculo envolvendo a mensagem a ser transmitida e uma chavesecreta, ou também a utilização do HMAC que é uma variação do MAC que envolve umafunção hash.

Com isso já podemos entender o quão necessário a criptografia é, principalmentenos atuais dias onde existe uma grande quantidade e tipos diversos de arquivos. O carimboque antes dava a autenticidade de um documento foi substituído por assinaturas digitais,hashes e outros tipos de validação da criptografia.

Os hashes trabalham pegando uma entrada de tamanho variável, seja ela um textoou arquivo qualquer, e gerando uma saída de tamanho fixo. Este cálculo hash é uma boamaneira de se provar a integridade dos dados em que se foram feitos os cálculos.

Outra área que teve grandes avanços no período pós-guerra foi a Perícia Forense,que também teve de se adaptar a era dos computadores. Foi aí que surgiu a ForenseComputacional, que não difere no trabalho e nos objetivos das outras área da perícia. Operito forense computacional tem o mesmo objetivo que qualquer outro perito: coletarevidências, analisá-las e construir hipóteses.

A perícia forense computacional, área da computação que tenta solucionar questõesdurante investigações, é uma profunda conhecedora e utilizadora de métodos criptográficos,visto que às vezes é necessário quebrar alguma trava criptográfica para obter os dadose, é necessário também, que os peritos utilizem criptografia para afirmar que não houvemanipulação de dados durante seu estudo.

Page 31: Validação de Dados Através de Hashes Criptográficos: Uma

29

Neste trabalho definimos como área de estudo a área da perícia criminal, ondegeralmente utiliza-se nas suas investigações o hash criptográfico para garantir a integridadedo que foi coletado, afirmando assim que tal dado não foi alterado. Isto acaba sendoessencial no trabalho de um perito criminal, pois poder-se-á provar que ele não manipulouas evidências coletadas e quando provado criptograficamente o juiz pode classificar aevidência como prova.

Porém o perito deve ficar atento ao escolher qual hash ele usará, pois há váriosalgoritmos que não são considerados seguros a um bom tempo. Um algoritmo não éconsiderado mais seguro quando se é encontrado alguma colisão, ou seja, duas diferentesentradas que resultam num mesmo valor. As colisões podem ser apontadas através deataques teóricos (que através de algum artigo aponta falha na manipulação do próprioalgoritmo que possa levar a uma colisão) ou através de ataques práticos (que provam emalgum experimento a ocorrência de uma colisão).

Portanto, escolher um bom algoritmo de hash ajuda a aumentar a confiança naintegridade dos dados e, em contra partida, a escolha de um mau algoritmo leva a falta desegurança, pois não há garantia que não houve manipulação no hash gerado.

Devido a todas as mudanças que tivemos na sociedade graças ao avanço da utilizaçãode artifícios computacionais e criptográficos, alguns países criaram legislações específicascom o intuito de validar a utilização destes meios nos processos. Como por exemplo, validaro uso de assinaturas digitais na troca de documentos.

Apesar de termos algumas leis que atuam na área criptográfica, elas carecem demelhorias. Ou encontram-se desatualizadas, ou foram mal escritas deixando muitas lacunasem aberto. Um exemplo disso é que em nenhuma legislação brasileira há um detalhamentotécnico de como devem funcionar esquemas criptográficos para que sejam consideradosseguros.

Esta despreocupação quanto a qualidade e segurança da criptografia pode causardanos. No Brasil, por exemplo, temos problemas em julgamentos que utilizam evidênciasdigitais coletados por peritos forense computacionais, pois pode ser utilizado para validaras evidências o hash do algoritmo MD5, que não é considerado seguro a algum tempo.Caso um simples erro de escolha de qual função criptográfica deve ser utilizada ocorra,todo o trabalho pericial pode ser descartado. No caso de troca de mensagens, um maualgoritmo pode não garantir mais sua integridade e sigilo.

Em meio a tantas preocupações com o armazenamento e transmissão de dados,porque não há um maior zelo com a criptografia utilizada para obter uma segurançaestável?

Page 32: Validação de Dados Através de Hashes Criptográficos: Uma

30 Capítulo 1. Introdução

1.1 Objetivos

1.1.1 Objetivo Geral

Avaliar como a validação de dados acontece na perícia forense computacionalbrasileira.

1.1.2 Objetivos Específicos

1. Elencar os métodos de validação utilizados na Perícia Forense Computacional, comenfoque nos que são utilizados no Brasil.

2. Avaliação dos hashes criptográficos utilizados na validação de dados na perícia forensecomputacional no Brasil.

3. Comparar com outros países como a validação, através de assinaturas digitais, sãoutilizadas.

4. Pesquisar sobre avanços já obtidos no âmbito pericial na área criptográfica.

1.2 JustificativaVisto o quão é utilizada a criptografia nas operações diárias, não podemos negar que

seu uso é essencial hoje em dia para realizar nossas atividades. A evolução tecnológica nosfez dependentes da computação para desenvolver nossos trabalhos. Graças ao expressivonúmero de dados que manipulamos, a preocupação com a segurança deles deve ser algoconstante.

Obviamente tivemos avanços na criptografia que objetivavam o acréscimo no nívelde segurança. Este avanço muitas vezes foi identificando falhas que algum modelo decifragem possuía e há-se então a recomendação de mudar o modelo ou migrar para umoutro melhor.

Devido ao grande número de funções criptográficas e a importância do trabalho deum perito computacional, surge a preocupação com a qualidade e a segurança desta área.Por trabalhar com grandes volumes de dados, tendo um trabalho minucioso e imparcial,garantir a autenticidade dos dados é parte fundamental no trabalho pericial. Todo otrabalho de um perito pode ser descartado caso ele use artifícios criptográficos inseguros.

Em alguns países mundo afora, temos leis que regem a utilização da criptografia.Porém já surge a necessidade de termos leis que busquem melhorar a escolha de criptografiasseguras, que desperte a necessidade de avaliar os esquemas que podem ser utilizados dentroda segurança computacional.

Page 33: Validação de Dados Através de Hashes Criptográficos: Uma

1.3. Metodologia 31

O Poder Judiciário brasileiro também tem sua preocupação com o trabalho dosperitos, mas não por completo. Preocupa-se basicamente em fornecer investimentos paraauxiliar no trabalho da área, seja ajudando na formação ou investindo no ambiente detrabalho. Tanto no Brasil quanto em outros países temos algumas leis que tentam regulara utilização de algoritmos criptográficos, como por exemplo nos Estados Unidos, no ReinoUnido e na União Europeia. Podemos então observar e traçar parâmetros de como está oenvolvimento com os hashes.

Mas a carência principal é uma regulamentação na escolha de hashes segurospara serem utilizados, por exemplo, na forense computacional. Sabemos que em umjulgamento não se pode apontar culpados sem provas, e por isso a importância em validaras evidências coletas por peritos é fundamentada no projeto que eles desenvolveram durantea investigação. A qualidade criptográfica utilizada é fundamental para validar as evidênciase o juiz decidir se podem ser consideradas como prova.

A questão que envolve tanto os peritos quanto a Justiça brasileira é se há algumapreocupação de como as evidências são validadas. Há alguma verificação quanto a qualidadesdos hashes utilizados?

1.3 Metodologia

Conforme afirma Köche (2007 apud PRODANOV; FREITAS, 2013, p. 49) “oplanejamento de uma pesquisa depende tanto do problema a ser estudado, da sua naturezae situação espaço-temporal em que se encontra, quanto da natureza e nível de conhecimentodo pesquisador”.

Levando-se em conta as variáveis citadas por Köche (2007 apud PRODANOV;FREITAS, 2013), podemos afirmar que cada trabalho acaba sendo único. “Isso significaque podem existir vários tipos de pesquisa. Cada tipo possui, além do núcleo comum deprocedimentos, suas peculiaridades próprias.” (PRODANOV; FREITAS, 2013, p. 50).

1.3.1 Quanto aos Fins

Este trabalho se classifica como pesquisa exploratória e descritiva. Classifica-secomo exploratória devido as sucessivas pesquisas bibliográficas realizadas, tendo comoobjetivo obter conhecimento necessário para identificar problemas voltados a segurança dehashes no âmbito da perícia forense computacional. A pesquisa não ficou restrita apenas aárea acadêmica da criptografia.

Segundo Prodanov e Freitas (2013, p. 51-52) a pesquisa exploratória tem porobjetivo buscar mais informações sobre um assunto tendo como meta o levantamento dedefinições para esboço da pesquisa.

Page 34: Validação de Dados Através de Hashes Criptográficos: Uma

32 Capítulo 1. Introdução

A pesquisa exploratória possui planejamento flexível, o que permite oestudo do tema sob diversos ângulos e aspectos. Em geral, envolve:

• levantamento bibliográfico;• entrevistas com pessoas que tiveram experiências práticas com o

problema pesquisado;• análise de exemplos que estimulem a compreensão.

(PRODANOV; FREITAS, 2013, p. 52).

Este trabalho também pode ser classificado como pesquisa descritiva, afinal após olevantamento feito de maneira exploratória das informações necessárias foi-se necessárioagrupá-las para ser feita uma análise a fim de identificar problemas e sugerir soluções.

Prodanov e Freitas (2013, p. 52) definem que nas “pesquisas descritivas, os fatos sãoobservados, registrados, analisados, classificados e interpretados, sem que o pesquisadorinterfira sobre eles [. . . ]”.

1.3.2 Quanto aos MeiosO trabalho foi realizado através de sucessivas pesquisas acadêmicas em livros,

artigos e outros tipos de publicações. Esta dissertação, portanto, é caracterizada comouma Pesquisa Bibliográfica, pois foi

[. . . ] elaborada a partir de material já publicado, constituído principal-mente de: livros, revistas, publicações em periódicos e artigos científicos,jornais, boletins, monografias, dissertações, teses, material cartográfico,internet, com o objetivo de colocar o pesquisador em contato direto comtodo material já escrito sobre o assunto da pesquisa. (PRODANOV;FREITAS, 2013, p. 54).

1.3.3 Quanto a Forma de Abordagem

A pesquisa deste trabalho é classificada como pesquisa qualitativa, já que tem comoobjetivo compreender e apresentar soluções do contexto pesquisado.

Na abordagem qualitativa, a pesquisa tem o ambiente como fonte diretados dados. [. . . ] Nesse caso, as questões são estudadas no ambiente em queelas se apresentam sem qualquer manipulação intencional do pesquisador.[. . . ] Os dados coletados nessas pesquisas são descritivos, retratando omaior número possível de elementos existentes na realidade estudada.(PRODANOV; FREITAS, 2013, p. 70).

Page 35: Validação de Dados Através de Hashes Criptográficos: Uma

33

2 Referencial Teórico

2.1 Segurança ComputacionalCertamente a maior preocupação existente na computação atual é quanto à segu-

rança, não só a segurança voltada aos dados armazenados, mas a segurança de transmissãode mensagens. A segurança não deve ser baseada na ocultação dos dados, mas deve serbaseada na garantia de que os dados estarão acessíveis a todos os usuários autorizados eque somente esses usuários autorizados tenham permissão de acessar e manipular essesdados.

A segurança da informação é alcançada pela implementação de umconjunto adequado de controles, incluindo políticas, processos, proce-dimentos, estrutura organizacional e funções de software e hardware.Estes controles precisam ser estabelecidos, implementados, monitorados,analisados criticamente e melhorados, quando necessário, para assegurarque os objetivos do negócio e a segurança da informação da organizaçãosejam atendidos. (ABNT, 2013, p. x).

De forma resumida, podemos definir que a segurança computacional trabalha comtécnicas e protocolos digitais definidos, a fim de garantir princípios básicos conformecitam Goodrich e Tamassia (2013). A segurança computacional é baseada em 3 princípios:confidencialidade, integridade e disponibilidade. Esses 3 princípios são base para o desen-volvimento de qualquer aplicação que tenha por objetivo ampliar o nível de segurançados dados, visto que o ambiente computacional necessita desta segurança para asseguraras inúmeras operações feitas principalmente, pela internet. De exemplo podemos citar oarmazenamento em nuvem, que populariza cada vez mais seu serviço entre os usuários.

A confidencialidade envolve a proteção de dados, deixando que apenas usuáriospermitidos tenham acesso a tal dado. Ela pode ser garantida através da criptografia dosdados, e até mesmo com a imposição de barreiras físicas para limitar o acesso a essainformação protegida. Em sistemas mais robustos ou que a informação seja de grandeimportância, é normal que haja todo um histórico salvo de acesso e edições dos dadosjuntamente com os dados do usuário que realizou a ação.

A integridade garante que os dados não foram alterados por alguém que não possuíaacesso a eles. Uma forma simples de garantir versões que não foram alteradas, é combackups periódicos dos dados. Para validar a não alteração dos dados, podemos utilizarchecksums, que são somas de verificação que levam em conta todo o conteúdo do arquivo.Na criptografia o checksum mais utilizado é o hash, onde cada arquivo possui uma sequênciaúnica.

Page 36: Validação de Dados Através de Hashes Criptográficos: Uma

34 Capítulo 2. Referencial Teórico

Já a disponibilidade é a propriedade dos dados serem acessíveis para acesso e ediçãopor usuários permitidos. Um artifício utilizado comumente para garantir a disponibilidadesão as Redundâncias Computacionais, temos como exemplo as RAID1, Servers Farms ouCluster Beowulf 2. Vale a pena ressaltar ainda sobre a disponibilidade, que durante algumtempo foi fortemente atacada através de Ataques de Negação de Serviço (DoS).

Ainda segundo Goodrich e Tamassia (2013, p. 14) os Ataques de Negação de Serviçosão “a interrupção ou degradação de um serviço de dados ou de acesso à informação [. . . ].A negação de serviço é um ataque a disponibilidade”. Os spams podem ser consideradosum Ataque DoS, já que congestionam o servidor de e-mail.

Segundo levantamento da CERT.br (2015) nos últimos anos os ataques DoS eraminexpressivos, visto que no período de 2008 a 2013 não ultrapassaram 0,3%, mas no anode 2014 apresentou um salto para 21,39%. Em números o crescimento foi de 1.030 ataquesem 2013 para 223.935 ataques em 2014, um número 217 vezes maior:

Figura 1: Incidentes reportados entre 2008 e 2014

2014

2013

2012

2011

2010

2009

2008

0

20

40

60

80

100

Incide

ntes

repo

rtad

os(%

)

Worm DoS Invasão Web Scan Fraude Outros

Fonte: Gráfico desenvolvido pelo autor com dados extraídos nosite da CERT.br (2015).

Além da preocupação existente com Ataques DoS, as ameaças mais comuns enfren-tadas são os malwares, que invadem várias máquinas diariamente. Por serem um softwaremalicioso podem repetir e espalhar seus ataques a diversos alvos, diferentemente do AtaqueDoS que tenta derrubar um serviço específico de uma determinada aplicação web.

1 É um subsistema de armazenamento com alguns dispositivos trabalhando simultaneamente afim degarantir segurança e desempenho através da redundância dos dados.

2 Tanto Servers Farms quanto Cluster Beowulf são um grupo de computadores funcionando paradeterminada tarefa. São uma alternativa econômica a um supercomputador.

Page 37: Validação de Dados Através de Hashes Criptográficos: Uma

2.1. Segurança Computacional 35

2.1.1 Malwares

Um grande desafio da segurança computacional são os malwares, que são umaconstante ameaça aos princípios da segurança computacional. Malware, também conhecidopor software malicioso, “é um software cuja existência ou execução tem consequênciasnegativas ou involuntárias”, segundo afirmam Goodrich e Tamassia (2013, p. 171).

Hoje, malwares tornaram-se uma das graves ameaças na internet. Aanálise do comportamento de cada malware é um elemento crítico narealização de esforços de defesa e de mitigação de malwares. Existemdois métodos de análise de malwares - análise estática de malwares eanálise dinâmica de malwares. A análise estática requer uma análise docódigo do malware. O código do malware geralmente não está disponívelpara análise e até mesmo se ele estiver disponível, o autor do malwaremuitas vezes ofusca o código, tornando a análise estática tarefa difícil edemorada.Em contraste com a análise estática, a análise dinâmica de malwarespermite que o analista monitore a execução do malware a cada passo. Omalware geralmente é executado em uma sandbox ou VM para monitoraro comportamento de tempo de execução do malware. Ao contrário deanálise estática, a análise dinâmica é imune a ofuscação de código. Aanálise dinâmica pode ser feita de duas maneiras:

• Capturar a imagem do estado do sistema antes da execução domalware e, em seguida, comparando-a com o estado do sistemaapós a execução do malware;

• Execução do malware e observação do seu comportamento durantea execução.

(TILBORG; JAJODIA, 2011, p. 367, tradução nossa).

Esta análise dos malwares além de identificar de qual tipo de malware estamostratando, é possível entender seu funcionamento e a partir daí buscarmos solução contraeste ataque. Entre os malwares mais conhecidos está o vírus, que leigos chegam a pensarque os vírus de computador são os únicos malwares existentes. Mas na verdade

[. . . ] um vírus é considerado uma função computável que infecta qual-quer programa. Um programa infectado pode realizar então três açõesdisparadas conforme as entradas:a) executar no programa hospedeiro e propagar a infecção,b) danificar o sistema ouc) imitar o programa hospedeiro.Uma das características de um vírus é a necessidade de anexar-se a um“programa hospedeiro” para funcionar. O alvo neste caso pode ser umarquivo executável, o setor de inicialização, um documento que suportemacros ou um arquivo de script. Os vírus propagam-se normalmente atra-vés de mídias removíveis, e-mails, downloads e diretórios compartilhados.(PEREIRA et al., 2007, p. 6).

“Outra propriedade discriminante de um vírus é que essa replicação requer algumtipo de assistência do usuário, como clicar um anexo de e-mail ou compartilhar umaunidade USB.” (GOODRICH; TAMASSIA, 2013, p. 177).

Page 38: Validação de Dados Através de Hashes Criptográficos: Uma

36 Capítulo 2. Referencial Teórico

Outro tipo de malware que assemelha-se ao vírus é o worm que é também conhecidocomo verme. A diferença básica entre o vírus e o worm é que o worm não necessita infectaralgum outro programa para se reproduzir e não precisa de qualquer assistência do usuário,ou seja, o worm é como se fosse uma versão melhorada do vírus, é um malware maisrobusto. “Um verme de computador é um programa malicioso que espalha cópias de simesmo sem a necessidade de se injetar em outros programas, e geralmente sem interaçãohumana”. (GOODRICH; TAMASSIA, 2013, p. 187).

Goodrich e Tamassia (2013, p. 171) citam outros exemplos de malwares, como porexemplo a backdoor, também conhecida por trapdoor, que segundo eles é uma brecha noprograma criada para facilitar o acesso às informações pretendidas, burlando qualquercontrole de segurança que possa existir.

[. . . ] um spyware é um software que auxilia a coleta de informaçõessobre uma pessoa ou organização sem o seu conhecimento, que podeenviar tais dados para outra identidade sem o seu consentimento ou quetoma controle do computador sem que o usuário saiba disso. De todosos tipos de malware existentes spyware é o mais comumente encontrado.(PEREIRA et al., 2007, p. 10).

Pereira et al. (2007, p. 16) cita também os bots como um tipo de software malicioso,sendo eles caracterizados por terem um controle a distância do adversário, e por possuirvários comandos permitindo que ele tenha um mecanismo de replicação e difusão narede. Em resumo, os bots tomam conta de um determinado serviço de alguma máquina emanipulam-no a gosto do adversário.

Por fim podemos citar dois malwares que compartilham uma mesma característica,o Trojan e o Rootkit. Ambos que tem como característica comum a tentativa de disfarçar-seno meio invadido, a fim de não serem reconhecidos com suas atividades ilícitas.

Um Cavalo de Troia (ou Trojan) é um programa malware que aparentarealizar alguma tarefa útil, mas que faz algo com consequências negativas[. . . ]. Cavalos de Troia podem ser instalados como parte da carga de outroprograma malicioso, mas com frequência são instalados por um usuárioou administrador, deliberadamente ou não. (GOODRICH; TAMASSIA,2013, p. 185).

Assim como o Trojan camufla-se para entrar no alvo, o Rootkit camufla-se tambémdurante sua execução, tentando esconder-se em pastas os programas de essencial utilizaçãopara não ser encontrado.

Um rootkit é um tipo especialmente furtivo de malware. Rootkits geral-mente alteram utilitários do sistema ou do próprio sistema operacionalpara evitar detecção. [. . . ] Rootkits são muitas vezes usados para esconderações maliciosas ou outros tipos de malware, como Cavalo de Troia evírus. (GOODRICH; TAMASSIA, 2013, p. 192).

Page 39: Validação de Dados Através de Hashes Criptográficos: Uma

2.1. Segurança Computacional 37

Os malwares podem ser classificados de diferentes maneiras, quanto aos danosque podem causar. O CERT.br anualmente oferece um estudo dos ataques que foramnotificados no âmbito brasileiro, e há alguns anos o worm aparece entre os líderes quantoao número de ataques. Ficando em 4º lugar em 2014, atrás de dois incidentes que nãosão classificados como malware e atrás também do Ataque DoS, que pode ser causadotambém por um malware.

Figura 2: Incidentes reportados em 2014

Fraude

Scan Do

SWo

rm Web

Invasão

Outros

0

10

20

30

40

44.66

25.1821.39

4.03 2.75 0.62 1.37Incide

ntes

repo

rtad

os(%

)

Fonte: Gráfico desenvolvido pelo autor com dados extraí-dos no site da CERT.br (2015).

O líder de incidentes notificados ao CERT.br são as fraudes. “Esta categoria englobaas notificações de tentativas de fraudes, ou seja, de incidentes em que ocorre uma tentativade obter vantagem.” (CERT.BR, 2015).

Alguns exemplos de fraudes são: páginas falsas de bancos, sites de comércio eletrônicoe demais categorias de sites3; Cavalos de Troia, utilizados para furtar informações ecredenciais; e quebras de direitos autorais. Esses exemplos de fraudes formaram esteexpressivo número que é cinco vezes maior em relação a 2013.

O segundo incidente mais notificado ao CERT.br em 2014 foi o Scan, o órgão acabadefinindo que os Scans são

varreduras em redes de computadores, com o intuito de identificar quaiscomputadores estão ativos e quais serviços estão sendo disponibilizadospor eles. É amplamente utilizado por adversários para identificar poten-ciais alvos, pois permite associar possíveis vulnerabilidades aos serviçoshabilitados em um computador. (CERT.BR, 2015).

3 Uma técnica bastante utilizada nas fraudes é o phishing, que tenta “pescar” informações sigilosasusando páginas ou e-mails falsos, ou usando também técnicas de Engenharia Social para obter taisdados.

Page 40: Validação de Dados Através de Hashes Criptográficos: Uma

38 Capítulo 2. Referencial Teórico

Em terceiro lugar aparece o ataque DoS seguido pelo malware worm, como foi citadoanteriormente. O quinto incidente mais reportado foram os ataques que comprometemservidores web ou desconfiguram alguma página web, que aparece no gráfico sob a legendaweb com 2,75% de representatividade. Completando os incidentes mais notificados em2014 tivemos invasões a redes e/ou computadores com 0,62%.

O grande número de ataques worm, aliado aos expressivos números de invasões(que podem ser caracterizadas por backdoors) e scan mostra o quão desafiadores são osmalwares para garantir-se a segurança computacional. Juntos eles representam quase 30%do problemas contabilizados pelo CERT.br.

Vistas tais definições sobre os malwares, podemos atribuir algumas característicasda execução de cada um deles.

Tabela 1: Comportamento dos malwaresMalware Comportamento

Vírus Deixam a execução dos programas mais lentos, podendo bloquear a aplicaçãoou derivados por conta de erros e/ou incompatibilidade de códigos.

Worm Intenso uso da CPU, memória RAM, HD e da Rede.Trojan Acessa a internet para baixar um segundo código malicioso.

Backdoor Adiciona um programa no computador abrindo uma porta estranha.Rootkit Escondem outros códigos maliciosos.Spyware Redirecionam parte do tráfego de internet, deixando-o lento.

Bot Permanecem camuflados até serem acordados, fazendo intenso uso de CPU,memória, HD e Rede.

Fonte: Tabela desenvolvida pelo autor baseado em Goodrich e Tamassia (2013, p. 171-210) ePereira et al. (2007).

2.1.1.1 Defesa usando a criptografia

Dentre os exemplos citados acima, o ponto em comum entre eles é que todos temorigem de um software malicioso. Ou seja, o ataque teve como origem um programa ou umarquivo que foi manipulado e passado à máquina a ser contaminada, como por exemploum Cavalo de Troia.

Um usuário um pouco mais atento às boas práticas da computação, observaria se oarquivo que ele quer manipular é realmente o arquivo que ele deseja, afim de identificar seo arquivo em questão não foi corrompido a fazer algo indesejado. A maneira mais utilizadade se fazer essa identificação é checando o hash do arquivo que foi disponibilizado peloremetente do arquivo.

A verificação por hash mostrará que o arquivo que está sob domínio do usuário, éo mesmo que foi disponibilizado pelo remetente. É possível fazer isso tanto em arquivostransferidos por rede quanto transferidos por dispositivos físicos.

Page 41: Validação de Dados Através de Hashes Criptográficos: Uma

2.1. Segurança Computacional 39

Tilborg e Jajodia (2011, p. 753–754) também descrevem como a atividade criptográ-fica pode auxiliar na defesa contra malwares. Além de citar resumidamente como funcionaa utilização da criptografia nos antivírus, dão exemplos de como tratar de malwares maisespecíficos, como os malwares polimórficos4.

O método de detecção mais rápido e mais comum é a utilização de assina-turas de malwares estáticos. Na forma mais simples, eles são sequênciasbinárias de código ou dados que aparecem em uma instância específica domalware. Outras formas de assinaturas de malwares estáticos são valoreshash de blocos de código a partir de um dado offset em um executável, ousequências binárias incluindo wildcards5 para permitir alguma variaçãosintática. As assinaturas tem de ser gerada a partir de sequências decódigo suficientemente longos para minimizar falsos positivos (ou seja,falsas detecções de malware em programas benignos). Para detectar umadeterminada instância malware, o software de antivírus simplesmenteverifica a presença de sua assinatura em um determinado programa(escaneamento). Os antivírus comercializados mantêm grandes bases dedados destas assinaturas, e escaneiam todos os arquivos para todas asassinaturas de vírus e worms que conhecem [. . . ].

Malwares polimórficos são difíceis de detectar por meio de associaçãode assinatura, uma vez que a imagem sintática do disco for alteradocom cada instância replicada. Para simples malwares polimórficos cujarotina de decriptação não varia significativamente entre as instâncias demalware, as assinaturas para a rotina de decriptação podem ser gerados.Uma vez que o malware polimórfico é executado (por exemplo, comoparte da análise dinâmica) e tem descriptografado o corpo do vírus,combinando assinatura pode ser aplicado para detectar o malware namemória. (TILBORG; JAJODIA, 2011, p. 753–754, tradução nossa).

Marcacini (2010, p. 34-44) disserta como a criptografia pode ser utilizada afim decombater tipos de ataques em páginas web. Primeiramente o autor mostra vantagens que oesquema de criptografia assimétrica possuí, mas ao mesmo tempo alerta que “não se podepensar que o simples uso da criptografia seja o passaporte mágico que nos conduzirá aum nível de segurança absolutamente inviolável. Há boa e má criptografia; há criptografiaforte e criptografia fraca”.

Esse alerta de Marcacini é importante, pois destaca que somente o uso de umesquema criptográfico não solucionará todas as questões de integridade e sigilo. É necessárioque haja um estudo para saber quão seguro é o esquema criptográfico a ser utilizado. Estapreocupação com a criptografia deve ser um ponto fundamental da perícia computacionalpara não abrir espaços a possíveis fraudes nas provas.

4 “Malwares polimórficos criptografam seu código executável malicioso (corpo do vírus) e anexamum pequeno motor de decodificação, que decifra o código só em tempo de execução”. (TILBORG;JAJODIA, 2011, p. 753, tradução nossa).

5 Em informática wildcard é um caractere que representa qualquer valor.

Page 42: Validação de Dados Através de Hashes Criptográficos: Uma

40 Capítulo 2. Referencial Teórico

2.2 Perícia Forense

A perícia forense é um conjunto de todos os tipos de conhecimentos científicos etecnológicos existentes, utilizados para desvendar crimes. Existem diversas áreas de atuaçãoe conforme elenca Senasp (2012) a perícia forense pode ser subdividida em Informática,Contábil e Financeira, Documentoscópicas, Audiovisual e Eletrônicos, Química Forense,Engenharia, Meio Ambiente, Genética Forense, Balística, Locais de Crime, Bombas eExplosivos, Veículos, Medicina e Odontologia Forense e sobre o Patrimônio Cultural.

No Brasil para se tornar perito criminal, em qualquer que seja a área de trabalho,é necessário que o candidato seja aprovado em um concurso público e que possua diplomade nível superior, conforme define o Artigo 159 do Decreto-Lei nº 3.689, de 3 de Outubrode 1941: “O exame de corpo de delito e outras perícias serão realizados por perito oficial,portador de diploma de curso superior”. (BRASIL, 1941).

O perito forense é portanto um profissional especializado em encontrar vestígiosmediante a análise tecnocientífica. As atividades periciais são classificadas como de grandecomplexidade, em razão da responsabilidade e formação especializada revestidas no cargo.Resumidamente as atribuições do perito forense criminal são: realizar exames periciaisem locais de infração penal; realizar exames em instrumentos possivelmente utilizados;proceder pesquisas de interesse; coletar dados e informações necessários à complementaçãodos exames periciais e desempenhar outras atividades que visem apoiar as metas que lheforem atribuídas.

Apesar de haver um grande e constante trabalho na perícia forense, não existe umconsenso mundial de como a análise deve ser tratada, há ausência de uma padronização decomo trabalhar, desde a coleta até a redação do laudo pericial. Isso faz com que cada paístenha uma legislação própria sobre o tema e a existência de vários manuais de boas práticas,conforme afirma Melo (2009, p. 1): “Não há padrões internacionais para o tratamentode dados periciais, embora existam documentos de boas práticas dedicados a classificarrespostas a incidentes de segurança e um capítulo da NBR ISO/IEC 17799:20056 queendereça o assunto”.

E no Diagnóstico da Perícia Criminal no Brasil (SENASP, 2012, p. 1) fica aindamais explícito essa necessidade em se possuir uma padronização dos processos periciais,visto que o efetivo de peritos é baixo, a estrutura oferecida é precária, o volume de processose a demanda de trabalho é alta:

A perícia no Brasil carece de uma estrutura minimamente padronizada,o que faz com que se desenhe de forma diferente em cada Estado e noDistrito Federal. A escassez de dados sistematizados mostrou-se comoregra e chamou-nos a atenção como os próprios gestores, muitas vezes,desconhecem suas instituições. (SENASP, 2012, p. 1).

6 Norma já substituída pela ABNT (2013).

Page 43: Validação de Dados Através de Hashes Criptográficos: Uma

2.2. Perícia Forense 41

Apesar de possuir várias áreas de atuação, o trabalho do perito segue uma estruturaparecida independentemente da área, como afirma Neukamp (2007): “O processo deinvestigação pode ser dividido em 4 etapas, que são: Coleta dos Dados, Exame dos Dados,Analise dos Dados e Laudo Pericial”.

A tarefa inicial do perito durante sua investigação é, portanto, coletar e assegurarque não houve manipulação das provas, para então iniciar a sua detalhada investigação.Como todas as evidências coletadas ficarão de posse da polícia a qual o perito pertence,faz-se necessário que utilize a Cadeia de Custódia durante o arquivamento da evidência nocofre policial designado. Os peritos em informática, segundo Senasp (2012), armazenamseus materiais nas centrais de criminalística.

No que diz respeito à preservação das informações coletadas a cadeia decustódia possibilita documentar a cronologia das evidências, quem foramos responsáveis por seu manuseio, etc. Procedimentos como: colocar lacresem evidências, restringir o acesso apenas aos profissionais responsáveispela custódia minimizam a possibilidade da manipulação indevida etornam as evidências mais confiáveis. (COSTA JÚNIOR, 2014, p. 51).

O arquivamento da evidência é bastante organizado, visto que há identificação elacração de cada vestígio indicando a qual investigação pertence e, qual perito coletou-o.Todo o processo da Cadeia de Custódia aumenta a garantia de integridade da prova,torna-se mais segura e transparente, já que haverá toda uma documentação de quem teveacesso às estas evidências protegidas, documentando quem e quando acessou-as, além deexibir como se deu o processo investigativo.

No processo forense, equipamentos de informática apreendidos são nor-malmente identificados por números de série na perícia forense ou norelatório da cadeia de custódia. Estes exemplos destacam o papel dosnúmeros de série como um meio para identificar equipamentos de informá-tica e sua propriedade. (CARROLL; KROTOSKI, 2014, p. 49, traduçãonossa).

Infelizmente não existe nenhuma lei ou padronização acerca da Cadeia de Custódia.No diagnóstico realizado pela Senasp (2012), fica evidente o descaso que muitos centrospericiais tem com a Cadeia de Custódia, sendo ela tão fundamental no trabalho pericial.

Afinal todos os elementos coletados como evidências serão avaliados em um jul-gamento para serem considerados prova ou não. Ou seja, as evidências são consideradasum indício que algo pode ser verdade e somente o trabalho do perito pode apresentarargumentos ou evidências mais refinadas para considerar isto uma prova: que é tida comoverdade sobre o fato em questão. A indevida utilização ou a inutilização da Cadeia deCustódia podem levar o juiz a questionar a integridade de todas as evidências apresentadase não considerar as evidências como prova.

Page 44: Validação de Dados Através de Hashes Criptográficos: Uma

42 Capítulo 2. Referencial Teórico

Conforme afirma Birnfeld (2004): “As provas são concretas, documentadas. Asevidências prescindem de provas: tem-se certeza mesmo sem contar com provas objetivas.Portanto, prova e evidência são coisas diferentes”.

Um dos elementos fundamentais para se compreender os processos detrabalho da atividade pericial é a existência e o funcionamento da cadeiade custódia dos vestígios. Ela é essencial para a validação da prova técnicauma vez que possibilita a rastreabilidade do vestígio, ou seja, assegurao vínculo entre o material periciado e o fato investigado. A cadeia decustódia também possibilita documentar a cronologia da evidência equem foram os responsáveis por seu manuseio.O Brasil não tem uma normativa geral sobre cadeia de custódia e omesmo ocorre na grande maioria dos Estados, que ainda encontramfragilidades na gestão da atividade pericial. [. . . ].Mais da metade das unidades centrais de Criminalística, de MedicinaLegal e de Identificação [tabelas no Anexo A] responderam que os vestígiosnão são lacrados quando coletados no local de crime e não são guardadosem local seguro e que preserve suas características. Não há tambémrastreabilidade dos vestígios na maioria dessas unidades. Em conjunto,esses dados apontam para a inexistência de procedimentos de cadeia decustódia na Criminalística. (SENASP, 2012, p. 70).

2.2.1 Perícia Forense Computacional

Antes de iniciarmos a decorrer sobre a Perícia Forense Computacional, faz-senecessário diferenciá-la da Perícia Digital, também conhecida por Forense Digital. APerícia Forense Computacional, também conhecida por Perícia em Informática, é umasubárea da Forense Digital. A Forense Digital possui uma área de atuação abrangente queengloba qualquer tipo de dispositivo eletrônico que armazene ou processe dados, comopor exemplo: smartphones, câmeras digitais, etc. Como a Forense Computacional é umasubárea da Forense Digital, acaba sendo totalmente focada em computadores, estandoseus peritos aptos a trabalharem em qualquer ambiente computacional.

Visto que a Perícia Forense Computacional é uma subárea da Perícia Digital,podemos citar Pereira et al. (2007, p. 4) que define que

[. . . ] a Forense Computacional pode ser definida como a inspeção científicae sistemática em ambientes computacionais, com a finalidade de angariarevidências derivadas de fontes digitais, tendo como objetivo, promover areconstituição dos eventos encontrados (podendo assim, determinar se oambiente em análise foi utilizado na realização de atividades ilegais ounão autorizadas).

A perícia forense computacional pode ser utilizada para várias finalidades, mas seupapel mais sério e mais minucioso ocorre quando trabalha-se com a suspeita de algumcrime onde o computador foi utilizado. Portanto a perícia forense não é exclusiva paracibercrimes, ela pode acontecer na investigação de crimes em que a computação foi meraferramenta, e não o meio pelo qual se deu o golpe.

Page 45: Validação de Dados Através de Hashes Criptográficos: Uma

2.2. Perícia Forense 43

No Brasil a representatividade de peritos em informática é bem modesta, nãoultrapassa o percentual de 2,5% no âmbito nacional. O que já torna preocupante aqualidade que possamos ter do trabalho pericial brasileiro, visto que há uma sobrecargade trabalhos sobre os peritos.

Tabela 2: Representatividade de peritos em informática no Brasil

Estado PeritosCriminais

EmInformática Porcentagem

Acre 40 1 2,50%Alagoas 49 1 2,04%Amapá 71 4 5,63%

Amazonas 142 6 4,23%Bahia 317 5 1,58%Ceará 78 2 2,56%

Distrito Federal 169 3 1,78%Espírito Santo 61 2 3,28%

Goiás 146 5 3,42%Maranhão 88 1 1,14%

Mato Grosso 133 3 2,26%Mato Grosso do Sul 108 4 3,70%

Minas Gerais 588 3 0,51%Pará 306 7 2,29%

Paraíba 116 3 2,59%Paraná 195 10 5,13%

Pernambuco 153 5 3,27%Piauí 24 2 8,33%

Rio de Janeiro 296 5 1,69%Rio Grande do Norte 48 4 8,33%Rio Grande do Sul 228 4 1,75%

Rondônia 118 1 0,85%Roraima 39 1 2,56%

Santa Catarina 182 4 2,20%São Paulo 1065 33 3,10%Sergipe 14 0 0,00%

Tocantins 151 3 1,99%TOTAL 4925 122 2,48%

Fonte: Desenvolvido pelo autor com dados de Senasp (2012).

Em Senasp (2013) é passado aos peritos brasileiros boas práticas que eles podemseguir em seu trabalho, não só na área computacional, mas sim em várias áreas da períciacriminal. O objetivo deste trabalho é que haja futuramente uma padronização do trabalhopericial forense brasileiro. Entretanto o material faz um relato muito superficial e possuium detalhamento, tecnicamente falando, muito simples e sem explorar os conceitos técnicosconhecidos pelos peritos.

Atualmente, mesmo não existindo uma padronização dos trabalhos periciais, Pereira(2010, p. 2–3) sintetiza alguns passos que geralmente são seguidos ao longo de umainvestigação e afirma que todo processo pericial pode ser dividido em quatro etapas, quevão da coleta dos indícios até a escrita do laudo a ser apresentado durante o julgamento.

Page 46: Validação de Dados Através de Hashes Criptográficos: Uma

44 Capítulo 2. Referencial Teórico

Pereira (2010, p. 3) destaca que “o perito que for nomeado para realizar a períciadeve trabalhar de uma forma sistemática e cuidadosa com as evidências com o intuito desempre preservar a integridade dos dados e detalhar toda a atividade executada no laudofinal”.

Coleta de dados

Na coleta de dados todo o trabalho é iniciado, buscando obter todos os dados demaneira cuidadosa para preservar a integridade deles. Senasp (2013, p. 99) lista algunsequipamentos essenciais para o início da investigação, pois no ambiente onde os dadosserão coletados é necessário documentar tudo, buscar e preservar evidências que auxiliemnão só o trabalho do perito em informática como também de outras áreas periciais. Acoleta não deve ser restrita aos equipamentos informáticos, mas outros peritos tambémbuscaram outras evidências como cabelo, fluídos corporais, digitais, etc.

• Câmera fotográfica;

• HD externo de leitura e escrita;

• HD externo protegido contra escrita (Talon, Solo-III ou Dossier,por exemplo);

• CDs de inicialização ou equivalentes com softwares forenses, taiscomo: Helix, DEFT, CAINE, BackTrack, Encase LinEn;

• CDs de inicialização ou equivalentes contendo softwares forenses,tais como: Microsoft COFEE, FTK Imager Lite, NUDETECTIVE,etc;

• CDs e DVDs virgens;

• Conjunto de cabos IDE, PATA, SATA, SCSI, SAS;

• Discos rígidos de capacidade de armazenamento adequada;

• Equipamento computacional portátil equipado com softwares fo-renses.

(SENASP, 2013, p. 99).

A preocupação inicial dos peritos é coletar todos os vestígios encontrados sem “que-brar” nenhum deles. O objetivo é coletar todos sem haver alterações de suas características(garantir a integridade) e sem atrapalhar o trabalho de outros peritos de áreas diferentes.Por isso foi citado acima o uso de câmera fotográfica e HDs, para registrar como tudo foiencontrado e na próxima fazer começar a análise de tudo que foi coletado.

Nesta primeira fase da investigação pericial iniciam-se todos os processos inves-tigatórios. Na coleta de todos os vestígios, identificam-se os equipamentos e evidênciascoletadas, visando a utilização de Cadeia de Custódia durante todo o tempo que estasevidências estejam de posse dos peritos. Tudo isso para tentar garantir a transparência doprocesso.

Page 47: Validação de Dados Através de Hashes Criptográficos: Uma

2.2. Perícia Forense 45

A cadeia de custódia é de extrema importância, mas por si não asseguraa qualidade no processamento do vestígio. Para tanto é necessária apadronização dos procedimentos operacionais e a existência de um sistemade aferição da qualidade dos equipamentos utilizados. A padronizaçãode procedimentos determina a forma correta de se realizar um exame epossibilita que eles sejam realizados sempre da mesma forma, ou seja, quepossam ser repetidos por diferentes profissionais e cheguem ao mesmoresultado. Para isso, também é necessária a aferição da qualidade dosequipamentos, que assegura a sua precisão. (SENASP, 2012, p. 74).

Conforme foi citado a utilização de softwares forense, Basto (2012, p. 13-15) citavários exemplos de sistemas operacionais baseados em software livre que reúnem ferramen-tas para se trabalhar com a perícia computacional, como por exemplo: FDTK, BackTrack,CAINE, Santoku, DEFT, BackBox, Helix e REMnux.

Dentre estes podemos destacar o FDTK, que foi desenvolvido por brasileiros e ébaseado no Ubuntu possuindo mais de 100 ferramentas que auxiliam na prática forense.Na página oficial do sistema operacional FDTK (NEUKAMP, 2007) explica que o “FDTK-UbuntuBr, é um projeto livre que objetiva produzir e manter uma distribuição para coletae análise de dados em Perícias de Forense Computacional” e que este projeto foi iniciadodurante um trabalho de graduação.

“O sistema FDTK foi projetado para atender a todas as etapas que compõem ametodologia da perícia forense computacional” (SILVA; OLIVEIRA, 2014, p. 122). Desdeo auxílio na coleta dos dados, cópias de dados, geração de hashes, análises, redação dolaudo, etc.

Exame dos dados

Na segunda fase da perícia forense há uma separação de todo os dados coletados, afim de identificar quais serão realmente úteis na investigação. Pode-se dizer que esta faseda investigação é onde ocorre uma “filtragem” de tudo que foi coletado, afinal o peritovê tudo que foi coletado e ao analisar destaca todos os dados que possam auxiliá-lo nainvestigação, visto que existirão dados que não terão ligação alguma com o fato investigado.Com isso Senasp (2013) listou mais uma vez equipamentos que possam auxiliar no examedos dados.

• Equipamento que permita a realização de duplicação dos dados;• Estação de trabalho pericial (hardware + software) que permita o

processamento/análise dos dados e a elaboração do laudo e seusanexos;

• Mídia de armazenamento computacional com capacidade livresuperior ao da mídia a ser examinada;

• Mídia de armazenamento computacional com capacidade suficientepara armazenamento do resultado do exame.

(SENASP, 2013, p. 87).

Page 48: Validação de Dados Através de Hashes Criptográficos: Uma

46 Capítulo 2. Referencial Teórico

É perceptível vendo os equipamentos indicados pela Senasp que uma preocupaçãodos peritos é fazer uma duplicação dos dados. Esta preocupação é válida pois toda aanálise dos dados é feita em uma cópia bit a bit do que foi coletado. A criação desta cópiafaz-se necessária para não haver alterações, e consequentemente a perca de integridade, doque foi coletado.

Para provar que a cópia analisada pelo perito, de onde ele levantou todas ashipóteses a partir dos indícios observados, é uma cópia idêntica e fiel a evidência originalcoletada, há o cálculo do hash criptográfico. Caso os dados forem exatamente iguais ohashes também serão.

Pereira (2010, p. 3) alerta que “é necessário validar a garantia de integridade dosdados por meio de funções hash”, e portanto é fundamental que isto ocorra antes dequalquer análise. “O perito deve garantir e preservar a integridade dos [dados], pois, casoisso não ocorra, eles poderão ser invalidados como provas perante a justiça”. (PEREIRAet al., 2007, p. 21, adaptado).

Quando a investigação se dá em equipamentos computacionais portáteis é precisoacrescentar mais alguns equipamentos à análise:

• Carregador universal de baterias;

• Ferramentas forenses contendo programas, cabos e dispositivosque permitam a realização da extração dos dados do equipamentocomputacional portátil;

• Sala protegida contra sinais de telefonia, equipamento bloqueadorde sinais ou invólucro de bloqueio de sinais.

(SENASP, 2013, p. 93).

E na internet a investigação também necessitará de outros equipamentos específicos:

• Equipamento computacional equipado com softwares forenses;

• Conexão dedicada de Internet desvinculada da rede corporativada instituição pública (sem informações cadastrais que indiquema natureza pericial), ou alternativamente, utilização de serviço denavegação anônima (por exemplo, TOR).

(SENASP, 2013, p. 93).

Análise das Informações

A investigação começa a se aprofundar nos dados selecionados tendo como metaidentificar informações relevantes que ajudem na conclusão da investigação. Aqui os dadosvirarão informação. O grande volume de dados coletados e analisados pelo perito começama virar informações para a investigação, como: saber qual o horário de utilização damáquina periciada, quem a utilizou, o que fez o suspeito durante o período que estavacom o equipamento ligado, etc.

Page 49: Validação de Dados Através de Hashes Criptográficos: Uma

2.2. Perícia Forense 47

A analogia que sempre é feita é com um quebra-cabeça. Cada peça é algum dadoque o perito obteve, e nesta fase da investigação o perito tenta ligar os dados que ele obtevedurante a análise do que foi coletado à informações que ele tem. Tenta-se reconstruir osacontecimentos correlacionando as informações ao local da investigação, aos suspeitos eacontecimentos.

Senasp (2013, p. 88) cita que a análise dos dados pode ser classificada em dois tiposem relação ao resultado que espera se obter.

1. Extração direta de arquivos: Busca expor o maior número possível de arquivosque possam ser de interesse na investigação.

2. Elucidação técnico-pericial: Tem uma busca mais focada, provavelmente paravalidar apenas alguma questão levantada sobre o material analisado.

Interpretação dos resultados

Encerramento da investigação se dá com a escrita de um relatório informando asinformações encontradas. O laudo redigido pelo perito tem de detalhar toda a investigação:como foi realizada a coleta, a análise e quais conclusões o perito obteve. Obviamente operito pode anexar ao laudo tudo que ele achar necessário para embasar seu trabalho. Ojuiz julgará este material e poderá incluí-lo num julgamento como prova.

A avaliação interna dos laudos periciais é um item importante paraassegurar sua qualidade, uma vez que é executada por meio de umprocesso de revisão em que os próprios profissionais de perícia repassamo trabalho sistematizado por seus colegas, visando identificar eventuaisincorreções. (SENASP, 2012, p. 80).

O Governo Federal, através de Senasp (2013, p. 90), sugere aos peritos uma estruturabásica para a redação do laudo pericial. Os tópicos que são indicados a aparecer no laudosão:

• Preâmbulo

• Histórico (opcional)

• Objetivo

• Material

• Exame

• Considerações Técnico-Periciais (opcional)

• Conclusão/Resposta aos Quesitos

• Anexos (opcional)

(SENASP, 2013, p. 90).

Page 50: Validação de Dados Através de Hashes Criptográficos: Uma

48 Capítulo 2. Referencial Teórico

De acordo com as etapas apresentadas, podemos resumir as fases da investigaçãoforense conforme a Figura 3 demonstra de forma gráfica como se desenvolve todo o processopericial, desde a coleta das evidências até a escrita do laudo, destacando o quão importantecada fase da investigação é, visto que todas estas fases são uma sequência que depende dopasso anterior, portanto se alguma tarefa não foi executada da maneira correta o resultadofinal será negativamente influenciado.

Figura 3: Fases do processo de investigação forense

Fonte: Figura extraída de Pereira et al. (2007, p. 18).

2.3 Criptografia

2.3.1 Conceitos básicos

Diffie e Hellman (1976) definiram que a criptografia é o estudo de sistemas matemá-ticos para resolver problemas de privacidade e autenticação. Onde a privacidade garanteque não haja acesso não-autorizado de partes da mensagem e a autenticação garante queo usuário só receba mensagens legítimas e nunca de algum invasor.

Katz e Lindell (2014, p. 3–4) cita o quanto a criptografia já evoluiu, e chega atéa classificá-la em dois períodos: clássica e moderna. O divisor desses períodos é o finaldo século XX, que segundo o autor até esta época a criptografia era tratada como umaarte que estudava uma comunicação secreta. Neste período não haviam teorias ou noçõesdo que era seguro, as criações e quebras das cifragem aconteciam com a criatividade ehabilidade pessoal.

Hoje, no período moderno, a criptografia é considerada uma ciência que não buscaapenas o sigilo da comunicação, mas busca autenticação de mensagens, assinaturas digitais,protocolos para a troca de chaves secretas, protocolos de autenticação, etc. Baseadossempre em modelos e padrões que são considerados seguros.

Page 51: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 49

Já que estamos no período denominado de criptografia moderna, período surgidoapós o avanço causado pelo advento da computação, podemos apontar as principaisfuncionalidades da criptografia moderna são garantir através de suas funções criptográficashaver proteção ao sigilo, à integridade além de garantir a autenticidade das mensagenstransmitidas.

Podemos resumir que a proteção do sigilo não permite que o conteúdo da mensagemseja revelado a invasores, apenas os usuários que possuam a correta chave conseguirãovisualizar o purotexto. A proteção da integridade evita que a mensagem seja modificadano seu percurso por algum atacante, esta proteção pode ser alcançada com esquemas deMAC, por exemplo. Enquanto que garantir a autenticidade da mensagem significa afirmarque a mensagem veio do remetente esperado e não de algum outro desconhecido, essagarantia pode ser feita com a criptografia de chave pública, por exemplo.

Segundo Stinson (2006), o objetivo geral da criptografia é permitir que duas pessoasse comuniquem através de um canal inseguro, sem que algum curioso que intercepte asmensagens e entenda o que está sendo transmitido. Em outras palavras, a criptografia nãotem o objetivo de esconder a comunicação, mas mantê-la indecifrável a alguém indesejadoque observe a comunicação.

Para isso Stinson (2006) fornece características necessárias que um esquema cripto-gráfico deve possuir:

Um criptossistema é uma quíntupla (P, C, K, E , D), onde as condiçõesa seguir são satisfeitas:

1. P é um conjunto finito de possíveis purotextos;2. C é um conjunto finito de possíveis cifrotextos;3. K é um conjunto finito de possíveis chaves;4. Para cada k ∈ K, temos uma regra de encriptação Enck ∈ E e uma

correspondente regra de decriptação Deck ∈ D. Onde cada Enck :P → C e Deck : C → P são funções tais que Deck(Enck(p)) = ppara todo purotexto p ∈ P.

(STINSON, 2006, p. 1, tradução nossa).

Com base em Queiroz e Oliveira (2013) podemos traduzir os termos “plaintext” e“ciphertext” criando neologismos com o propósito de tornar explícito o significado deles.“Plaintext” pode ser traduzido para “purotexto”; já que ele representa o texto original aser encriptado, a verdadeira mensagem. Enquanto que “ciphertext” pode ser traduzidopara “cifrotexto”; já que representa a encriptação do texto original, ou seja, a mensagemque será transmitida.

Katz e Lindell (2014, p. 4–7) sugerem a divisão da criptografia em dois grupos,destingindo-os quanto a forma de utilização das chaves: o esquema de encriptação de chaveprivada e o esquema de encriptação de chave pública. No esquema de encriptação de chaveprivada é composto por:

Page 52: Validação de Dados Através de Hashes Criptográficos: Uma

50 Capítulo 2. Referencial Teórico

1. Ger – Um algoritmo probabilístico para geração de chaves (k);

2. Enc – Um algoritmo de encriptação que tome como entrada a chave k e o purotextom, produzindo um cifrotexto c. Enck(m) = c.

3. Dec – Um algoritmo de decriptação que tome como entrada a chave k e o cifrotextoc, retornando o purotexto m. Deck(c) = m.

Já na criptografia de chave pública Katz e Lindell (2014, p. 378–379) definemque é uma tupla de algoritmos probabilísticos de tempo polinomial (Ger; Enc; Dec) quesatisfazem o seguinte:

1. Ger - Um algoritmo que toma como entrada um parâmetro de segurança 1n e geraum par de chaves (pk; sk). Referimo-nos a primeira delas como a chave pública ea segunda como a chave privada. Nós supomos, por conveniência, que pk e sk temcada uma o comprimento n, pelo menos, e que n pode ser determinado a partir depk, sk.

2. Enc - Um algoritmo que toma como entrada a chave pública pk e uma mensagem m

de algum espaço de purotexto subjacente (que pode depender de pk). Ele produzum cifrotexto c, e nós escrevemos isso como c← Encpk(m).

3. Dec - Um algoritmo que toma como entrada uma chave privada sk e um cifrotextoc, e emite uma mensagem m ou um símbolo especial ⊥ denotando falha. Nósassumimos, sem perda de generalidade que Dec é determinístico, e escrevemos issocomo m := Decsk(c).

Nós exigimos que para cada n e cada par de chaves (pk; sk) gerado por Ger(1n), ecada mensagem m no apropriado espaço subjacente de purotexto, garanta que a igualdadeDecsk(Encpk(m)) = m seja satisfeita.

Portanto a principal diferença entre o esquema de criptografia de chave pública parao de chave privada é que o esquema de chave pública usa diferentes chaves para encriptare decriptar mensagens, enquanto que o esquema de chave privada utiliza a mesma chavepara ambos. Este conceito de ter uma chave pública e outra chave privada fez com que aideia de assinatura digital fosse concebida, já que um indivíduo pode criar sua assinaturacom sua chave privada e qualquer outro possa verificar sua legitimidade com a chavepública desta assinatura.

Os trabalhos de Stinson (2006) e Katz e Lindell (2014) tem, obviamente, grandeligações. Visto que cada algoritmo citado por Katz e Lindell trabalham dentro dos conjuntoscitados por Stinson. Por exemplo, o algoritmo Ger gerará chaves que pertencem ao conjuntoK. Estes dois conceitos completam-se.

Page 53: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 51

Outro conceito interessante acerca da criptografia é uma boa analogia de como asegurança pode ser explicada, feita por Schneier (1996):

Se eu pego uma carta, tranco-a em um cofre, escondo o cofre em algumlugar de Nova York, e então lhe digo para ler a carta, isso não é segurança.Isso é obscuridade. Por outro lado, se eu pego uma carta e a tranco em umcofre, e então lhe entrego o cofre juntamente com as especificações do seuprojeto e uma centena de cofres idênticos com suas combinações, de modoque você e os melhores arrombadores de cofre do mundo possam estudaro mecanismo da fechadura - e você ainda assim não pode abrir o cofree ler a carta - isso é segurança. (SCHNEIER, 1996 apud MARCACINI,2010, p. 46).

Esta analogia de Schneier (1996) resume bem como a criptografia é planejada como propósito de desenvolver soluções. É considerado que o canal que as mensagens fluemé inseguro e o adversário pode interceptar mensagens. Mas o trabalho da criptografia éque mesmo que o invasor tenha total acesso aos pacotes de mensagem ele não consiga-osdecifrar.

Kerckhoffs (1883) citou em seu trabalho alguns princípios, conhecidos por Princípiosde Kerckoffs, que elencam algumas características de um esquema criptográfico seguro. Oautor destaca que

1. O sistema deve ser fisicamente, se não matematicamente indecifrá-vel;

2. Não deve existir segredo do sistema em si, pois ele pode convenien-temente cair nas mãos do inimigo;

3. A chave deve ser comunicada, mantida e alterada a critério dosinterlocutores sem a ajuda de notas escritas;

4. Deve ser aplicável a correspondência telegráfica;5. Deve ser portátil, seu uso e sua operação não exige a ajuda de

várias pessoas;6. Por último, é necessário, dadas as circunstâncias do seu uso, o

sistema deve ser fácil de usar, sem requer o conhecimento de umalonga série de regras a serem observadas.

(KERCKHOFFS, 1883, p. 12, tradução nossa).

Resumindo esses passos de Kerckhoffs podemos destacar os três primeiros, ondeo autor diz basicamente que o esquema de criptografia (encriptar e decriptar) deve ser“público”, ou seja, que deve ser considerado a hipótese que o inimigo conheça-o, através deespionagem, ou tenha-o descoberto através de engenharia reversa, por exemplo. E mesmoque o inimigo saiba como funciona o esquema criptográfico usado, este esquema deve serindecifrável.

Kerckhoffs reforça que não se devem ser reveladas as chaves utilizadas na cifragemda mensagem. Pois além de ser mais fácil de guardar o sigilo da chave, do que guardar detodo o esquema criptográfico, você pode alterar a chave facilmente quando desejar entreas partes comunicantes.

Page 54: Validação de Dados Através de Hashes Criptográficos: Uma

52 Capítulo 2. Referencial Teórico

2.3.1.1 Tipos de ataque

Tentativas de quebrar a segurança de algoritmos criptográficos sempre hão deexistir, e assim como a criação destes algoritmos necessitaram de estudos, os ataquestambém necessitarão serem planejados. Lista-se a seguir alguns tipos de ataques, masantes precisa-se esclarecer alguns pontos.

“Um adversário é um algoritmo probabilístico, construído por um criptoanalista,com o intuito de extrair alguma informação útil para os seus propósitos. Informalmente,dizemos que um ataque a um criptossistema é uma ofensiva aplicada por um adversário.”(GOYA, 2006, p. 26).

Toda esta preocupação com a qualidade do algoritmo de encriptação é válida devidoaos ataques que podem ser sofridos. A seguir veremos os ataques mais comuns, organizadossegundo Katz e Lindell (2014, p. 19–20) por ordem de gravidade:

• Ciphertext-only attack [Ataque de cifrotexto-somente]:Este é o tipo mais básico de ataque e refere-se ao cenário ondeo adversário apenas observa um cifrotexto e tenta determinar opurotexto que foi encriptado.

• Known-plaintext attack [Ataque de purotexto-conhecido]:Aqui o adversário aprende um ou mais pares de purotexto/cifrotextoencriptados sob a mesma chave. O objetivo do adversário é determi-nar o purotexto que foi encriptado para dar algum outro cifrotexto(para o qual ele não sabe o purotexto correspondente).

• Chosen-plaintext attack [Ataque de purotexto-escolhido]:Neste ataque, o adversário tem a capacidade de obter o cifrotexto dequalquer purotexto a sua escolha. Em seguida, ele tenta determinaro purotexto que foi encriptado para dar algum outro cifrotexto.

• Chosen-ciphertext attack [Ataque de cifrotexto-escolhido]:O último tipo de ataque é aquele em que o adversário além de sercapaz de obter decriptação de qualquer cifrotexto a sua escolha,consegue outras informações sobre tal decriptação, por exemplo,se a decriptografia de algum cifrotexto gera uma mensagem emum idioma conhecido. O objetivo do adversário, mais uma vez, éentão determinar o purotexto que foi encriptado para dar algumoutro cifrotexto (cuja decriptação o adversário é incapaz de obterdiretamente).

Nota-se que os dois primeiros tipos de ataques são passivos, pois oadversário apenas recebe algumas mensagens cifradas (e possivelmentealguns textos originais correspondentes) e depois de analisa-las lança oseu ataque. Em contraste, os dois últimos tipos de ataques são ativos, jáque o adversário pode adaptavelmente pedir encriptação e/ou decriptaçãoda sua escolha.

Estes ataques citados buscam quebrar a proteção fornecida pela criptografia semusar do Ataque de Força Bruta, que basicamente tenta explorar o espaço de possíveisrespostas por seguidas tentativas de erros até que tenha a resposta correta. Todo ataquetenta reduzir essa probabilidade de erro para facilitar a quebra de segurança do algoritmo.Quando a probabilidade de descobrir qual o purotexto de um cifrotexto for maior que aprobabilidade de descobri-lo ao acaso, a segurança do algoritmo está ameaçada.

Page 55: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 53

É evidente que hajam esquemas de encriptação que são seguros contra estes ata-ques acima citados. Para provar que um esquema de encriptação é seguro, utiliza-seum cenário em que o adversário é imerso num experimento denominado “Experimentoda Indistinguibilidade Adversarial Perfeita” (conceito em português de Perfect Adver-sarial Indistinguishability dado por Queiroz e Oliveira (2013)), também conhecido porIndistinguibilidade de Cifrotextos.

Segundo Katz e Lindell (2014, p. 30–31) no esquema de indistinguibilidade detextos cifrados um adversário A primeiramente define duas mensagens arbitrárias m0

e m1 ∈ M, onde uma delas é escolhida uniforme e aleatoriamente sendo criptografadacom alguma chave aleatória escolhida, o cifrotexto resultante é dado ao adversário A quetentará “adivinhar” a qual mensagem pertence o cifrotexto dado.

Um esquema de criptografia é perfeitamente indistinguível se nenhumadversário A puder ter sucesso com probabilidade melhor do que 1/2.(Note que, para qualquer esquema de criptografia, A pode ter sucesso comprobabilidade 1/2 emitindo um palpite uniforme; o requisito é simples-mente que nenhum atacante pode fazer melhor do que isso.) Ressaltamosque não há limitações a serem colocadas no poder computacional de A.(KATZ; LINDELL, 2014, p. 31, tradução nossa).

Formalmente podemos definir que∏

= (Ger; Enc; Dec) seja algum algoritmo decriptografia com um espaço de mensagensM definimos o experimento de indistinguibilidadedo adversário:

1. O adversário A produz um par de mensagens m0 e m1 ∈M;2. A chave k é gerada usando Ger, e um bit b ∈ {0, 1} é uniformemente

escolhido. O cifrotexto c ← Enck(mb) é computado e dado a A.Podemos chamar o cifrotexto c como “cifrotexto desafio”;

3. A dá como saída um bit b′;4. A saída do experimento é definida por “1” se b′ = b, e “0” caso

contrário. Escrevemos PrivKeavA,

∏ = 1 se a saída do experimento é“1” e neste caso podemos dizer que A foi bem sucedido.

Como observado anteriormente, é trivial para A para ter sucesso comprobabilidade 1/2 emitindo um palpite aleatório. Indistinguibilidade per-feita requer que é impossível para qualquer A fazer melhor. (KATZ;LINDELL, 2014, p. 31).

Obviamente existem esquemas criptográficos que garantem a integridade da mensa-gem, são os MAC. “O objetivo de um MAC é impedir que um adversário modifique umamensagem enviada de um remetente a um destinatário, ou insira uma nova mensagem,sem que o receptor detecte que a mensagem não se originou do remetente pretendido”.(KATZ; LINDELL, 2014, p. 110, tradução nossa).

Existem também ataques para as funções hash, que tem por meta encontrarvulnerabilidades destas funções. Hawkes, Paddon e Rose (2004, p. 1–2) listam alguns tiposde ataques existentes para algoritmos hash:

Page 56: Validação de Dados Através de Hashes Criptográficos: Uma

54 Capítulo 2. Referencial Teórico

1. Ataque de ColisãoNeste tipo de ataque o adversário encontra duas ou mais entradas diferentes queresultam num mesmo hash. Ou seja, M1 6= M2 → H(M). Uma função hash resiste aum ataque deste tipo se a complexidade do ataque for 2n

2 , onde n é o tamanho desaída em bits.

Dada uma função H(), diz-se que há colisão se existe um par delegíveis x1, x2, com x1 6= x2, que acarreta H(x1) = H(x2). Deseja-se que H() seja de tal forma que a probabilidade de ocorreremcolisões seja mínima. Sendo assim, o valor H(x) é um representantede x no sentido de que, se y ≈ x (isto é, y difere de x em poucos bits),então a desigualdade H(y) 6= H(x) ocorre com alta probabilidade.(GOYA, 2006, p. 40).

2. Ataque de primeira pré-imagemO adversário escolhe uma saída y = H(M) e tenta encontrar uma mensagem deentrada M que satisfaça o algoritmo. A função hash é segura desde de que o ataquetenha complexidade de 2n.

3. Ataque de segunda pré-imagemO adversário escolhe uma mensagem de entrada M e busca outra mensagem quesatisfaça H(M1) = H(M2). A função hash resiste ao ataque se sua complexidade forigual a 2n.

Os ataques para funções hash trabalham basicamente em encontrar duas entradasdiferentes que coincidam em possuir o mesmo hash, e o que difere os ataques citados é atécnica e lógica utilizados para ter êxito em encontrar essa colisão de hashes.

2.3.1.2 Sigilo perfeito

Stinson (2006, p. 48–49) pede que suponhamos um sistema de encriptação seme-lhante ao descrito por ele anteriormente, um sistema (P , C, K, E , D), onde a chave secretaK ∈ K é usada apenas uma única vez para encriptar. Suponhamos que exista também umadistribuição de probabilidade no espaço de purotexto, P . Assim o elemento de purotextodefine uma variável aleatória, denotada por x. Nós denotamos a priori a probabilidade deque o purotexto x ocorra por Pr[x=x].

Assumimos também que a chave K é escolhida por dois usuários usando algumadistribuição de probabilidade fixa (muitas vezes uma chave é escolhida ao acaso, por issotodas as chaves serão equiprováveis, mas esta necessidade não é o caso). Portanto a chavetambém define uma variável aleatória, que denotamos por K. Denote a probabilidade deque a chave K é escolhida pelo Pr[K=K].

Page 57: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 55

Lembre-se que a chave é escolhida antes do remetente saber qual purotexto seráenviado. Por isso, fazemos a suposição razoável que a chave e o purotexto são variáveisaleatórias independentes.

As duas distribuições de probabilidade de P e K induzem uma distribuição deprobabilidade em C. Assim, também podemos considerar o elemento de cifrotexto ser umavariável aleatória, digamos y. Não é difícil calcular a probabilidade Pr[y = y] onde y é otexto cifrado, que é transmitido. Para uma chave K ∈ K, definir

C(K) = {eK(x) : x ∈ P} .

Ou seja, C(K) representa o conjunto de possíveis cifrotextos se K for a chave.Então, para cada y ∈ C, temos que

Pr[y = y] =∑

{K:y∈C(K)}

Pr[K = K]Pr[x = dK(y)].

Observamos, também que, para qualquer y ∈ C e x ∈ P, podemos calcular aprobabilidade condicional Pr[y=y | x=x] (ou seja, a probabilidade de que y é o cifrotexto,dado que x é o purotexto) para ser

Pr[y = y | x = x] =∑

{K:x=dK(y)}

Pr[K = K].

E agora é possível calcular a probabilidade condicional Pr[x=x | y=y] (ou seja, aprobabilidade de que x é o purotexto, dado que y é o cifrotexto) usando o teorema deBayes. A seguinte fórmula é obtida:

Pr[x = x | y = y] =Pr[x = x]

∑{K:x=dK(y)}

Pr[K = K]∑{K:y∈C(K)}

Pr[K = K]Pr[x = dK(y)] .

Em suma, um criptossistema possui sigilo perfeito quando o conhecimento de umcifrotexto não dá ao adversário vantagem para descobrir o purotexto que o originou, ouseja, o adversário tem probabilidade de descobrir o puro texto semelhante a tentativa deadivinhar o purotexto ao acaso, ou seja, probabilidade semelhante a um Ataque de ForçaBruta.

Uma limitação do sigilo perfeito é que o número de chaves deve ser igual ao númerode purotextos, se os purotextos tiverem tamanho fixo implicará em chaves do mesmotamanho deles. Além do mais, para cada nova mensagem a ser encriptada uma nova chavetem que ser sorteada para a aplicação da função de encriptação.

Page 58: Validação de Dados Através de Hashes Criptográficos: Uma

56 Capítulo 2. Referencial Teórico

2.3.1.3 MAC

Conforme foi citado anteriormente, o Código de Autenticação de Mensagem (MAC)é um esquema criptográfico que visa garantir a integridade das mensagens, enviando juntoa cada cifrotexto gerado uma tag a ser validada pelo destinatário. Segundo Katz e Lindell(2014, p. 110–111) e Queiroz e Oliveira (2013) um MAC é composto por uma tripla dealgoritmos com tempo polinomial probabilístico (Ger, Mac, Vrf) de maneira que podemosdefini-los assim:

1. Ger – O algoritmo de geração de chaves tem como entrada um parâmetro de segurança1n e gera uma chave k uniformemente distribuída de tamanho n; sendo definido pork ← Ger(1n).

2. Mac – O algoritmo de geração de etiqueta tem como entrada a chave k ∈ {0, 1}∗

e uma mensagem m ∈ {0, 1}∗, produzindo uma etiqueta t ∈ {0, 1}∗. Como essealgoritmo pode ser aleatorizado podemos simplificá-lo em r ← Mack(m).

3. Vrf – O algoritmo de verificação toma como entrada a chave k, a mensagem m e aetiqueta t, retornando como saída um bit b ∈ {0, 1}∗ onde b = 1 significa válida eb = 0 inválida. Como Vrf é determinístico então b := VrFk(m, t).

Dois usuários que desejam se comunicar de forma autenticada começamgerando e compartilhando uma chave secreta k antes da sua comunicação.Quando algum deles deseja enviar uma mensagem m para o outro, elecalcula uma etiqueta MAC (ou apenas tag) t com base na mensagem ena chave partilhada, e envia a mensagem m e etiqueta t para o outrousuário. [. . . ] Ao receber (m, t), o receptor verifica se t é uma etiquetaválida na mensagem m (com respeito a chave partilhada) ou não. (KATZ;LINDELL, 2014, p. 109–110, tradução nossa).

Katz e Lindell (2014, p. 112) destacam que os esquemas MAC também podemser seguros a um ataque de forjação. Primeiramente podemos definir que num ataque deforjação um atacante, após observar várias trocas de cifrotextos e etiquetas MAC, tentainfluenciar as mensagens trocadas de dois comunicantes num canal. O “adversário solicitaetiquetas MAC para quaisquer mensagens de sua escolha”. (KATZ; LINDELL, 2014, p. 112,tradução nossa).

Formalmente podemos dizer que um adversário tem acesso a algum oráculo Mack(·)onde ele pode repetidamente enviar alguma mensagem m a este oráculo e obter comoresposta uma tag t← Mack(m). Nós consideramos que o adversário conseguiu “quebrar”o esquema se esta etiqueta t for válida sobre a mensagem m de modo que Vrfk(m, t) = 1 eque o adversário não tenha solicitado previamente uma etiqueta MAC sobre a mensagemdo oráculo.

Page 59: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 57

Um MAC∏

= (Ger,Mac,Vrf) é existencialmente inforjável sobre umataque de mensagem-escolhida adaptativa ou simplesmente seguro separa todo adversário de tempo-polinomial probabilístico A existe umafunção desprezível Despr tal que Pr

[ForjaMacA,

∏(n) = 1]≤ Despr(n).

(KATZ; LINDELL, 2014, p. 113, traduzido por Queiroz e Oliveira (2013)).

Com este conceito básico do esquema MAC surgiram algumas variações que tambémbuscam validar a integridade das mensagens transmitidas, são os caso do HMAC e NMAC,que trabalham um pouco diferente do conceito original do MAC.

2.3.1.3.1 HMAC e NMAC

Tilborg e Jajodia (2011, p. 559) descrevem que o HMAC foi criado por Bellare,Canetti e Krawczyk (1996) e é um algoritmo MAC calculado por duas chamadas a umafunção hash; cada chamada tem uma chave secreta de um algoritmo MAC como parte dosdados de entrada.

O HMAC utiliza como base funções hash h que processam entradas de tamanhon bits. A chave K do algoritmo MAC é preenchida com zeros até o tamanho de n bitspara ser calculada com as strings opad (valor hexadecimal “0x36” repetido até o tamanhon bits) e ipad (valor hexadecimal “0x5C” repetido até o tamanho n bits). A operação doHMAC é dada por: HMACK(m) = h((K ⊕ opad) ‖ h((K ⊕ ipad) ‖ m)).

Como o HMAC trabalha com outras funções hash, como MD5 e SHA-1 por exemplo,tendo como vantagem a possibilidade de ser implementado sem fazer qualquer modificaçãono código da função de hash utilizada.

Outra variação conhecida, porém pouco utilizada, do HMAC é o NMAC, quetrabalha de forma bastante semelhante. A mudança em relação ao HMAC é que ao invésde utilizar um valor de iniciação acaba utilizando uma chave secreta.

NMACK1‖K2(x) = hK2(hK1(x))

Segundo Katz e Lindell (2014, p. 164) um NMAC tem como construção básica:

1. Ger(1n) – O algoritmo de geração de chaves tem como entrada um parâmetro desegurança 1n e gera um s após rodar a geração de chave para as funções hashes,além de escolher k1, k2 ← {0, 1}n.

2. Mack(m) – O algoritmo recebe como entrada (s, k1, k2) e um x ∈ {0, 1}∗, calculandoNMACs

k1,k2(x) = hsk1

(Hsk2

(x)).

3. Vrfk(m, t) – A verificação retorna o valor de verdadeiro se e somente se t = Mack(m).

Page 60: Validação de Dados Através de Hashes Criptográficos: Uma

58 Capítulo 2. Referencial Teórico

No entanto os algoritmos MAC, HMAC e NMAC não são os únicos a garantir aautenticação das mensagens, temos alguns outros exemplos que são descritos por Tilborge Jajodia (2011, p. 742–743):

Podemos distinguir entres três mecanismos para autenticação de informa-ção: algoritmos MAC, códigos de autenticação e assinaturas digitais. Osdois primeiros mecanismos são baseados em uma chave secreta comparti-lhada entre o remetente e o destinatário. Isto significa que se o remetenteautentica a mensagem com um algoritmo MAC ou um código de auten-ticação e mais tarde o nega, não há nenhuma maneira de provar quea mensagem foi autenticada (como o destinatário poderia ter feito issotambém). Em termos técnicos, algoritmos MAC e códigos de autenticaçãonão garantem o não-repúdio da origem. Algoritmos MAC são computaci-onalmente seguros: uma condição necessária (mas não suficiente) paraa sua segurança é que o poder de computação do adversário é limitado.Códigos de autenticação são objetos combinatórios; podendo calcular aprobabilidade de sucesso de um ataque exatamente; esta probabilidadeé independente do poder de computação do adversário. As assinaturasdigitais, introduzidas por Diffie e Hellman (1976), nos permitem estabe-lecer de forma irrefutável a origem e o conteúdo da informação digital.Como usam uma técnica de criptografia assimétrica, eles podem resolveras disputas entre as partes que se comunicam. (TILBORG; JAJODIA,2011, p. 742–743, tradução nossa).

Estes mecanismos de autenticação pode ser divididos em três grupos: os que utilizamuma chave secreta (criptografia simétrica, que utiliza uma chave secreta tanto para encriptarquanto para decriptar a mensagem); os que utilizam uma chave pública (criptografiaassimétrica, que utiliza diferentes chaves para encriptar e decriptar a mensagem) e; oshíbridos que são uma mescla dos outros dois grupos.

Nos esquemas acima citados de assinatura digital podemos citá-los, por exemplo,como sendo de criptografia assimétrica. Na Tabela 3 vemos alguns outros exemplos dealgoritmos validadores e suas classificações quanto a utilização de chave. É possível observarnos algoritmos híbridos a existência de vários protocolos que envolvem transmissão dedados.

Tabela 3: Algoritmos simétricos, assimétricos, híbridos ehashes

Simétrico Assimétrico Híbridos HashDES RC6 ECC IPSec MD53DES CAST-256 Diffie-Hellman TLS RIPEMD-160IDEA AES El Gamal S/MIME TigerTwofish RSA SET SHA-256

Fonte: Tabela desenvolvida pelo autor baseado em Oliveira (2012a, p. 11–15) e Oliveira (2012b, p. 21–24).

Page 61: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 59

2.3.1.4 Assinatura Digital

A assinatura digital, apesar de validar mensagens como o MAC, se diferencia dosesquemas MAC por utilizar duas chaves na sua aplicação: uma chave privada do remetente,onde ele a utiliza para criptografar a mensagem; e uma chave pública onde qualquerpessoa que a possua pode reconhecer a mensagem. Enquanto que o algoritmo MAC utilizauma etiqueta que é enviada junto a mensagem cifrada, onde esta etiqueta é validada pelodestinatário para saber se a mensagem não foi adulterada.

Esquemas de assinatura digital são técnicas para garantir o reconheci-mento de uma entidade de ter visto uma determinada mensagem digital.Normalmente, uma entidade tem uma chave privada e uma correspon-dente chave pública que está ligada ao nome da entidade (infraestruturade chave pública). A entidade gera uma string chamada assinatura, quedepende da mensagem para assinar e de sua chave privada. (TILBORG;JAJODIA, 2011, p. 343–344, tradução nossa).

Os algoritmos de assinatura digital seguem portanto o esquema de criptografia dechave pública, esquema este já citado neste trabalho (KATZ; LINDELL, 2014, p. 378–379),só que com algumas mudanças. A assinatura digital funciona de forma inversa ao algoritmode chave assimétrica, aqui é utiliza a chave privada para encriptar e deixa a chave públicalivre para qualquer pessoa possa validar tal assinatura.

No caso da assinatura digital há uma inversão na utilização das chaves, já que nadescrição da criptografia assimétrica a chave utilizada para encriptar é a chave pública.Esta mudança de encriptar com a chave privada e validar com a chave pública foi necessáriapara que houvesse a garantia de que somente o legítimo remetente portador da chaveprivada estaria enviando tal mensagem.

Com a utilização da chave pública na decriptação, o remetente pode se comunicarcom vários destinatários distintos sem que haja uma chave específica a cada um deles.Qualquer pessoa que mantiver a chave pública correta conseguirá validar as mensagensdo remetente. Portanto podemos definir, baseado em Katz e Lindell (2014, p. 442), que oesquema de assinaturas é composto de três algoritmos de tempo polinomial probabilístico,citados abaixo:

1. O algoritmo de geração de chaves Ger toma como entrada um parâmetro de segurança1n e tem como saída um par de chaves (pk, sk) onde cada uma tem um comprimentode pelo menos n. Estas chaves são chamadas de chave pública e chave privada,respectivamente.

2. O algoritmo de assinatura Sign toma como entrada a chave privada sk e o purotextom retornando como saída a assinatura σ ← Signsk(m).

Page 62: Validação de Dados Através de Hashes Criptográficos: Uma

60 Capítulo 2. Referencial Teórico

3. O algoritmo determinístico de verificação Vrf que tem como entrada a chave públicapk, a mensagem m e a assinatura σ. A saída deste algoritmo é um bit b, onde b = 1significa que a assinatura é válida, e b = 0 caso seja inválida. Este algoritmo é dadopor b := Vrfpk(m,σ).

Existe, conforme descreve Katz e Lindell (2014, p. 379), uma fragilidade que pode serexplorada no criptografia de chave pública: o esquema de indistinguibilidade de espionagem,onde um atacante com a chave pública tenta encontrar o purotexto que originou um dadocifrotexto.

Formalmente num experimento PubKeavA,

∏(n) de indistinguibilidade de espionagemum adversário A escolhe uma chave pública pk e recebe de par de mensagens m0,m1 ∈Mambas de mesmo tamanho, e um cifrotexto desafio c também de mesmo tamanho. Caso oatacante consiga associar corretamente o cifrotexto c ao respectivo purotexto m dizemosque A foi bem sucedido em seu ataque.

O esquema de criptografia de chaves públicas∏

= (Ger,Enc,Dec) é indistinguívelcriptograficamente na presença de um intruso se para todos adversários A existe umafunção desprezível tal que negl:

Pr[PubKeav

A,∏(n) = 1

]≥ 1/2 + negl(n).

2.3.1.5 Hash Criptográfico

Uma função hash, também conhecida por função resumo, soma hash ou checksums,trabalha recebendo uma entrada de tamanho variável e retornando uma sequência detamanho fixo de caracteres hexadecimais. Com essa característica de retornar uma sequênciade caracteres hexadecimais de tamanho fixo, independentemente do tamanho de sua entrada,os hashes acabam sendo utilizados como validadores de integridade. Caso a entrada sejaalterada em um bit, o valor hash sofrerá mudanças apontando a alteração.

Uma função hash criptográfica pode fornecer uma garantia de integridadedos dados. Uma função hash é utilizada para construir uma pequena“impressão digital” de alguns dos dados; se os dados forem alterados,a impressão digital não será mais válida. Mesmo que os dados sejamarmazenados em um lugar inseguro, a sua integridade pode ser verificadaao longo do tempo por uma nova computação da impressão digital everificar se a impressão digital não mudou.

Seja h uma função hash e deixe x ser alguns dados. Como exemploilustrativo, x pode ser uma cadeia binária de comprimento arbitrário.A impressão digital correspondente é definida como sendo y = h(x).Esta impressão digital é muitas vezes referida como um resumo demensagem. O resumo da mensagem seria tipicamente uma cadeia bináriarelativamente curto; 160 bits é uma escolha comum. (STINSON, 2006,p. 119, tradução nossa).

Page 63: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 61

Roy (2014, p. 6) explica que os algoritmos hashes mais comuns usados na períciaforense digital são o MD5 e o SHA-1. Segundo o autor a alta utilização destes algoritmosse deve a fácil compreensão do funcionamento deles e por possuir um valor hash suficiente-mente grande que mitigue a probabilidade de colisão, além de serem relativamente rápidosde calcular.

Consequentemente, os valores de hash fornecem um poderoso e signi-ficativo meio para autenticar provas eletrônicas. Se os tribunais irãoautenticar evidências físicas que podem ter defeitos na Cadeia de Cus-tódia, certamente os valores hash com um maior grau de confiabilidadepodem ser admitidos [. . . ]. (CARROLL; KROTOSKI, 2014, p. 79, tradu-ção nossa).

Graças a elevada utilização e sua importância em julgamentos que envolvam provasdigitais por exemplo, é necessário que não existam dúvidas quanto a segurança do hashes.A qualidade do hash utilizado é tão importante quanto a qualidade do trabalho pericial.

Os hashes, como foi citado anteriormente, podem ser alvos de ataques. Geralmenteestes ataques hash sempre buscam encontrar alguma colisão de diferentes entradas queresultem num mesmo hash de saída. Porém, analisando a segurança deste tipo de algoritmoe analisando a correspondência que um hash pode ter com uma suposta entrada, podemosafirmar que

[. . . ] os valores de hash geralmente tem uma probabilidade de 99,99% deconfirmar uma correspondência. [. . . ] Além disso, há uma probabilidadeextremamente improvável de haver colisão (pelo menos 1 em 340 undeci-lhões7 para um hash MD5, e ainda mais remoto para um hash SHA-1).[. . . ] O júri é frequentemente autorizado a considerar as evidências apesarquestões levantadas sobre falhas ou defeitos de autenticação ou de cadeiade custódia. No final, o júri determina o peso final dado à evidência.(CARROLL; KROTOSKI, 2014, p. 79, tradução nossa).

Apesar de ser difícil encontrar e explorar colisões em algoritmos, não quer dizer quetais colisões nos algoritmos MD5 e SHA-1 sejam impossíveis ou inexistentes. Conformefoi visto nos trabalhos de Wang et al. (2004) e Wang e Yu (2005) existem falhas no MD5que acabaram sendo apontas nestes trabalhos, enquanto que nos trabalhos de Rijmen eOswald (2005) e Wang, Yin e Yu (2005) houve um detalhamento de vulnerabilidades nasprimeiras versões do SHA.

Na Tabela 4 desenvolvida pelo Prof. Barreto, podemos ver vários exemplos de funçõeshashes com breves detalhes. Além de trazer detalhes resumidos de seu funcionamento, trazinformações básicas como o ano em que foi criado tal algoritmo e quem o desenvolveu, alémde trazer a situação quanto a segurança de cada hash, sendo esta situação representadapelos seguintes símbolos:7 Um undecilhão equivale a 1036.

Page 64: Validação de Dados Através de Hashes Criptográficos: Uma

62 Capítulo 2. Referencial Teórico

Significa que esta função não é mais segura, visto que já foi realizado com sucessoalgum ataque. Um exemplo de ataque bem sucedido é o encontro de alguma colisão.

Alerta que tal algoritmo foi quebrado teoricamente, ou seja, há alguma publicaçãoque quebra o algoritmo mais rapidamente que um Ataque a Força Bruta ou seguindoo Paradoxo do Aniversário8.

Demonstra que já houve análise da função de hash, ou de uma forma reduzida dela,e não foi encontrada ainda qualquer fraqueza no algoritmo como um todo.

Por fim este símbolo anuncia que não há informações sobre a complexidade desegurança do algoritmo.

8 O Paradoxo do Aniversário afirma que num grupo escolhido aleatoriamente de 23 pessoas ou mais, aprobabilidade de duas pessoas terem a mesma data de aniversário é superior a 50%. Para 57 pessoasou mais, a probabilidade é maior do que 99%. Sendo P (n) a probabilidade de ter datas diferentes, aprobabilidade de mesma data é dada por P (n) = 1− P (n).

P (n) = 1 ·(

1− 1365

)·(

1− 2365

). . .

(1− n− 1

365

)= 365 · 364 . . . (365− n+ 1)

365n= 365!

365n(365− n)!

Page 65: Validação de Dados Através de Hashes Criptográficos: Uma

2.3.Criptografia

63

Tabela 4: Funções hash: estado da arte

Função Autor(es) Publicação Tamanhodo bloco

Rodadas Tamanho do hash

AR ISO 1992 ? ? ?Boognish Daemen 1992 32 N/A >160Cellhash Daemen, Govaerts, Vandewalle 1991 32 N/A >256

FFT-Hash I Schnorr 1991 128 2 128FFT-Hash II Schnorr 1992 128 2 128

FSB Augot, Finiasz, Sendrier 2005 336, 680, 1360 N/A 320, 400, 480

GOST R 34.11-94Government Committee of

Russia for Standards1990 256 N/A 256

HAS-160Telecommunications

Technology Association2005 512 4x20 160

HAVAL Zheng, Pieprzyk, Seberry 1994 1024 3x32, 4x32, 5x32 128, 160, 192, 224, 256

LASH-nBentahar, Page, Saarinen,

Silverman, Smart2006 4xn N/A n

MAA ISO 1988 32 N/A 32

MAELSTROM-0Gazzoni Filho, Barreto,

Rijmen2006 1024 10 >512

MD2 Rivest 1989 512 18 128MD4 Rivest 1990 512 3x16 128MD5 Rivest 1992 512 4x16 128

N-Hash Miyaguchi, Ohta, Iwata 1990 128 ≤ 8 128Continua na próxima página...

Page 66: Validação de Dados Através de Hashes Criptográficos: Uma

64Capítulo

2.ReferencialTeórico

Continuação da Tabela 4

Função Autor(es) Publicação Tamanhodo bloco

Rodadas Tamanho do hash

PANAMA Daemen, Clapp 1998 256 N/A ilimitadoParallel FFT-Hash Schnorr, Vaudenay 1993 128 5 128

RADIOGATÚN[w]Bertoni, Daemen, Peeters, van

Assche2006 3xw N/A ilimitado

RIPEMD The RIPE Consortium 1990 512 4x16 128RIPEMD-128 Dobbertin, Bosselaers, Preneel 1996 512 4x16 128RIPEMD-160 Dobbertin, Bosselaers, Preneel 1996 512 5x16 160

SHA-0 NIST/NSA 1991 512 4x20 160SHA-1 NIST/NSA 1993 512 4x20 160

SHA-1-IME Jutla, Patthak 2005 512 80 160SHA-224 NIST/NSA 2004 512 64 224SHA-256 NIST/NSA 2000 512 64 256SHA-384 NIST/NSA 2000 1024 80 384SHA-512 NIST/NSA 2000 1024 80 512SMASH Knudsen 2005 256 N/A 256Snefru-n Merkle 1990 512-n ≤ 8 n

StepRightUp Daemen 1995 256 N/A 256Subhash Daemen 1992 32 N/A >256Tiger Anderson, Biham 1996 512 3x8 192

WHIRLPOOL Barreto, Rijmen 2000 512 10 512Fonte: Adaptado de Barreto (2008, tradução nossa).

Page 67: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 65

2.3.2 MD5

O algoritmo MD5 faz parte de uma sequência de algoritmos criados por RonaldRivest, que também foi responsável pela criação de outros algoritmos famosos, como porexemplo o RSA. O algoritmo antecessor ao MD5 foi o MD4, onde ambos funcionam deforma muito parecida, visto que possuem um design semelhante sendo que o MD5 é umaversão melhorada de seu antecessor.

2.3.2.1 Evolução do MD4

O MD4 foi projetado para trabalhar em arquiteturas de 32 bits e segundo Rivest(1991, p. 304-305) os objetivos do MD4 são:

• Ser computacionalmente inviável de achar uma colisão de hashes (duas mensagenscom o mesmo valor resultante de hash), além de sua complexidade não ser baseadasomente na dificuldade de fatoração;

• O MD4 ser adequado para implementações de software de alta velocidade, sendobaseado em um simples conjunto de manipulações de bits;

• O algoritmo deve ser simples e compacto, facilitando sua implementação no pontode vista da engenharia;

• Ser otimizado para arquitetura de microprocessadores (especialmente os da Intel),e em computadores maiores e mais rápidos podendo executar quaisquer traduçõesnecessárias.

No algoritmo MD4 a string de entrada deve ser de comprimento igual ou múltiploa 512 bits originando um hash de saída de 128 bits. Caso o texto de entrada não seja detamanho 512 bits ou um múltiplo dele, o algoritmo insere o bit “1” e uma sequência debits “0”

As grandes diferenças entre o MD4 e o MD5 segundo Valadares (2006, p. 44) são:

a) Uma quarta fase foi adicionada no MD5, mas no MD4 existem apenastrês;

b) No MD5, cada passo tem uma constante aditiva única t, mas no MD4as constantes são reutilizadas;

c) A função usada na fase II do MD5, G(X,Y, Z) = (X ∧Z)∨ (Y ∧¬Z)é diferente no MD4; ela é descrita como G(X,Y, Z) = ((X ∧ Y ) ∨(X ∧ Z)) ∨ (Y ∧ Z). O objetivo dessa mudança foi deixá-la menossimétrica;

d) Após as fases para cada bloco de bits no MD5, adiciona-se o resultadocom o resultado anterior, promovendo um efeito avalanche mais rápido;

e) A ordem em que blocos de 32 bits Mi no MD4 eram acessados nasfases 2 e 3 foi trocada para diminuir a semelhança entre elas;

f) Os valores do deslocamento s foram otimizados para causar um efeitoavalanche de mais qualidade.

Page 68: Validação de Dados Através de Hashes Criptográficos: Uma

66 Capítulo 2. Referencial Teórico

2.3.2.2 Funcionamento do MD5

O MD5 tem basicamente 5 passos para a geração do hash, conforme expõe Rivest(1992) em seu trabalho de apresentação do algoritmo.

Acrescentar bits de extensão

Primeiramente há uma conversão da mensagem para a representação em bits,originando uma sequência de “0” e “1”. Então é necessário que a mensagem de entrada sejaestendida até o tamanho de 448 bits módulo 512, deixando um espaço de 64 bits, a serempreenchidos posteriormente, a fim de deixar a mensagem de tamanho múltiplo a 512 bits.

Suponhamos que nossa mensagem seja a sigla “UFPE”, que convertida para ocódigo binário origina: “01010101010001100101000001000101”. A extensão da mensagem éfeita com o acréscimo de um único bit “1” seguido de sucessivos bits “0” até chegar aotamanho de 448 (mod 512). Sendo assim teríamos:

Figura 4: Início da cifragem MD501010101010001100101000001000101︸ ︷︷ ︸ 1000 . . . 000︸ ︷︷ ︸Texto original em código binário Expansão

Fonte: Figura desenvolvida pelo autor.

Acrescentar tamanho

O segundo passo é inserir uma string de 64 bits representando o tamanho docódigo binário da palavra original, sem os bits que foram adicionados no passo anterior.Obviamente esse passo faz com este algoritmo fique limitado a gerar hashes de cadeias detamanho até 264 − 1 bits.

Com o exemplo adotado no passo anterior, teríamos ao término deste passo algosemelhante a isto:

Figura 5: Bloco pronto para a cifragem MD501010101010001100101000001000101︸ ︷︷ ︸ 1000 . . . 000︸ ︷︷ ︸ 000 . . . 00010000︸ ︷︷ ︸Texto original em código binário Expansão Tamanho em bits

16 bits 432 bits 64 bits

Fonte: Figura desenvolvida pelo autor.

Neste nosso exemplo, foi gerado um bloco único de 512 bits de comprimento queseguirá para o próximo passo. Caso a nossa mensagem fosse um pouco maior e resultasseem algum valor múltiplo de 512, seria fracionado em blocos de 512 bits e cada blocorepetiria os demais passos citados a seguir.

Page 69: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 67

Vetores de inicialização

Neste passo o(s) bloco(s) de 512 bits são subdivididos em pequenos blocos de 32bits, onde formam uma cadeia de blocos (m0,m1, . . . ,m15) os quais serão manipuladoscom alguns vetores de inicialização definidos pelos seguintes valores hexadecimais:

1. VA ← 0x01234567;

2. VB ← 0x89ABCDEF;

3. VC ← 0xFEDCBA98;

4. VD ← 0x76543210.

Processamento da mensagem

O algoritmo durante 4 rodadas fará a manipulação dos dados, e em cada rodadautilizará uma das fórmulas descritas abaixo:

• Rodada 1: F (X, Y, Z) = (X ∧ Y ) ∨ (¬X ∧ Z);

• Rodada 2: G(X, Y, Z) = (X ∧ Z) ∨ (Y ∧ ¬Z);

• Rodada 3: H(X, Y, Z) = X ⊕ Y ⊕ Z;

• Rodada 4: I(X, Y, Z) = Y ⊕ (X ∨ ¬Z).

Hash gerado

A saída é a concatenação de todos os bits ao fim das rodadas e tem tamanho fixode 128 bits, que corresponde a 32 caracteres.

2.3.2.3 Falhas do MD5

Depois de ser bastante usado, começaram a ser encontrados problemas no hashMD5. Primeiro

[. . . ] as colisões nas funções de compressão de MD4 e MD5 foram desco-bertos em meados dos anos 1990.[. . . ] Também foram apresentados colisões para MD5 e várias outrasfunções hash populares em CRYPTO 2004 por Wang et al. (2004).(STINSON, 2006, p. 139, tradução nossa).

Segundo Wang et al. (2004, p. 1, adaptado pelo autor) “o ataque desenvolvido poreles pode encontrar muitas colisões reais que são compostas de duas mensagens de 1024bits com o original valor inicial VA MD5”.

Page 70: Validação de Dados Através de Hashes Criptográficos: Uma

68 Capítulo 2. Referencial Teórico

Valadares (2006, p. 60–61) reforça que o ataque de Wang et al. (2004) é poderosoporque o VI utilizado no ataque não é pré-definido, como houveram outros ataquesanteriormente que encontravam pseudocolisões. Wang et al. utilizam quatro vetores decomprimento de 512 bits cada, sejam eles M1, M2, M

′1 e M ′

2.

Cada vetor é escrito em little-endian9 e a relação entre eles é dada por:

MD5(M1 ‖M2) = MD5(M ′

1 ‖M′

2)

M′

1 = M1 + ∆1 (mod 232)

M′

2 = M2 + ∆2 (mod 232)

∆1 = (0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 215, 0, 0, 231, 0)

∆2 = (0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0,−215, 0, 0, 231, 0)

As entradas diferentes de zero em ∆1 e ∆2 ficam localizadas nas posições 5, 12 e 15que farão a diferença durante o encadeamento do algoritmo. Segundo Wang e Yu (2005)eles foram capaz de achar múltiplas strings binárias no qual diferem apenas em 6 posiçõesde 4 bytes usando o supercomputador IBM P690.

“A aplicação deste ataque no IBM P690 leva cerca de uma hora para encontrarM1 e M ′

1, quando nos casos mais rápido leva apenas 15 minutos. Em seguida, leva apenasentre 15 segundos a 5 minutos para encontrar o segundo blocos M2 e M ′

2”. (WANG; YU,2005, p. 20, tradução nossa).

Outro ataque possível citado por Tilborg e Jajodia (2011, p. 769–770) com baseno paradoxo do aniversário, onde uma colisão pode ser encontrada após 232 avaliações dafunção hash. O adversário poderia então escolher essas mensagens de colisão, ao invés deter uma escolha aleatória (Ataque de força bruta).

2.3.3 SHA

O algoritmo SHA foi desenvolvido pela NSA e pelo NIST para ser usado pelogoverno estadunidense como padrão das assinaturas digitais em 1992, tendo em 1995 sidopublicado uma correção par aumentar seu nível de segurança. Valadares (2006, p. 52) frisaque o algoritmo original ficou conhecido como SHA-0 e o algoritmo corrigido como SHA-1.

Depois do documento NIST (1995) que corrigiu o SHA-0 e criou o SHA-1 tivemosalgumas outras melhorias, atualmente temos a quinta melhoria do algoritmo, que é descritaem NIST (2015).9 Significa que o byte de menor ordem do número é armazenado na memória nos menores endereços, e

os de maior ordem nos maiores endereços.

Page 71: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 69

A família SHA designa atualmente seis diferentes funções hash SHA-0,SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512 que foram publicadospelo NIST. Estes algoritmos levam como entrada mensagens de compri-mento variável e coloca-as em saídas de comprimento fixo. (TILBORG;JAJODIA, 2011, p. 1190–1191, tradução nossa).

2.3.3.1 Funcionamento do SHA

Tilborg e Jajodia (2011, p. 1191) afirmam que as primeiras versões do algoritmoSHA (SHA-0 e SHA-1) produzem um hash de tamanho 160 bits, enquanto que as versõesmais recentes produzem hashes com o tamanho do número que a intitula: o SHA-224produz um hash de tamanho 224 bits, o SHA-256 produz um hash de tamanho 256 bits, eassim sucessivamente.

Portanto o funcionamento do SHA-1 deve ser tomado como exemplo já que ofuncionamento das outras versões do algoritmo, tomando as devidas proporções, é seme-lhante. De acordo com NIST (1995), Valadares (2006, p. 52–58) e Tilborg e Jajodia (2011,p. 1190–1193) podemos descrever a execução do SHA-1 nos seguintes passos.

Acrescentar bits de extensão e tamanho

Como foi descrito, o SHA-1 trabalha com blocos de 512 bits e quando a mensagem deentrada não é de um tamanho múltiplo a 512 bits é necessário que haja um preenchimentocom bits. Este preenchimento é igual ao descrito no funcionamento do MD5 e apresentadosnas Figura 4 e Figura 5.

O(s) bloco(s) de 512 bits são subdivididos em pequenos blocos de 32 bits, ondeformam uma cadeia de blocos (M0,M1, . . . ,M15) os quais serão manipulados com algunsvetores de inicialização.

Vetores de Inicialização

O SHA-1 trabalha com cinco vetores de inicialização, cada um com 32 bits e comos seguintes valores hexadecimais fixos:

1. VA ← 0x67452301;

2. VB ← 0xEFCDAB89;

3. VC ← 0x98BADCFE;

4. VD ← 0x10325476;

5. VE ← 0xE3D2E1F0.

Page 72: Validação de Dados Através de Hashes Criptográficos: Uma

70 Capítulo 2. Referencial Teórico

Pré-processamento de novos blocos

Com a mensagem armazenada na string binária M em 16 blocos de 32 bits cada,serão gerados 80 novos blocos de 32 bits seguindo as seguintes premissas:

• Wt = Mt, para 0 ≤ t ≤ 15

A mensagem acrescentada dos bits de extensão que estava armazenada em M écopiada para as primeiras posições, ocupando os espaços de W0 a W15.

• Wt ← (Wt−3 ⊕Wt−8 ⊕Wt−14 ⊕Wt−16)� 1, para 16 ≤ t ≤ 79

As posições W16 a W79 são definidas pela execução do cálculo citado, utilizandooperação binária XOR e deslocamento de bits.

Execução

Os valores do vetores de inicialização (VA, VB, VC , VD, VE) são copiados respectiva-mente para as variáveis auxiliares (a, b, c, d, e).

A execução ocorre seguindo o algoritmo descrito, note que há um estrutura derepetição com base em t. Conforme o valor de t vai aumentando determina a fase econsequentemente os atributos que serão utilizados neste algoritmo.

para t = 0 até 79 façaT ← Wt + a� 5 + ft(b, c, d) + e+Kt mod 232

b← ac← b� 30d← ce← da← T

fim

A execução do SHA-1 é composta por quatro fases, onde cada fase tem sua constanteKt e sua função ft(b, c, d) e, é definida pelo valor assumido por t:

Tabela 5: Constantes e funções usadas em cada fase do SHA-1

Fase Valor de t Constante Kt Função ft(b, c, d)Fase 1 0 ≤ t ≤ 19 0x5a827999 (b ∧ c) ∨ (¬b ∧ d)Fase 2 20 ≤ t ≤ 39 0x6ed9eba1 b⊕ c⊕ dFase 3 40 ≤ t ≤ 59 0x8f1bbcdc (b ∧ c) ∨ (b ∧ d) ∨ (c ∧ d)Fase 4 60 ≤ t ≤ 79 0xca62c1d6 b⊕ c⊕ d

Fonte: Desenvolvida pelo autor com base em NIST (1995), Valadares(2006, p. 55) e Tilborg e Jajodia (2011, p. 1190–1193).

Page 73: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 71

Saída

Após os cálculos, as variáveis (a, b, c, d, e) são somadas aos vetores de inicialização(VA, VB, VC , VD, VE):

A← a+ VA mod 232

B ← b+ VB mod 232

C ← c+ VC mod 232

D ← d+ VD mod 232

E ← e+ VE mod 232

A saída do hash SHA-1 é a concatenação desta soma: A ‖ B ‖ C ‖ D ‖ E. Comocada variável possui 32 bits, o tamanho do hash de saída será 160 bits (32 · 5).

Podemos resumir a execução do SHA-1 na seguinte figura:

Figura 6: Modelo de execução do SHA-1

Fase 1 Fase 2 Fase 3 Fase 4

VA

VB

VC

VD

VE

Wt

⊕⊕⊕⊕⊕

A

B

C

D

E

a b c d e

Fonte: Desenvolvido pelo autor baseado em NIST (1995) e Valadares (2006, p. 55).

2.3.3.2 Falhas do SHA-0 e SHA-1

Valadares (2006, p. 62), Barreto (2008) e Tilborg e Jajodia (2011, p. 1192–1193)elencam vários ataques existentes ao SHA, o primeiro ataque conhecido ao SHA-0 foielaborado por Chabaud e Joux (1998), onde eles encontraram uma colisão através deum ataque de força bruta com base no paradoxo do aniversário. Em 2004 Biham e Chen(2004) encontraram quase-colisões no SHA-0 e colisões em versões de rodadas reduzidasdo SHA-1.

No início de 2005 Rijmen e Oswald (2005) anunciaram uma colisão no 53º passo deum algoritmo reduzido SHA-1. Ainda em 2005 Wang, Yin e Yu (2005) encontraram umacolisão na 58ª rodada com complexidade menor que Rijmen e Oswald (2005) em SHA-0 epreviram que usando a mesma técnica poderiam encontrar uma colisão em SHA-1 comuma complexidade um pouco mais alta.

Page 74: Validação de Dados Através de Hashes Criptográficos: Uma

72 Capítulo 2. Referencial Teórico

Em todos os casos citados, o princípio de ataque é o mesmo. Escolhe-se planeja-damente, após um estudo detalhado do funcionamento do algoritmo, um purotexto queresultará em algum tipo de colisão. Obviamente como foi citado não é tão trivial achar umacolisão. Nas versões mais antigas já foram encontradas colisões, mas nas outras versõesrecentes do SHA (SHA-224, SHA-256, SHA-384 e SHA-512) ainda não foram descobertasvulnerabilidades conforme cita Hawkes, Paddon e Rose (2004) em seu estudo.

2.3.3.3 Diferenças entre as versões do SHA

De acordo com Tilborg e Jajodia (2011, p. 1191–1192) os algoritmos SHA-0, SHA-1,SHA-224 e SHA-256 trabalham com mensagens de bloco com tamanho de 512 bits, quesão subdivididas durante sua execução em blocos de 32 bits. Já os SHA-384 e SHA-512trabalham em blocos de 1024 bits que são subdivididos em 64 bits. Podemos então apontaras seguintes diferenças e melhorias entre o SHA-1 e suas versões mais recentes.

SHA-0

A única diferença entre o SHA-0 e o SHA-1 é que não há deslocamento de bitsdurante sua execução dos valores 16 ≤ t ≤ 79.

SHA-256

A versão utiliza 3 vetores de inicialização a mais, totalizando 8 vetores, reduzindoas rodadas do algoritmo, que ao invés de trabalhar com o t por 80 rodadas (variando de0 até 79), trabalha até 64 rodadas. Com essa ampliação de VI’s e redução de rodadas ocódigo do algoritmo sofre algumas adaptações.

SHA-224

Funciona forma bem semelhante ao SHA-256, mudando apenas os valores dovetores de inicialização e seu hash de saída sendo formado pelos 224 bits mais a esquerda,desconsiderando os 32 bits finais.

SHA-512

O SHA-512 também utiliza 8 vetores de inicialização, porém quebra a mensagemem blocos de 64 bits de comprimento e trabalha com 80 rodadas.

SHA-384

O SHA-384 é semelhante ao SHA-512, mudando apenas os valores dos vetores deinicialização e a saída ser dada apenas pelos 384 bits mais a esquerda.

Page 75: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 73

2.3.4 Curvas Elípticas

2.3.4.1 Introdução matemática

Segundo Magalhães e Queiroz (2011, p. 2) Curvas Elípticas são objetos matemáticosdescritos por uma equação cúbica, as mesmas que são usadas para calcular o comprimentode um arco de uma elipse, daí origina-se o nome Curva Elíptica. Um fato curioso é que taiscurvas não são elipses. Então, uma curva elíptica é um conjunto de pontos x, y definidosem um plano que satisfaz algebricamente uma equação na forma: y2 = Axy + By =x3 +Cx2 +Dx+E com algumas condições técnicas adicionais e com um ponto θ, chamadoponto no infinito.

O número de pontos de uma curva elíptica E, isto é, o número de soluções daequação da curva mais o ponto no infinito, são chamados de ordem da curva, denotadopor ε. Garante-se então que a ordem da curva elíptica satisfaz a seguinte inequação paracorpos finitos: q + 1− 2√q ≤ ε ≤ q + 1 + 2√q.

Na Figura 7 vemos a representação de uma Curva Elíptica e alguns pontos repre-sentando as características destacadas por Magalhães e Queiroz (2011, p. 2–3).

Algumas propriedades devem ser observadas sobre as curvas elípticas:

• P + θ = θ + P = P , para todo P ;• Se P = −Q, então P +Q = θ;• Se P 6= Q, existe uma reta secante à curva, formada pelos pontos

P e Q. Esta reta sempre intercepta a curva num terceiro ponto, R,assim: P +Q = R;

• Se P = Q, então existe uma reta tangente à curva no ponto P . Estareta sempre intercepta a curva em um segundo ponto R, assim:P +Q = P + P = 2P = −R.

[. . . ]É a partir da construção algébrica sobre R que são possíveis deduções deexpressões algébricas para o cálculo de coordenadas do ponto resultante.Pode-se então determinar operações binárias sobre curvas elípticas talcomo a soma de dois pontos como se segue dado a curva Y 2 = X3 −aX− b que para efeito de exemplo assume-se um corpo K e considerandoadmissível a mudança de variável:

• Sejam a e b pertencentes a K;• Tomando P e Q dois pontos racionais distintos na curva elíptica,

uma linha reta que passa por esses dois pontos deve interceptar acurva em mais um ponto, dito R, uma vez que se está interceptandouma linha com uma curva cúbica;

• O ponto R será racional (Q);• A curva e os pontos P e Q se definem sobre K;• O reflexo de R no eixo é determinado por P +Q.

(MAGALHÃES; QUEIROZ, 2011, p. 2, adaptado).

Page 76: Validação de Dados Através de Hashes Criptográficos: Uma

74 Capítulo 2. Referencial Teórico

Figura 7: Exemplo de curva elíptica

y2 = x3 − 2x

x

y

P •

Q•

•P ∗Q = R

•P +Q = −R

Fonte: Desenvolvido pelo autor.

2.3.4.2 Esquema criptográfico

Conforme afirma Tilborg e Jajodia (2011, p. 397) a Criptografia de Curvas Elípticasfoi proposta por Miller (1986) e por Koblitz (1987), e acabou sendo bastante utilizada pornão necessitar de alto processamento computacional e nem de grandes chaves.

Goya (2006, p. 21–22) e Magalhães e Queiroz (2011, p. 4) descrevem que o funcio-namento básico da ECC é executado mapeando o purotexto em pontos da curva elípticapré-estabelecida, utilizando a parametrização desses pontos com a chave de encriptaçãopara obter um outro grupo de pontos representando o cifrotexto. A decriptação é dadaaplicando o mapeamento inverso e os pontos do cifrotexto são convertidos nos pontosoriginais do purotexto.

Caso um usuário A deseje enviar uma mensagem M a outro usuário B, dada umacurva E e um conjunto finito de pontos dado por um corpo F que envolva aritméticamodular temos:

• Um valor primo p grande o suficiente, tido como ordem;

• G, um ponto gerador, pertencente à curva, onde θ é um ponto no infinito;

• SKA e SKB correspondem às chaves privadas dos usuários A e B;

• PKA e PKB são pontos pertencentes à curva correspondentes às chaves públicas deA e B.

Page 77: Validação de Dados Através de Hashes Criptográficos: Uma

2.3. Criptografia 75

Sendo C o conjunto de pontos CI para o qual a mensagem M foi mapeada, ou seja,o conjunto de pontos dos cifrotextos. O algoritmo segue sua execução:

1. O usuário A seleciona o um inteiro I aleatoriamente;

2. A partir de I, G, PKB e para cada ponto CI , calcula-se um conjunto de pares depontos PXI e PY I onde PXI = (IG) e PY I = (CI + PKB);

3. O usuário A transmite a mensagem como sendo o conjunto de pares gerados pelopasso anterior, tal como segue Cifrotexto = [(PX1, PY 1), (PX2, PY 2), . . . (PXn, PY n)].

Como PX1 = PX2 = . . . = PXn = IG, já que existe essa repetição o cifrotexto podeser reorganizado de tal forma que seu tamanho seja reduzido n/2 − 1 vezes, onde n é otamanho da saída do passo anterior.

O ponto interessante na decriptação é que o usuário B pode recuperar todo oconjunto C, desconhecendo o inteiro I segundo os seguintes procedimentos:

1. O usuário B tem ciência da seguinte equação: IPKB = I(SKB)G, pois, por se tratarde um grupo abeliano, PKB = (SKB)G, assim PX1(SKB) = (IG)(SKB) = I(PKB);

2. Pelo passo um pode-se deduzir cada ponto do conjunto C fazendo: PY i−PX1(SKB) =(PY i + I(PKB))− I(PKB) = (PY i + [(IG)SKB])− ([(IG)SKB]) = PY i.

Dado o conjunto C dos pontos de cifrotexto mapeados, o usuário B pode realizaro mapeamento inverso obtendo assim o purotexto M . Esse mapeamento acaba sendoviável pelo reduzido tamanho de chaves que é necessário utilizar neste algoritmo. Segundoavaliam Magalhães e Queiroz (2011, p. 5–6),

[. . . ] a Criptografia baseada em curvas elípticas apresenta uma soluçãoviável no que se refere ao tamanho das chaves (pública e privada), dadoque o esquema em ECC com maior segurança já apresentado necessitavade uma chave de 109 bits. Em seguida é apresentado um comparativoentre as o tamanho de chaves necessários para a obtenção da mesmasegurança em um esquema criptográfico.

Tabela 6: Comparação entre o tamanho dechaves

Simétrica Assimétrica Curvas Elípticas80 163 1024128 256 3072192 384 7680256 512 15360

Fonte: Adaptado de Magalhães e Queiroz (2011, p. 6).

Page 78: Validação de Dados Através de Hashes Criptográficos: Uma
Page 79: Validação de Dados Através de Hashes Criptográficos: Uma

77

3 Aspectos Legais e Análise dos Fatos

3.1 Legislação

Como foi visto anteriormente, podemos garantir a integridade dos dados de trêsmaneiras, com: algoritmos MAC, códigos de autenticação ou assinatura digitais. Vimostambém que para garantir a integridade da informação podemos utilizar algoritmosmatemáticos hash a fim de fazê-lo. Tendo todas essas opções para garantir a segurança,é óbvio que existam alguns regimentos que controlem a utilização e a qualidade destesalgoritmos. Portanto veremos algumas leis que regem como é feita a utilização dessesalgoritmos que visam garantir a segurança.

As leis que regulamentam a utilização da criptografia em transações digitais geral-mente tratam o assunto chamando apenas de assinaturas digitais. As assinaturas digitaissão artifícios criptográficos para a validação digital, porém não são os únicos. Podemos,obviamente, incluir os hashes e qualquer outro checksum nessas leis.

Estas leis surgiram entre o fim dos anos 90 do século passado e o início deste, e foramfundamentais para o desenvolvimento do e-commerce. Na Diretiva da União Europeia(2000), é dada a importância da utilização de validadores criptográficos em transaçõesdigitais:

As comunicações e o comércio eletrônicos necessitam de “assinaturasdigitais” e de serviços a elas associados, que permitam a autenticaçãodos dados; a existência de regras divergentes quanto ao reconhecimentolegal das assinaturas digitais e à aceitação dos prestadores de serviços decertificação nos Estados-Membros pode criar um obstáculo importante àutilização das comunicações eletrônicas e do comércio eletrônico, dificul-tando assim o desenvolvimento do mercado interno; por outro lado, aexistência de um quadro comunitário claro para as assinaturas digitaisreforça a confiança e a aceitação geral das novas tecnologias; a existênciade legislações divergentes nos Estados-Membros cria obstáculos à livrecirculação de bens e serviços no mercado interno.

[. . . ]

As assinaturas digitais serão utilizadas em circunstâncias e aplicaçõesmuito variadas, dando origem a uma ampla gama de novos serviços eprodutos relacionados [. . . ]. (UNIÃO EUROPEIA, 2000, p. 12, traduçãonossa).

Entre os exemplos de legislação que veremos, é comum entre todos que não hajaum detalhamento técnico minucioso de como a validação criptográfica deve ocorrer. Oque há é um parecer de que estes artifícios criptográficos são seguros e que podem serutilizados amplamente em ações no meio eletrônico.

Page 80: Validação de Dados Através de Hashes Criptográficos: Uma

78 Capítulo 3. Aspectos Legais e Análise dos Fatos

Mas antes de explorarmos as leis, destaca-se este trecho em que Lacorte (2006)resume para “leigos”, sem um detalhamento técnico, como é gerada a assinatura digital equão segura ela pode ser.

O signatário, já com o documento que deseja assinar digitalmente disponí-vel, acessa um software de computador que, utilizando uma função hash,gera um resumo do documento [. . . ] deve-se ressaltar que este resumoé único, ou seja, nenhum outro documento digital pode gerar aquelasequência numérica gerada pela função hash (coincidências deste tipo– mesmo resultado do hash para diferentes documentos, denominadascolisões – são raras de ocorrer, e indicam fragilidades dos algoritmos decifragem; quanto maior a quantidade de colisões, mais vulnerável é aquelealgoritmo). É por esta razão que as assinaturas digitais, mesmo que deum mesmo signatário, serão diferentes para cada documento assinado,diferente do que ocorre para a assinatura manuscrita, a qual o subscritora repete nos diferentes documentos em que a apõe. (LACORTE, 2006,p. 17).

3.1.1 Brasil

No Brasil tem-se poucas leis ou medidas que regulam os esquemas de segurançacomputacional. Um dos principais exemplos de medida voltada a utilização da criptografiaé a Medida Provisória nº 2.200-2, de 24 de Agosto de 2001, que criou a Infraestruturade Chaves Públicas Brasileira (ICP-Brasil)1. No artigo 1º desta Medida Provisória defineque a ICP-Brasil deverá “garantir a autenticidade, a integridade e a validade jurídica dedocumentos em forma eletrônica, das aplicações de suporte e das aplicações habilitadasque utilizem certificados digitais, bem como a realização de transações eletrônicas seguras”.(BRASIL, 2001).

Nesta lei não é passado nenhum parâmetro para que haja alguma verificação ouestudo quanto nível de segurança que essas assinaturas podem assumir. Apenas cria aICP-Brasil deixando a cargo deste órgão toda a regência das chaves digitais que serãousadas e certificadas pelo órgão e padronização criptográfica que garanta segurança nastransações.

No âmbito jurídico brasileiro podemos destacar também outras leis que abordamcrimes digitais, que não deixam de compor este cenário de segurança computacional.Segundo Barbosa Júnior (2014) os crimes digitais durante longa data não tinham coberturalegal, somente em 2012 com a edição da Lei nº 12.735/2012 (BRASIL, 2012a) e da Leinº 12.737/2012 (BRASIL, 2012b) passou-se a ter recursos jurídicos para manipular taissituações.

A Lei nº 12.735/2012 ficou como base para as outras leis já que

1 Na época foi criada com nome de “Infra-Estrutura”, mas com acordo ortográfico em vigor desde 2009sua nova grafia correta é “Infraestrutura”.

Page 81: Validação de Dados Através de Hashes Criptográficos: Uma

3.1. Legislação 79

Altera o Decreto-Lei nº 2.848, de 7 de dezembro de 1940 - CódigoPenal, o Decreto-Lei nº 1.001, de 21 de outubro de 1969 - Código PenalMilitar, e a Lei nº 7.716, de 5 de janeiro de 1989, para tipificar condutasrealizadas mediante uso de sistema eletrônico, digital ou similares, quesejam praticadas contra sistemas informatizados e similares; e dá outrasprovidências. (BRASIL, 2012a).

É destacável ainda o artigo 4 desta mesma lei, onde fica determinado que: “Osórgãos da polícia judiciária estruturarão, nos termos de regulamento, setores e equipesespecializadas no combate à ação delituosa em rede de computadores, dispositivo de co-municação ou sistema informatizado”. (BRASIL, 2012a, grifo nosso). E conforme afirmaBarbosa Júnior (2014) “Com esta determinação legal, todos os setores da polícia judiciáriabrasileira deverão organizar setores especializados nos crimes cometidos na esfera virtual,criando no sistema jurídico brasileiro o suporte necessário para a edição de legislaçõesdedicadas ao assunto”.

Já a Lei nº 12.737/2012 “Dispõe sobre a tipificação criminal de delitos informáticos;altera o Decreto-Lei nº 2.848, de 7 de dezembro de 1940 - Código Penal; e dá outrasprovidências”. (BRASIL, 2012b).

Lessa (2009) afirma que o Brasil está bastante avançado na área tecnológica decriptografia, enquanto que a legislação brasileira está em uma fase de adaptação constante,tentando definir a quem serão dadas essa atribuições e como funcionarão os cartóriosvirtuais.

O Brasil iniciou a regulamentação da certificação digital em 2001, pu-blicando a Medida Provisória 2.200-2 (BRASIL, 2001), que institui oICP-Brasil, chamado de Infraestrutura de Chaves Públicas Brasileira,atualmente mantida pelo ITI - Instituto Nacional de Tecnologia daInformação. (LESSA, 2009).

Aproveitando das leis que regem a certificação digital do país, e a necessidade dehaver uma modernização nos processos judiciais brasileiro, surgiu a Lei nº 11.419, de 19de Dezembro de 2006 (BRASIL, 2006). A lei é um facilitador para a digitalização dosprocessos judiciais no Brasil.

Segundo o Artigo 8º de Brasil (2006) “Os órgãos do Poder Judiciário poderãodesenvolver sistemas eletrônicos de processamento de ações judiciais por meio de autos totalou parcialmente digitais, utilizando, preferencialmente, a rede mundial de computadorese acesso por meio de redes internas e externas”. Já o Artigo 14º desta mesma lei atentaque “Os sistemas a serem desenvolvidos pelos órgãos do Poder Judiciário deverão usar,preferencialmente, programas com código aberto, acessíveis ininterruptamente por meioda rede mundial de computadores, priorizando-se a sua padronização”.

Page 82: Validação de Dados Através de Hashes Criptográficos: Uma

80 Capítulo 3. Aspectos Legais e Análise dos Fatos

3.1.1.1 Processo Eletrônico Brasileiro

O Processo Eletrônico Brasileiro é composto por vários softwares que foram criadoscom finalidade de acelerar os processos que estejam tanto no âmbito jurídico, quanto noadministrativo ou no judicial. É evidente que o Processo Eletrônico trabalha com a infor-matização e digitalização de documentos, buscando garantir a autenticidade, integridade edisponibilidade dos mesmos.

O processo judicial digital, também chamado de processo virtual ou deprocesso eletrônico, tem como premissa, gerenciar e controlar os trâmitesde processos judiciais nos Tribunais de forma eletrônica, reduzindo tempoe custos. O principal intuito é a completa informatização da justiça,retirando burocracia dos atos processuais, o acesso imediato aos processos,bem como a melhoria no desempenho das funções próprias de cadausuário, o mesmo acessa somente o módulo que ofereça as funções queele necessita para desenvolver suas atividades. (RUSCHEL; LAZZARI;ROVER, 2014, p. 18).

Como exemplo de e-Processo temos os softwares SAJ, PJ-e, entre outros. Cada umdeles atua numa área específica e possui funcionalidades específicas a fim de atenderema necessidade do setor, sendo todos validados conforme a Lei nº 11.419/2006 (BRASIL,2006) determina.

O SAJ foi desenvolvido com auxílio de alguns tribunais de justiça estaduais eincorpora facilidades para a automatização das rotinas jurisdicionais e administrativas queasseguram excepcionais ganhos de produtividade e otimização dos recursos de Tribunaisde Justiça, Ministério Público e Procuradorias.

O Processo Judicial Eletrônico (PJe) é um sistema desenvolvido pelaSubsecretaria de Informática do TRF-5 e permite a tramitação eletrônicade todos os tipos de ações judiciais em qualquer ramo do Judiciário. Aferramenta dá maior celeridade à tramitação dos processos, além de faci-litar o acesso de partes, advogados e procuradores às ações. (RUSCHEL;LAZZARI; ROVER, 2014, p. 18).

O PJ-e na verdade substituiu outro software que foi amplamente utilizado, oPROJUDI. Hoje o PROJUDI não é mais utilizado por o PJ-e ser mais indicado asnecessidades dos usuários. Segundo Ruschel, Lazzari e Rover (2014, p. 18) o PROJUDIfoi um software de tramitação de processos judiciais mantido pelo Conselho Nacionalde Justiça, sendo o nome deste decorrente das iniciais de Processo Judicial Digital. Seuprincipal objetivo é informatizar todos os cartórios judiciais do país, já que o softwarepossibilita que todo o trâmite de um processo judicial se dê em meio eletrônico, além deinformatizar rotinas cartorárias.

O PROJUDI foi portanto “um sistema de informática que reproduz todo o procedi-mento judicial em meio eletrônico, substituindo o registro dos atos processos realizados nopapel por armazenamento e manipulação dos autos em meio digital”.

Page 83: Validação de Dados Através de Hashes Criptográficos: Uma

3.1. Legislação 81

Visto a vasta e crescente utilização de softwares que auxiliem, por exemplo, osprocessos judiciais no Brasil, podemos afirmar com base em Lima (2002) que essa ondacibernética pode ser chamada de e-processo (processo eletrônico). O autor ainda destacaque os softwares desenvolvidos para auxiliar o processo judiciário brasileiro deve possuiras seguintes características para que seu funcionamento seja satisfatório:

a) máxima publicidade;b) máxima velocidade;c) máxima comodidade;d) máxima informação (democratização das informações jurídicas);e) diminuição do contato pessoal;f) automação das rotinas e decisões judiciais;g) digitalização dos autos;h) expansão do conceito espacial de jurisdição;i) substituição do foco decisório de questões processuais para técnicos

de informática;j) preocupação com a segurança e autenticidade dos dados processuais;k) crescimento dos poderes processuais cibernéticos do juiz;l) reconhecimento da validade das provas digitais;

m) surgimento de uma nova categoria de excluídos processuais: os des-plugados.

(LIMA, 2002, p. 1).

Obviamente a criptografia é item essencial aos softwares utilizados no e-Processo,visto que a garantia de integridade dos processos é fundamental para haver transparêncianas ações. Lima (2002) garante que os documentos digitais, independentes do softwaree-Processo que originou-se, é válido desde que esse documento tenha um assinatura digitalválida nos padrões da ICP-Brasil. “O documento digitalmente assinado tem não apenasa sua validade reconhecida, mas a própria característica de documento original: a cópiapassa a ser o documento físico, impresso”. (LIMA, 2002, p. 12).

Com o uso da criptografia, todos os atos processuais poderiam ser prati-cados ou documentados por meios eletrônicos, assinando-se digitalmenteos correspondentes arquivos. Isto se aplica tanto a atos escritos, assi-nados pelo sujeito que os pratica, como a atos orais, que poderiam serdocumentados digitalmente em arquivos de som ou imagem, assinando-seo arquivo eletrônico resultante. Ao final, os “autos” nada mais seriamdo que um diretório situado em um computador conectado à rede, ondeestariam armazenados os atos processuais referentes àquele processo, comsuas correspondentes assinaturas, podendo ainda, cada uma das partes,ter uma “cópia” de tudo isso consigo em seus próprios computadores.(MARCACINI, 2010, p. 143–144).

Aliando-se a utilização de softwares e-processos e uma criptografia confiável faz-senecessário também que haja leis que apoiem a utilização do meio digital para a melhoriados processos.

Page 84: Validação de Dados Através de Hashes Criptográficos: Uma

82 Capítulo 3. Aspectos Legais e Análise dos Fatos

3.1.2 União Europeia

Na União Europeia também temos algumas leis que regem a validação criptográfica,maioria delas para regularizar o uso de assinaturas digitais. O documento apesar deser pioneiro em relação ao Brasil, no ano 2000 um ano antes da primeira lei brasileira,foram definidas pelo Parlamento Europeu algumas diretrizes na área criptográfica. Estedocumento, em suma, repassou a cada país a responsabilidade de manipular a criptografiacomo achar melhor e mais seguro.

A diretiva busca primeiramente fazer definições acerca do tema, portanto é definidosob a geração de assinaturas digitais que

1. ‘Assinatura digital’, são os dados sob forma digital, ligados ou logi-camente associados a outros dados digitais, e que sejam utilizadoscomo método de autenticação.

2. ‘Dados de criação de assinaturas’, são um conjunto único de da-dos, como códigos ou chaves criptográficas privadas, usado pelosignatário para a criação de uma assinatura digital.

(UNIÃO EUROPEIA, 2000, p. 14, tradução nossa).

Na própria diretiva fica claro que “A presente Diretiva não procura harmonizar aprestação de serviços no que diz respeito à confidencialidade da informação quando estessão abrangidos por disposições nacionais em matéria de ordem pública ou de segurançapública”. (UNIÃO EUROPEIA, 2000, p. 12, tradução nossa).

O objetivo geral desta diretiva é tornar público a existência de documentos digitaise seus validadores, além de definir que eles não podem ser refutados, se seguirem asexigências para ter uma validação segura.

Os Estados-Membros assegurarão que não sejam negados a uma assina-tura digital os efeitos legais e a admissibilidade como meio de prova paraefeitos processuais apenas pelo fato de:

• se apresentar sob forma eletrônica,• não se basear num certificado qualificado,• não se basear num certificado qualificado emitido por um prestador

de serviços de certificação acreditado,• não ter sido criada através de um dispositivo seguro de criação de

assinaturas.

(UNIÃO EUROPEIA, 2000, p. 13, tradução nossa).

Na lei (UNIÃO EUROPEIA, 2000, p. 18–19) é passado através de anexos caracte-rísticas para um certificado se tornar qualificado, e o prestador de serviços ser acreditado.Basicamente estes anexos comunicam requisitos legais para que esta validação de serviçoaconteça, mas não passa informações técnicas de como o certificado ou o prestador deserviço tem de trabalhar.

Page 85: Validação de Dados Através de Hashes Criptográficos: Uma

3.1. Legislação 83

A presente Diretiva contribui para a utilização e o reconhecimento legaldas assinaturas digitais na Comunidade; não é necessário um quadroregulamentar para as assinaturas digitais utilizadas exclusivamente noâmbito de sistemas fechados que assentam em acordos voluntários dedireito privado entre um número determinado de participantes; a li-berdade de as partes acordarem entre si os termos e condições emque aceitam dados assinado digitalmente deve ser respeitada, dentrodos limites permitidos pela lei nacional; as assinaturas digitais uti-lizadas no âmbito de tais sistemas deverão produzir efeitos legais eser admitidas como meios de prova em processos judiciais. (UNIÃO EU-ROPEIA, 2000, p. 13, grifo e tradução nossa).

Com essa lei em vigor na União Europeia, os países que a compunham começarama trabalhar em leis para direcionar o uso de documentos digitais e de criptografia em suastransações.

Na Europa, diversos países também já adotaram leis que tratam dosdocumentos e assinaturas digitais: Alemanha (Signaturgesetz, SiG, Gesetzzur digitalen Signatur), Itália (Decreto del Presidente della Repubblica,10 novembre 1997, n. 513 ), Inglaterra (Electronic Communications Act,2000 ), França (Loi n°2000-230 du 13 mars 2000 ), Portugal (Decreto-Lein.º 290-D, de 2 de Agosto 1999), entre outros. (LACORTE, 2006, p. 24,adaptado pelo autor).

3.1.3 Reino Unido

Um dos países da União Europeia a primeiro tratar leis sobre a criptografia foi oReino Unido. A principal lei sobre assinaturas digitais é o Electronic Communications Actde 2000 (REINO UNIDO, 2000) onde, assim como as outras leis citadas anteriormente,deixa de citar especificações técnicas de como devem ser validadas as assinaturas e regeapenas como elas devem ser aceitas no mercado.

O Electronic Communications Act, ou Lei de Comunicação Eletrônica, numa tradu-ção livre, pode ser dividida em três partes. Na primeira há regulamentação da prestaçãode serviços criptográfico no Reino Unido, enquanto que na segunda parte desta lei ficadefinido algumas atualizações na legislação e informações quanto aos certificados digitais afim de validar o e-commerce e o armazenamento de dados. Por fim a lei ainda rege algumaslicenças para telecomunicações.

Reino Unido (2000) acabou sendo uma lei bastante ampla, onde podemos ressaltarque englobou não somente a criptografia, mas também outras áreas computacionais queestão vinculadas a comunicação digital, como por exemplo, banco de dados, tráfego dedados (redes), telecomunicações, entre outras.

O objetivo principal desta lei é “facilitar a utilização das comunicações eletrônicase armazenamento eletrônico de dados; prever sobre a modificação de licenças concedidasnos termos do artigo 7 da Lei de Telecomunicações de 1984; e para fins ligados”. (REINOUNIDO, 2000, p. 1, tradução nossa).

Page 86: Validação de Dados Através de Hashes Criptográficos: Uma

84 Capítulo 3. Aspectos Legais e Análise dos Fatos

3.1.4 Estados Unidos

Pode-se dizer que os Estados Unidos são pioneiros quanto à legislação voltada adigitalização das transações, principalmente o comércio eletrônico. Antes de haver umalei a nível nacional (ESTADOS UNIDOS, 2000) que regularizasse o uso de criptografiaem transações eletrônicas, alguns estados já haviam criado legislações específicas pararegularizar como a criptografia poderia ser utilizada em as assinaturas digitais.

[. . . ] em 1995, no estado de Utah, nos Estados Unidos, surge a primeiranorma a respeito de documentos e assinaturas digitais (Utah Digital Sig-nature Act), notabilizada não só pela precedência como pelo detalhamentotécnico nela contido. Desde então os demais estados norte-americanospassaram a buscar a regulamentação do uso dos documentos e assinaturasdigitais, como as normas dos estados da Califórnia (Digital SignatureRegularions), de Illinois (Electronic Commerce Security Act), e da Geór-gia (Electronic Records and Signature Act). (LACORTE, 2006, p. 23–24,adaptado pelo autor).

Assim como o Brasil, e alguns outros países desenvolvidos, os Estados Unidostambém possuem softwares que auxiliam no trabalho de advogados e outros servidoresjurídicos, criando inclusive um arquivo eletrônico de caso dos tribunais federais2 que ficaao acesso público.

Dentre esses casos arquivados que envolveram a criptografia, podemos destacar queem 2011 tivemos um caso citado por Roy (2014, p. 49–50) de um julgamento do governoestado estadunidense contra Stephen Miknevich. Miknevich foi acusado de participar deuma rede P2P de compartilhamento de pornografia infantil e teve, durante a revista doseu domicílio, seu computador apreendido para uma perícia buscando se tal acusação eraprocedente.

Um detetive da polícia do estado de Delaware estava conduzindo umainvestigação sobre uma rede de compartilhamento de arquivos P2P quesuspeitava-se ser usada para distribuir imagens e filmes de pornografiainfantil. O oficial fez uma pesquisa na rede com termos relacionados àpornografia infantil. A lista retornada incluía nomes de arquivos, tipos,tamanhos e valores SHA-1. Ele reconheceu um arquivo e seu valor deSHA-1 como pornografia infantil. Indicando que ele desejava baixar ovídeo, a rede voltou uma lista de computadores que compartilhavam oarquivo.

Usando o software de captura de pacotes, o detetive determinou o ende-reço IP da pessoa que possuía o arquivo. Ele então enviou seus resultadosa um investigador Força Tarefa em Crimes da Internet do Estado daPensilvânia, que pediu e recebeu uma ordem judicial para Comcast CableCommunications fornecer as informações de usuário da conta com oatribuído o endereço IP durante a data e a hora especificada. (ROY,2014, p. 49–50, tradução nossa).

2 Um exemplo disto pode ser acessado em <http://www.uscourts.gov/courtrecords/electronic-filing-cmecf>.

Page 87: Validação de Dados Através de Hashes Criptográficos: Uma

3.2. Análise dos fatos 85

Há uma controvérsia acerca da investigação e do depoimento, pois não estava clarose algum investigador realmente baixou e viu o conteúdo do vídeo verificando que aquelearquivo realmente era pornografia infantil. O principal argumento de Miknevich é que umnome de arquivo e seu valor hash não são suficientes para estabelecer causa provável3.

Obviamente o advogado de defesa do acusado poderia ter argumentado que acriptografia utilizada não era de confiança, já que encontra-se insegura por já terem sidoencontradas colisões nas funções hash. E o fato do arquivo ter sido sequer aberto e analisadodevidamente pelo perito expõe uma falha no processo pericial. Apesar de poder apontartodas essas falhas, a palavra final acaba sendo do juiz.

3.2 Análise dos fatosVisto o quanto a criptografia evoluiu e como a segurança foi melhorada a fim

de garantir a integridade, a autenticidade e o sigilo das mensagens, percebemos o quãoimportante a criptografia é. Devido a esta importância estudamos também as leis quecontrolam o uso dos esquemas criptográficos e como ela é usada na perícia computacional.Obviamente a criptografia não restringe-se apenas a validar informações periciais, sua áreade trabalho é bastante ampla.

Como vimos a utilização da criptografia é essencial nos dias atuais, seja para mantero sigilo de alguma informação, validar transferências de informações pela rede ou atémesmo garantir a autenticidade dos dados. A utilização de hashes criptográficos é umaboa maneira para validar tudo isto, porém é necessário que haja uma preocupação embuscar um hash que ainda é considerado seguro.

3.2.1 Criptografia utilizada

Vimos na Tabela 4 que existem vários hashes que são amplamente utilizados e entreeles existem alguns que já são considerados inseguros há algum tempo. Um exemplo vistoneste trabalho é o hash MD5, conforme mostrado nos ataques de Wang et al. (2004) eWang e Yu (2005), que apesar de inseguro continua a ser utilizado na perícia brasileira.

Apesar da ICP-Brasil gerir com qualidades a validação de assinaturas digitais,acabamos tendo problemas quando a validação está em atividades periciais. Freitas (2006),por exemplo, cita em seu trabalho apenas o algoritmo MD5 como único hash criptográfico.Nem chega sequer a citar que existem outros hashes para garantir a integridade dos dados.No capítulo em que ele aborda os passos para a investigação computacional ele apenascita a geração de hashes no seguinte trecho:3 Crença razoável de que um crime ocorreu, está ocorrendo ou irá ocorrer, o que é suficiente para

justificar a prisão de uma pessoa, uma busca ou um confisco de propriedade. É geralmente descritacomo mais do que uma simples suspeita.

Page 88: Validação de Dados Através de Hashes Criptográficos: Uma

86 Capítulo 3. Aspectos Legais e Análise dos Fatos

Para garantir a integridade do Kit de Ferramentas ao final da investigação,utilize o comando md5sum para gerar um arquivo texto contendo a somade verificação de cada arquivo do Kit (a soma de verificação também éconhecida como hash). O hash pode ser considerado como uma assinaturadigital onde cada arquivo possui um valor exclusivo. Depois de gerado oarquivo, guarde-o. (FREITAS, 2006, p. 25).

Já podemos começar a elencar os problemas a partir disto, pois podemos ver quedevido à falta de padronização internacional no trabalho dos peritos computacionais,não existe uma preocupação quanto à qualidade dos hashes a serem utilizados durante ainvestigação.

Como vemos no trecho acima, o autor em um trabalho voltado aos peritos, sequerchega a citar outros tipos de algoritmos criptográficos, muito menos passa ao leitor quedeve haver uma preocupação com qual algoritmo utilizar, visando se ele é seguro contracolisões ou recomendando uma rápida pesquisa acerca do hash a ser utilizado. Infelizmentenão há debate sobre como validar as evidências.

Foram citadas as colisões existentes no MD5, SHA-0 e SHA-1 encontradas an-teriormente, que colocaram em questionamento a confiabilidade destas funções hashes.Argumenta-se que é quase impossível fazer com que dois arquivos sejam manipulados paragerar o mesmo hash, já que é comumente necessário nos ataques de colisão criar duasentradas diferentes que esperam-se produzir o mesmo hash. Para esta colisão acontecerdeveria ter alguma manipulação do arquivo original e ser criado um arquivo falso queresultassem no mesmo hash. Como também foi visto no trabalho a inexistência da Cadeiade Custódia na Perícia Forense Brasileira, a manipulação dos arquivos originais com opropósito validar um falso arquivo pode ser facilitada devido à ausência da Cadeia deCustódia.

Nós ainda temos funções hash seguras, conforme afirma Barreto (2008). As funçõesSHA-512, SHA-1024 e Tiger, por exemplo, continuam seguras, pois ainda não houve sequerum ataque teórico e, obviamente, elas podem ser utilizadas para validar as mesma coisasque qualquer outra função hash. Mas além de garantir o uso de uma função criptográficasegura, é preciso que exista uma cadeia de custódia tão eficiente quanto.

Temos também a Criptografia de Curvas Elípticas que ainda é considerada segura,como descrevem Bos et al. (2009). No estudo de Bos et al. (2009) foi usado um cluster deduzentos PlayStation® 3 (PS3™) para avaliar os algoritmos SHA-1024 e a Criptografia deCurvas Elípticas de 160 bits. Como conclusão foi dado que “não existe nenhuma indicaçãode que os certificados que dependem de 1024 bits RSA terão de ser revogados [. . . ]. Damesma forma, não parece haver qualquer razão para estar preocupado com o uso contínuode 160 bits na Criptografia de Curvas Elípticas durante a próxima década”. (BOS et al.,2009, p. 12, tradução nossa).

Page 89: Validação de Dados Através de Hashes Criptográficos: Uma

3.2. Análise dos fatos 87

3.2.2 Perícia Forense Brasileira

Como as funções hash são amplamente utilizadas e acabam sendo boas ferramentaspara garantir a integridade dos dados, sua utilização é extremamente importante naperícia computacional. Afinal como foi visto na Figura 3, é necessário na primeira faseda investigação garantir a integridade dos dados coletados e, portanto, o uso de umhash inseguro invalida a garantia de integridade, e todas essas evidências podem serdesconsideradas em um julgamento pelo juiz.

Caso fosse utilizada uma função hash segura que provasse que não houve manipu-lação dos dados na perícia, as evidências digitais poderiam ser consideradas como provamais facilmente pelo juiz. O objetivo é portanto garantir que sejam utilizados apenasalgoritmos que sejam considerados seguros, e havendo um banimento de funções que nãosão mais consideradas seguras.

Outro problema encontrado está no método de trabalho da Perícia Forense Brasileira,como foi citado anteriormente basicamente inexiste uma Cadeia de Custódia nas unidadespericiais. Este problema não é exclusivo da Perícia Forense Computacional ou da ForenseDigital, e sim de todas as áreas periciais. Conforme podemos ver no Anexo A algumastabelas com respostas da pesquisa realizada pela Senasp (2012, p. 72–73) vemos o quãopreocupante é a situação das unidades de criminalística periciais brasileira. Com aslimitações observadas pelo estudo podemos indicar que há um déficit no volume e qualidadede trabalho pericial.

Para que os trabalhos periciais desenvolvidos tenham qualidade há as-pectos fundamentais que devem ser respeitados: a padronização dosprocedimentos operacionais, avaliação interna dos laudos produzidose um procedimento chamado cadeia de custódia dos vestígios, Estestrês aspectos são elementos fundamentais para assegurar a qualidade dotrabalho pericial. Senasp (2012 apud COSTA JÚNIOR, 2014, p. 51).

Não é comum, devido à inexistência da Cadeia de Custódia, vermos absurdos queacontecem com as evidências e outros bens que ficam de posse dos peritos. A utilizaçãoda cadeia de custódia, que armazenaria corretamente tudo isto, poderia evitar vermosmatérias ultrajantes como esta:

“O juiz federal Flávio Roberto de Souza, flagrado dirigindo, em 24 defevereiro, o Porsche do empresário Eike Batista, que ele mesmo apreendeu,sumiu com provas do processo contra um traficante de drogas paratentar encobrir o desaparecimento do dinheiro apreendido do criminoso”.(MARTINS, 2015).

Este exemplo apenas exemplifica um caso extremo do que pode acontecer com a au-sência da Cadeia de Custódia, além do desaparecimento, como citado na matéria, podemoster uma evidência invalidada por falta de segurança do hash ou no em armazenamento.

Page 90: Validação de Dados Através de Hashes Criptográficos: Uma

88 Capítulo 3. Aspectos Legais e Análise dos Fatos

3.2.3 Atual legislação

Além disso as leis que regem a área criptográfica já encontram-se desatualizadase foram mal escritas, pois não existe uma regência técnica, ou algum tipo de avaliaçãoque possa encorajar a pesquisa e a melhoria dos serviços. A exemplo disto, vemos o que éexposto no Anexo C que é registrado em União Europeia (2000, p. 18–20, tradução nossa)como requisitos da criação de assinaturas digitais. O material é muito amplo e sem muitodetalhamento.

É acertado considerar que as leis atuais foram facilitadoras da difusão e aceitaçãode operações no meio digital. “O arquivo e a cópia de dados de criação de assinaturaspode por em causa o reconhecimento legal das assinaturas digitais”. (UNIÃO EUROPEIA,2000, p. 13, grifos e tradução nossa).

Se há carência de pessoal, de equipamentos e de capacitação, mais do quetudo, a principal constatação deste diagnóstico aponta para a necessidadede reformulação da gestão da criminalística, sem o que o país seguirácarente de serviço tão fundamental para a proteção dos direitos humanos(das vítimas, dos acusados e dos criminosos) e para o fortalecimento doarcabouço probatório e a consequente redução da impunidade. (SENASP,2012, p. 2).

Recentemente a Senasp reforçou a segurança ao adotar o hash SHA-512, que segundoa Tabela 4 ainda é considerado seguro. “A integridade dos dados contidos na mídia anexadeve ser garantida por meio de utilização de uma ‘função de hash’ (SHA-512). Permite-se,dessa forma, a checagem futura de possíveis alterações dos dados gravados”. (SENASP,2013, p. 89).

Segundo Sudré Filho e Martinelli (2014, p. 299–302) o PJ-e foi desenvolvido emJava, e por isso o autor destaca que é necessário que haja certos cuidados com diferentesinterpretadores de Java, pois podem gerar incompatibilidade. Alerta também para o usode APIs que possam trazer fragilidades ao software. O autor também critica o uso dalinguagem Java, pois segundo ele tem um consumo maior de recursos se comparada aoutra linguagem.

“Acreditar que parte da segurança está em manter sigilo sobre o código-fonte é umconceito antigo e ineficaz e que pode gerar em seus desenvolvedores e usuários uma falsasensação de segurança”. (SUDRÉ FILHO; MARTINELLI, 2014, p. 299–300).

Outro aspecto que Sudré Filho e Martinelli (2014, p. 299–302) destaca, desta veznão sendo um aspecto técnico, é que não é facultado à sociedade o acesso ao seu código-fonte, fato que é dissonante a lei Brasil (2006) especificamente no artigo 14 que diz que osprogramas devem trabalhar com código aberto.

Page 91: Validação de Dados Através de Hashes Criptográficos: Uma

89

4 Considerações Finais

Concluímos então que o grande problema está na indevida utilização de algoritmoscriptográficos inseguros, que podem acarretar uma série de problemas. E que deveria havercerta preocupação e veto de insegurança por parte dos órgãos nacionais.

Como o foco deste trabalho é a perícia forense computacional, é sugerido que haja,primeiramente, uma criação de uma “blacklist” de funções que não são mais seguras,semelhante ao trabalho de Barreto (2008), só que esta listagem seja organizada por algumórgão nacional, e tem-se ciência que isto deveria ser trabalho da ICP-Brasil, órgão maisindicado a realizar este estudo.

Esta “blacklist” seria composta por todos os algoritmos inseguros, e que são inutili-záveis em algum processo. Qualquer estudo que aponte ao menos uma quebra teórica, jáseria motivo de instabilidade da função em questão. Esta “blacklist” poderia ser geridapor algum órgão nacional mas poderia ser alimentada de dados por pesquisadores da área.

Depois de criada essa “blacklist”, é necessário haver uma atualização das leis, paraque a partir disto os treinamentos e estudos direcionem a importância de escolher um bomalgoritmo a ser utilizado.

A criação desta lista de algoritmos criptográficos inseguros, aliado a melhoria dasleis poderá servir de modelo para que haja uma tentativa de padronização nos trabalhospericiais quanto a garantia de integridade dos dados.

É necessário também uma reformulação da perícia forense brasileira, não só aperícia computacional, mas ela por completo. Em Senasp (2012) vimos o quão sucateadose não-padronizados estão os centros de criminalística que acolhem os peritos. Além dissonão há um correto direcionamento de como deve ser feito o uso da criptografia na validaçãodeles. Vimos que a ICP-Brasil sempre passa detalhes técnicos e atualizações constantes decomo utilizar a criptografia para assinaturas digitais (ver Anexo B (ICP-BRASIL, 2014)).

4.1 Trabalhos Futuros

Dentro do contexto acadêmico podemos desenvolver um sistema de verificação dehashes em rede, semelhante ao que é encontrado na validação das transações com Bitcoin.A criação de um esquema deste, traria mais transparência na validação pericial não seriaapenas uma pessoa validando a integridade e sim uma rede de pessoas. Esta ideia pode serdesenvolvida em um trabalho futuro, mas antes necessitará de uma pesquisa aprofundadano assunto e um desenvolvimento de códigos maciço.

Page 92: Validação de Dados Através de Hashes Criptográficos: Uma

90 Capítulo 4. Considerações Finais

A nossa legislação também carece de melhorias, visto que ele foca o uso da criptogra-fia na comunicação e no comércio eletrônico. É preciso ampliar o campo da criptografia. Em2012 chegou a ser apresentado o Projeto de Lei Nº 3279 (BRASIL, 2012c), que melhorava asegurança dos processos eletrônicos. O Projeto de Lei era bem objetivo, logo no seu Artigo1º definia que “[. . . ] a obrigatoriedade do uso de criptografia em peticionamento eletrônico”.O projeto acabou apensado1 a alguns outros projetos de lei e acabara arquivado.

1 “Tramitação em conjunto. Propostas semelhantes são apensadas ao projeto mais antigo”. (CÂMARADOS DEPUTADOS, 2005).

Page 93: Validação de Dados Através de Hashes Criptográficos: Uma

91

Referências

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 27002: Tec-nologia da informação - Técnicas de segurança - Código de prática para controles desegurança da informação. 1. ed. Rio de Janeiro, 2013. 99 p. Citado 2 vezes nas páginas 33e 40.

BARBOSA JÚNIOR, Sérgio José. Crimes informáticos: breves considerações sobre osdelitos virtuais no ordenamento jurídico brasileiro. Jus Navigandi, Teresina, Ano 19,n. 4008, 22 jun. 2014. Disponível em: <http://jus.com.br/artigos/29634>. Acesso em: 19nov. 2014. Citado 2 vezes nas páginas 78 e 79.

BARRETO, Paulo Sérgio Licciardi Messeder. The Hash Function Lounge. 2008. Dis-ponível em: <http://www.larc.usp.br/~pbarreto/hflounge.html>. Acesso em: 19 nov. 2014.Citado 5 vezes nas páginas 61, 64, 71, 86 e 89.

BASTO, Fabrício Cristian. Computação Forense com Software Livre. Revista SegurançaDigital, n. 8, p. 12–15, set. 2012. Disponível em: <http://segurancadigital.info/sdinfo_downloads/revista_sd/8_edicao_setembro_30_09_2012.pdf>. Acesso em: 2 dez. 2014.Citado na página 45.

BELLARE, Mihir; CANETTI, Ran; KRAWCZYK, Hugo. Keying Hash Functions forMessage Authentication. In: KOBLITZ, Neal (Ed.). Advances in Cryptology —CRYPTO’96: 16th Annual International Cryptology Conference. Santa Barbara: Sprin-ger Berlin Heidelberg, 1996. (Lecture Notes in Computer Science, v. 1109), p. 1–15. ISBN978-3-540-68697-2. Disponível em: <http://dx.doi.org/10.1007/3-540-68697-5_1>. Acessoem: 6 maio 2015. Citado na página 57.

BIHAM, Eli; CHEN, Rafi. Near-Collisions of SHA-0. In: FRANKLIN, Matt (Ed.). Ad-vances in Cryptology – CRYPTO 2004. Springer Berlin Heidelberg, 2004, (LectureNotes in Computer Science, v. 3152). p. 290–305. ISBN 978-3-540-22668-0. Disponível em:<http://dx.doi.org/10.1007/978-3-540-28628-8_18>. Acesso em: 25 jun. 2015. Citado napágina 71.

BIRNFELD, Marco Antonio. Escreva Direito: prova e evidência têm definições diferentes.Revista Consultor Jurídico, 11 jun. 2004. Disponível em: <http://www.conjur.com.br/2004-jun-11/prova_evidencia_definicoes_diferentes>. Acesso em: 17 abr. 2015. Citadona página 42.

BOS, Joppe Willem et al. On the Security of 1024-bit RSA and 160-bit EllipticCurve Cryptography. 2009. Cryptology ePrint Archive, Report 2009/389. Disponívelem: <https://eprint.iacr.org/2009/389>. Acesso em: 2 jul. 2015. Citado na página 86.

BRASIL. Decreto-lei nº 3.689, de 3 de outubro de 1941. Rio de Janeiro, 1941. Dis-ponível em: <https://www.planalto.gov.br/ccivil_03/decreto-lei/Del3689.htm>. Acessoem: 4 maio 2015. Citado na página 40.

BRASIL. Medida provisória nº 2.200-2, de 24 de agosto de 2001. Bra-sília, 2001. 65 p. Disponível em: <http://www.jusbrasil.com.br/diarios/880997/

Page 94: Validação de Dados Através de Hashes Criptográficos: Uma

92 Referências

pg-65-secao-1-diario-oficial-da-uniao-dou-de-27-08-2001>. Acesso em: 3 jul. 2014. Citado2 vezes nas páginas 78 e 79.

BRASIL. Lei nº 11.419, de 19 de dezembro de 2006. Brasília, 2006. Disponível em:<http://www.planalto.gov.br/ccivil_03/_ato2004-2006/2006/lei/l11419.htm>. Acessoem: 21 maio 2015. Citado 3 vezes nas páginas 79, 80 e 88.

BRASIL. Lei nº 12.735, de 30 de novembro de 2012. Brasília, 2012. Disponível em:<http://www.planalto.gov.br/ccivil_03/_Ato2011-2014/2012/Lei/L12735.htm>. Acessoem: 19 nov. 2014. Citado 2 vezes nas páginas 78 e 79.

BRASIL. Lei nº 12.737, de 30 de novembro de 2012. Brasília, 2012. Disponível em:<http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2012/lei/l12737.htm>. Acessoem: 19 nov. 2014. Citado 2 vezes nas páginas 78 e 79.

BRASIL. Projeto de lei nº 3279/2012, de 28 de fevereiro de 2012. Brasília,2012. Disponível em: <http://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=535228>. Acesso em: 15 abr. 2015. Citado na página 90.

CÂMARA DOS DEPUTADOS.Apensação. 2005. Disponível em: <http://www2.camara.leg.br/camaranoticias/noticias/69896.html>. Acesso em: 5 maio 2015. Citado na página90.

CARROLL, Ovie; KROTOSKI, Mark L. Using “Digital Fingerprints” (or Hash Values)for Investigations and Cases Involving Electronic Evidence. In: DONOVAN, Jim (Ed.).United States Attorneys’ Bulletins. Columbia: Executive Office for United StatesAttorneys, 2014. v. 62, n. 3, p. 44–82. Disponível em: <http://www.justice.gov/sites/default/files/usao/legacy/2014/06/03/usab6203.pdf>. Acesso em: 9 mar. 2015. Citado 2vezes nas páginas 41 e 61.

CENTRO DE ESTUDOS, RESPOSTA E TRATAMENTO DE INCIDENTES DE SEGU-RANÇA NO BRASIL. Estatísticas dos Incidentes Reportados ao CERT.br. SãoPaulo, 2015. Disponível em: <http://www.cert.br/stats/incidentes/>. Acesso em: 22 abr.2015. Citado 3 vezes nas páginas 34, 37 e 38.

CHABAUD, Florent; JOUX, Antoine. Differential Collisions in SHA-0. In: KRAWCZYK,Hugo (Ed.). Advances in Cryptology — CRYPTO ’98. Springer Berlin Heidelberg,1998, (Lecture Notes in Computer Science, v. 1462). p. 56–71. ISBN 978-3-540-64892-5. Disponível em: <http://dx.doi.org/10.1007/BFb0055720>. Acesso em: 25 jun. 2015.Citado na página 71.

COSTA JÚNIOR, Marcos Antonio Corrêa. A importância da utilização e da escolha dehashes criptográficos para a perícia forense computacional. Revista Eletrônica EngTech Science, Jaboatão dos Guararapes, v. 1, n. 1, p. 45–70, 2014. ISSN 2358-5226.Disponível em: <http://faculdadeguararapes.edu.br/revista/index.php/reets/article/view/14/20>. Acesso em: 21 jan. 2015. Citado 2 vezes nas páginas 41 e 87.

DIFFIE, Whitfield; HELLMAN, Martin E. New Directions in Cryptography. InformationTheory, IEEE Transactions on, v. 22, n. 6, p. 644–654, 6 nov. 1976. ISSN 0018-9448.Disponível em: <http://dx.doi.org/10.1109/TIT.1976.1055638>. Acesso em: 21 ago. 2013.Citado 2 vezes nas páginas 48 e 58.

Page 95: Validação de Dados Através de Hashes Criptográficos: Uma

Referências 93

ESTADOS UNIDOS. Electronic Signatures in Global and National CommerceAct. Washington, 2000. Disponível em: <http://legislink.org/us/stat-114-464>. Acessoem: 15 abr. 2015. Citado na página 84.

FREITAS, Andrey Rodrigues de. Perícia Forense Aplicada à Informática: ambientemicrosoft. 1. ed. Rio de Janeiro: Brasport, 2006. 216 p. ISBN 85-7452-226-0. Disponível em:<https://books.google.com.br/books?id=HT-MhC3RxR0C>. Acesso em: 21 dez. 2014.Citado 2 vezes nas páginas 85 e 86.

GOODRICH, Michael T.; TAMASSIA, Roberto. Introdução à Segurança de Com-putadores. Porto Alegre: Bookman, 2013. 568 p. ISBN 9788540701922. Citado 5 vezesnas páginas 33, 34, 35, 36 e 38.

GOYA, Denise Hideko.Proposta de Esquemas de Criptografia e de Assinatura sobModelo de Criptografia de Chave Pública sem Certificado. Dissertação (Mestrado)— Universidade de São Paulo, São Paulo, jul. 2006. Citado 3 vezes nas páginas 52, 54 e 74.

HAWKES, Philip; PADDON, Michael; ROSE, Gregory G. On Corrective Patterns forthe SHA-2 Family. 2004. Disponível em: <http://eprint.iacr.org/2004/207>. Acessoem: 25 jul. 2015. Citado 2 vezes nas páginas 53 e 72.

INFRAESTRUTURA DE CHAVES PÚBLICAS BRASILEIRA. Padrões e Al-goritmos Criptográficos da ICP-Brasil. Brasília, 2014. Versão 2.5. Disponívelem: <http://www.iti.gov.br/images/legislacao/Docicp/DOC-ICP-01.01_-_versao_2.5_PADROES_E_ALGORITMOS_CRIPTOGRAFICOS_DA_ICP-BRASIL.pdf>. Acessoem: 29 maio 2015. Citado na página 89.

KATZ, Jonathan; LINDELL, Yehuda. Introduction to Modern Cryptography. 2. ed.Boca Raton: Chapman & Hall/CRC Press, 2014. 603 p. ISBN 978-1-4665-7026-9. Citado9 vezes nas páginas 48, 49, 50, 52, 53, 56, 57, 59 e 60.

KERCKHOFFS, Auguste. La cryptographie militaire. Journal des Sciences Militaires,IX, p. 5–38, jan. 1883. Disponível em: <https://www.bibnum.education.fr/sites/default/files/kerckhoffs-texte.pdf>. Acesso em: 21 dez. 2014. Citado na página 51.

KOBLITZ, Neal I. Elliptic curve cryptosystems. Mathematics of Computation, v. 48,n. 177, p. 203–209, jan. 1987. ISSN 1088-6842. Disponível em: <http://dx.doi.org/10.1090/S0025-5718-1987-0866109-5>. Acesso em: 10 jun. 2015. Citado na página 74.

KÖCHE, José Carlos. Fundamentos de metodologia científica: Teoria da ciência einiciação à pesquisa. 2. ed. Petrópolis: Vozes, 2007. 181 p. ISBN 978-8-5326-1804-7. Citadona página 31.

LACORTE, Christiano Vítor de Campos. A validade jurídica do documento digital. JusNavigandi, Ano 11, n. 1078, 14 jun. 2006. Disponível em: <http://jus.com.br/artigos/8524>. Acesso em: 2 jan. 2015. Citado 3 vezes nas páginas 78, 83 e 84.

LESSA, Breno Minucci. A invalidade das provas digitais no processo judiciário. ConteúdoJurídico, Brasília, 2 dez. 2009. Disponível em: <http://www.conteudojuridico.com.br/?artigos&ver=2.25613&seo=1>. Acesso em: 2 jul. 2015. Citado na página 79.

LIMA, George Marmelstein. e-Processo: uma verdadeira revolução procedimental. 2002.Disponível em: <http://egov.ufsc.br/portal/sites/default/files/anexos/30204-30867-1-PB.pdf>. Acesso em: 25 maio 2015. Citado na página 81.

Page 96: Validação de Dados Através de Hashes Criptográficos: Uma

94 Referências

MAGALHÃES, Dimmy Karson Soares; QUEIROZ, Ruy José Guerra Barretto de. Curvaselípticas aplicadas à criptografia. V Escola Regional de Informática: Ceará, Piauíe Maranhão, Teresina, 2011. Disponível em: <http://www.die.ufpi.br/ercemapi2011/artigos/ST2_07.pdf>. Acesso em: 8 jun. 2015. Citado 3 vezes nas páginas 73, 74 e 75.

MARCACINI, Augusto Tavares Rosa. Direito e informática: uma abordagem jurídicasobre a criptografia. São Paulo: Lulu. com, 2010. 190 p. ISBN 978-0-5574-7303-8. Citado3 vezes nas páginas 39, 51 e 81.

MARTINELLI, Creud Pereira Santos; TERCIOTTI, Sandra Helena. Hieróglifo. In: .Michaelis Moderno Dicionário da Língua Portuguesa. São Paulo: Melhoramentos,2012. (Dicionário Online - Dicionários Michaelis - UOL). ISBN 978-85-06-06953-0. Dispo-nível em: <http://michaelis.uol.com.br/moderno/portugues/definicao/hieroglifo_978213.html>. Acesso em: 8 ago. 2014. Citado na página 27.

MARTINS, Marco Antônio. Ex-juiz do caso Eike sumiu com provas de processo contratraficante. Folha de São Paulo, São Paulo, 15 mar. 2015. Disponível em: <http://folha.com/no1602511>. Acesso em: 2 jul. 2015. Citado na página 87.

MELO, Sandro. Computação Forense com Software Livre. Rio de Janeiro: AltaBooks, 2009. 168 p. ISBN 978-8-5760-8288-0. Citado na página 40.

MILLER, Victor S. Use of Elliptic Curves in Cryptography. In: WILLIAMS, Hugh C. (Ed.).Advances in Cryptology — CRYPTO ’85 Proceedings. Springer Berlin Heidelberg,1986, (Lecture Notes in Computer Science, v. 218). p. 417–426. ISBN 978-3-540-16463-0.Disponível em: <http://dx.doi.org/10.1007/3-540-39799-X_31>. Acesso em: 10 jun. 2015.Citado na página 74.

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Secure HashStandard (SHS). FIPS PUB 180-1. Washington, 1995. Federal Information ProcessingStandards Publications. Disponível em: <http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA406543>. Acesso em: 15 jun. 2015. Citado 4 vezesnas páginas 68, 69, 70 e 71.

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Secure Hash Stan-dard (SHS). FIPS PUB 180-4. Washington, 2015. Federal Information Processing Stan-dards Publications. Disponível em: <http://dx.doi.org/10.6028/NIST.FIPS.180-4>. Acessoem: 26 ago. 2015. Citado na página 68.

NEUKAMP, Paulo Alberto. FDTK. 2007. Disponível em: <http://fdtk.com.br/>. Acessoem: 2 dez. 2014. Citado 2 vezes nas páginas 41 e 45.

OLIVEIRA, Ronielton Rezende. Criptografia simétrica e assimétrica: os principais algorit-mos de cifragem. Revista Segurança Digital, Brasília, n. 5, p. 11–15, 2012. Disponívelem: <http://segurancadigital.info/sdinfo_downloads/revista_sd/5_edicao_marco_31_03_2012.pdf>. Acesso em: 30 abr. 2015. Citado na página 58.

OLIVEIRA, Ronielton Rezende. Criptografia simétrica e assimétrica: os principais algorit-mos de cifragem. Revista Segurança Digital, Brasília, n. 6, p. 21–24, 2012. Disponívelem: <http://segurancadigital.info/sdinfo_downloads/revista_sd/6_edicao_maio_31_05_2012.pdf>. Acesso em: 30 abr. 2015. Citado na página 58.

Page 97: Validação de Dados Através de Hashes Criptográficos: Uma

Referências 95

PEREIRA, Evandro Della Vecchia. Investigação digital: conceitos, ferramentase estudos de caso. III Congresso Tecnológico TI e Telecom InfoBrasil2010, Fortaleza, maio 2010. Disponível em: <http://www.infobrasil.inf.br/userfiles/26-05-S5-2-68766-InvestigacaoDigital.pdf>. Acesso em: 2 dez. 2014. Citado 3 vezesnas páginas 43, 44 e 46.

PEREIRA, Evandro Della Vecchia et al. Forense computacional: fundamentos, tecnologiase desafios atuais. VII Simpósio Brasileiro em Segurança da Informação e deSistemas Computacionais, p. 3–53, 2007. Citado 6 vezes nas páginas 35, 36, 38, 42,46 e 48.

PRODANOV, Cleber Cristiano; FREITAS, Ernani Cesar de. Metodologia do tra-balho científico: Métodos e Técnicas da Pesquisa e do Trabalho Acadêmico. 2. ed.Novo Hamburgo: Universidade Feevale, 2013. 276 p. ISBN 978-85-7717-158-3. Disponí-vel em: <http://www.feevale.br/Comum/midias/8807f05a-14d0-4d5b-b1ad-1538f3aef538/E-bookMetodologiadoTrabalhoCientifico.pdf>. Acesso em: 12 abr. 2014. Citado 2 vezesnas páginas 31 e 32.

QUEIROZ, Ruy José Guerra Barretto de; OLIVEIRA, Anjolina Grisi de. Introduçãoà Criptografia Moderna. CIn – UFPE. Recife, 2013. Slides de aula da disciplinaFundamentos da Criptografia Moderna. Citado 4 vezes nas páginas 49, 53, 56 e 57.

REINO UNIDO. Electronic Communications Act 2000. Reino Unido, 2000. Disponí-vel em: <http://www.legislation.gov.uk/ukpga/2000/7/pdfs/ukpga_20000007_en.pdf>.Acesso em: 12 maio 2014. Citado na página 83.

RIJMEN, Vincent; OSWALD, Elisabeth. Update on SHA-1. In: MENEZES, Alfred (Ed.).Topics in Cryptology – CT-RSA 2005. Springer Berlin Heidelberg, 2005, (LectureNotes in Computer Science, v. 3376). p. 58–71. ISBN 978-3-540-24399-1. Disponível em:<http://dx.doi.org/10.1007/978-3-540-30574-3_6>. Acesso em: 25 jun. 2015. Citado 2vezes nas páginas 61 e 71.

RIVEST, Ronald L. The MD4 Message Digest Algorithm. In: Proceedings of the10th Annual International Cryptology Conference on Advances in Cryptology.London: Springer-Verlag, 1991. (CRYPTO ’90), p. 303–311. ISBN 3-540-54508-5. Disponívelem: <http://dl.acm.org/citation.cfm?id=646755.705223>. Acesso em: 29 out. 2013. Citadona página 65.

RIVEST, Ronald L. The MD5 Message-Digest Algorithm. Cambridge, 1992. RFC1321. Disponível em: <http://dx.doi.org/10.17487/RFC1321>. Acesso em: 29 out. 2013.Citado na página 66.

ROY, Matthew B. An Analysis of the Applicability of Federal Law RegardingHash-Based Searches of Digital Media. Dissertação (Mestrado) — Naval Postgradu-ate School, Monterey, jun. 2014. Disponível em: <http://hdl.handle.net/10945/42714>.Acesso em: 11 fev. 2015. Citado 2 vezes nas páginas 61 e 84.

RUSCHEL, Aírton José; LAZZARI, João Batista; ROVER, Aires José. O ProcessoJudicial Eletrônico no Brasil: Uma visão geral. In: COÊLHO, Marcus Vinicius Furtado;ALLEMAND, Luiz Cláudio (Ed.). Processo Judicial Eletrônico. Brasília: Ordem dosAdvogados do Brasil, 2014. p. 13–28. Disponível em: <http://www.oab.org.br/arquivos/processo-judicial-eletronico-1397235220.pdf>. Acesso em: 26 maio 2015. Citado na página80.

Page 98: Validação de Dados Através de Hashes Criptográficos: Uma

96 Referências

SCHNEIER, Bruce. Applied Cryptography: Protocols, Algorithms, and Source Codein C. 2. ed. New York: Wiley, 1996. 758 p. ISBN 0-471-11709-9. Citado na página 51.

SECRETARIA NACIONAL DE SEGURANÇA PÚBLICA. Diagnóstico da PeríciaCriminal no Brasil. Brasília, 2012. 107 p. Disponível em: <http://bibspi.planejamento.gov.br/handle/iditem/300>. Acesso em: 11 mar. 2015. Citado 9 vezes nas páginas 40, 41,42, 43, 45, 47, 87, 88 e 89.

SECRETARIA NACIONAL DE SEGURANÇA PÚBLICA. Procedimentooperacional padrão: perícia criminal. Brasília, 2013. 242 p. Disponível em:<http://www.politec.mt.gov.br/UserFiles/file/Documentos/POPS_DE_PERICIA_-_VERSAO_PARA_INTERNET.pdf>. Acesso em: 11 mar. 2015. Citado 6 vezes naspáginas 43, 44, 45, 46, 47 e 88.

SILVA, Vinicius Amorim; OLIVEIRA, Cleber Henrique de. Análise de ferramentas livrespara perícia forense computacional. Caderno de Estudos Tecnológicos, v. 2, n. 1,p. 110–132, 2014. Disponível em: <http://www.fatecbauru.edu.br/ojs/index.php/CET/article/view/119>. Acesso em: 2 dez. 2014. Citado na página 45.

STINSON, Douglas R. Cryptography: Theory and Practice. 3. ed. Boca Raton: Taylor& Francis, 2006. 616 p. ISBN 9781584885085. Citado 5 vezes nas páginas 49, 50, 54, 60e 67.

SUDRÉ FILHO, Gilberto Neves; MARTINELLI, Gustavo Gobi. Processo Judicial Ele-trônico: Aspectos Tecnológicos e da Segurança da Informação. In: COÊLHO, Mar-cus Vinicius Furtado; ALLEMAND, Luiz Cláudio (Ed.). Processo Judicial Eletrô-nico. Brasília: Ordem dos Advogados do Brasil, 2014. p. 297–306. Disponível em:<http://www.oab.org.br/arquivos/processo-judicial-eletronico-1397235220.pdf>. Acessoem: 26 maio 2015. Citado na página 88.

TILBORG, Henk C.A. van; JAJODIA, Sushil (Ed.). Encyclopedia of Cryptographyand Security. 2. ed. New York: Springer, 2011. ISBN 978-1-4419-5905-8. Disponível em:<https://dx.doi.org/10.1007/978-1-4419-5906-5>. Acesso em: 6 maio 2015. Citado 11vezes nas páginas 35, 39, 57, 58, 59, 68, 69, 70, 71, 72 e 74.

UNIÃO EUROPEIA. Directiva 1999/93/CE de 13 de Dezembro de 1999. Bruxelas,2000. 12–20 p. Disponível em: <http://eur-lex.europa.eu/legal-content/PT/TXT/PDF/?uri=CELEX:31999L0093&from=ES>. Acesso em: 11 jun. 2014. Citado 4 vezes naspáginas 77, 82, 83 e 88.

VALADARES, Francisco de Assis Mesquita. Uma avaliação crítica sobre os ataquesàs funções MD5 e SHA1. Monografia (Trabalho de graduação) — Universidade Federalde Pernambuco, Recife, 27 mar. 2006. Disponível em: <http://www.cin.ufpe.br/~tg/2005-2/famv.pdf>. Acesso em: 14 abr. 2014. Citado 5 vezes nas páginas 65, 68, 69, 70e 71.

WANG, Xiaoyun et al. Collisions for Hash Functions MD4, MD5, HAVAL-128 andRIPEMD. IACR Cryptology ePrint Archive, v. 2004, p. 199–203, 2004. Disponívelem: <http://eprint.iacr.org/2004/199>. Acesso em: 3 jan. 2015. Citado 4 vezes naspáginas 61, 67, 68 e 85.

Page 99: Validação de Dados Através de Hashes Criptográficos: Uma

Referências 97

WANG, Xiaoyun; YIN, Yiqun Lisa; YU, Hongbo. Finding Collisions in the Full SHA-1. In:SHOUP, Victor (Ed.). Advances in Cryptology – CRYPTO 2005. Springer BerlinHeidelberg, 2005, (Lecture Notes in Computer Science, v. 3621). p. 17–36. ISBN 978-3-540-28114-6. Disponível em: <http://dx.doi.org/10.1007/11535218_2>. Acesso em: 25jun. 2015. Citado 2 vezes nas páginas 61 e 71.

WANG, Xiaoyun; YU, Hongbo. How to Break MD5 and Other Hash Functions. In:CRAMER, Ronald (Ed.). Advances in Cryptology – EUROCRYPT 2005. SpringerBerlin Heidelberg, 2005, (Lecture Notes in Computer Science, v. 3494). p. 19–35. ISBN978-3-540-25910-7. Disponível em: <http://dx.doi.org/10.1007/11426639_2>. Acesso em:25 jun. 2015. Citado 3 vezes nas páginas 61, 68 e 85.

Page 100: Validação de Dados Através de Hashes Criptográficos: Uma
Page 101: Validação de Dados Através de Hashes Criptográficos: Uma

Anexos

Page 102: Validação de Dados Através de Hashes Criptográficos: Uma
Page 103: Validação de Dados Através de Hashes Criptográficos: Uma

72

Tabela 18 – ELEMENTOS DA CADEIA DE CUSTÓDIA NAS UNIDADES CENTRAIS DE CRIMINALÍSTICA, 2012

Sim Não

Há registro numérico da evidência no local de crime? 10 17

As evidências são lacradas no local de crime? 10 17

Há protocolo de recebimento e encaminhamento de evidências dentro da Unidade? 20 7

Há local seguro para guarda das evidências? 6 21

O local da guarda preserva as características das evidências? 9 18

O manuseio das evidências é feito apenas por profissionais responsáveis pela cadeia? 17 10

Existe rastreabilidade do manuseio das evidências (registro formal)? 7 20

Os procedimentos da cadeia de custódia são de conhecimento dos peritos? 18 9

RespostasPerguntas

Fonte: Secretaria Nacional de Segurança Pública/Ministério da Justiça - Diagnóstico da Perícia Criminal no Brasil, 2012.

Tabela 19 - ELEMENTOS DA CADEIA DE CUSTÓDIA NAS UNIDADES CENTRAIS DE MEDICINA LEGAL, 2012

Sim Não Não respondeu

Há registro numérico da evidência no local de crime? 4 23 0

As evidências são lacradas no local de crime? 5 22 0

Há protocolo de recebimento e encaminhamento de evidências dentro da Unidade? 16 11 0

Há local seguro para guarda das evidências? 8 19 0

O local da guarda preserva as características das evidências? 9 18 0

O manuseio das evidências é feito apenas por profissionais responsáveis pela cadeia? 12 15 0

Existe rastreabilidade do manuseio das evidências (registro formal)? 7 20 0

Os procedimentos da cadeia de custódia são de conhecimento dos médicos e odonto legistas? 17 9 1

PerguntasRespostas

Fonte: Secretaria Nacional de Segurança Pública/Ministério da Justiça - Diagnóstico da Perícia Criminal no Brasil, 2012.

101

ANEXOA

–Diagnóstico

daPerícia

Criminal

noBrasil

Page 104: Validação de Dados Através de Hashes Criptográficos: Uma

73

Tabela 20 - ELEMENTOS DA CADEIA DE CUSTÓDIA NAS UNIDADES CENTRAIS DE IDENTIFICAÇÃO, 2012

Sim Não Não se aplica Não respondeu

Existe registro numérico da evidência papiloscópica no local de crime? 9 15 1 2

Evidências papiloscópicas são lacradas no local de crime? 7 17 1 2

Há protocolo de recebimento e encaminhamento de evidências papiloscópicas dentro da Unidade? 15 9 1 2

Há local seguro para guarda das evidências papiloscópicas? 6 18 1 2

Existe o local da guarda para preservar as características das evidências papiloscópicas? 9 15 1 2

O manuseio das evidências papiloscópicas é feito apenas por profissionais responsáveis pela cadeia? 13 11 1 2

Existe rastreabilidade do manuseio das evidências papiloscópicas (registro formal)? 8 16 1 2

Os procedimentos da cadeia de custódia são de conhecimento dos papiloscopistas? 16 6 1 4

RespostasPerguntas

Fonte: Secretaria Nacional de Segurança Pública/Ministério da Justiça - Diagnóstico da Perícia Criminal no Brasil, 2012.

Tabela 21 - ELEMENTOS DA CADEIA DE CUSTÓDIA NOS LABORATÓRIOS AUTÔNOMOS, 2012

Sim Não Não respondeu Não se aplica Outra situação¹

Há registro numérico da evidência no local de crime? 0 10 1 0 0

As evidências são lacradas no local de crime? 0 10 1 0 0

Há protocolo de recebimento e encaminhamento de evidências dentro da Unidade? 9 2 0 0 0

Há local seguro para guarda das evidências? 6 5 0 0 0

O local da guarda preserva as características das evidências? 7 4 0 0 0

O manuseio das evidencias é feita apenas por profissionais responsáveis pela cadeia? 7 4 0 0 0

Existe rastreabilidade do manuseio das evidências (registro formal)? 7 4 0 0 0

Os procedimentos da cadeia de custódia são de conhecimento dos peritos? 8 0 0 1 2

RespostasPergunta

1. Duas UFs responderam que os peritos conhecem parcialmente os procedimentos da cadeia de custódia. Fonte: Secretaria Nacional de Segurança Pública/Ministério da Justiça - Diagnóstico da Perícia Criminal no Brasil, 2012.

102ANEX

OA.Diagnóstico

daPerícia

Crim

inalnoBrasil

Page 105: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

PADRÕES E ALGORITMOS

CRIPTOGRÁFICOS

DA ICP-BRASIL

(DOC ICP-01.01)

Versão 2.5

10 de julho de 2014

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 1/10

103

ANEXO B – Padrões e AlgoritmosCriptográficos da ICP-Brasil

Page 106: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

CONTROLE DE ALTERAÇÕES

Resolução que aprovou alteração

Item Alterado Descrição da Alteração

IN 03, de 10.07.2014(Versão 2.5)

Acrescenta NOTA (1) às tabelas referentes a geração de chaves assimétricas, do item 2, do DOC-ICP-01.01, versão 2.4.

Esclarece a manutenção de SHA1 e tamanho de chaves RSA para preservar compatibilidade de certificados anteriores a 2012.

IN 01, de 04.06.2014(Versão 2.4)

Tabelas de Geração de Chaves Assimétricas de AC e de usuário final (pág. 4).

Substituição das Curvas Elípticas NIST pelo ECC Brainpool.

Resolução 89, de 05.07.2012(Versão 2.3)

Substitui s NOTA (4) e acrescenta-se a NOTA (5) ao item 3, do DOC-ICP-01.01, versão 2.2

Estabelece condição transitória para o requisito de obrigatoriedade de homologação ICP-BRASIL para equipamentos de certificação digital.

Resolução 85, de 09.11.2011(Versão 2.2)

Acrescenta as NOTAS (3) e (4) ao item 3, do DOC-ICP-01.01, versão 2.1

Estabelece condição transitória para o requisito de obrigatoriedade de homologação ICP-BRASIL para equipamentos de certificação digital.

IN 8, de 01.10.2010(Versão 2.1)

Aprova e autoriza a disponibilização no sítio do ITI, os documentos DOC-ICP-01.01 em sua Versão 2.1; DOC-ICP-10.02 em sua Versão 3.0; DOC-ICP-10.07 em sua Versão 1.0.

Resolução 65, de 09.06.2009(Versão 2.0)

Aprova a versão 2.0 do documento Padrões e Algorítimos Criptografados da ICP-BRASIL, e o plano de migração relacionado.

IN 3, de 22.10.2008(Versão 1.1)

Altera o documento Padrões e Algorítimos Criptografados da ICP-BRASIL

IN 4, de 18.05.2006(Versão 1.0)

Aprova a versão 1.0 do documento Padrões e Algorítimos Criptografados da ICP-BRASIL

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 2/10

104 ANEXO B. Padrões e Algoritmos Criptográficos da ICP-Brasil

Page 107: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

1. INTRODUÇÃO

Este documento regulamenta os padrões de hardware, os algoritmos e parâmetros criptográficos a serem empregados em todos os processos realizados no âmbito da Infra-estrutura de Chaves Públicas Brasileira (ICP-Brasil), que incluem, entre outros:

a) geração de chaves criptográficas;

b) solicitação, emissão e revogação de certificados digitais;

c) geração e verificação de assinaturas digitais;

d) cifração de mensagens;

e) autenticação com certificados digitais.

As diretrizes aqui constantes devem ser obrigatoriamente observadas pelas Autoridades Certificadoras, Autoridades de Registro, Prestadores de Serviço de Suporte, Empresas de Auditoria Independente, Laboratórios de Ensaios e Auditoria, e outras entidades credenciadas ou cadastradas na ICP-Brasil, bem como pelos titulares finais e desenvolvedores de aplicativos que utilizam certificados digitais da ICP-Brasil.

2. APLICABILIDADE DOS ALGORITMOS E PARÂMETROS CRIPTOGRÁFICOS

Esta Seção relaciona os principais procedimentos que envolvem criptografia, no âmbito da ICP-Brasil, com os algoritmos e parâmetros que devem ser utilizados, obrigatoriamente, para sua execução, e também com os documentos normativos que tratam desses procedimentos.

Solicitação de Certificados à AC

Normativo ICP-Brasil

DOC-ICP-01 - item 4.1.2DOC-ICP-01 - item 6.1.3.1DOC-ICP-04 - item 6.1.3DOC-ICP-05 - item 4.1.3

Formato Padrão PKCS#10

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 3/10

105

Page 108: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

Entrega de Certificados Emitidos pela AC

Normativo ICP-Brasil

DOC-ICP-01 - item 4.2.4DOC-ICP-01 - item 6.1.4.1DOC-ICP-04 - item 6.1.4DOC-ICP-05 - item 6.1.4

Formato Padrão PKCS#7

Geração de Chaves Assimétricas de AC

Normativo ICP-Brasil

DOC-ICP-01 - item 6.1.1.3DOC-ICP-04 - item 6.1.1.3DOC-ICP-01 - item 6.1.5DOC-ICP-05 - item 6.1.5

Algoritmo RSA, ECC-Brainpool (conforme RFC 5639)

Tamanho de chave RSA 2048, RSA 4096, brainpoolP512r1

Nota (1): A função hash SHA-1 e os algoritmos criptográficos RSA 1024 bits para certificados de usuário final e RSA 2048 bits para certificados de AC NÃO DEVEM mais ser utilizados, a partir de 2012, nas emissões de certificados digitais, inclusive em suas requisições, conforme anexo II da Resolução n° 68. Suas previsões encontram-se nos normativos da ICP-Brasil somente para preservar a compatibilidade com os certificados emitidos até o final de 2011.

Geração de Chaves Assimétricas de Usuário Final

Normativo ICP-Brasil DOC-ICP-04 - item 6.1.5.2

Algoritmo RSA, ECC-Brainpool (conforme RFC 5639)

Tamanho de chave A1, A2, A3, S1, S2, S3, T3 RSA 1024, RSA 2048, brainpoolP256r1

Tamanho da chave A4, S4, T4 RSA 2048, RSA 4096, brainpoolP512r1

Ver Nota (1).

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 4/10

106 ANEXO B. Padrões e Algoritmos Criptográficos da ICP-Brasil

Page 109: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

Assinatura de Certificados de AC

Normativo ICP-BrasilDOC-ICP-01 - item 7.1.3DOC-ICP-01 - item 7.2.3DOC-ICP-05 - item 7.2.3

Suíte de Assinatura sha1WithRSAEncryptionsha512WithRSAEncryptionsha512WithECDSAEncryption

Assinatura de Certificados de Usuário Final

Normativo ICP-Brasil DOC-ICP-04 - item 7.1.3

Suíte de Assinatura

sha1WithRSAEncryptionsha256WithRSAEncryptionsha256WithECDSAEncryptionsha512WithRSAEncryptionsha512WithECDSAEncryption

Assinatura de Listas de Certificados Revogados e Respostas OCSP

Normativo ICP-BrasilDOC-ICP-01 - item 7.3DOC-ICP-04 - item 7.2DOC-ICP-05 - item 7.3

Algoritmo de Assinatura

sha1WithRSAEncryptionsha256WithRSAEncryptionsha256WithECDSAEncryptionsha512WithRSAEncryptionsha512WithECDSAEncryption

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 5/10

107

Page 110: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

Guarda da Chave Privada da Entidade Titular e de seu Backup

Normativo ICP-BrasilDOC-ICP-04 - item 6.1.1.4DOC-ICP-04 - item 6.2.4.3DOC-ICP-05 - item 6.2.4.4

Algoritmo e Tamanho de chave 3DES – 112 bitsAES – 128 ou 256 bits

Modo de operação CBC ou GCM

Assinaturas Digitais ICP-Brasil CAdES e XAdES

Normativo ICP-Brasil DOC-ICP-15, item 6.1

Função resumoSHA - 1 SHA - 256SHA - 512

Suíte de Assinatura

sha1WithRSAEncryption sha256WithRSAEncryptionsha256WithECDSAEncryptionsha512WithRSAEncryptionsha512WithECDSAEncryption

Assinatura de Pedidos e Respostas de Carimbos do Tempo

Normativo ICP-Brasil DOC-ICP-12, item 7.2

Função resumoSHA - 1 SHA - 256SHA - 512

Suíte de Assinatura

sha1WithRSAEncryption sha256WithRSAEncryptionsha256WithECDSAEncryptionsha512WithRSAEncryptionsha512WithECDSAEncryption

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 6/10

108 ANEXO B. Padrões e Algoritmos Criptográficos da ICP-Brasil

Page 111: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

Esquemas de Acordos de Chaves

ECDH256 ou ECMQV256

ECDH512 ou ECMQV512

RSA 1024

RSA 2048

RSA 4096

Esquema de Envelopes Criptográficos

3desWithRSA1024Encryption

3desWithRSA2048Encryption

aes128WithRSA2048Encryption

aes256WithRSA4096Encryption

aes128WithECIES256Encryption

aes256WithECIES512Encryption

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 7/10

109

Page 112: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

3. PADRÕES DE HARDWARE

A tabela a seguir relaciona os padrões mínimos a serem empregados nos hardware criptográficos com sua utilização na ICP-Brasil e com os documentos normativos que tratam dessa utilização.

UtilizaçãoPadrões

Obrigatórios (1)Padrões Transitórios

(2)Normativo

Módulo criptográfico de geração de chaves assimétricas de usuário final

Homologação da ICP-Brasil

FIPS 140-1 ou FIPS 140-2

DOC-ICP-04 item 6.2.1

DOC-ICP-05 item 6.2.1.2

Módulo criptográfico para armazenamento da chave privada de titular do certificado

Homologação da ICP-Brasil

FIPS 140-1 ou FIPS 140-2DOC-ICP-04

item 6.8

Parâmetros de geração de chaves assimétricas de usuário final

Homologação da ICP-Brasil

FIPS 140-1 ou FIPS 140-2DOC-ICP-04

item 6.1.6

Módulo criptográfico de geração de chaves assimétricas de AC

Homologação da ICP-Brasil NSH-2

FIPS 140-1 nível 2 (para a cadeia de certificação V0); ou FIPS 140-2 nível 2 (para a cadeia de certificação V1); ou FIPS 140-2 nível 3 (para cadeia de certificação V2 e V3)

DOC-ICP-05 item 6.2.1.1

Módulo criptográfico para armazenamento da chave privada de AC

Homologação da ICP-Brasil NSH-2

FIPS 140-1 nível 2 (para a cadeia de certificação V0); ou FIPS 140-2 nível 2 (para a cadeia de certificação V1); ou FIPS 140-2 nível 3 (para cadeia de certificação V2 e V3)

DOC-ICP-05 item 6.8

Parâmetros de geração de chaves assimétricas de AC

Homologação da ICP-Brasil NSH-2

FIPS 140-1 nível 2 (para a cadeia de certificação V0); ou FIPS 140-2 nível 2 (para a cadeia de certificação V1); ou FIPS

DOC-ICP-05 item 6.1.6

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 8/10

110 ANEXO B. Padrões e Algoritmos Criptográficos da ICP-Brasil

Page 113: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

UtilizaçãoPadrões

Obrigatórios (1)Padrões Transitórios

(2)Normativo

140-2 nível 3 (para cadeia de certificação V2 e V3)

Módulo criptográfico de geração de chaves assimétricas da AC Raiz

Homologação da ICP-Brasil NSH-3

FIPS 140-1 nível 3 (para a cadeia de certificação V0); ou FIPS 140-2 nível 3 (para a cadeia de certificação V1, V2 e V3)

DOC-ICP-01 item 6.2.1

Módulo criptográfico para armazenamento da chave privada da AC Raiz

Homologação da ICP-Brasil NSH-3

FIPS 140-1 nível 3 (para a cadeia de certificação V0); ou FIPS 140-2 nível 3 (para a cadeia de certificação V1, V2 e V3)

DOC-ICP-01item 6.8

Parâmetros de geração de chaves assimétricas da AC Raiz

Homologação da ICP-Brasil NSH-3

FIPS 140-1 nível 3 (para a cadeia de certificação V0); ou FIPS 140-2 nível 3 (para a cadeia de certificação V1, V2 e V3)

DOC-ICP-01item 6.1.6

Processo para verificação de parâmetros de geração de chaves assimétricas da AC Raiz

Homologação da ICP-Brasil NSH-3

FIPS 140-1 nível 3 (para a cadeia de certificação V0); ou FIPS 140-2 nível 3 (para a cadeia de certificação V1, V2 e V3)

DOC-ICP-01 item 6.1.7

DOC-ICP-04 item 6.1.7

DOC-ICP-05 item 6.1.7

Nota (1): A partir da data de publicação desta Resolução passa a ser requisito obrigatório a homologação dos dispositivos de hardware acima discriminados junto à ICP-Brasil, observados, ainda, os Níveis de Segurança de Homologação (NSH) mínimos estabelecidos;

Nota (2): Tendo em vista a necessidade de se conceder prazo para que o mercado se adeque às exigências ora estabelecidas, admitir-se-á, transitoriamente, até 31/12/2010, para efeitos de auditorias e fiscalizações da ICP-Brasil, a apresentação de Protocolo de Habilitação Jurídica e Relatório de Análise Qualitativa emitido pelo LEA, referentes a Processo de Homologação da ICP-Brasil condizente com o NSH exigido ou ainda comprovante de Certificação FIPS 140-2 ou 140-1 no nível exigido. No período compreendido entre 01/01/2011 e 31/12/2011, para efeitos de auditorias e fiscalizações da ICP-Brasil, é admitido a apresentação do comprovante de Certificação FIPS 140-2 ou 140-1 no nível exigido.

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 9/10

111

Page 114: Validação de Dados Através de Hashes Criptográficos: Uma

Infraestrutura de Chaves Públicas Brasileira

Nota (3): Admitir-se-á, transitoriamente, até 30/06/2012, para efeitos de auditoria e fiscalização da ICP-Brasil, o uso de equipamentos de certificação digital não homologados pela ICP-Brasil, desde que os referidos equipamentos tenham sido depositados até 31/12/2011, em laboratório de ensaios e auditoria (LEA) credenciado na ICP-Brasil, para o início do processo de avaliação de conformidade.

Nota (4): Admitir-se-á, transitoriamente, entre 06/07/2012 e 31/12/2012, a emissão de certificados digitais em equipamentos não homologados, mas em processo de avaliação de conformidade pelo Laboratório de Ensaios e Auditoria (LEA), constantes no Anexo I desta Resolução.

Nota (5): O Laboratório de Ensaios e Auditoria (LEA) deverá entregar, individualmente, assim que concluído o processo de avaliação de conformidade, até o dia 31/12/2012, cópia dos referidos laudos, mediante o envio de mensagem de correio eletrônico para o endereço [email protected], assinada digitalmente com uso de certificado digital ICP-Brasil.

4. DOCUMENTOS REFERENCIADOS

Os documentos abaixo são aprovados por Resolução do Comitê-Gestor da ICP-Brasil e podem ser alterados, quando necessário, pelo mesmo dispositivo legal. O sítio http://www.iti.gov.br disponibiliza as versões atualizadas de todos os documentos e as Resoluções que os aprovaram.

Ref Nome do documento Código

[1] DECLARAÇÃO DE PRÁTICAS DE CERTIFICAÇÃO DA AUTORIDADE CERTIFICADORA RAIZ DA ICP-BRASIL

DOC-ICP-01

[2] REQUISITOS MÍNIMOS PARA AS POLÍTICAS DE CERTIFICADO NA ICP-BRASIL

DOC-ICP-04

[3] REQUISITOS MÍNIMOS PARA AS DECLARAÇÕES DE PRÁTICAS DE CERTIFICAÇÃO DAS AUTORIDADES CERTIFICADORAS DA ICP-BRASIL

DOC-ICP-05

[4] REQUISITOS MÍNIMOS PARA AS DECLARAÇÕES DE PRÁTICAS DAS AUTORIDADES DE CARIMBO DO TEMPO DA ICP-BRASIL

DOC-ICP-12

[5] VISÃO GERAL SOBRE ASSINATURAS DIGITAIS NA ICP-BRASIL DOC-ICP-15

[6] GLOSSÁRIO DA ICP-BRASIL

Padrões e Algoritmos Criptográficos da ICP-Brasil (DOC ICP-01.01) Versão 2.5 10/10

112 ANEXO B. Padrões e Algoritmos Criptográficos da ICP-Brasil

Page 115: Validação de Dados Através de Hashes Criptográficos: Uma

PT Jornal Oficial das Comunidades Europeias 19. 1. 2000L 13/18

ANEXO I

Requisitos aplicáveis aos certificados qualificados

Um certificado qualificado deve conter:

a) Uma indicação de que o certificado é emitido como certificado qualificado;

b) A identificação do prestador de serviços de certificação e o país em que está estabelecido;

c) O nome do signatário ou um pseudónimo, que deve ser identificado como tal;

d) Uma cláusula para a inclusão, se relevante, de um atributo específico do signatário, segundo os objectivos visados coma emissão do certificado;

e) Os dados de verificação de assinaturas correspondentes aos dados de criação de assinaturas que estejam sob o controlodo signatário;

f) Identificação da data de início e de fim do prazo de validade do certificado;

g) O código de identidade do certificado;

h) A assinatura electrónica avançada do prestador de serviços de certificação que o emite;

i) As restrições ao âmbito de utilização do certificado, se for o caso; e

j) As restrições ao valor das transacções nas quais o certificado pode ser utilizado, se for o caso.

113

ANEXO C – Directiva 1999/93/CE de 13de Dezembro de 1999

Page 116: Validação de Dados Através de Hashes Criptográficos: Uma

PT Jornal Oficial das Comunidades Europeias19. 1. 2000 L 13/19

ANEXO II

Requisitos aplicáveis aos prestadores de serviços de certificação que emitem certificados qualificados

Os prestadores de serviços de certificação devem:

a) Demonstrar a fiabilidade necessária para a prestação de serviços de certificação;

b) Assegurar o funcionamento de um serviço de reportório rápido e seguro e de um serviço de anulação seguro eimediato;

c) Assegurar com precisão a possibilidade de verificação da data e hora de emissão ou anulação de cada certificado;

d) Verificar, através dos meios adequados e de acordo com a legislação nacional, a identidade e, se for caso disso, osatributos específicos da entidade ou pessoa singular ou colectiva à qual é emitido um certificado qualificado;

e) Empregar pessoal que possua os conhecimentos, experiência e qualificações necessários para os serviços prestados,nomeadamente competência em matéria de gestão e das tecnologias de assinaturas electrónicas, bem como familiari-dade com os processos de segurança adequados; devem ainda saber aplicar processos administrativos e de gestão quesejam adequados e correspondam a normas reconhecidas;

f) Utilizar sistemas e produtos fiáveis que estejam protegidos contra modificações e que garantam a segurança técnica ecriptográfica dos processos para os quais estejam previstos;

g) Tomar medidas contra a falsificação de certificados e, nos casos em que o prestador de serviços de certificação geredados de criação de assinaturas, garantir a confidencialidade durante o processo de criação desses dados;

h) Ser dotados de recursos financeiros suficientes para actuarem de acordo com os requisitos constantes da presentedirectiva, nomeadamente para assumirem os riscos decorrentes da responsabilidade por danos, por exemplo através deuma apólice de seguro adequada;

i) Registar todas as informações relevantes relativas a um certificado qualificado durante um período de tempo adequado,nomeadamente para fornecer elementos de prova de certificação para efeitos processuais. Este registo poderá ser feitoelectronicamente;

j) Não armazenar ou copiar dados de criação de assinaturas da pessoa a quem o prestador de serviços de certificaçãotenha oferecido serviços de gestão de chaves;

k) Antes de iniciar uma relação contratual com uma pessoa que deseje obter um certificado para a sua assinaturaelectrónica, informar essa pessoa, através de meios duráveis de comunicação, dos termos e condições exactos deutilização do certificado, incluindo eventuais limitações à utilização deste, da existência de um regime de acreditaçãofacultativa e dos processos de apresentação de queixas e de resolução de litígios. Essas informações devem serapresentadas por escrito, podendo ser transmitidas por meios electrónicos, e devem utilizar uma linguagem facilmentecompreensível. A pedido destes, deverão igualmente ser facultadas a terceiros que confiem no certificado, elementosrelevantes desta informação;

l) Utilizar sistemas fiáveis de armazenagem dos certificados num formato verificável, de modo a que:

— apenas as pessoas autorizadas possam introduzir dados e alterações,

— a autenticidade das informações possa ser verificada,

— os certificados só possam ser consultados pelo público nos casos em que tenha sido obtido o consentimento dodetentor do certificado, e

— quaisquer alterações de carácter técnico susceptíveis de prejudicar esses requisitos de segurança sejam imediata-mente visíveis pelo operador.

114 ANEXO C. Directiva 1999/93/CE de 13 de Dezembro de 1999

Page 117: Validação de Dados Através de Hashes Criptográficos: Uma

PT Jornal Oficial das Comunidades Europeias 19. 1. 2000L 13/20

ANEXO III

Requisitos respeitantes aos dispositivos seguros de criação de assinaturas electrónicas

1. Os dispositivos seguros de criação de assinaturas devem assegurar, pelo menos, através de meios técnicos e processuaisadequados, que:

a) Os dados necessários à criação de uma assinatura utilizados na geração de uma assinatura só podem ocorrer, emtermos práticos, uma única vez, e que a confidencialidade desses dados se encontra razoavelmente assegurada;

b) Os dados necessários à criação de uma assinatura utilizados na geração de uma assinatura não podem, com umasegurança razoável, ser deduzidos de outros dados e que esta está protegida contra falsificações realizadas atravésdas tecnologias actualmente disponíveis;

c) Os dados necessários à criação de uma assinatura utilizados na geração de uma assinatura podem ser eficazmenteprotegidos pelo signatário legítimo contra a utilização por terceiros.

2. Os dispositivos seguros de criação de assinaturas não devem modificar os dados que carecem de assinatura, nemimpedir que esses dados sejam apresentados ao signatário antes do processo de assinatura.

ANEXO IV

Recomendações relativas à verificação segura de assinaturas

Durante o processo de verificação de assinaturas dever-se-á garantir, com uma razoável certeza, que:

a) Os dados utilizados para verificar as assinaturas correspondem aos dados exibidos ao verificador;

b) A assinatura é verificada com fiabilidade e o resultado dessa verificação é exibido correctamente;

c) O verificador pode, se necessário, definir com fiabilidade o conteúdo dos dados assinados;

d) A autenticidade e a validade do certificado solicitadas no momento da verificação da assinatura são verificadas comfiabilidade;

e) O resultado da verificação e a identidade do signatário são exibidas de forma correcta;

f) A utilização de um pseudónimo é claramente indicada;

g) Podem ser detectadas eventuais alterações pertinentes em matéria de segurança.

115