L’incremento esponenziale degli attacchi cyber, unito al sempre più diffuso utilizzo di servizi digitali, ha reso la cyber security un’emergenza mondiale all’attenzione delle Autorità di tutti i Paesi e anche della Comunità europea.
Diventa pertanto essenziale poter disporre di soluzioni di sicurezza sempre più affidabili e resilienti.
In tale ambito, l’uso della crittografia riveste un ruolo centrale in quanto utilizzata per lo sviluppo di svariate applicazioni nell’ambito della sicurezza informatica ogni qualvolta sia necessario garantire la riservatezza e/o la integrità delle informazioni.
Tra le iniziative di maggior rilevanza in tale ambito si evidenzia, appunto, quella del NIST (National Institute of Standards and Technology) americano che ha emesso la serie 140 degli standard chiamati FIPS (Federal Information Processing Standard) dedicati proprio alla validazione della sicurezza dei moduli crittografici. Tali standard sono stati adottati da molti altri Paesi nel mondo diventando di fatto il principale standard di riferimento per la validazione dei prodotti crittografici.
A cosa serve la crittografia
A titolo esemplificativo e non esaustivo, la crittografia è utilizzata per:
- la cifratura dei dati memorizzati (at rest) sui supporti di memorizzazione (portatili e non);
- la sicurezza delle comunicazioni in rete attraverso l’utilizzo di protocolli sicuri che combinano insieme varie tecniche crittografiche (es. protocolli SSH, SSL/TLS, HTTPS, IPsec, …) per garantire sia la mutua autenticazione tra mittente e destinatario che la sicurezza dei dati trasmessi (in transit);
- la realizzazione di sistemi di controllo accessi con autenticazione forte del cliente (es. certificati digitali, OTP, …);
- la realizzazione di sistemi di firma digitale attraverso la combinazione di tecniche di crittografia asimmetriche, funzioni di hash e utilizzo di PKI.
Risulta pertanto evidente che la validazione e certificazione della “robustezza” e della sicurezza di un modulo crittografico diventa un fattore chiave per garantire l’efficacia delle misure di sicurezza e delle soluzioni che su di esso si basano.
Come è nato lo standard FIPS e come è strutturato
Anche se gli standard FIPS sono stati sviluppati per la certificazione dei moduli crittografici utilizzati dalle agenzie governative americane (es. NSA, CSI, NIST), molte aziende nel settore privato usano volontariamente questi standard che molto spesso sono varianti di quelli emessi da altre organizzazioni quali ANSI, ISO, IEEE, ecc.
La prima versione dello standard, FIPS 140-1, è nata nel 1994 e ha definito i requisiti di sicurezza che un modulo crittografico doveva rispettare. Questi requisiti erano raggruppati in 11 diverse aree di sicurezza e organizzati su 4 livelli di sicurezza incrementali.Le versioni successive dello standard non hanno modificato sostanzialmente la struttura della prima versione dello standard, ma hanno incorporato dei cambiamenti relativi a feedback ricevuti dalle comunità di fornitori, laboratori e utenti (FIPS 140-2) e hanno acquisito alcuni standard internazionali (principalmente ISO/IEC 19790:2012 “Security Requirements for Cryptographic Module” e ISO/IEC 24759:2017 “Test Requirements for Cryptographic Module”) integrandoli con pubblicazioni specifiche del NIST (serie SP 800–140: “Test Requirements” e CMVP: “Implementation Guidelines”) .
La versione attuale è la FIPS 140-3 ed è stata pubblicata nel 2019.Come detto prima, i requisiti di sicurezza dello standard FIPS 140-3 sono organizzati in 11 diverse aree che coprono a 360 gradi tutti gli aspetti di sicurezza che un modulo crittografico deve avere per poter essere validato.
Va osservato che oltre ai classici requisiti di sicurezza logica e fisica tipici di un prodotto ICT, lo standard richiede anche requisiti sull’ambiente operativo in cui il modulo viene gestito, sul ciclo di vita del modulo (progettazione, sviluppo, test, rilascio,..), nonché sulla sua resistenza ai potenziali attacchi cui è soggetto. I requisiti di sicurezza previsti nelle varie aree potranno essere più o meno stringenti sulla base del livello di sicurezza al quale si vuole validare il modulo crittografico.
Lo standard prevede 4 livelli di sicurezza incrementali che partono dal livello 1 che di fatto rappresentano i requisiti di base, per arrivare al livello 4 dove, ai requisiti di base, sono aggiunti ulteriori requisiti sempre più stringenti.A titolo esemplificativo, a livello 2 viene richiesto che il sistema operativo utilizzato dal modulo crittografico sia certificato Common Criteria al livello EAL2 e che il modulo implementi dei meccanismi di sicurezza fisica per l’evidenza che il modulo non sia stato manomesso.
La scelta del livello di sicurezza al quale un modulo crittografico deve essere validato dipende fortemente dall’utilizzo che si vuole fare del modulo e dalla sensibilità dei dati gestiti. Di fatto, la scelta del livello di validazione di un modulo crittografico deve essere una scelta basata sul rischio dell’applicazione nella quale esso viene utilizzato. Le Aree di Sicurezza del FIPS
Il processo di validazione FIPS 140-3Associato allo standard FIPS 140-3, è stato realizzato un Programma di Convalida dei Moduli di Crittografia (CMVP) che è una iniziativa promossa dal NIST e dal CCCS (Canadian Centre for Cyber Security). Tale programma definisce di fatto il processo di convalida dei moduli crittografici basato sullo standard FIPS, lo gestisce ed emette i certificati. Inoltre, è stato creato il NIST Information Technology Laboratory che gestisce un programma correlato avente la finalità di convalidare gli algoritmi di crittografia utilizzati da un modulo crittografico quando esso viene validato FIPS.
Altro attore importante del processo di validazione FIPS sono i laboratori chiamati Cryptographic and Security Testing (CST). Questi sono laboratori indipendenti accreditati dal NIST in accordo al National Voluntary Laboratory Accreditation Program (NVLAP). I laboratori CST verificano che ogni modulo soddisfi una serie di requisiti crittografici e di sicurezza testabili e ogni loro proposta viene esaminata e validata dal CMVP.Il processo di validazione di un modulo crittografico, in accordo allo standard FIPS 140-3, consta di 5 fasi:
- Implementation Under Test o IUT: il laboratorio ha accesso a tutta la documentazione necessaria del modulo crittografico ed esegue tutti i test (funzionali, algoritmici, revisione del codice sorgente e della documentazione, test di sicurezza fisica e la cosiddetta “analysis of the entropy source”). Alla fine di questa fase viene prodotto il cosiddetto Test Report, oltre alla Security Policy, che verrà sottomesso al CMVP;
- Review Pending: il CMVP assegna dei revisori per i documenti forniti dal laboratorio;
- In Review: i revisori del NIST eseguono una revisione dei documenti ricevuti dal laboratorio ed inviano eventualmente delle note/commenti qualora si riscontrino anomalie nei diversi documenti;
- Coordination: il laboratorio, in collaborazione con il vendor del modulo crittografico, risolve i commenti pervenuti dal CMVP e crea un insieme di risposte chiamate “Comment Responses”. Ri-sottopone quindi i documenti al CMVP che potrà eventualmente inviare ulteriori commenti.
- Finalization: il CMVP, una volta che ha verificato che tutti i commenti sono stati risolti positivamente, rilascia il certificato che viene pubblicato sul sito del CMVP.Come si può notare, il processo può richiedere diversi round di commenti e questo dipende fortemente dalla qualità dei test effettuati e dei documenti prodotti dal Laboratorio.
Il processo di validazione FIPS
Il processo di ri-certificazione di un modulo crittografico generalmente è più semplice e prevede diversi scenari sulla base delle modifiche che sono state apportate al modulo crittografico rispetto alla versione validata. In generale, se le modifiche sono considerare non rilevanti, si può adottare un processo di ri-certificazione più semplice e veloce, mentre se sono considerate significative, si deve procedere con una completa ri-validazione del modulo applicando il processo descritto prima.
Evoluzioni future dello standard FIPS 140-3
Da quanto illustrato in precedenza, lo standard FIPS 140-3 è uno dei pochi standard al mondo, se non l’unico, che propone dei requisiti di sicurezza e un processo di validazione per i moduli crittografici completo e strutturato.
Il suo largo utilizzo negli Stati Uniti dovuto alla sua obbligatorietà in ambito governativo e l’utilizzo volontario negli altri ambiti, lo hanno reso uno standard «de facto», in quanto tutti i moduli crittografici dei principali vendor mondiali sono certificati FIPS.
Alla luce della grande importanza che la crittografia assume all’interno della sicurezza informatica viste le numerose applicazioni in cui viene utilizzata, la disponibilità di uno schema di certificazione per i moduli crittografici assume un ruolo rilevante all’interno delle strategie sulla cyber security che tutti gli stati occidentali stanno implementando.
Non è un caso quindi che la Commissione Europea, nell’ambito degli schemi di certificazione introdotti con il Cyber Security Act, abbia indicato la crittografia come un possibile ambito nel quale definire ed implementare uno schema di certificazione.
Analogamente, l’Agenzia per la Cybersicurezza Nazionale (ACN) ha indicato nel Piano di Implementazione della Strategia Nazione della Cybersicurezza un punto relativo alla «promozione dell’uso della crittografia».
Conclusioni
Risulta pertanto evidente che lo standard FIPS 140-3, considerando anche l’esperienza maturata negli Stati Uniti dove sono presenti i maggiori vendor di prodotti ICT, sia il naturale candidato sul quale basare degli schemi di certificazione, sia europei che nazionali, considerando anche che già oggi il FIPS 140-3 è supportato da standard internazionali quali quelli emessi dall’ISO.