O que é SHA?
- Definição curta:
-
O Algoritmo de Hash Seguro (SHA) é uma função de hash criptográfica que recebe dados de entrada e produz um valor de hash de tamanho fixo ou resumo. Ele é projetado para ser uma função unidirecional, o que significa que é computacionalmente inviável fazer engenharia reversa dos dados de entrada originais do valor de hash. É comumente usado em várias aplicações de segurança, incluindo verificação de integridade de dados, armazenamento de senha, e assinaturas digitais.
O termo “SHA” refere-se a um algoritmo de hash seguro. É uma versão modificada do MD5 e é utilizada para fins de hash de dados e certificados. Algoritmos de hash são projetados para transformar dados de entrada em um formato condensado usando operações bit a bit, adições modulares, e funções de compressão. Diferente criptografia, que pode ser revertido, hashing é um processo unidirecional, o que significa que uma vez que os dados são hash, o resumo de hash resultante não pode ser descriptografado, exceto através de métodos exaustivos de força bruta.
- Definição estendida:
- SHA-1. O algoritmo SHA-1 foi desenvolvido em 1995 e produz um resumo de hash de 160 bits. Foi amplamente utilizado por muitos anos, mas agora é considerado fraco devido a vulnerabilidades em sua resistência à colisão. Como um resultado, seu uso é obsoleto na maioria dos aplicativos de segurança.
- SHA-2. A família SHA-2 consiste em SHA-224, SHA-256, SHA-384, e SHA-512. Esses algoritmos, desenvolvido em 2001, fornecer resumos de hash de tamanhos diferentes: 224, 256, 384, e 512 bits, respectivamente. SHA-256, em particular, é amplamente utilizado e considerado seguro para a maioria das aplicações.
- SHA-3. SHA-3 é a mais recente adição à família SHA, projetado como uma competição para selecionar um novo padrão. O algoritmo selecionado, Keccak, tornou-se SHA-3 em 2015. Oferece resumos de hash de vários tamanhos, Incluindo 224, 256, 384, e 512 bits. SHA-3 é considerado seguro e oferece uma opção alternativa ao SHA-2.
O Algoritmo de Hash Seguro (SHA) é uma família de funções hash criptográficas desenvolvidas pela National Security Agency (NSA) nos Estados Unidos. O objetivo principal do SHA é fornecer integridade e segurança de dados, gerando uma saída de tamanho fixo, conhecido como um valor de hash ou resumo, de qualquer dado de entrada. O valor de hash é exclusivo para os dados de entrada, o que significa que mesmo uma pequena alteração na entrada resultará em uma saída significativamente diferente.
Como funcionam os algoritmos de hash seguros?
Quando a mensagem inicial passa por hash SHA-1, o resumo de hash resultante é “06b73bd57b3b938786daed820cb9fa4561bf0e8e.” Se uma segunda mensagem, semelhante ao primeiro, é hash com SHA-1, o resumo do hash aparecerá como “66da9f3b8d9d83f34770a14c38276a69433a535b.” Esse fenômeno é conhecido como efeito avalanche, que tem significado em criptografia. Isso implica que mesmo a menor alteração na mensagem de entrada transformará totalmente a saída, impedindo que os invasores compreendam o conteúdo original do hash digest e determinando se a mensagem foi adulterada durante a transmissão.
Também deve ser mencionado que os SHAs desempenham um papel crucial na detecção de modificações na mensagem original. Comparando o hash digest com o valor de referência, um usuário pode identificar até mesmo uma única alteração de letra, já que os resumos de hash resultantes serão completamente diferentes. Outra característica essencial é o seu determinismo. Isso significa que, dado o conhecimento da função hash empregada, qualquer computador ou usuário pode reproduzir o mesmo hash digest. A natureza determinística dos algoritmos de hash é uma das razões pelas quais cada certificado SSL na Internet deve ser hash usando uma função SHA-2.
Quais são os tipos de algoritmos SHA?
Existem vários tipos de algoritmo de hash seguro que foram desenvolvidos para fornecer diferentes funções de hash com tamanhos variados de resumo de hash. Aqui estão os algoritmos SHA comumente reconhecidos:
Como escolher o tipo certo de algoritmo de hash seguro?
A escolha de qual algoritmo usar depende dos requisitos específicos do aplicativo, como o tamanho do resumo de hash desejado e o nível de segurança necessário. Geralmente é recomendado usar algoritmos SHA-2 ou SHA-3 para novas implementações, enquanto o SHA-1 é desencorajado devido às suas vulnerabilidades. A transição de SHA-1 para SHA-256 foi incentivada em vários setores e padrões, tal como Certificados SSL/TLS, para aumentar a segurança.
Para mais definições, confira nosso dedicado Lista de Definições.