Schema Ibrido Crittografico

Indice dei contenuti

    Lo schema ibrido crittografico è l’architettura che combina crittografia asimmetrica e crittografia simmetrica per ottenere i vantaggi di entrambe: la praticità dello scambio di chiavi senza canale sicuro preesistente (asimmetrica) e l’efficienza computazionale nella cifratura dei dati (simmetrica). Quasi ogni sistema crittografico reale — TLS/HTTPS, PGP, Signal, SSH — usa questo schema.

    Il problema che risolve

    La crittografia asimmetrica risolve elegantemente il problema della distribuzione delle chiavi ma è 100–1000× più lenta della crittografia simmetrica: cifrare direttamente un file da 1 GB con RSA sarebbe impraticabile. La crittografia simmetrica è velocissima ma richiede che le due parti condividano un segreto comune su un canale già sicuro — che è esattamente il problema da risolvere. Lo schema ibrido risolve questa circolarità in due fasi.

    Il meccanismo in due fasi

    Fase 1 — Scambio della chiave di sessione (asimmetrica): le due parti usano un algoritmo asimmetrico per concordare o trasportare una chiave di sessione simmetrica temporanea, senza che questa transiti mai in chiaro sulla rete. In TLS 1.3 questo avviene tramite ECDHE: entrambe le parti generano parametri efimeri e derivano indipendentemente lo stesso segreto condiviso senza trasmetterlo.

    Fase 2 — Cifratura dei dati (simmetrica): la chiave di sessione negoziate nella fase 1 viene usata per cifrare l’intera comunicazione con un algoritmo simmetrico veloce (AES-GCM, ChaCha20-Poly1305). La chiave di sessione è temporanea e viene scartata al termine della sessione.

    Forward Secrecy

    Uno degli attributi cruciali dello schema ibrido moderno è la Forward Secrecy (o Perfect Forward Secrecy, PFS): l’uso di parametri efimeri per lo scambio della chiave di sessione garantisce che, anche se la chiave privata del server venisse compromessa in futuro, non sarebbe possibile decifrare le sessioni passate già registrate. Ogni sessione ha la propria chiave di sessione effimera, non derivabile da chiavi a lungo termine. TLS 1.3 rende la Forward Secrecy obbligatoria eliminando i cipher suite RSA key exchange che non la garantivano.

    Esempi d’uso

    In TLS 1.3: ECDHE negozia il segreto condiviso → HKDF lo espande in chiavi di sessione → AES-256-GCM o ChaCha20-Poly1305 cifrano i dati. In PGP/GPG: RSA o ECC del destinatario cifra una chiave AES di sessione → AES cifra il messaggio. In Signal Protocol: usa Diffie-Hellman a doppia rocchetta (Double Ratchet) per aggiornare continuamente le chiavi di sessione, garantendo forward secrecy e break-in recovery simultaneamente.

    Ultimo aggiornamento: