Se você já ouviu falar do algoritmo Secure Hash, ou SHA, em suas várias formas, deve saber que os algoritmos de hash existem de várias formas, pelo menos desde a década de 1950. Anteriormente, os algoritmos de hash eram limitados à integridade de dados rudimentares e à autenticação do usuário, mas com o rápido aumento de invasores que tentavam explorar as comunicações eletrônicas, o papel dos algoritmos de hash mudou. Hoje, os algoritmos de hash são incorporados a outros protocolos, como protocolos VPN, assinaturas digitais, distribuição de software e controle de licenças, integridade do sistema de arquivos de banco de dados, detecção de modificação de arquivos de páginas da Web, entre outros. Dito isto, SHA-1 e SHA-2 são os algoritmos de hash seguro (SHA) comumente empregados por muitos sistemas operacionais para criptografar senhas.
SHA-1 e SHA-2 são os algoritmos de hash seguro exigidos por lei para uso em certos aplicativos do governo dos EUA, juntamente com o uso em outros algoritmos e protocolos criptográficos, para a proteção de informações confidenciais não classificadas. O SHA-2 é o sucessor em potencial do SHA-1 e inclui um número significativo de alterações em relação ao seu antecessor, e consiste em quatro funções de hash com diferentes tamanhos de resumo: SHA-224, SHA-256, SHA-384 e SHA-512. Acredita-se que o SHA-2 seja significativamente mais forte e seguro, e não esteja sujeito às mesmas vulnerabilidades de segurança que o SHA-1. Embora o SHA-2 tenha alguma semelhança com o algoritmo SHA-1, ele gera um hash mais longo. Vamos dar uma olhada nos dois algoritmos de hash para ver qual deles é mais seguro e mais forte.
O SHA-1 é a mais usada das funções de hash SHA existentes e é empregada em vários aplicativos e protocolos de segurança amplamente implantados. É um algoritmo de segurança de computador criptográfico criado pela Agência de Segurança Nacional (NSA) em 1995 e publicado pelo NIST como um Federal Federal Information Processing Standard dos EUA. SHA-1 gera uma mensagem quase única de duração <264 em blocos de 512 bits. Isso significa que processa blocos de 512 bits em seqüência ao calcular o resumo da mensagem. O SHA-1 produz um resumo de mensagens de 160 bits. O algoritmo é baseado em princípios semelhantes aos usados por Ronald L. Rivest, do MIT, no design dos algoritmos de hash MD4 e MD5 no início dos anos 90. O SHA-1 também é usado em sistemas de controle de revisão distribuído, como Git, Monotone e Mercurial.
SHA-2 é um conjunto de funções de hash criptográfico para substituir o algoritmo SHA-1. O padrão NIST SHA-2 foi projetado pela Agência de Segurança Nacional dos EUA e publicado em 2001. A família de funções hash SHA-2 tem o mesmo objetivo que o SHA-1, mas apresenta um nível de segurança mais alto que seu antecessor. Ele foi projetado para superar as vulnerabilidades de segurança no algoritmo SHA-1. O SHA-2 é uma família de quatro funções de hash com diferentes tamanhos de resumo: SHA-224, SHA-256, SHA-384 e SHA-512. Como o SHA-1, todas as funções da família SHA-2 seguem a construção do MD. SHA-256 e SHA-512 são as duas instâncias principais da família, que trabalham respectivamente em palavras de 32 e 64 bits e, portanto, usam algoritmos diferentes. É amplamente utilizado para validar e assinar certificados e documentos de segurança digital.
- Tanto o SHA-1 quanto o SHA-2 pertencem à família de funções hash criptográficas SHA projetadas pela Agência de Segurança Nacional dos EUA e publicadas pelo Instituto Nacional de Padrões e Tecnologia (NIST). Ambos são os algoritmos de hash seguro exigidos por lei para uso em certos aplicativos do governo dos EUA, juntamente com o uso em outros algoritmos e protocolos criptográficos. O SHA-2 é, no entanto, um algoritmo de hash mais seguro e um sucessor do agora reprovado algoritmo de hash SHA-1. O algoritmo SHA-1 não é mais seguro e os certificados e intermediários SHA-1 não são mais reconhecidos.
- SHA-1 gera uma mensagem quase única de duração <264 em blocos de 512 bits. Ele processa blocos de 512 bits em seqüência ao calcular o resumo da mensagem, que normalmente é renderizado como um número hexadecimal de 40 dígitos. E produz um resumo de mensagens de 160 bits e procura corrigir os riscos de segurança encontrados no SHA-0. SHA-2, por outro lado, uma família de quatro funções de hash com diferentes tamanhos de resumo: SHA-224, SHA-256, SHA-384 e SHA-512. Ele processa mensagens em blocos de 512 bits para as funções de hash 224, 256 e 384 e 1.024 blocos para o algoritmo SHA-512.
- O SHA-1 foi o principal algoritmo de hash em uso amplo de 2011 a 2015, até que as vulnerabilidades de segurança no algoritmo solicitaram uma reavaliação. O SHA-2 foi projetado para superar as vulnerabilidades no algoritmo SHA-1. Embora o SHA-2 tenha alguma semelhança com o algoritmo SHA-1, ele gera um hash mais longo e é significativamente mais forte e seguro que o SHA-1. Embora ambos os algoritmos sejam baseados na construção de Merkle-Damgård, o SHA-2 apresenta um conjunto de algoritmos SHA adicionais para corresponder aos níveis mais altos de segurança de chaves mais longas. Além disso, o SHA-2 possui certificados muito melhores e seguros, projetados especificamente para proteger seu sistema contra possíveis violações.
Os algoritmos de hash existem de várias formas desde a década de 1950. Com o aumento do valor das interações de dados e o aumento de ataques cibernéticos, os requisitos para algoritmos de hash mudaram. Antes limitados à integridade rudimentar dos dados e às autenticações do usuário, os algoritmos de hash agora são usados para criar resumos de mensagens e assinaturas digitais, aumentando assim os vínculos de dados e o originador dos dados. Depois que a segurança do SHA-1 foi comprometida, o mundo digital mudou para um algoritmo de hash SHA-2 mais seguro e mais forte. SHA-2 é um conjunto de algoritmos de hash adicionais para corresponder ao nível de segurança mais alto de chaves mais longas.