O que é hashing?
O hash é um processo que transforma seus dados em um valor aleatório de comprimento fixo, usando uma função de hash. Por exemplo, um pedaço de texto simples (uma senha, por exemplo) pode ser transformado em um valor hash, tornando muito difícil de decifrar.
O hash é um processo unidirecional que não pode ser revertido diretamente (ao contrário da criptografia, que pode ser descriptografada se você tiver a chave de descriptografia apropriada). Quando as empresas armazenam dados de usuários (nomes de usuário e senhas, digamos), elas podem aplicar algoritmos de hash para garantir que as informações permaneçam privadas, mesmo que sofram uma violação de dados.
Além disso, o hashing garante a integridade dos dados. Ao enviar um arquivo com hash para um amigo, você fornece um valor com hash junto com a mensagem. Em seguida, o amigo calcula o valor de hash — se os valores corresponderem, o arquivo não foi adulterado durante o trânsito.
O hash geralmente é usado para lidar com grandes quantidades de dados. É fácil encontrar os dados com hash, bem como evitar a duplicação de dados. O hashing é uma maneira rápida e eficiente de manter enormes quantidades de dados seguros e garantir sua integridade.
Como funciona o hashing?
Um algoritmo de hash seguro gera valores de hash, também conhecidos como funções de hash. Os algoritmos de hash fornecem valores de hash diferentes para chaves diferentes. Portanto, uma cadeia de caracteres de entrada exclusiva deve ter um valor de hash exclusivo.
No entanto, em casos raros, as chaves usam valores de hash idênticos. Isso pode resultar no que é conhecido como uma colisão de hash.
Uma característica definidora de qualquer algoritmo de hash é o quão resistentes à colisão suas funções de hash são. A colisão é uma vulnerabilidade de função de hash que os agentes mal-intencionados podem potencialmente explorar, portanto, um bom algoritmo de hash deve ser complexo o suficiente para evitar colisões.
Algoritmos de hash comuns
Da mesma forma que a criptografia, os algoritmos de hash diferem em sua força:
- MD5. O algoritmo de hash MD5 surgiu como uma melhoria no protocolo MD4, que tinha falhas de segurança significativas. Embora ainda seja usado, ele tem falhas de design, então outras funções de hash geralmente são preferidas. Além disso, sua força de 128 bits não é robusta o suficiente para uma proteção adequada. Também não é muito resistente a colisões, por isso não tem adequação para hashes de criptografia.
- SHA. O algoritmo de hashing SHA foi desenvolvido pela Agência de Segurança Nacional em 1993. Sua versão original tinha muitas falhas, então o SHA foi atualizado várias vezes. Suas iterações posteriores são agora amplamente utilizadas para fins criptográficos. Devido às suas cadeias de caracteres de hash sensíveis, é considerado um protocolo bastante seguro.
- BLAKE3. O algoritmo de hash BLAKE3 é a versão mais recente da função de hash BLAKE. No geral, ele tem um desempenho muito melhor do que os protocolos SHA e BLAKE2. BLAKE3 é usado para Wireguard, um protocolo VPN ultrarrápido (para mais, leia nosso artigo sobre os melhores protocolos VPN).
O que é criptografia?
A criptografia é o processo de codificação de dados usando algoritmos. Os protocolos de criptografia embaralham os dados para que eles se tornem indecifráveis para qualquer pessoa, exceto para o destinatário pretendido, que tem a chave necessária para reverter o processo de descriptografia. Ao contrário do hashing, a criptografia é um processo bidirecional — as informações são criptografadas e, em seguida, descriptografadas quando chegam ao receptor pretendido.
A criptografia também protege dados confidenciais, bem como o tráfego on-line geral. Isso torna seu tráfego de internet ilegível para uma parte não autorizada — se algoritmos de criptografia fortes forem implementados seguindo as práticas recomendadas, eles serão resistentes a ataques criptoanalíticos. Se você quiser saber mais sobre criptografia, confira nosso artigo sobre o melhor software de criptografia.
Como funciona a criptografia?
A criptografia usa um conjunto específico de regras e instruções, conhecidas como algoritmos, para converter dados originais, ou texto sem formatação, em texto cifrado — uma forma criptografada de dados. Você pode usar a criptografia para transformar texto, mensagens ou arquivos em texto cifrado.
Um algoritmo de criptografia também usa uma informação exclusiva, chamada de chave de criptografia. Essa chave determina como o texto sem formatação é transformado em texto cifrado e vice-versa. As chaves de criptografia podem ser simétricas ou assimétricas:
- A criptografia simétrica usa uma chave simétrica — a mesma chave para criptografia e descriptografia. O emissor e o receptor de dados precisam ter essa mesma chave, que deve ser compartilhada com segurança.
- A criptografia assimétrica usa chaves assimétricas — uma chave pública e uma chave privada. A chave pública é usada para criptografar informações e a chave privada é usada para descriptografá-las. No caso de criptografia assimétrica, apenas a chave privada deve ser mantida em segredo.
- A criptografia híbrida é uma terceira opção e combina chaves simétricas e assimétricas, usando os pontos fortes de ambos e minimizando seus pontos fracos.
O texto cifrado que você obtém depois que o processo de criptografia é feito parece uma mistura sem sentido de dados, extremamente difícil de decifrar sem uma chave de descriptografia. Mas se você possuir uma chave de descriptografia adequada, poderá transformar o texto cifrado de volta em texto sem formatação aplicando operações matemáticas específicas. Cada algoritmo de criptografia tem um algoritmo de descriptografia correspondente que reverte o processo de criptografia usando uma chave de descriptografia e restaura o texto cifrado de volta ao texto sem formatação original.
Algoritmos de criptografia comuns
Existem vários algoritmos de criptografia comumente usados. Aqui estão os mais amplamente aplicados:
- O Advanced Encryption Standard (AES) é um algoritmo de criptografia simétrica usado com SSL/TLS e confiável por instituições governamentais e organizações em todo o mundo. Eles usam esse padrão de criptografia de dados para informações de identificação pessoal (PII), dados comerciais, transações financeiras e comunicação sem fio porque o AES é conhecido por ser impermeável a ataques.
- O RSA é um algoritmo de criptografia assimétrica comum usado para proteger dados enviados pela Internet — mensagens, assinaturas digitais, credenciais de login e troca de chaves.
- O algoritmo Diffie-Hellman Key Exchange permite que duas partes estabeleçam uma chave secreta compartilhada em um canal de comunicação inseguro. Você pode usá-lo com algoritmos de criptografia simétrica para trocar chaves com segurança. Este algoritmo é comumente usado em VPNs e redes sem fio para proteger o tráfego on-line e proteger a privacidade e a integridade dos dados em transferência.
- O Triple Data Encryption Standard (3DES) é um algoritmo de criptografia simétrica que aplica uma cifra DES três vezes com chaves diferentes. Você pode usá-lo em sistemas mais antigos que exigem compatibilidade com padrões de criptografia mais antigos.
- Blowfish é um algoritmo de criptografia simétrica. É conhecido por sua flexibilidade em tamanhos de chave e velocidades de criptografia e descriptografia relativamente rápidas. É um método de criptografia flexível que as empresas usam para proteger pagamentos, transferências de arquivos e senhas (se você quiser saber mais sobre como proteger suas informações de login, leia nosso post sobre senhas seguras).
Hashing x criptografia
Hash | Encriptação | |
---|---|---|
Um processo unidirecional; não pode ser revertida | ||
Destina-se a manter a integridade dos dados | ||
Destina-se a proteger os dados em trânsito | ||
Útil para empresas e sites | ||
Útil para indivíduos e empresas |
Basicamente, a criptografia é o processo de embaralhar texto sem formatação em texto cifrado ilegível, que você pode descriptografar com uma chave relevante, enquanto o hash transforma o texto sem formatação em um código exclusivo, que não pode ser revertido em uma forma legível.
O hashing geralmente é usado para garantir a integridade dos dados, principalmente quando estamos armazenando grandes quantidades deles, enquanto a criptografia visa proteger a privacidade de pequenas quantidades de dados em trânsito.
Exemplos de uso de hash
Aqui estão alguns exemplos de uso de hash:
- Preserva a integridade dos arquivos durante os processos de compartilhamento, download ou espelhamento de arquivos. Ele garante que os arquivos que você obtém estão intactos e não foram adulterados.
- As assinaturas digitais quase sempre exigem o cálculo de um hash criptográfico. Garante a eficiência e a segurança dos esquemas de assinatura digital.
- A verificação de senha geralmente usa hashes criptográficos. Os resumos de hash impedem que as senhas sejam comprometidas. Durante o processo de autenticação do usuário, um sistema comparará os hashes da senha digitada pelo usuário com seus próprios valores armazenados.
- O hashing é usado em sistemas de criptomoedas para protegê-los de ataques DDoS e outros abusos.
- Também podemos usar hashing para identificação de arquivos. Isso protege os usuários contra falsificação e casos em que eles podem receber outros dados além do esperado.
Exemplos de uso de criptografia
E aqui estão alguns casos de uso comuns para criptografia:
- A criptografia é usada para proteger seu tráfego online contra intervenções e espionagem. É uma característica essencial dos serviços de VPN e da segurança online em geral.
- A criptografia de ponta a ponta é usada em serviços de mensagens instantâneas para proteger a privacidade de suas conversas.
- A criptografia de arquivos protege seus arquivos para que ninguém possa acessá-los, mesmo que intercepte os arquivos em trânsito.
- A criptografia protege você contra cibercriminosos. É extremamente útil em redes Wi-Fi públicas, que muitas vezes são populares entre os hackers. Por exemplo, as VPNs usam criptografia para proteger os dados transmitidos pela rede, para que você possa usar uma VPN para proteger o Wi-Fi público.