La crittografia per la sicurezza delle password. Le nuove linee guida ACN e l’analisi dettagliata dei documenti

L’Agenzia per la Sicurezza Nazionale (ACN), in collaborazione con il Garante per la protezione dei dati personali, ha recentemente pubblicato Linee Guida per la conservazione sicura delle password, rappresentando il primo capitolo di una serie di iniziative tecniche mirate a rafforzare la cybersecurity.

Linee guida delle funzioni crittografiche

Queste linee guida si concentrano sulla protezione delle credenziali di autenticazione all’interno dei database dei fornitori di servizi, offrendo raccomandazioni sulle funzioni crittografiche considerate attualmente più sicure. L’obiettivo è prevenire violazioni dei dati personali da parte di criminali, impedendo che username e password finiscano indebitamente nelle mani sbagliate per scopi malevoli.

Questi documenti, teorici e pratici, si adattano alle minacce attuali e saranno regolarmente aggiornati in base agli avanzamenti nella ricerca crittografica e nella cybersicurezza. Tuttavia, data la diversità dei sistemi informativi e dei contesti, l’ACN sottolinea la necessità di adattamento e validazione da parte degli esperti di sicurezza informatica per garantire l’applicabilità delle raccomandazioni nei sistemi di destinazione.

L’analisi delle Linee Guida: crittografia delle password

Per questo motivo ho deciso di analizzare puntualmente i tre documenti di questa prima serie di Linee Guida, esponendone concetti e contenuti, al fine di facilitarne la divulgazione.

Funzioni di hash

Il primo documento delle “Linee Guida Funzioni Crittografiche” redatto dall’Agenzia per la Cybersicurezza Nazionale fornisce una dettagliata analisi delle funzioni di hash crittografiche, sottolineando l’importanza di tali funzioni nell’ambito della sicurezza informatica e fornendo raccomandazioni specifiche per l’utilizzo delle stesse. Le funzioni di hash svolgono un ruolo cruciale nella protezione dei dati e nell’assicurare l’integrità e la sicurezza delle informazioni sensibili all’interno di sistemi informativi e applicazioni crittografiche.

Il documento mette in evidenza le proprietà fondamentali delle funzioni di hash crittografiche, tra cui la resistenza alla preimmagine, alla seconda preimmagine e alle collisioni, sottolineando l’importanza di tali proprietà per garantire l’affidabilità e la sicurezza delle funzioni di hash utilizzate. Inoltre, vengono presentati dettagli riguardanti le operazioni svolte dalle funzioni di hash, evidenziando le differenze rispetto alle versioni precedenti e le caratteristiche distintive delle famiglie SHA-2 e SHA-3.

Un punto di particolare rilievo è l’analisi dettagliata delle funzioni di hash raccomandate, con particolare enfasi sulle versioni specifiche di tali funzioni, come SHA-256, SHA-512/256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512, SHAKE128 e SHAKE256. Viene sottolineato che le versioni a 224 bit non sono raccomandate in via precauzionale, in quanto le versioni a 256 bit risultano ad esse comparabili in termini di prestazioni, garantendo un maggior livello di sicurezza.

Inoltre, il documento fornisce indicazioni specifiche su come adattare tali raccomandazioni alle esigenze specifiche dei sistemi informativi, sottolineando l’importanza di valutare attentamente le minacce attuali e potenziali, coinvolgere i responsabili della sicurezza e personalizzare le soluzioni proposte per garantire un livello adeguato di sicurezza.

Infine, vengono evidenziate le applicazioni pratiche delle funzioni di hash, come la distribuzione di software, la firma digitale, la derivazione della chiave e la conservazione delle password, sottolineando l’importanza di tali funzioni nell’ambito della sicurezza informatica.

Il documento fornisce un’analisi approfondita delle funzioni di hash crittografiche, sottolineando l’importanza di tali funzioni per la sicurezza informatica e fornendo raccomandazioni specifiche per l’utilizzo delle stesse, con particolare attenzione alle versioni raccomandate e alle modalità di adattamento alle esigenze specifiche dei sistemi informativi.

Codici di Autenticazione di Messaggi

Il secondo documento delle “Linee Guida Funzioni Crittografiche” dell’Agenzia per la Cybersicurezza Nazionale fornisce indicazioni dettagliate sui Codici di Autenticazione di Messaggi (MAC) e le raccomandazioni per garantire la sicurezza dei sistemi informativi. Le linee guida affrontano diversi punti fondamentali che richiedono particolare attenzione per garantire l’autenticazione e l’integrità dei messaggi scambiati tra le parti.

