Passa al contenuto principale

6. Panoramica degli schemi (Overview of Schemes)

Uno schema (Scheme) combina primitive crittografiche e altre tecniche per raggiungere un particolare obiettivo di sicurezza. Questo documento specifica due tipi di schemi: schemi di cifratura (Encryption Schemes) e schemi di firma con appendice (Signature Schemes with Appendix).

Gli schemi specificati in questo documento hanno una portata limitata, poiché le loro operazioni comprendono solo i passaggi di elaborazione dei dati utilizzando una chiave pubblica o privata RSA, e non includono i passaggi di ottenimento o verifica delle chiavi. Pertanto, oltre alle operazioni dello schema, le applicazioni includeranno generalmente operazioni di gestione delle chiavi (Key Management Operations) attraverso le quali le parti possono selezionare le chiavi pubbliche e private RSA per le operazioni dello schema. Le operazioni aggiuntive specifiche e altri dettagli sono al di fuori dell'ambito di questo documento.

Come nel caso delle primitive crittografiche (Sezione 5), la specifica delle operazioni dello schema presuppone che gli input soddisfino determinate condizioni, in particolare che le chiavi pubbliche e private RSA siano valide. Pertanto, quando le chiavi non sono valide, il comportamento delle implementazioni non è specificato. L'implicazione di questo comportamento non specificato dipende dall'applicazione. Gli approcci possibili per affrontare il problema della validazione delle chiavi includono: validazione esplicita delle chiavi da parte dell'applicazione; validazione delle chiavi all'interno di un'infrastruttura a chiave pubblica; e assegnazione della responsabilità di eseguire operazioni con chiavi non valide alla parte che ha generato le chiavi.

Una pratica crittografica generalmente buona è utilizzare una data coppia di chiavi RSA in un singolo schema. Ciò evita il rischio che una vulnerabilità in uno schema possa compromettere la sicurezza di un altro, e può essere essenziale per mantenere la sicurezza dimostrabile (Provable Security). Sebbene RSAES-PKCS1-v1_5 (Sezione 7.2) e RSASSA-PKCS1-v1_5 (Sezione 8.2) siano stati tradizionalmente utilizzati insieme senza interazioni avverse note (infatti, questo è il modello introdotto con PKCS #1 v1.5), questo uso combinato di coppie di chiavi RSA NON È RACCOMANDATO (NOT RECOMMENDED) per le nuove applicazioni.

Per illustrare il rischio associato all'uso di una coppia di chiavi RSA in più schemi, si supponga che una coppia di chiavi RSA sia utilizzata sia per RSAES-OAEP (Sezione 7.1) che per RSAES-PKCS1-v1_5. Sebbene RSAES-OAEP sia di per sé resistente agli attacchi, un attaccante potrebbe essere in grado di sfruttare una debolezza in un'implementazione RSAES-PKCS1-v1_5 per recuperare messaggi cifrati con uno dei due schemi. Un altro esempio, si supponga che una coppia di chiavi RSA sia utilizzata sia per RSASSA-PSS (Sezione 8.1) che per RSASSA-PKCS1-v1_5. In tal caso, la prova di sicurezza di RSASSA-PSS non sarebbe più sufficiente, poiché la prova non tiene conto della possibilità che le firme possano essere generate utilizzando il secondo schema. Considerazioni simili possono applicarsi se una coppia di chiavi RSA viene utilizzata per uno degli schemi definiti qui e una variante definita altrove.