Funções de Hash: SHA-256 e Além
Explore as propriedades das funções de hash criptográficas: resistência a colisões, resistência a pré-imagens e aplicações.
Funções de Hash: SHA-256 e Além é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.
O que é uma função de resumo criptográfico?
Uma função de resumo criptográfico recebe uma entrada de comprimento arbitrário e produz uma saída de comprimento fixo (resumo). Ela deve ser determinística, rápida de calcular, resistente à pré-imagem (não pode ser invertida), resistente a colisões (não é possível encontrar duas entradas com o mesmo resumo) e sensível ao efeito avalanche (uma pequena alteração → um resumo completamente diferente).
Família SHA-2
A família SHA-2 (projetada pela NSA e padronizada pela NIST) inclui:
- SHA-256 — saída de 256 bits, amplamente usada
- SHA-384 — saída de 384 bits
- SHA-512 — saída de 512 bits, mais rápida em CPUs de 64 bits
SHA-256 é usada no Bitcoin, em certificados TLS e nos identificadores de confirmações do Git.
Família SHA-3
SHA-3 usa um projeto completamente diferente do SHA-2 (a construção de esponja Keccak). Foi padronizada como alternativa de reserva caso sejam encontradas vulnerabilidades no SHA-2. SHA-3 não é amplamente implementada, mas é usada em alguns protocolos criptográficos e dispositivos.
MD5 e SHA-1: quebrados
Nunca use MD5 ou SHA-1 para fins de segurança:
- MD5: uma colisão pode ser encontrada em segundos com equipamentos comuns
- SHA-1: a primeira colisão prática foi demonstrada em 2017 (SHAttered)
Esses algoritmos continuam úteis para somas de verificação sem finalidade de segurança (deduplicação de arquivos), mas não para garantir a integridade.
Usos de resumos: integridade de arquivos
Verificação de downloads:
sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodifiedUsos de resumos: assinaturas digitais
Ao assinar documentos, não criptografamos o documento inteiro com a chave privada (é lento demais). Em vez disso:
- Calculamos o resumo do documento (rápido)
- Criptografamos o resumo com a chave privada (pequeno e rápido)
- O destinatário descriptografa com a chave pública e compara com o resumo que calculou
HMAC: resumo com chave para integridade
HMAC (Código de Autenticação de Mensagem baseado em Resumo) combina uma função de resumo com uma chave secreta para produzir um código de autenticação. É usado para verificar a integridade e a autenticidade dos dados. É usado em JWTs, na autenticação de APIs e no TLS.
import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()Ataques de extensão de comprimento de resumos
SHA-2 (construção de Merkle-Damgård) é vulnerável a ataques de extensão de comprimento: se houver conhecimento de H(segredo+mensagem), é possível calcular H(segredo+mensagem+extensão) sem conhecer o segredo. HMAC impede isso. SHA-3 não é vulnerável.
Tabelas arco-íris e uso de sal
Uma tabela arco-íris pré-calcula mapeamentos de resumo → entrada para consultas rápidas. O uso de sal impede isso: adicionar um valor aleatório exclusivo por entrada torna cada resumo único, exigindo uma força bruta completa para cada registro, em vez de uma consulta.
Árvores de Merkle
Uma árvore de Merkle é uma árvore de resumos em que cada nó pai é o resumo de seus filhos. É usada na cadeia de blocos do Bitcoin, no Git e nos registros de transparência de certificados para verificar grandes conjuntos de dados com eficiência, sem baixar tudo.
Escolha do resumo adequado
Guia de seleção:
- Integridade geral/somas de verificação: SHA-256
- Armazenamento de senhas: Argon2id, bcrypt (NOT SHA-256 diretamente)
- Autenticação de mensagens: HMAC-SHA-256
- Assinaturas digitais: SHA-256 ou SHA-384 como resumo subjacente
- Evite: MD5, SHA-1 em aplicações de segurança
Verificação rápida: funções de resumo
Qual construção impede ataques de extensão de comprimento e, ao mesmo tempo, exige uma chave secreta?
Recapitulação da lição
As funções de resumo produzem resumos de comprimento fixo a partir de entradas arbitrárias. SHA-256 e SHA-512 são os padrões atuais. MD5 e SHA-1 estão quebrados para fins de segurança. HMAC adiciona uma chave secreta para garantir a integridade autenticada. Use Argon2/bcrypt para senhas. As árvores de Merkle ampliam o uso de resumos para verificar com eficiência grandes conjuntos de dados.
Perguntas Frequentes
A aula “Funções de Hash: SHA-256 e Além” é grátis?
Sim — o texto completo de “Funções de Hash: SHA-256 e Além” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.
O que vou aprender em “Funções de Hash: SHA-256 e Além”?
Explore as propriedades das funções de hash criptográficas: resistência a colisões, resistência a pré-imagens e aplicações. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cyber Security Academy?
Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Funções de Hash: SHA-256 e Além”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cyber Security Academy?
Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criptografia Simétrica: AES e Cifras de Fluxo
- Criptografia Assimétrica: RSA e Curvas Elípticas
- Funções de Hash: SHA-256 e Além
- Assinaturas Digitais e Certificados