Gerador de hash MD5

Adicionar ao site Metainformação

Outras ferramentas

Gerador de hash MD5

Gerador de hash MD5

MD5 é um algoritmo hash de 128 bits criado pelo cientista Ronald L. Rivest no início dos anos 90. A abreviatura MD5 significa Message Digest Version 5.

A criptografia MD5 é baseada em hashing, que envolve a formação de "impressões digitais" ou "somas" para verificar ainda mais sua autenticidade. Usando este método, você pode verificar a integridade das informações, bem como o armazenamento de hashes de senha.

História do MD5

A história do Message Digest Algorithm (MD5) começa em 1991, quando o professor do MIT Ronald L. Rivest relatou a criação de um novo algoritmo que substituiu o obsoleto MD4. Quanto ao MD4, várias deficiências foram realmente encontradas nele, como o criptologista alemão Hans Dobbertin escreveu mais tarde.

Rivest descreveu o novo algoritmo MD5 na RFC 1321.

O trabalho no algoritmo foi continuado pelos pesquisadores Bert den Boer e Anton Bosselars, que em 1993 provaram a possibilidade de pseudo-colisões em MD5, quando diferentes vetores de inicialização podem combinar com os mesmos resumos de mensagem.

Além disso, em 1996, Hans Dobbertin afirmou ter encontrado uma colisão no MD5. Naquela época, algoritmos de hashing mais preferidos tornaram-se conhecidos, como as funções de hash criptográficas RIPEMD-160 - desenvolvidas por Hans Dobbertin, Anton Bosselars e Bart Prenel, Whirlpool - desenvolvidas por Vincent Raymen e Paulo Barreto e o algoritmo de hashing criptográfico SHA-1.

Devido ao tamanho de hash relativamente pequeno (128 bits) no MD5, tem-se falado sobre a possibilidade de ataques de aniversário. O projeto MD5CRK, lançado por Jean-Luc Cook em 2004, visava estudar a vulnerabilidade do algoritmo usando ataques de aniversário. Mas, depois de cinco meses, em 17 de agosto de 2004, o projeto foi interrompido devido à descoberta de uma vulnerabilidade no algoritmo por um grupo de criptógrafos chineses liderados por Lai Xuejia.

Em março de 2005, os matemáticos e criptógrafos Benne de Weger, Arjen Lenstra e Wang Xiaoyun criaram dois documentos X.509 com o mesmo hash e chaves públicas diferentes.

Um ano depois, em março de 2006, um algoritmo foi publicado pelo criptógrafo tcheco Vlastimil Klima, que permite determinar colisões em um computador simples em apenas um minuto. Esse algoritmo ficou conhecido como método de "túnel".

Como resultado da análise dos resultados do trabalho, em 2008, a divisão da Administração Nacional de Segurança Cibernética do Departamento de Segurança Interna dos EUA (US-CERT) recomendou a todos os envolvidos no desenvolvimento de software, sites, bem como usuários da rede, deixem de usar o algoritmo MD5, independentemente da finalidade de sua aplicação. O motivo de tal recomendação foi a falta de confiabilidade que ele demonstrou no processo de estudá-la.

Em dezembro de 2010, os criptologistas chineses Tao Xie e Feng Denguo descobriram uma colisão de mensagens de 512 bits (um bloco). Anteriormente, as colisões eram encontradas apenas em mensagens com dois blocos ou mais de comprimento. Mais tarde, Mark Stevens obteve resultados semelhantes ao publicar blocos com o mesmo hash MD5. Ele também desenvolveu um algoritmo para obter colisões desse tipo.

O documento final que pôs fim à história do desenvolvimento do algoritmo MD5 foi um pedido de comentários - RFC 6151 (RFC é um documento oficial desenvolvido pelo Internet Engineering Council (IETF), que descreve especificações para um determinado technology), que na verdade reconheceu o MD5 como um algoritmo de hashing inseguro. O documento recomenda abandoná-lo, escolhendo a família SHA-2 de algoritmos criptográficos como alternativa.

O algoritmo MD5 discutido é considerado um dos primeiros padrões de algoritmo usados ​​para verificar a integridade de arquivos e armazenar senhas em bancos de dados de aplicativos da web.

Mas, de fato, a funcionalidade relativamente simples, o comprimento curto da saída e a simplicidade das operações executadas, sendo as vantagens do algoritmo, também determinam suas desvantagens - MD5 refere-se a algoritmos propensos a hackers e com baixo grau de proteção contra ataques de aniversário.

