La pericolosa funzione crittografica SHA-1 morirà in SSH collegando milioni di computer

376

Gli sviluppatori di due librerie di codice open source per Secure Shell, il protocollo utilizzato da milioni di computer per creare connessioni crittografate tra loro, stanno ritirando l’algoritmo di hash SHA-1, quattro mesi dopo che i ricercatori hanno ammucchiato un ultimo chiodo nella sua bara.

Le mosse, annunciate nelle note di rilascio e in un aggiornamento del codice rispettivamente per OpenSSH e libssh, significano che SHA-1 non sarà più un mezzo per la firma digitale delle chiavi di crittografia che impediscono il monitoraggio o la manipolazione dei dati che passano tra due computer collegati da SSH, il abbreviazione comune di Secure Shell. (Le note di rilascio di mercoledì relative alla deprecazione di SHA-1 in OpenSSH hanno ripetuto parola per parola ciò che gli sviluppatori hanno inserito nelle note di rilascio di febbraio, ma poche persone sembravano notare il cambiamento pianificato fino ad ora.)

“Motosega in un asilo nido”

Le funzioni hash crittografiche generano una lunga stringa di caratteri nota come hash digest. In teoria, i digest dovrebbero essere univoci per ogni file, messaggio o altro input inserito nella funzione. In pratica, le collisioni digest devono essere matematicamente impossibili date le capacità prestazionali delle risorse di calcolo disponibili. Negli ultimi anni, una serie di software e servizi hanno smesso di utilizzare SHA-1 dopo che i ricercatori hanno dimostrato modi pratici per gli aggressori di falsificare firme digitali che utilizzano SHA-1. L’accordo unanime tra gli esperti è che non è più sicuro in quasi tutti i contesti di sicurezza.

“È una motosega in un asilo nido”, ha detto il ricercatore di sicurezza Kenn White della funzione hash, che ha fatto il suo debutto nel 1995.

Quasi un decennio fa, i ricercatori hanno iniziato ad avvertire che SHA-1 stava diventando sempre più vulnerabile alle collisioni, il termine crittografico quando due o più input generano lo stesso digest emesso. A quel punto, il mondo aveva già visto in prima persona quanto potessero essere dannosi tali attacchi quando gli hacker sponsorizzati dalla nazione hanno utilizzato una collisione sull’algoritmo MD5, anch’esso debole, per dirottare il sistema Windows Update di Microsoft.

Sebbene i requisiti per quel tipo di attacco di collisione fossero più elevati per SHA-1, era solo questione di tempo prima che arrivassero a portata di mano. Nel 2017, SHA-1 ha ceduto a una forma meno potente di attacco di collisione che costava solo $ 110.000 per la produzione. Nei mesi precedenti e successivi alla ricerca, una serie di browser, autorità di certificazione affidabili per browser e sistemi di aggiornamento software hanno abbandonato l’algoritmo. Altri servizi e offerte software hanno continuato a utilizzare SHA-1.

Annuncio

I pochi eletti

L’ultima campana a morto per SHA-1 è suonata a gennaio, quando i ricercatori hanno svelato un attacco di collisione ancora più potente che è costato solo $ 45.000. Conosciuto come una collisione di prefisso scelto, consentiva agli aggressori di impersonare un obiettivo di loro scelta, come nel caso dell’attacco MD5 contro l’infrastruttura di Microsoft.

È stato in questo contesto che gli sviluppatori OpenSSH hanno scritto nelle note di rilascio pubblicate mercoledì:

È ora possibile eseguire attacchi con prefisso scelto contro l’algoritmo SHA-1 per meno di $ 50.000 USD. Per questo motivo, disabiliteremo l’algoritmo di firma della chiave pubblica “ssh-rsa” per impostazione predefinita in un prossimo rilascio.

Questo algoritmo è purtroppo ancora ampiamente utilizzato nonostante l’esistenza di alternative migliori, essendo l’unico algoritmo di firma della chiave pubblica rimasto specificato dalle RFC SSH originali.

È discutibile che le deprecazioni arrivino tristemente in ritardo, data la dipendenza di milioni di organizzazioni da SSH per connettersi alle reti aziendali, ai servizi cloud di Amazon e Azure e a tutti i tipi di altri computer che popolano Internet. A complicare le cose c’è l’uso di SSH negli switch di rete e nelle macchine embedded a basso costo che gestiscono ATM e sistemi di controllo industriale. I sistemi incorporati spesso non ricevono aggiornamenti perché si trovano in luoghi lontani che rendono difficile la risoluzione dei problemi nel caso qualcosa vada storto.

In un’e-mail, Gaëtan Leurent, un ricercatore di Inria France e uno dei coautori della ricerca di gennaio, ha affermato di non aspettarsi che gli sviluppatori OpenSSH implementassero rapidamente le deprecazioni. Ha scritto:

Quando disabilitano completamente SHA-1, diventerà impossibile connettersi da un OpenSSH recente a un dispositivo con un vecchio server SSH, ma probabilmente eseguiranno passaggi graduali (con grandi avvisi) prima. Inoltre, i sistemi embedded con accesso SSH che non sono stati aggiornati per molti anni hanno probabilmente molti problemi di sicurezza, quindi forse non è male interromperli…

In ogni caso, sono abbastanza contento di questa mossa, questo è esattamente ciò che volevamo ottenere 🙂

Con OpenSSH e libssh che hanno finalmente annunciato i loro piani di ritiro, l’elenco dei blocchi SHA-1 è più breve ma non è affatto scomparso. La funzione di aging è ancora supportata nelle versioni recenti di OpenSSL, la libreria di codici utilizzata da molti siti Web e servizi Internet per implementare HTTPS e altri protocolli di crittografia. L’ultima versione della GNU Compiler Collection, rilasciata all’inizio di questo mese, è stata firmata digitalmente utilizzando SHA-1.

Leurent ha affermato che anche lo standard EMV per le carte di pagamento utilizza SHA-1, ma che lo standard utilizzava uno “strano sistema per la firma che non sembra direttamente influenzato dalle collisioni del prefisso scelto”. Git supporta anche SHA-1, ma solo per l’integrità dei dati, che secondo la maggior parte degli esperti non rappresenta una minaccia per la sicurezza.