10. Considerazioni sulla sicurezza (Security Considerations)
Le considerazioni sulla sicurezza sono state discusse in vari punti di questo documento.
Punti di sicurezza principali
Lunghezza della chiave
La sicurezza delle chiavi RSA dipende fortemente dalla dimensione del modulo. Lunghezze minime consigliate:
- 2048 bit: lunghezza minima attualmente consigliata
- 3072 bit: consigliato per applicazioni ad alta sicurezza
- 4096 bit: per chiavi a lungo termine o requisiti di sicurezza estremamente elevati
Scelta dello schema
- RSAES-OAEP: lo schema di cifratura per le nuove applicazioni DEVE (REQUIRED) essere supportato
- RSASSA-PSS: schema di firma RACCOMANDATO (RECOMMENDED) per le nuove applicazioni
- PKCS1-v1_5: conservato solo per compatibilità, presenta debolezze note
Note di implementazione
- Generazione di numeri casuali: deve utilizzare un generatore di numeri casuali crittograficamente sicuro
- Attacchi a canale laterale: l'implementazione deve prevenire attacchi temporali e analisi del consumo energetico
- Gestione degli errori: i messaggi di errore delle operazioni di decifratura e verifica devono essere uniformi per evitare perdite di informazioni
- Attacco padding oracle: RSAES-PKCS1-v1_5 è vulnerabile all'attacco Bleichenbacher, è richiesta particolare attenzione durante l'implementazione
Funzioni hash
- Da evitare: MD5, SHA-1 (già violati)
- Consigliati: SHA-256, SHA-384, SHA-512
Uso delle chiavi
- Uso singolo: una coppia di chiavi RSA dovrebbe essere utilizzata per un solo schema (cifratura o firma, non mescolare)
- Rotazione delle chiavi: aggiornare le chiavi regolarmente
- Protezione della chiave privata: la chiave privata dovrebbe essere archiviata crittografata, l'uso di un modulo di sicurezza hardware (HSM) è una best practice
Attacchi noti e difese
- Attacco con testo cifrato scelto (Chosen Ciphertext Attack): RSAES-OAEP fornisce protezione
- Attacco con messaggio scelto (Chosen Message Attack): RSASSA-PSS fornisce protezione
- Attacco Bleichenbacher: colpisce RSAES-PKCS1-v1_5
- Attacco temporale: attenzione necessaria quando si utilizzano algoritmi a tempo costante e accelerazione CRT
Vedere la discussione nella Sezione 6 riguardo l'evitare l'uso della stessa coppia di chiavi in più schemi.