Nella traduzione italiana del libro di Michal Zalewski “Il rumore dell’hacking” vengono definite “funzioni compendiarie non reversibili”. Vediamo di capire cosa sono e cosa hanno a che fare con il password cracking.
Una funzione compendiaria è una funzione che calcola il compendio di un messaggio (hash); ovvero calcola un valore di lunghezza fissa partendo da un input di lunghezza variabile.
Indipendentemente dalla lunghezza dell’input, il valore calcolato sarà di lunghezza fissa. Ma non solo: avrà altre due proprietà fondamentali.
La prima è che sarà univoco. Il codice hash di qualsiasi file o di qualsiasi messaggio è univoco e identifica il messaggio in modo inequivocabile.
La seconda è che sarà non reversibile: com’è facilmente intuibile non è possibile ottenere il messaggio originale partendo dall’hash.
La prima proprietà è utile se si vuole prendere una “impronta digitale” a un qualsiasi file, se si vuole firmare digitalmente un documento.
Infatti la modifica anche minima del file o del documento da verificare produrrà un hash diverso rivelando la discrepanza. Discrepanza che sarebbe stato molto difficile se non impossibile individuare a occhio nudo. L’hash ci da la possibilità di “condensare” in pochi byte l’essenza di un file.
La seconda proprietà, la non reversibilità è fondamentale per la sicurezza delle password.
Abbiamo visto che è impossibile ottenere il messaggio originale partendo dall’hash. Quindi se il file o messaggio originale è una password, una volta trasformata in hash sarà irreversibile, quindi teoricamente non violabile (teniamo a mente “teoricamente”).
Per concludere questa introduzione alle funzioni hash ricordiamo che:
- Le funzioni hash sono funzioni che creano un output fisso da un messaggio di lunghezza variabile
- Sono irreversibili
- Le password vengono memorizzate sotto forma di hash
Le password quindi vengono trasformate in un codice non reversibile, utilizzando un algoritmo MD5 o SHA-1 e quindi memorizzate: non esiste nessuna formula che permetta di decodificare un codice hash.














gen 5, 2010 at 19:58:01
Io ho scritto un codice PHP per il Brute Force di hash MD5.
http://www.guizzardi.net/?p=209