O que é MD5?

O que é MD5?

O algoritmo de hashing MD5 pode ser usado em diversas áreas relacionadas à criação de assinaturas digitais eletrônicas, senhas seguras, chaves criptográficas online. Permite verificar a integridade das informações em um PC.

Inicialmente, o MD5 foi considerado um algoritmo de criptografia relativamente forte, mas devido às deficiências identificadas durante o estudo, atualmente é recomendado substituí-lo por outro algoritmo de hashing mais seguro.

Exemplos de uso

A principal vantagem do algoritmo MD5 é seu amplo escopo de aplicação.

O algoritmo permite verificar a autenticidade e integridade das informações baixadas

Por exemplo, junto com os pacotes para instalação de software, há um valor de checksum para verificação.

Também é praticado o uso do algoritmo MD5 para hash de senhas

Por exemplo, o sistema operacional Unix usa ativamente esse algoritmo como uma ferramenta de hash. Deve-se notar que em alguns sistemas Linux, o método MD5 também é usado ativamente para armazenar senhas.

As seguintes formas de armazenamento de senhas são conhecidas:

  • Armazenamento padrão sem hash. A desvantagem desse método é o alto risco de vazamento de informações quando o banco de dados é invadido.
  • Apenas hashes de senha são armazenados. Esses dados são facilmente encontrados usando tabelas de hash preparadas com antecedência. Para preencher essas tabelas, são usadas senhas comuns de baixa complexidade.
  • Adicionando alguns caracteres às senhas chamados "salt". Depois disso, o resultado é hash. A senha obtida como resultado de tais ações deve ser armazenada em texto não criptografado. Ao pesquisar senhas criadas dessa maneira, as tabelas não ajudarão.

O algoritmo de hash MD5 pode ser usado para verificar arquivos baixados da web

Isso se torna possível ao usar utilitários especializados que podem alterar as propriedades do arquivo e habilitar o uso de algoritmos de codificação de hash.

MD5 é usado ao criar aplicativos da web

No processo de desenvolvimento e configuração de sistemas de autenticação, scripts ou painéis, você pode gerar códigos hash para linhas individuais.

Confiabilidade do algoritmo MD5

A tecnologia de hash conhecida por nós como algoritmo MD5 há muito tempo é considerada bastante confiável. Ao mesmo tempo, ninguém falou sobre sua idealidade. Não havia garantias de que o algoritmo seria invulnerável e forneceria cem por cento de inviolabilidade das informações.

Como resultado do trabalho de vários cientistas, algumas deficiências dessa tecnologia foram identificadas. A principal é uma vulnerabilidade devido à detecção de colisão durante a criptografia.

Uma colisão é a probabilidade de obter o mesmo resultado de saída quando diferentes dados de entrada são inseridos. Quanto maior essa probabilidade, menor o nível de proteção do algoritmo usado.

Pesquisadores realizaram criptoanálise e identificaram várias maneiras de quebrar um hash MD5:

  • Um ataque de força bruta pode ser considerado um método de hacking universal. Mas também tem sua desvantagem - o método é muito longo. Para neutralizá-lo, é usada a técnica de aumentar o número de chaves. Esse método costuma ser usado para avaliar o nível de força e força da criptografia de senha.
  • RainbowCrack é um programa especial que permite criar uma base de hash, com base na qual é realizada uma quebra de senha quase instantânea de letras e números.
  • Para selecionar senhas usando um dicionário, são usados ​​bancos de dados de dicionários e programas prontos.
  • Ao usar o método de detecção de colisão, eles assumem valores de função semelhantes para diferentes mensagens que têm o mesmo início. Este método foi usado ativamente no final do século 20.

A fórmula para obter um código hash idêntico é: MD5(4L1) = MD5(4L2).

Em 2004, cientistas chineses descobriram uma vulnerabilidade no sistema que permitia detectar uma colisão em um curto período de tempo.

Em 2006, foi encontrado um método que permite detectar arquivos nocivos em um computador comum usando os chamados "túneis".

Apesar de certos problemas associados principalmente à vulnerabilidade MD5, esse algoritmo ainda é procurado devido ao seu uso ativo no desenvolvimento independente de aplicativos da Web, bem como em outros casos necessários.