Backstory
Il sistema che sto progettando richiede messaggi crittografati e l'autenticazione dei messaggi. AES-GCM sembra la scelta logica a causa delle sue capacità di autenticazione e throughput elevato.
La chiave utilizzata per crittografare un messaggio viene generalmente generata in modo casuale per messaggio e crittografata utilizzando la chiave pubblica del destinatario. La chiave crittografata viene inviata insieme al messaggio.
Generalmente non ci sono chiavi persistenti tra entrambe le parti.
Esempio
Prendiamo il seguente messaggio come esempio:
{
"timestamp": "2017-01-01",
"encryptedMessage": "...",
"sign": "..."
"key": "..."
}
Il valore "timestamp" è in testo chiaro, "encryptedMessage" crittografato, "sign" contiene la firma RSA di "timestamp" e "chiave" contiene la chiave crittografata. In questo esempio. Avrebbe senso anche firmare "encryptedMessage"?
Chiarimento delle domande
Ci sono dei vantaggi nell'usare la firma RSA sull'autenticità fornita da AES-GCM?
Avrebbe senso firmare un messaggio già crittografato usando AES-GCM?