14. Librerie Crittografiche
La scelta di una libreria crittografica è una decisione cruciale che influisce direttamente sulla sicurezza e sull'efficienza di un'applicazione. Questa scelta deve essere guidata da diversi fattori c
La scelta di una libreria crittografica è una decisione cruciale che influisce direttamente sulla sicurezza e sull'efficienza di un'applicazione. Questa scelta deve essere guidata da diversi fattori chiave.
1. Criteri di Scelta di una Libreria Crittografica
Quando si seleziona una libreria crittografica, è importante considerare i seguenti aspetti:
- Compatibilità: Deve essere compatibile con i linguaggi di programmazione e le tecnologie utilizzate nel progetto.
- Integrazione: La capacità di integrarsi facilmente con librerie standard o framework esistenti.
- Disponibilità di Algoritmi: La libreria deve supportare gli algoritmi crittografici necessari per le esigenze dell'applicazione (simmetrici, asimmetrici, hash, ecc.).
- Assenza di Vulnerabilità Note: È fondamentale che la libreria non abbia vulnerabilità note pubblicamente.
- Supporto, Manutenzione e Aggiornamenti Costanti: Una libreria ben mantenuta garantisce che eventuali bug o nuove vulnerabilità vengano prontamente risolti e che la libreria sia aggiornata per supportare gli ultimi standard di sicurezza.
- Certificazione FIPS 140: Una certificazione riconosciuta a livello internazionale che attesta la conformità agli standard di sicurezza crittografica.
2. Certificazione FIPS 140
FIPS (Federal Information Processing Standards) è un set di standard definiti dal NIST (National Institute of Standards and Technology), principalmente rivolti alle organizzazioni del governo americano. La serie FIPS 140 è espressamente dedicata ai requisiti per i moduli crittografici ed è riconosciuta, sebbene non formalmente, anche da ENISA (European Union Agency for Cybersecurity).
Caratteristiche della Certificazione FIPS 140:
- Algoritmi Approvati: FIPS 140 definisce un set di algoritmi crittografici approvati, le relative modalità operative e i requisiti per la loro implementazione, sia software che hardware.
- Conformità Richiesta: Una libreria crittografica può essere certificata FIPS 140 solo se rispetta tutti i requisiti dello standard e, soprattutto, se permette di utilizzare SOLAMENTE algoritmi e modalità operative approvate all'interno del modulo certificato.
Livelli di Certificazione FIPS 140:
Sono disponibili quattro livelli di certificazione FIPS 140, con requisiti via via più stringenti in termini di sicurezza:
- Livello 1: Il livello inferiore. Richiede principalmente l'assenza di bug di sicurezza e che il modulo sia prodotto in modo controllato.
- Livello 2: Aggiunge requisiti per l'autenticazione basata sui ruoli e per la manomissione evidente (tamper-evident).
- Livello 3: Richiede la protezione fisica contro l'accesso e l'uso non autorizzati del modulo crittografico, e la protezione delle chiavi private dall'esfiltrazione.
- Livello 4: Il livello superiore. Include requisiti stringenti anche in termini di sicurezza fisica, protezione contro attacchi ambientali e manomissione fisica avanzata.
Stato Attuale dello Standard:
Lo standard FIPS viene revisionato periodicamente. Attualmente, si è nel periodo di sovrapposizione tra FIPS versione 2 (FIPS 140-2) e FIPS versione 3 (FIPS 140-3).
3. Bouncy Castle
Bouncy Castle è una delle librerie crittografiche più note e ampiamente utilizzate.
- Certificazione: È certificata FIPS 140-2 Level 1.
- Natura: È una libreria open source, manutenuta da un'organizzazione australiana.
- Disponibilità: È disponibile sia per l'ambiente Java che per .NET (C#).
Utilizzo in Java:
In Java, la libreria Bouncy Castle può essere utilizzata in due modi:
- Direttamente: Richiamando i metodi e le classi messe a disposizione dalla libreria.
- Indirettamente: Tramite l'uso della Java Cryptography Extension (JCE). Bouncy Castle può essere configurato come un provider JCE, rendendo i suoi algoritmi disponibili attraverso le API standard di Java.
Utilizzo in C#:
In C#, è possibile solamente l'utilizzo diretto delle classi e dei metodi messi a disposizione dalla libreria.
Per le specifiche complete della libreria, è possibile consultare il sito ufficiale: https://www.bouncycastle.org/specifications.html.