O que é o algoritmo SHA-256 e como ele funciona

Uma especificação comum de todos os certificados SSL, independentemente da marca, do preço e do tipo, é o algoritmo SHA-256. Você verá uma menção a ele nos detalhes do certificado ou nos recursos listados nas informações do produto. Para quem não é técnico, o SHA-256 geralmente é um completo mistério.

Neste artigo, queremos mostrar a você o que é SHA-256 e como ele funciona, sem entrar muito no jargão técnico e na matemática por trás dele.


Índice

  1. O que é hashing?
  2. O que é o algoritmo SHA-256?
  3. Explicação do SHA-256
  4. Principais recursos do algoritmo SHA-256
  5. O SHA-256 é seguro?
  6. Como o SHA-256 funciona?
  7. Para que é usado o SHA-256?
  8. Histórico dos algoritmos SHA

Para entender o algoritmo SHA-256, precisamos primeiro explicar o hashing.

O que é hashing?

Hashing é o processo de transformar uma determinada informação em outro valor. Essencialmente, ele contém blocos de dados, que são transformados em uma chave ou valor curto de comprimento fixo a partir da cadeia original. Isso envolve a execução dos dados por meio de uma função matemática que os converte em uma série única e complexa de caracteres.

O hashing oferece uma maneira segura e eficiente de verificar a integridade dos dados. Ao fazer o hash de um dado, você pode comparar o hash resultante com um valor conhecido ou esperado para garantir que os dados não tenham sido adulterados ou corrompidos. Se os valores de hash coincidirem, você pode ter certeza de que os dados não foram alterados ou modificados desde que foram originalmente colocados em hash.

Uma das vantagens do hashing é que ele é irreversível. Não é possível usar o valor de hash para recuperar os dados originais. Essa propriedade torna o hashing útil para o armazenamento de senhas, pois permite que você armazene um hash de uma senha em vez da própria senha. Quando um usuário digita sua senha, o sistema pode fazer o hash e compará-la com o valor de hash armazenado para verificar se está correta, sem precisar da senha real.


O que é o algoritmo SHA-256?

SHA-256 é uma função de hash criptográfica que gera um valor de hash de tamanho fixo de 256 bits (32 bytes). O objetivo do algoritmo SHA-256 é criar uma impressão digital exclusiva de uma parte dos dados, como uma mensagem ou um arquivo.

SHA-256 refere-se a um algoritmo de hashing criptográfico em que os dados de entrada são processados por meio de uma função matemática sofisticada, resultando em um hash de saída distinto. Esse hash funciona como uma impressão digital, representando de forma exclusiva os dados originais.


Explicação do SHA-256

SHA-256, um acrônimo para Secure Hash Algorithm 256-bit (Algoritmo de hash seguro de 256 bits), é um membro das funções de hash criptográficas SHA-2 projetadas pela NSA. Ele é comumente usado em vários aplicativos de segurança (como assinaturas digitais, autenticação de senhas e tecnologia blockchain) e protocolos, incluindo TLS e SSL, PGP, SSH, IPsec e muito mais.

O SHA-256 foi projetado para ser uma função unidirecional, o que significa que é praticamente impossível fazer engenharia reversa da entrada original a partir da saída do hash. Esse atributo o torna uma ferramenta essencial para a verificação da integridade dos dados, pois qualquer alteração nos dados de entrada, mesmo que seja um único caractere, resulta em um valor de hash muito diferente.


Como o SHA-256 funciona?

O SHA-256 funciona pegando uma entrada (geralmente uma cadeia de texto ou dados) e processando-a por meio de uma série de operações matemáticas. O algoritmo divide a entrada em blocos de 512 bits, cada um processado em 64 rodadas de operações. Essas operações incluem funções lógicas bit a bit, como AND, OR, XOR, bem como adição e rotação bit a bit.

Vamos ver um exemplo real de como o hashing funciona. Digamos que você escreva a mensagem “I love apples” (Eu amo maçãs) e aplique uma função de hash SHA-256 a ela. Veja o que você receberá:

40b7df43f24bea395b2c0c3c9d48a3db4db631fa396dd0dd8fe7dc64c9de6f6d

Agora, vamos adicionar um ponto de exclamação no final de sua mensagem para que ela fique assim: “Eu adoro maçãs!” e gerar uma saída. O resultado pode surpreendê-lo:

1751c183f35ed15c2977e5ae7e439fdca79eeae28527ece6efc1a24e4388096f

Como você pode ver, com apenas um caractere adicional, a saída é completamente diferente, mas o comprimento permanece o mesmo. Independentemente de você escrever uma palavra ou uma redação, o valor de hash será idêntico, ocultando o tamanho da entrada original.

