Crittografia a chiave pubblica: cos'e, come funziona e come si usa
Hai mai notato il lucchetto vicino all indirizzo di un sito web Nel browser indica che stai usando una connessione sicura protetta da crittografia a chiave pubblica, una delle tecnologie fondamentali della sicurezza su internet.
In questo articolo vediamo:
- che cosa si intende per crittografia a chiave pubblica, detta anche crittografia asimmetrica
- come funziona in pratica
- in quali contesti viene usata, per esempio HTTPS, email cifrate, firme digitali, criptovalute
- perche e cosi importante per la sicurezza informatica moderna
❓ Che cosa e la crittografia a chiave pubblica
La crittografia a chiave pubblica e un tipo di crittografia asimmetrica. Asimmetrica significa che si basa su due chiavi diverse:
- una chiave pubblica, che puo essere condivisa con chiunque
- una chiave privata, che deve rimanere segreta
Queste due chiavi sono collegate da una relazione matematica: cio che viene cifrato con una, puo essere decifrato solo con la corrispondente chiave associata.
Differenza con la crittografia simmetrica
Per capire meglio la crittografia a chiave pubblica, conviene confrontarla con la crittografia simmetrica:
- nella crittografia simmetrica si usa una unica chiave condivisa per cifrare e decifrare i dati
- nella crittografia a chiave pubblica si usa una coppia di chiavi, una pubblica e una privata
Il problema principale della crittografia simmetrica e lo scambio sicuro della chiave segreta. Come faccio a inviare la chiave a un altra persona se non ho ancora un canale sicuro La crittografia a chiave pubblica nasce per risolvere proprio questo problema.
🔒 Come funziona la crittografia a chiave pubblica
Generazione della coppia di chiavi
Ogni utente genera una coppia di chiavi:
- chiave pubblica, che puo essere distribuita liberamente
- chiave privata, che deve essere custodita con attenzione e mantenuta segreta
Cifratura e decifratura dei messaggi
Un possibile scenario di comunicazione sicura e il seguente:
- chi vuole inviarti un messaggio prende la tua chiave pubblica
- usa la chiave pubblica per cifrare il messaggio
- ti invia il messaggio cifrato attraverso la rete
Solo tu, che possiedi la chiave privata corrispondente, puoi decifrare quel messaggio e leggerne il contenuto.
Proprieta fondamentale
La caratteristica centrale della crittografia a chiave pubblica e la seguente:
- un messaggio cifrato con la chiave pubblica puo essere decifrato solo con la chiave privata associata
- e computazionalmente impraticabile ricavare la chiave privata a partire dalla sola chiave pubblica, se l algoritmo e moderno e la lunghezza delle chiavi e adeguata
Questa sicurezza si basa su problemi matematici difficili, per esempio:
- fattorizzazione di numeri molto grandi, come nel caso dell algoritmo RSA
- calcolo del logaritmo discreto, utilizzato in Diffie Hellman e in alcuni schemi a curve ellittiche
💻 A cosa serve la crittografia a chiave pubblica nella pratica
La crittografia a chiave pubblica e presente in moltissime applicazioni della sicurezza informatica. Di seguito alcuni casi d uso fondamentali.
HTTPS e sicurezza dei siti web
Quando navighi su un sito con indirizzo che inizia con HTTPS, il tuo browser e il server web:
- usano la crittografia a chiave pubblica per autenticare il server tramite certificati digitali
- stabiliscono in modo sicuro una chiave simmetrica di sessione da usare durante la navigazione
Dopo lo scambio iniziale, la comunicazione tra browser e server prosegue con crittografia simmetrica, molto piu veloce, ma resa possibile proprio dall uso iniziale di chiavi pubbliche e private.
Email cifrate con PGP o GPG
Strumenti come PGP e GPG si basano sulla crittografia a chiave pubblica per proteggere le email:
- ogni utente dispone di una coppia di chiavi, pubblica e privata
- chi invia un messaggio usa la chiave pubblica del destinatario per cifrare il testo
- il destinatario decifra con la propria chiave privata
Inoltre e possibile firmare digitalmente le email con la chiave privata. Chi riceve puo verificare la firma usando la chiave pubblica del mittente, controllando autenticita e integrita.
Firma digitale di documenti
La firma digitale, usata anche in contesti legali e amministrativi, sfrutta lo stesso principio:
- il documento viene firmato con la chiave privata di chi lo sottoscrive
- chiunque puo verificare la firma con la corrispondente chiave pubblica
Questo meccanismo garantisce:
- autenticita, cioe provenienza del documento
- integrita, cioe assenza di modifiche dopo la firma
- non ripudio, cioe impossibilita di negare la paternita della firma, in un contesto legale adeguato
Aggiornamenti software e verifiche di integrita
Molti aggiornamenti software sono accompagnati da una firma digitale:
- il produttore firma il pacchetto con la propria chiave privata
- il sistema dell utente verifica la firma con la chiave pubblica del produttore
In questo modo si ha la garanzia che il software provenga dalla fonte corretta e non sia stato manomesso.
Criptovalute e blockchain
Anche le criptovalute si basano sulla crittografia a chiave pubblica:
- gli indirizzi pubblici del portafoglio derivano dalla chiave pubblica
- le transazioni vengono firmate con la chiave privata del proprietario
- la rete puo verificare le firme usando le chiavi pubbliche, senza pero poter spendere i fondi al posto dell utente
⚙ Come si usa la crittografia a chiave pubblica in un flusso tipico
1. Generazione della coppia di chiavi
L utente utilizza un software o una libreria crittografica, per esempio OpenSSL o GPG, per:
- generare una coppia chiave pubblica, chiave privata
- salvare la chiave privata in modo sicuro, spesso protetta da password
- esportare la chiave pubblica per condividerla con altri
2. Condivisione della chiave pubblica
La chiave pubblica puo essere distribuita in vari modi:
- inviata via email
- pubblicata su un sito web personale o aziendale
- caricata su un key server pubblico
- inclusa in un certificato digitale rilasciato da una autorita di certificazione
Non importa se molte persone vedono la chiave pubblica, perche il suo compito e proprio quello di essere condivisa.
3. Cifratura di un messaggio
Chi vuole inviarti un messaggio riservato:
- recupera la tua chiave pubblica
- usa un software di crittografia per cifrare il contenuto
- ti invia il testo cifrato
4. Decifratura del messaggio
Quando ricevi il messaggio cifrato:
- apri il file o il testo con il programma di crittografia
- inserisci la tua chiave privata, eventualmente protetta da password
- il software usa la chiave privata per riportare il messaggio in chiaro
5. Firma digitale
In senso inverso, puoi utilizzare la chiave privata per firmare digitalmente un messaggio o un documento. Chiunque disponga della tua chiave pubblica puo:
- verificare che la firma sia valida
- controllare che il documento non sia stato modificato dopo la firma
Questo non serve a nascondere il contenuto, ma a garantire autenticita e integrita.
⚠ Vantaggi e limiti della crittografia a chiave pubblica
Vantaggi principali
- nessuno scambio di chiavi segrete, perche la chiave pubblica puo essere distribuita liberamente
- buona scalabilita, poiche chiunque puo comunicare con te in modo sicuro conoscendo solo la tua chiave pubblica
- supporto a funzioni avanzate come firme digitali, autenticazione e controllo di integrita
Limiti principali
- la crittografia a chiave pubblica e piu lenta rispetto alla crittografia simmetrica
- gestire le chiavi richiede attenzione, soprattutto per la protezione della chiave privata
- serve un sistema affidabile per collegare una chiave pubblica a una identita reale, per esempio tramite certificati
- e necessario aggiornare periodicamente algoritmi e lunghezze di chiave per mantenere un buon livello di sicurezza
Per questi motivi, nella pratica si usa spesso un approccio ibrido:
- la crittografia a chiave pubblica serve per scambiare in modo sicuro una chiave simmetrica
- la crittografia simmetrica protegge il traffico vero e proprio, grazie a prestazioni migliori
📊 Algoritmi piu usati nella crittografia a chiave pubblica
Anche se i dettagli matematici possono essere complessi, e utile conoscere i principali algoritmi:
- RSA: basato sulla fattorizzazione di numeri molto grandi. Storicamente e uno degli algoritmi piu diffusi per cifratura e firme digitali.
- Diffie Hellman: progettato per lo scambio sicuro di chiavi su un canale insicuro.
- ECDSA ed EdDSA: algoritmi a curve ellittiche che offrono un buon livello di sicurezza con chiavi piu corte rispetto a RSA, e prestazioni migliori in molti contesti.
Vedi le basi teoriche dell'Algoritmo RSA
📝 Domande frequenti sulla crittografia a chiave pubblica
Differenza tra chiave pubblica e chiave privata
La chiave pubblica e pensata per essere distribuita ad altri. Viene usata per cifrare messaggi verso di te e per verificare le firme digitali che crei.
La chiave privata invece deve restare segreta. Viene usata per decifrare i messaggi cifrati con la tua chiave pubblica e per firmare documenti o comunicazioni.
La crittografia a chiave pubblica e sicura
La sicurezza dipende da diversi fattori:
- uso di algoritmi moderni e ben studiati
- lunghezza adeguata delle chiavi
- protezione della chiave privata con password robuste e, se possibile, hardware dedicato
- aggiornamento regolare del software e dei protocolli di sicurezza
Nelle condizioni corrette, gli algoritmi a chiave pubblica sono considerati sicuri, perche si basano su problemi matematici ritenuti impraticabili da risolvere con la potenza di calcolo attualmente disponibile.
Posso usare solo la crittografia a chiave pubblica
In teoria si, ma in pratica e piu efficiente combinare la crittografia a chiave pubblica con quella simmetrica. La prima viene usata per stabilire un canale sicuro e scambiare una chiave simmetrica, la seconda per proteggere i dati durante la comunicazione vera e propria.
📌 Conclusioni
La crittografia a chiave pubblica e uno dei pilastri della sicurezza informatica. Permette di proteggere connessioni web, email, software, transazioni digitali e molto altro.
Capire che cosa e, come funziona e come si usa significa aumentare la consapevolezza su strumenti che utilizzi ogni giorno. Se ti occupi di sviluppo software o di sicurezza, questi concetti sono una base indispensabile per progettare e valutare sistemi sicuri.