Crittografia asimmetrica
La crittografia asimmetrica (crittografia a chiave pubblica) o a coppia di chiavi si utilizza per proteggere file, directory e intere unità da accessi non autorizzati, nonché per scambiare messaggi segreti. A questo scopo si utilizzano delle chiavi.
Informazioni dettagliate sullo scambio sicuro di dati sono disponibili nella nostra panoramica sui processi crittografici.
A differenza della crittografia simmetrica, gli utenti non condividono una chiave segreta comune (chiave privata). Ogni utente genera invece la propria coppia di chiavi, costituita da una chiave segreta o privata e da una chiave pubblica. Chiunque disponga della chiave pubblica può inviare dati crittografati al proprietario della chiave privata, controllarne la firma digitale o autenticarlo. La chiave privata può a sua volta decrittare i dati crittografati, generare o autenticare firme digitali.
Di seguito, spieghiamo il principio, le funzioni, le possibili applicazioni e i vantaggi e svantaggi della crittografia asimmetrica.
Che cos’è la crittografia asimmetrica?
L’idea della crittografia a chiave pubblica è nata solo nel 1975. La crittografia asimmetrica è quindi un ambito molto recente della crittografia, la cui storia risale a più di 2.000 anni fa. Il maggior vantaggio della crittografia asimmetrica è allo stesso tempo il maggiore svantaggio della crittografia simmetrica: i partner della comunicazione non devono concordare una sola chiave comune, ma ciascuno dispone di una chiave privata.
Il problema di un metodo a chiave privata (crittografia simmetrica) è in particolare lo scambio delle chiavi. La chiave segreta deve raggiungere il destinatario, ma più viene condivisa, più questa trasmissione diventa confusa, costosa e quindi poco sicura e vulnerabile.
In questo senso, la crittografia asimmetrica rappresenta un’alternativa pratica, dal momento che ogni utente ha la propria coppia di chiavi.
Il principio della crittografia a chiave pubblica
Nella crittografia asimmetrica, ogni partner di comunicazione dispone di una coppia di chiavi costituita da una chiave pubblica (public key) e da una chiave privata (private key). Allo stesso modo, le chiavi sono tenute insieme tramite un portachiavi che unisce le due chiavi attraverso un algoritmo matematico: i dati crittografati con la chiave pubblica possono essere decrittati solo con la chiave privata. Per la protezione dei dati e l’esecuzione sicura della crittografia a chiave pubblica, è quindi essenziale che la chiave privata rimanga segreta a tutti gli altri partner di comunicazione.
In pratica, il mittente dei dati ha, dunque, sempre bisogno della chiave pubblica del destinatario. La chiave pubblica qui svolge una funzione unidirezionale: può crittografare i dati, ma non decodificarli nuovamente, perché questo può essere fatto soltanto il destinatario dei dati con la sua chiave privata. Tuttavia, la chiave pubblica non viene utilizzata solo per la crittografia, ma consente anche di controllare le firme digitali e i partner di comunicazione.
La chiave viene consegnata al primo contatto. Allo stesso tempo, la chiave privata genera firme digitali e può quindi autenticarsi presso altri partner di comunicazione. In breve, la crittografia asimmetrica consente a chiunque di accedere a una chiave pubblica, ma per decodificarla è necessaria la chiave privata. Questo consente uno scambio molto sicuro dei dati.
Come funziona la crittografia asimmetrica?
Per iniziare, il destinatario genera la sua coppia di chiavi. Il destinatario conserva la sua chiave privata, mentre condivide quella pubblica con il partner di comunicazione. Si tratta di una trasmissione semplice tramite autorità di certificazione o cosiddetti key server (ovvero server chiave) dove si può archiviare la chiave. Il mittente codifica il suo messaggio con questa chiave pubblica e lo invia come “testo segreto” al destinatario. Dal momento in cui viene crittografato, questo messaggio può essere decodificato solo dal destinatario con la sua chiave privata. Per questo motivo, il canale di scambio è in linea di principio liberamente selezionabile: se anche il messaggio crittografato viene intercettato, l’utente malintenzionato non potrà accedere al suo contenuto.
Questa funzione unidirezionale è il principio base della crittografia asimmetrica. Le due chiavi sono completamente indipendenti l’una dall’altra. Anche se la chiave pubblica è nota, un utente malintenzionato non può risalire in nessun modo alla chiave privata. A tal fine, la chiave pubblica funziona con fattori primi chiaramente definiti, che vengono moltiplicati e danno un risultato inequivocabile. Quindi esegue operazioni come la seguente:
23 x 199 = 4.577
La chiave privata, invece, funziona esclusivamente con il risultato di questo calcolo (nell’esempio con il numero 4.577). È quasi impossibile individuare i fattori di questa moltiplicazione, perché ci sono innumerevoli modi per creare questo numero. Ad oggi, inoltre, non esistono metodi o algoritmi matematici in grado di semplificare il ricalcolo.
In questo esempio sono stati usati numeri primi molto piccoli. In pratica, la crittografia asimmetrica utilizza numeri molto più elevati, rendendo così la crittografia a chiave pubblica più sicura.
Campi d’applicazione della crittografia asimmetrica
HTTPS è l’acronimo di Hypertext Transfer Protocol Secure, in cui i dati vengono crittografati in modo asimmetrico e quindi trasmessi in modo sicuro rispetto al noto e non protetto Hypertext Transfer Protocol, in breve HTTP.
I sistemi di crittografia asimmetrici possono anche essere combinati con processi simmetrici. In questo caso, le chiavi vengono prima scambiate mediante crittografia asimmetrica, ma la successiva comunicazione viene poi crittografata simmetricamente. Questo sistema di crittografia ibrido si utilizza quando gli utenti vogliono avere la velocità della crittografia simmetrica, ma allo stesso tempo la sicurezza della crittografia asimmetrica.
Esempi di crittografia asimmetrica
Probabilmente il programma di crittografia più popolare è PrettyGood Privacy, meglio conosciuto come PGP. Si basa sulla crittografia a chiave pubblica e viene utilizzato per crittografare le e-mail. Durante l’installazione vengono generate una chiave pubblica e una privata. Successivamente, la chiave pubblica può essere passata di persona o memorizzata in un database centrale. In questo modo, chiunque può cercare le chiavi di determinati proprietari. Il mittente codifica i suoi dati con la chiave pubblica e identifica l’e-mail o il messaggio come crittografato PGP. Il destinatario può quindi renderlo nuovamente leggibile mediante la chiave privata.
Un’alternativa gratuita a PGP è OpenPGP sviluppato nel 1997. Il software open source dispone ormai di molte estensioni che superano la gamma di funzionalità di PGP.
Anche i metodi di firma sono strettamente correlati alla crittografia a chiave pubblica. Lo standard RSA è il metodo più diffuso per le firme digitali. In questo caso, la firma corrisponde alla codifica del messaggio con la chiave privata. “Firmando” il suo messaggio, il mittente lo codifica con RSA prima di inviarlo. L’autenticità e l’identità del messaggio vengono controllate dal destinatario con la sua chiave pubblica.
RSA è considerato un metodo di firma vecchio ma collaudato. Alternative che generano o riconoscono firme digitali con un metodo molto simile sono DSA (Digital Signature Algorithm) ed ElGamal.
Un esempio concreto di protocolli crittografici è la crittografia tramite SSL/TLS. Il protocollo di rete garantisce una comunicazione sicura, ad esempio tra il server web e il browser. Allo stesso tempo, garantisce l’autenticità del server. A questo scopo, il protocollo SSL/TLS utilizza la crittografia ibrida, utilizzando sia il metodo asimmetrico che quello simmetrico. La chiave pubblica è firmata da un’autorità di certificazione e il certificato risultante è crittografato. Il certificato può quindi essere aperto solo dalla chiave pubblica dell’autorità di certificazione. Ad esempio, il server web invia la chiave pubblica certificata al browser che controlla il certificato. Se il certificato è valido, il browser genera una chiave simmetrica e la invia al server web. Entrambi ora utilizzano questa chiave comune per la crittografia simmetrica del traffico per il resto della sessione SSL/TLS.
Vantaggi e svantaggi della crittografia asimmetrica
Lo svantaggio principale della crittografia a chiave pubblica è la sua lentezza. Inoltre, richiede una potenza di calcolo notevolmente maggiore. Pertanto, come nel precedente esempio di crittografia SSL, è stato sviluppato un sistema ibrido che combina sistemi simmetrici e asimmetrici. Problemi del passato, come l’autenticazione insicura e l’elevata vulnerabilità a malware, sono già stati risolti da certificati e firme digitali e da sistemi crittografici basati su ID.
La crittografia ibrida è la soluzione ideale per sfruttare i vantaggi di entrambi i mondi. La crittografia asimmetrica assume il compito di distribuzione delle chiavi, eliminando il passaggio complicato del trasferimento delle chiavi private di un sistema di crittografia simmetrico. Il risultato: una crittografia sicura, veloce e pratica.