quando le persone dicono che un file ha un hash md5 controllato, cosa significa esattamente?

7

ok stavo leggendo questo sito: link

e ho pensato a qualcosa che avrei sempre voluto chiedere ma mai fatto.

quando la gente dice che un file ha un hash md5 spuntato, cosa significa esattamente? Hanno seriamente sciolto il programma in bit e fatto un hash sui bit?

    
posta Pacerier 11.07.2011 - 16:21
fonte

4 risposte

6

Quando le persone dicono di aver verificato che l'hash MD5 del file è in effetti lo stesso che l'host del file sta dicendo che l'hash dovrebbe essere. Se sono uguali, sai che niente ha incasinato il file in mezzo.

Come si fa in pratica, è sufficiente eseguire uno strumento come md5sum (wikipedia) sul file scaricato e confrontare contro ciò che l'host sta dicendo che la somma md5 dovrebbe essere. Solitamente i fornitori di file condividono la somma md5 sulla loro pagina, facilmente accessibile da dove l'hai scaricata.

Ciò aumenta la sicurezza sapendo che nessuno ha manomesso il file sulla rete e che il repository in cui è archiviato il file non è stato manomesso. Tuttavia la somma è inutile se il sito web che ti mostra l'MD5 è stato compromesso.

    
risposta data 11.07.2011 - 17:49
fonte
9

L'idea dell'hash md5 è che è un hash dell'intero file, che sarà diverso se qualsiasi bit è cambiato. Non sei sicuro di cosa intendi per "dissolverlo in bit" perché quello è tutto un file - una serie di bit.

Quando si scarica un file, è possibile ottenere l'hash MD5 sul proprio computer e confrontandolo con l'MD5 fornito online è possibile assicurarsi di disporre del file corretto non modificato.

Dai un'occhiata a questa domanda sul valore di un hash di un file.

    
risposta data 11.07.2011 - 17:02
fonte
3

when people say a file has a checked md5 hash, what exactly does that mean?

Per essere chiari, l'articolo del tuo link parla di firme digitali e ha una sezione che mostra una figura con un valore MD5.

Le firme digitali e gli hash MD5 sono cose diverse.

MD5 è un algoritmo che genera un valore hash crittografico. MD5, come altre funzioni hash crittografiche, prende come input una sequenza di bit e produce un'uscita a dimensione fissa indipendentemente dalla dimensione dell'input. La sequenza di bit può essere un file. Per semplicità, d'ora in poi userò il file invece della sequenza di bit.

Quando vuoi controllare se hai lo stesso file di un'altra persona, puoi generare un hash MD5 del file e confrontarlo con un hash MD5 creato dall'altra persona.

Avviso : Il seguente esempio non è sicuro ed è solo per illustrazione!

Alice invia a Bob un file:

  • Alice calcola un hash MD5 hash_alice per file_a
  • Bob chiede ad Alice di inviarlo file_a
  • Alice invia file_a a Bob
  • Bob riceve file_a
  • Bob calcola un hash di hash MD5 per file_a

Se hash_bob è uguale a hash_alice, allora il file Bob riceve lo stesso file inviato da Alice. Bob ha controllato l'hash MD5 per verificare di aver ricevuto il file corretto.

Ora supponiamo che Mallory sia un attaccante e voglia dare a Bob un virus. Ha la capacità di monitorare gli scambi e intercettare i file.

  • Alice calcola un hash MD5 hash_alice per file_a
  • Bob chiede ad Alice di inviarlo file_a
  • Alice invia file_a a Bob
  • Mallory incerce file_a da Alice
  • Mallory copia il suo file virus file_v e lo rinomina file_a
  • Mallory invia il file del virus file_a a Bob
  • Bob riceve file_a
  • Bob calcola un hash di hash MD5 per file_a

Ora hash_bob non dovrebbe essere lo stesso di hash_alice e Bob dovrebbe rendersi conto che qualcuno ha inviato il file sbagliato.

if the program has multiple files, how do we go about computing the single md5 hash for that program?

Per ogni file nel programma si calcola un valore hash.

Se si dispone di: main.exe libabc.dll release.txt e iconabc.gif

Calcolo hash_main.exe, hash_libabc.dll, hash_release.txt e hash_iconabc.gif

Ogni valore di hash dovrebbe essere unico.

Sezione intermedia:

Il problema con il primo esempio è che non mostra come Bob ottiene hash_alice in modo che possa confrontarlo con hash_bob. Se hash_alice viene inviato allo stesso modo di file_a, un utente malintenzionato lo modificherà in modo simile a come Mallory nel secondo esempio.

Esistono due soluzioni di base al problema: utilizzare un canale sicuro (o fuori banda) per inviare l'hash o far firmare l'hash da un certificato attendibile (credito @nealmcb qui). Fuori banda significa utilizzare un diverso mezzo fisico di trasmissione. Un esempio di fuori banda potrebbe essere quello di stampare il valore hash e inviarlo tramite posta ordinaria. Canale sicuro significa utilizzare qualcosa come una rete privata virtuale (VPN) o IPSec.

Il problema con l'hash firmato è che Bob ha bisogno del certificato di Alice per verificare la firma. Se Alice invia il certificato a Bob nello stesso modo in cui invia il file, il certificato potrebbe essere intercettato come il file (credito @nealmcb qui).

Riflessioni sulla trasmissione:

Se pensi alle due soluzioni per un minuto potresti trovare una domanda.

Se ho un canale sicuro per inviare l'hash, perché non uso lo stesso canale per inviare il file?

I motivi per cui utilizzeresti la normale rete Internet per inviare il file e un canale sicuro per inviare l'hash:

  • Il canale protetto è molto lento (cioè dialup) e l'hash è breve, quindi trasferisce rapidamente, ma il file è di grandi dimensioni e richiederebbe troppo tempo.
  • Il canale sicuro è costoso. O ti viene addebitato il tempo utilizzato oi byte trasferiti.
  • Il proprietario del canale limita l'uso del canale sicuro solo per inviare o ricevere hash.
risposta data 12.07.2011 - 02:21
fonte
1

Se capisco la tua domanda, sì, è possibile controllare un file con MD5 (o qualsiasi algoritmo di hashing).

Infatti, ogni file elaborato dall'algoritmo di hashing è bit e non dipende dal tipo di dati di input. Altrimenti, l'hash può avere qualsiasi lunghezza di input, ma restituisce un valore di dimensione fissa.

    
risposta data 11.07.2011 - 17:02
fonte

Leggi altre domande sui tag