Innanzitutto, il documento sottolinea l’importanza dei MAC nella crittografia, definendoli come strumenti necessari per garantire l’autenticazione del mittente e l’integrità del messaggio. I MAC sono descritti come stringhe generate in modo corretto solo da chi possiede la chiave segreta, e gli algoritmi per la generazione di MAC devono soddisfare specifiche proprietà di sicurezza per garantire che nessuno possa creare un MAC valido senza possedere la chiave.

Il documento identifica diverse minacce e attacchi potenziali ai quali i MAC possono essere esposti, tra cui l’attacco di forza bruta e l’attacco di estensione della lunghezza. In particolare, l’attacco di forza bruta è descritto come il modo più semplice per cercare di contraffare un MAC, in cui l’attaccante genera un tag casuale e prova ad autenticare il messaggio con esso. Viene sottolineato che la dimensione del tag deve essere adeguata per ottenere una probabilità sufficientemente bassa di indovinare il tag corretto, e si consiglia di impostare un massimo numero di verifiche effettuabili per una data chiave.

Per contrastare queste minacce, il documento fornisce raccomandazioni specifiche sugli algoritmi raccomandati per generare MAC. Vengono descritti tre schemi crittografici principali basati su funzioni di hash o cifrari a blocchi, e vengono fornite specifiche dettagliate su ciascuno di essi. Inoltre, vengono fornite indicazioni precise sulla lunghezza della chiave e del tag per ciascun algoritmo raccomandato, sottolineando l’importanza di conservare e gestire adeguatamente la chiave simmetrica.

Inoltre, il documento sottolinea l’importanza di valutare e validare preventivamente l’attuazione delle soluzioni proposte da parte dei responsabili della sicurezza dei sistemi informativi di destinazione. Si evidenzia che, data la diversa natura dei sistemi informativi di destinazione, potrebbero essere necessari adattamenti specifici per l’implementazione delle raccomandazioni.

Il documento fornisce una panoramica dettagliata delle minacce, degli attacchi e delle raccomandazioni per garantire la sicurezza dei MAC, offrendo indicazioni chiare e specifiche sugli algoritmi raccomandati, la lunghezza delle chiavi e dei tag, nonché sulle precauzioni da adottare per la conservazione e la gestione delle chiavi simmetriche.

Conservazione delle Password

Il terzo ed ultimo documento della serie, fornisce una guida dettagliata per garantire la sicurezza delle password nei sistemi informativi.

Il documento inizia introducendo il concetto di password hashing, sottolineando la necessità di algoritmi ad hoc che rallentino le capacità offensive degli attaccanti. Si evidenzia l’importanza di utilizzare algoritmi di password hashing che soddisfino requisiti specifici, come la complessità computazionale per scoraggiare gli attaccanti e la capacità di memoria richiesta per saturare la RAM quando vengono calcolati molti digest contemporaneamente.

Una delle principali minacce prese in considerazione è il data breach, in cui le password vengono divulgate a seguito di un attacco informatico. Il documento sottolinea che una volta ottenuta la lista delle coppie utente-digest, gli attaccanti possono procedere con attacchi di forza bruta o attacchi al dizionario, sfruttando il fatto che molti utenti scelgono password banali o comuni. Si mette in luce l’importanza di difendersi da tali minacce attraverso l’uso di algoritmi di password hashing che prevedono l’aggiunta di un salt, una stringa di bit casuali concatenata alla password prima del calcolo del digest.

Il documento fornisce raccomandazioni specifiche sull’utilizzo di algoritmi di password hashing, indicando l’obbligatorietà dell’uso di un salt per qualsiasi algoritmo e sconsigliando l’utilizzo di soluzioni personalizzate. Si raccomanda l’uso di algoritmi come PBKDF2, bcrypt, scrypt e Argon2id, con particolare enfasi su quest’ultimo come l’algoritmo più robusto ed efficiente. Si forniscono anche indicazioni sui parametri minimi consigliati per i diversi algoritmi, come il numero di iterazioni e la memoria richiesta.

Inoltre, il documento sottolinea l’importanza di valutare una dimensione adeguata dei parametri di Argon2id in base alla capacità computazionale e di memoria, al fine di garantire una rapida esecuzione su una singola password, ma tale da rendere infattibile un numero elevato di esecuzioni.

Sperando che questa analisi sia stata utile e che i primi tre documenti divulgati sulle buone pratiche di conservazione delle password, per chiunque abbia a che fare con database e applicativi che ne obbligano l’archiviazione, siano ora più semplici da comprendere, resto a disposizione per chiarimenti e informazioni aggiuntive, su tutti i miei canali.