Se você fosse enviar essa mensagem a um amigo, forneceria o valor de hash e especificaria o algoritmo. Seu amigo geraria o hash no lado dele e, se ele corresponder, ele saberá que a mensagem é genuína.

Agora vamos dar uma olhada no aspecto técnico.


Principais recursos do algoritmo SHA-256

Os principais recursos do algoritmo SHA-256 são o comprimento da mensagem, o comprimento do resumo e a irreversibilidade.

  • Comprimento da mensagem: O comprimento do texto simples (o texto legível antes de ser criptografado) deve ser inferior a 264 bits.
  • Comprimento do digest: O comprimento do hash digest (o resultado da aplicação de uma função de hash criptográfica aos dados) deve ser de 256 bits. Ao instalar um certificado SSL em seu servidor, você pode selecionar SHA-512 e digests maiores. Embora o SHA-512 seja mais seguro, ele não é recomendado para a maioria dos sistemas, pois exige mais cálculos e potência do computador.
  • Irreversibilidade: Todas as funções de hash, como o SHA-256, são irreversíveis por design. Para cada entrada, você tem exatamente uma saída, mas não o contrário. Várias entradas produzem o mesmo resultado. A saída tem um tamanho fixo, mas a entrada não tem restrições de tamanho.

O SHA-256 é seguro?

Embora nenhum algoritmo criptográfico seja imune a ataques, o algoritmo SHA-256 passou por análises extensas e pelo teste do tempo para continuar sendo um elemento essencial na proteção de dados digitais.

A segurança SHA-256 usa uma combinação de operações matemáticas complexas e de bit a bit para gerar o valor de hash.

Esse design torna extremamente difícil encontrar duas entradas que produzam o mesmo hash. No entanto, a segurança do SHA-256 depende da implementação correta e da força dos protocolos de segurança usados no aplicativo que o utiliza.

O SHA-256 é seguro?

Um ponto fraco do algoritmo SHA-256 é a possibilidade de um ataque de colisão. Isso ocorre quando duas entradas diferentes produzem o mesmo valor de hash. Embora isso seja altamente improvável com o SHA-256, pois ele gera um valor de hash de 256 bits (ou seja, várias saídas possíveis), ainda é teoricamente possível. Se um ataque de colisão for bem-sucedido, ele poderá comprometer o aplicativo que depende dos valores de hash SHA-256 para verificar a integridade dos dados.


Quais são as etapas do algoritmo SHA-256?

Como você já sabe, o SHA-256 pega os dados de entrada e os processa por meio de uma série de operações matemáticas chamadas rodadas. Cada rodada consiste em várias etapas, incluindo pré-processamento de dados, expansão de mensagens e função de compactação de mensagens.

Veja a seguir as principais etapas do algoritmo SHA-256:

  1. Pré-processamento de dados: Os dados de entrada são preenchidos e estendidos para garantir que sejam um múltiplo de 512 bits de comprimento, adicionando um bit seguido de zeros e, em seguida, acrescentando o comprimento da mensagem original em bits.
  2. Expansão de mensagens: O bloco de entrada de 512 bits é dividido em 16 palavras de 32 bits e, em seguida, expandido em 64 palavras de 32 bits por meio de uma série de operações lógicas.
  3. Compressão de mensagens: O bloco de mensagens expandido de 64 palavras é então processado em uma série de 64 rodadas, cada uma das quais envolve várias etapas:
    Determinar a constante da rodada: cada rodada tem um valor constante exclusivo de 32 bits gerado com base na posição na sequência.
    Calcule a programação de mensagens: Uma programação de mensagens de 64 entradas é gerada com base no bloco de mensagens de 64 palavras e na constante de rodada.
    Atualizar as variáveis de trabalho: As variáveis de trabalho, que são 8 palavras de 32 bits que armazenam valores intermediários durante o processo de hashing, são atualizadas com base na programação de mensagens e em um conjunto de operações lógicas.
    Calcular o valor de hash: Após a conclusão de todas as 64 rodadas, os valores finais das variáveis de trabalho são combinados para produzir o valor de hash de 256 bits.

O resultado do algoritmo de hash SHA-256 é um valor de hash final de 256 bits que serve como uma impressão digital dos dados de entrada.


Para que é usado o SHA-256?

