Quão preciso é 'md5sum'?

27

Ao usar md5sum para verificar a integridade de um arquivo, qual é a precisão do processo?

Um MD5 verificado significa que EVERY bit é exatamente o mesmo, ou existe um limite que deve ser quebrado antes que a alteração binária seja refletida no MD5?

Qualquer documentação sobre como um md5 é gerado também será apreciada.

    
por Konner Rasmussen 15.04.2014 / 00:40

3 respostas

65

O MD5 é quebrado para este propósito contra um adversário inteligente. É possível construir maliciosamente dois blocos de dados diferentes que produzem o mesmo hash MD5.

No entanto, é perfeitamente adequado (embora certamente haja melhores maneiras) usar o MD5 para proteger contra corrupção inadvertida de dados em trânsito ou em armazenamento. Embora seja concebível que tal evento possa fazer com que o hash MD5 seja o mesmo, a probabilidade é tão baixa que é quase inimaginável que seria uma probabilidade com a qual vale a pena se preocupar. Falhas causadas por radiação de fundo, encapsulamento, estática e dezenas de outras fontes seriam de magnitude mais provável.

Mesmo se você tivesse um quatrilhão de unidades de dados, a probabilidade de um MD5 incorreto produzir um hash MD5 pertencente a uma dessas unidades de quatrilhão é muito menor do que uma em um quadrilhão.

    
por 15.04.2014 / 01:23
26

O MD5 é um hash. Basicamente, ele mapeia todo o conteúdo de um arquivo em uma pequena cadeia de caracteres com 16 bytes de comprimento.

Haverá obviamente vários arquivos com hash na mesma soma MD5. Portanto, uma soma MD5 correspondente não é garantia de uma correspondência exata entre os arquivos.

Não há limite como tal porque o hash do jeito funciona. Portanto, uma soma MD5 pode detectar até mesmo uma única alteração de bit. No entanto, muitas alterações de bit único juntas podem fazer com que o hash MD5 seja o mesmo. Portanto, é bastante razoável usar o MD5 para validar a integridade do arquivo contra a corrupção aleatória, mas não se a intenção mal-intencionada for possível, pois alguém poderia modificar um arquivo, garantindo que o hash MD5 seja o mesmo.

    
por 15.04.2014 / 00:54
17

Um MD5-Hash consiste em 128bits. Um único bit invertido na fonte inverte (em média) 64 bits no hash.

Probabilidade de dois hashes colidirem acidentalmente é 1/2 ^ 128 que é 1 em 340 undecillion 282 decillion 366 nonillion 920 octillion 938 septillion 463 sextilion 463 quintillion 374 quadrillion 607 trilhões 431 bilhões 768 milhões 211 mil 456.

No entanto, se você manter todos os hashes, então, graças ao paradoxo do aniversário , a probabilidade é um pouco maior. Para ter 50% de chance de qualquer hash colidir você precisa de 2 ^ 64 hashes. Isso significa que para obter uma colisão, em média, você precisará haxar 6 bilhões de arquivos por segundo durante 100 anos.

Fonte: porneL, link

    
por 15.04.2014 / 11:28

Tags