Seu navegador não oferece leitura em voz alta. Você pode ler o guia normalmente.
A função hash é a ferramenta que garante a integridade na segurança da informação, mas a confusão sobre o que ela garante é grande: hash não é criptografia, não cifra nada e, sozinha, não prova quem enviou o arquivo. Este guia detalha o que o guia de criptografia e assinatura digital apenas apresenta, e os resultados mostrados foram obtidos executando os cálculos em um teste.
O que é uma função hash
Uma função hash recebe dados de qualquer tamanho e produz uma sequência de tamanho fixo, o resumo (digest, ou valor hash). Propriedades esperadas de uma função hash criptográfica:
| Propriedade | Significado |
|---|---|
| Determinística | a mesma entrada sempre dá o mesmo resumo |
| Tamanho fixo | a saída tem sempre o mesmo número de bits |
| Unidirecional (resistência à pré-imagem) | dado o resumo, é inviável recuperar a entrada |
| Resistente a colisões | é inviável achar duas entradas diferentes com o mesmo resumo |
| Efeito avalanche | uma pequena mudança na entrada muda o resumo por completo |
Tamanhos conferidos
Calculando o resumo do texto “abc”:
| Algoritmo | Bits do resumo | Caracteres hexadecimais |
|---|---|---|
| MD5 | 128 | 32 |
| SHA-1 | 160 | 40 |
| SHA-256 | 256 | 64 |
| SHA-512 | 512 | 128 |
O SHA-256 de “abc” começa por ba7816bf8f01cfea e termina em ...f20015ad; o utilitário sha256sum, do Linux, confirmou o mesmo valor. Os resumos de MD5 e SHA-1 existem e são calculados com facilidade, mas esses dois algoritmos são considerados inadequados para fins de segurança, por já terem sido encontradas colisões práticas. Para integridade com requisito de segurança, usam-se algoritmos da família SHA-2 ou SHA-3; confira o que a norma ou o edital adota.
Efeito avalanche: o teste
Duas entradas que diferem em uma letra, “concurso” e “Concurso” (maiúscula inicial), geraram resumos SHA-256 completamente diferentes. Comparando os 256 bits dos dois resumos, 141 bits eram diferentes, ou seja, cerca da metade, o que é esperado de uma boa função hash. Não existe “resumo parecido para entrada parecida”; por isso o hash serve para detectar qualquer alteração, mesmo mínima.
Outro teste: o resumo do texto vazio também tem tamanho fixo (64 caracteres hexadecimais), começando por e3b0c44298fc1c14. Mesmo “nada” tem hash.
Hash para verificar integridade de arquivo
O uso mais comum: o provedor publica o hash do arquivo; você calcula o hash do que baixou e compara. Em um teste, um arquivo com o texto “Oficio 1” teve o resumo iniciado em b5ee2b3c35b2; ao trocar para “Oficio 2”, o resumo passou a 6a9e143cc705. Mudou um caractere, mudou o hash. Se os valores batem, o arquivo está íntegro.
Limite importante: se o atacante consegue alterar o arquivo e o hash publicado juntos, a verificação não protege. O hash garante integridade em relação ao valor de referência, não a origem desse valor. É por isso que o hash vira assinatura digital: o resumo é cifrado com a chave privada do signatário, o que acrescenta autenticidade e não repúdio (veja ICP-Brasil e assinatura eletrônica).
Hash x HMAC
O HMAC é um código de autenticação de mensagem: combina uma função hash com uma chave secreta compartilhada. Só quem conhece a chave consegue gerar ou conferir o código correto. No teste, a mesma mensagem com a chave “chave” e com a chave “outra” produziu códigos completamente diferentes (79fed46c713c93a3... e 3986db45c5729df6...).
| Mecanismo | Chave? | Garante integridade? | Garante autenticidade da origem? |
|---|---|---|---|
| Hash simples | não | sim, contra o valor de referência | não |
| HMAC | chave secreta compartilhada | sim | sim, entre quem tem a chave |
| Assinatura digital | par de chaves (privada assina) | sim | sim, e dá não repúdio |
Detalhe cobrado: o HMAC não oferece não repúdio, porque as duas partes conhecem a chave; qualquer uma poderia ter gerado o código. Já a assinatura digital, feita com a chave privada que só o signatário possui, oferece.
Senhas: por que o hash simples não basta
Sistemas bem projetados não guardam a senha; guardam seu hash. Na autenticação, calcula-se o hash da senha digitada e compara-se com o armazenado. Assim, um vazamento da base não expõe diretamente as senhas.
Mas o hash simples é determinístico: duas contas com a mesma senha terão o mesmo hash, e um atacante pode pré-calcular hashes das senhas mais comuns (tabelas pré-computadas) e comparar. A defesa é o sal (salt): um valor aleatório, único por usuário, concatenado à senha antes do hash. No teste, a mesma senha com dois sais diferentes gerou resumos totalmente diferentes (242b71a741cfdf72... e 7060f23a5f52fae0...). O sal não é segredo; fica guardado ao lado do hash. Ele impede tabelas pré-computadas e esconde senhas repetidas.
O segundo reforço é usar um hash lento e configurável, como funções de derivação de chave de senha, que repetem o cálculo muitas vezes para encarecer o ataque por tentativa. No teste, a derivação com 100 mil repetições produziu uma chave de 256 bits. Funções rápidas como SHA-256 puro são boas para arquivos, mas ruins para senhas, justamente por serem rápidas. Sobre controle de acesso, veja controle de acesso e medidas de segurança.
Onde o hash aparece em provas
- Assinatura digital: calcula-se o hash do documento e cifra-se o resumo com a chave privada.
- Verificação de integridade de arquivos e de cópias de segurança.
- Armazenamento de senhas.
- Blockchain, em que cada bloco guarda o hash do anterior.
- Identificação de arquivos duplicados, comparando resumos.
Erros comuns
- Dizer que o hash “criptografa” o arquivo: ele não é reversível e não protege o sigilo.
- Achar que o hash garante a origem do arquivo.
- Achar que o tamanho do resumo depende do tamanho do arquivo.
- Dizer que é possível “descriptografar” um hash: o que existe é adivinhar entradas e comparar.
- Usar MD5 ou SHA-1 como exemplo de algoritmo seguro em provas atuais.
- Confundir sal (público, único por usuário) com chave secreta.
Fontes e atualização
Não há norma oficial brasileira específica sobre funções hash neste guia; o conteúdo segue a literatura de segurança da informação, e os valores citados foram calculados em testes executados. Recomendações sobre algoritmos mudam com o tempo: confira a norma e o edital vigentes.
Próximos passos
- Revise criptografia: chave simétrica, assimétrica e assinatura digital.
- Veja o aspecto legal em ICP-Brasil, certificado digital e assinatura eletrônica.
- Conheça as ameaças em segurança da informação: ameaças, malware e golpes.