O SHA-256 é o algoritmo de hash padrão para verificação de assinatura digital, handshake SSL, proteção de senha e várias outras operações relacionadas à segurança.

  1. Verificação de assinatura digital. Uma assinatura digital é um tipo de assinatura eletrônica usada para validar a autenticidade e a integridade de uma mensagem (por exemplo, um e-mail, uma transação com cartão de crédito ou um documento digital). Ele é criado por meio do hashing do arquivo e do uso de PKI (Public Key Infrastructure) para criptografá-lo.

    A função do algoritmo de hash SHA-256 em todo o processo é garantir a integridade da assinatura digital. O cliente do destinatário verifica o algoritmo de hash em sua extremidade e usa a chave pública para descriptografar a mensagem. Se corresponder, os dados são autênticos e inalterados.
  2. Aperto de mão SSL. O handshake SSL é um elemento crucial das sessões de navegação na Web e depende da compatibilidade e das funções do SHA-256. As comunicações por SS/TLS sempre começam com o handshake SSL, que é uma criptografia assimétrica que permite que o navegador verifique o servidor da Web, obtenha a chave pública e estabeleça uma conexão segura antes do início da transferência de dados.
  3. Proteção por senha. Os sites armazenam as senhas dos usuários em um formato com hash. Como já discutido, o hashing seguro de senhas as transforma em uma sequência curta de letras e/ou números usando um algoritmo de criptografia. Se um site for invadido, os invasores cibernéticos não terão acesso às senhas com hash.
  4. Verificação de transações de blockchain. O algoritmo de hash SHA-256 é o primeiro algoritmo usado com uma criptomoeda quando o Bitcoin foi criado. Os cabeçalhos de bloco são um elemento essencial das cadeias de blocos, pois ajudam a encadear/conectar um bloco de transações ao seguinte em uma ordem específica. O hash SHA-256 garante que nenhum bloco anterior seja alterado sem adulterar o cabeçalho do novo bloco.

Histórico dos algoritmos SHA

Os algoritmos de hash criptográficos seguros são criação da National Security Agency (NSA). O governo dos Estados Unidos patenteou a tecnologia e, em seguida, liberou-a sob uma licença livre de royalties para uso de todos.

O primeiro algoritmo SHA-0 data de 1993. Seu sucessor, o SHA-1, foi lançado em 1995 e, apesar de ter sido crackeado, ainda é usado atualmente em servidores e clientes mais antigos. Seis anos depois, em 2001, a NSA publicou a família SHA -2 de algoritmos de hash, que inclui o SHA-256 e outras cinco funções de hash:

  • SHA 224
  • SHA 384
  • SHA 512
  • SHA 512/224
  • SHA 512/256

Em 5 de agosto de 2015, o NIST (National Institute of Standards and Technology) lançou o SHA -3, o mais recente algoritmo de hash seguro com um design de algoritmo interno diferente. Embora o NIST não planeje retirar o algoritmo SHA-2, o SHA-3 pode substituí-lo nos aplicativos atuais, se necessário.

De acordo com o SSL Pulse, o painel global para monitorar a qualidade do suporte a SSL/TLS, com base na lista do Alexa dos sites mais populares do mundo, 97,2% usam o algoritmo SHA-256.


Palavras finais

O algoritmo de hash SHA-256 é essencial para a proteção de dados na Web. Neste artigo, apenas arranhamos sua superfície sem nos aprofundarmos na matemática e nas funções por trás dela. Mesmo assim, agora você tem uma compreensão geral da finalidade e do uso do algoritmo.

Até que construamos um computador quântico com potência suficiente para quebrar funções de hash complexas, o SHA-256 continuará sendo o algoritmo de hash padrão do setor para integridade de dados e arquivos. Ainda estamos a algumas décadas de distância desse cenário, portanto, por enquanto, o SHA-256 fará parte dos protocolos de criptografia e autenticação.

Perguntas frequentes

Qual é o tamanho do hash SHA-256?

O hash SHA-256 tem 256 bits de comprimento.

Copiar link

O que é uma impressão digital SHA-256?

A impressão digital SHA-256 é uma representação digital exclusiva dos dados gerados pelo algoritmo SHA-256.

Copiar link

Como descriptografar SHA-256?

A criptografia SHA-256 é irreversível, o que significa que não pode ser descriptografada.

Copiar link

Por que o SHA-256 é irreversível?

O SHA-256 é irreversível porque usa uma função unidirecional para gerar o valor de hash, o que dificulta a engenharia reversa dos dados de entrada.

Copiar link

O que é um certificado SHA-256?

Os certificados SHA-256 são certificados digitais que usam o algoritmo de hash SHA-256 para proteger e verificar a autenticidade dos dados.

Copiar link

Quem criou o SHA-256?

O SHA-256 foi criado pela National Security Agency (NSA) dos Estados Unidos. A patente (US6829355B2) foi registrada pela NSA em 5 de março de 2001, apresentando Glenn M Lilly como inventor.

Copiar link

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.