MD5

L’algoritmo di hashing MD5 è una funzione crittografica unidirezionale che accetta un messaggio di qualsiasi lunghezza come input e restituisce come output un valore digest a lunghezza fissa da utilizzare per autenticare il messaggio originale.

La funzione hash MD5 è stata originariamente progettata per essere utilizzata come algoritmo di hash crittografico sicuro per l’autenticazione delle firme digitali. MD5 è stato deprecato per usi diversi da un checksum non crittografico per verificare l’integrità dei dati e rilevare il danneggiamento involontario dei dati.

Sebbene originariamente progettato come algoritmo di codice di autenticazione dei messaggi crittografici per l’uso su Internet, l’hashing MD5 non è più considerato affidabile per l’uso come checksum crittografico perché i ricercatori hanno dimostrato tecniche in grado di generare facilmente collisioni MD5 su computer commerciali pronti all’uso.

Ronald Rivest, fondatore di RSA Data Security e professore del MIT, ha progettato MD5 come miglioramento di un precedente algoritmo di message digest, MD4. Descrivendolo in Internet Engineering Task Force RFC 1321, “L’algoritmo MD5 Message-Digest”, ha scritto:

L’algoritmo prende come input un messaggio di lunghezza arbitraria e produce come output un ‘fingerprint’ a 128 bit o ‘message digest’ dell’input. Si ipotizza che sia computazionalmente impossibile produrre due messaggi con lo stesso message digest o produrre qualsiasi messaggio con un dato digest del messaggio di destinazione pre-specificato. L’algoritmo MD5 è destinato alle applicazioni di firma digitale, in cui un file di grandi dimensioni deve essere “compresso” in modo sicuro prima di essere crittografato con una chiave privata (segreta) in un crittosistema a chiave pubblica come RSA.

L’hf suggerisce che l’hashing MD5 può ancora essere utilizzato per la protezione dell’integrità, notando “Dove il checksum MD5 viene utilizzato in linea con il protocollo esclusivamente per proteggere dagli errori, un checksum MD5 è ancora un uso accettabile.”Tuttavia, ha aggiunto che” qualsiasi applicazione e protocollo che impiega MD5 per qualsiasi scopo deve indicare chiaramente i servizi di sicurezza previsti dal loro uso di MD5.”

funzione di hash MD5

Message digest algorithm caratteristiche

il digest del Messaggio, noto anche come funzioni hash sono unidirezionale; funzioni di accettare un messaggio di qualsiasi dimensione, di ingresso, e produrre come output di lunghezza fissa di message digest.

MD5 è il terzo algoritmo message digest creato da Rivest. Tutti e tre (gli altri sono MD2 e MD4) hanno strutture simili, ma MD2 è stato ottimizzato per macchine a 8 bit, rispetto alle due formule successive, che sono ottimizzate per macchine a 32 bit. L’algoritmo MD5 è un’estensione di MD4, che la revisione critica ha trovato veloce, ma forse non assolutamente sicuro. In confronto, MD5 non è abbastanza veloce come l’algoritmo MD4, ma ha offerto molto più garanzia di sicurezza dei dati.

Come funziona MD5

L’algoritmo di hashing MD5 message digest elabora i dati in blocchi a 512 bit, suddivisi in 16 parole composte da 32 bit ciascuna. L’output da MD5 è un valore di digest dei messaggi a 128 bit.

Il calcolo del valore di digest MD5 viene eseguito in fasi separate che elaborano ciascun blocco di dati a 512 bit insieme al valore calcolato nella fase precedente. La prima fase inizia con i valori del digest del messaggio inizializzati utilizzando valori numerici esadecimali consecutivi. Ogni fase include quattro passaggi di digest dei messaggi che manipolano i valori nel blocco di dati corrente e i valori elaborati dal blocco precedente. Il valore finale calcolato dall’ultimo blocco diventa il digest MD5 per quel blocco.

MD5 security

L’obiettivo di qualsiasi funzione message digest è quello di produrre digest che sembrano essere casuali. Per essere considerata crittograficamente sicura, la funzione hash deve soddisfare due requisiti: in primo luogo, che è impossibile per un utente malintenzionato generare un messaggio corrispondente a un valore hash specifico; e in secondo luogo, che è impossibile per un utente malintenzionato creare due messaggi che producono lo stesso valore hash.

Gli hash MD5 non sono più considerati crittograficamente sicuri e non devono essere utilizzati per l’autenticazione crittografica.

Nel 2011, l’IETF pubblicato RFC 6151, “Aggiornato le Considerazioni di Sicurezza per i MD5 Message-Digest e HMAC-MD5 Algoritmi”, che ha citato una serie di recenti attacchi contro gli hash MD5, in particolare uno che ha generato l’hash collisioni in meno di un minuto su un notebook e un altro che potrebbe generare una collisione in meno di 10 secondi su un 2,66 GHz Pentium 4 sistema. Di conseguenza, l’ETf ha suggerito che i nuovi progetti di protocollo non dovrebbero utilizzare affatto MD5 e che i recenti attacchi di ricerca contro l’algoritmo “hanno fornito motivi sufficienti per eliminare l’utilizzo di MD5 in applicazioni in cui è richiesta resistenza alle collisioni come le firme digitali.”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *