Por que o MD5 ainda é muito usado?

17

O MD5 parece ter vulnerabilidades bem documentadas e, no entanto, permanece difundido em seu uso. Alguém tem alguma razão para continuar sendo uma opção viável quando outras alternativas (por exemplo, SHA-2) parecem ser mais robustas?

David em Dakota
fonte

Respostas:

16

É rápido de gerar e, muitas vezes, o fato de colisões serem teoricamente possíveis não é um problema enorme. ou seja, verificar se um arquivo em cache foi alterado para evitar o download de uma nova cópia.

Uma referência rápida feita em 1996 mostra o seguinte:

            Digest Performance in MegaBytes per Second

      Pentium P5     Power Mac    SPARC 4     DEC Alpha
          90 MHz        80 MHz      110 MHz      200 MHz

MD5         13.1          3.1         5.1          8.5
SHA1         2.5          1.2         2.0          3.3

Para um uso moderno - em chips incorporados, o MD5 pode ser 2-3 vezes mais rápido do que o SHA1 para as mesmas informações.

Rich Bradshaw
fonte
10

Um hash MD5 é "bom o suficiente" para a maioria das tarefas domésticas. Lembre-se de que ainda é incrivelmente difícil produzir colisões significativas no mesmo número de bytes.

Por exemplo, digamos que você baixe o novo Ubuntu 9.10 na próxima semana a partir de um espelho confiável. Você deseja verificar se o arquivo foi baixado corretamente e completamente. Simplesmente inicie o MD5 e faça o hash do ISO. Compare o hash com o publicado. Se os hashes corresponderem, você pode ter certeza de que o ISO foi copiado corretamente e completamente.

onze81
fonte
Não é mais difícil. E como é mais difícil rodar em sha256sum filename.isovez de md5sum filename.iso?
Caracol mecânico
Além disso, se o seu provedor de serviços de Internet for ruim, o MD5 não garante que o ISO foi baixado corretamente. O ISP pode adulterar a imagem ISO para fazer algo ruim.
Caracol mecânico
4
  1. É curto - mais fácil de ler.
  2. É generalizada - grande interoperabilidade com outros sistemas
  3. É comum - todo mundo está acostumado a isso.

e a segurança pode ser melhorada com a salga.

Josip Medved
fonte
3

O MD5 é amplamente usado como uma função de hash de soma de verificação porque é rápido e apresenta uma taxa de colisão extremamente baixa. Uma soma de verificação MD5 é composta por 32 dígitos hexadecimais que, juntos, fornecem chances 1 em ~ 3.42e34 de colisão. Teoricamente, você poderia fazer o hash de todos os arquivos em todos os computadores de um país do tamanho dos EUA e não produzir uma colisão (*).

Para criptografia, o MD5 é uma alternativa válida se a segurança for apenas uma preocupação moderada. É uma opção muito viável para fazer o hash de senhas de bancos de dados ou outros campos que exigem segurança interna principalmente devido à sua velocidade, mas também porque o MD5 oferece um nível razoável de segurança onde a criptografia forte não é uma preocupação.


(*) para a maioria dos propósitos de soma de verificação, uma colisão só é significativa se ocorrer entre dois objetos de origens semelhantes e com o mesmo tamanho. Apesar da alta probabilidade de exclusividade do MD5, colisões podem eventualmente ocorrer entre dois arquivos muito distintos. Digamos, um arquivo de banco de dados de 1,5 Mb e um arquivo gif de 35k. Para a maioria dos propósitos, essa é uma colisão sem sentido. Ainda mais porque o MD5 é apenas um elemento da indexação de arquivos. O tamanho do arquivo é outro importante.

Um anão
fonte
2

O MD5 é amplamente utilizado porque foi amplamente utilizado, e as quebras ainda não são significativas o suficiente para serem um problema óbvio nos sistemas existentes.

Douglas Leeder
fonte