Home
SHA-2 è in perfetta salute; viva SHA-3

06 Novembre 2012

SHA-2 è in perfetta salute; viva SHA-3

di

Nemmeno un guru della sicurezza convinto delle bontà del presente frena il lavoro verso funzioni crittografiche sempre più robuste.

Le funzioni dette di hashing trasformano un dato da un formato (tipicamente in chiaro) ad un altro detto hash (nel nostro caso guazzabuglio, pasticcio in italiano) in modo non reversibile con un algoritmo. Queste funzioni sono quindi perfette per la registrazione delle password che dobbiamo verificare senza necessariamente conoscere il valore originale.

Si tratta di algoritmi che possono essere relativamente lenti, in quanto l’utente non avvertirà il tempo necessario per il calcolo della funzione, che impatterà invece pesantemente sui tentativi di risalire all’originale per forza bruta. Gli algoritmi di hashing sono piuttosto noti e vanno sotto sigle quali MD5, SHA-1, SHA-2 o nomi come bcrypt.

Conoscendo la fantasia degli utenti, è possibile che in un database esistano diverse password identiche. Queste password appariranno identiche anche dopo l’applicazione della funzione di hashing e questo potrebbe aiutare un eventuale aggressore. Inoltre esistono le cosiddette Rainbow Table, liste di valori precompilati di hashing che permettono di risalire molto velocemente all’originale, per password relativamente deboli. La soluzione a questa spiacevole situazione consiste nell’applicare un po’ di sale (salt) al nostro pasticcio (hash), ovvero agire con un po’ più di quel granello di sale che Plinio voleva per un antidoto. Scegliendo “granelli di sale” (bit scelti a caso aggiunti al calcolo della funzione) diversi per ogni utente avremo risolto il problema. La maggior parte degli algoritmi pensati per la gestione delle password si occupa automagicamente di questo “condimento”.

Se avete seguito il ragionamento fin qua penserete che, quando Bruce Schneier ha affermato di non sentire davvero la necessità di un successore di SHA-2 (lo standard di hashing più recente raccomandato dal NIST (National Institute of Standard and Technology), recente ma anche vecchio di qualche anno), la cosa fosse degna di meraviglia.

In effetti non è così. A differenza di quanto occorso qualche lustro addietro, lo stato di salute degli algoritmi di hash più diffusi è decisamente buono ed i segnali allarmanti avvertiti qualche tempo fa sono rientrati velocemente. D’altro canto le conoscenze sono migliorate nel tempo e parallelamente i processori sono diventati più veloci, quindi è cosa buona predisporre un nuovo algoritmo, sperabilmente più robusto dell’attuale SHA-2. È venuto quindi il tempo di SHA-3 come lo ha concepito KECCAK:

KECCAK è un buon complemento della famiglia di algoritmi SHA-2 esistente. Il NIST mantiene confidenza nella sicurezza di SHA-2, oggi ampiamente utilizzato, e gli algoritmi SHA-2 continueranno a essere utilizzati nel futuro prevedibile, come indicato nella nostra policy di uso delle funzioni hash. Un vantaggio offerto da KECCAK come vincitore del concorso per SHA-3 è la sua differenza nel progetto e nelle proprietà di implementazione rispetto a SHA-2. Sembra così estremamente improbabile che un singolo nuovo attacco crittanalitico possa minacciare ambedue gli algoritmi. Analogamente, le significative differenze nelle proprietà di implementazione dei due algoritmi offriranno ai progettisti di nuovi protocolli e applicazioni una maggiore libertà di scelta.

Da notare come allo sviluppo abbiano contribuito, tra gli altri, l’italiano Guido Bertoni e l’esperto Joan Daemen, belga coautore di Rijndael ovvero AES (Advanced Encryption Standard), adottato dal NIST nel 2001.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.