SHA-1 é um tipo de criptografia com função hash criptográfica. Isso significa que a cada codificação, um novo hash é gerado. Esse tipo de método de codificação também é chamado de função de dispersão criptográfica.
Com já dito, teoricamente a função SHA deve criar um hash exclusivo para todos os dados inseridos nela, porém com o aumento da inserção, a chance de diferentes pares criarem o mesmo número de hash aumenta, assim gerando uma colisão entre esses números já gerados.
Portanto com a colisão, pode-se criar um certificado não confiável com um hash idêntico a um certificado confiável. Se eles fizerem com que você instale esse certificado não confiável, ele pode se disfarçar como confiável e distribuir dados maliciosos.
O problema aumentou quando os ataques ao algoritmo de hash SHA-1 ficaram mais perigosos com os “ataques de colisão de prefixo escolhido”. Significa que os ataques de colisão agora podem ser realizados com entradas personalizadas, e eles não são mais apenas acidentais, permitindo que os usuários maliciosos direcionem arquivos para duplicar e forjar.
Utilização do SHA-2
SHA-2 é uma família de algoritmos de hash que foi criada para substituir SHA-1. O SHA-2 contêm diversos valores de hashes, são eles SHA-224, SHA-256, SHA-384 e SHA-512. SHA-256 é a implementação padrão.
Entre as diferentes maneiras de criar hashes, o algoritmo usado pelo SHA-2 é um dos mais utilizados para o equilíbrio entre segurança e custo, pois é um algoritmo muito eficiente contra ataques de colisão, pois suas combinações hashes são muito maiores do que as combinações do tipo SHA-1.
Outra característica do algoritmo de hash SHA-2 é que o tamanho do hash resultante é sempre o mesmo, não importa quanto tempo é utilizado para gerar, o resultado é sempre uma sequência de 64 letras e números (com uma codificação de 256 bits e 32 bytes).
O SHA-2 tem diversas utilizações e uma delas é no Bitcoin, o SHA-2 é usado para o processo de mineração, mas também no processo de geração de endereços bitcoin, isso se deve ao alto nível de segurança que oferece.
Outra importante utilização é dentro da rede blockchain, todos os nós contêm uma cópia do hash de 64 caracteres representando as informações, por exemplo, um bloco inteiro. Depois que essas informações são validadas pela rede, qualquer manipulação dessas informações tentando modificar algum caractere do hash validado, seria detectada imediatamente e descartada.
Principais diferenças entre SHA-1 e SHA-2
Valor do Hash: SHA-1 gera um valor de 160bits já o SHA-2 gera 256 bits no formato padrão.
Utilização: SHA-1 utilizado para assinar certificados SSL, SHA-2 utilizado como função na blockchain.
Segurança: SHA-2 mais seguro pois contém 256 bits em seu formato padrão.
Diversidade: SHA-2 produz diversos valores hashes, enquanto SHA-1 somente 160 bits.