Articles

Come funziona la crittografia a chiave pubblica? / Crittografia a chiave pubblica e SSL

Cos’è la crittografia a chiave pubblica?

La crittografia a chiave pubblica, o crittografia a chiave pubblica, è un metodo per crittografare i dati con due chiavi diverse e rendere una delle chiavi, la chiave pubblica, disponibile per chiunque. L’altra chiave è nota come chiave privata. I dati crittografati con la chiave pubblica possono essere decifrati solo con la chiave privata e i dati crittografati con la chiave privata possono essere decifrati solo con la chiave pubblica. La crittografia a chiave pubblica è anche conosciuta come crittografia asimmetrica., È ampiamente utilizzato, specialmente per TLS / SSL, che rende possibile HTTPS.

Che cos’è una chiave crittografica?

In crittografia, una chiave è un pezzo di informazione utilizzata per rimescolare i dati in modo che appaia casuale; spesso è un numero elevato, o una stringa di numeri e lettere. Quando i dati non crittografati, chiamati anche testo in chiaro, vengono inseriti in un algoritmo di crittografia utilizzando la chiave, il testo in chiaro esce dall’altra parte come dati dall’aspetto casuale. Tuttavia, chiunque abbia la chiave giusta per decifrare i dati può rimetterli in forma di testo in chiaro.,

Plaintext + key = ciphertext:

hello + 2jd8932kd8 = X5xJCSycg14=

Ciphertext + key = plaintext:

X5xJCSycg14= + 2jd8932kd8 = hello

(Questo è un esempio di crittografia simmetrica, in cui viene utilizzata solo una chiave.)

*Utilizzo dell’algoritmo Blowfish, modalità CBC, codifica Base64.

Come funziona la crittografia a chiave pubblica?

La crittografia a chiave pubblica può sembrare complessa per chi non lo sapesse; fortunatamente uno scrittore di nome Panayotis Vryonis ha escogitato un’analogia che va approssimativamente come segue.

Immagina un baule con un lucchetto che due persone, Bob e Alice, usano per spedire documenti avanti e indietro., Un blocco tipico ha solo due stati: bloccato e sbloccato. Chiunque abbia una copia della chiave può sbloccare il bagagliaio se è bloccato e viceversa. Quando Bob blocca il baule e lo invia ad Alice, sa che Alice può usare la sua copia della chiave per sbloccare il baule. Questo è essenzialmente il modo in cui funziona la cosiddetta crittografia simmetrica: una chiave segreta viene utilizzata sia per la crittografia che per la decrittografia, ed entrambi i lati di una conversazione utilizzano la stessa chiave.

Ora immagina, invece, che Bob faccia un baule con un tipo speciale di serratura. Questo blocco ha tre stati invece di due:

  • A., Bloccato, chiave girato tutta la strada a sinistra
  • B. Sbloccato, nel mezzo.
  • C. Bloccato, chiave girato tutta la strada a destra.

Invece di una chiave, due chiavi con chiusura:

  • Chiave N. 1 può girare solo a sinistra
  • Chiave N. 2 può girare solo a destra

Questo significa che se il tronco è bloccato e si gira la chiave in posizione A, solo il tasto N ° 2 possono sbloccare svoltando a destra, per la posizione B (sbloccato). Se il bagagliaio è bloccato in posizione C, solo il tasto n. 1 può sbloccarlo ruotando la serratura a sinistra, in posizione B.,

In altre parole, entrambi i tasti possono bloccare il bagagliaio, ma una volta bloccato, solo l’altro tasto può sbloccarlo.

Ora diciamo che Bob fa alcune dozzine di copie della chiave n.2, la chiave che gira solo a destra, e le condivide con tutti quelli che conosce e chiunque ne voglia una copia, rendendola la sua chiave pubblica. Tiene la chiave n. 1 per se stesso – è la sua chiave privata. Che cosa fa questo compire?

  1. Alice può inviare dati riservati Bob tramite il tronco ed essere sicuri che solo Bob può sbloccarlo., Una volta che Alice ha bloccato il tronco con la chiave pubblica, che gira da sinistra a destra, solo una chiave che può girare da destra a sinistra può sbloccarlo. Ciò significa che solo la chiave privata di Bob può sbloccarlo.
  2. Alice può essere sicura che il baule sia in realtà di Bob, e non di un sosia, se è bloccato con la sua chiave privata. C’è solo una chiave che può bloccare il tronco in modo che il blocco sia in posizione A, o girato fino a sinistra: la chiave privata di Bob. È vero, chiunque può sbloccarlo con la chiave pubblica ruotando la chiave a destra, ma è garantito che il baule proviene da Bob.,

Sostituisci i dati in chiaro per il trunk e le chiavi crittografiche per le chiavi fisiche da questa analogia, ed è così che funziona la crittografia a chiave pubblica. Solo il proprietario della chiave privata può crittografare i dati in modo che la chiave pubblica lo decifri; nel frattempo, chiunque può crittografare i dati con la chiave pubblica, ma solo il proprietario della chiave privata può decrittografarli.

Pertanto, chiunque può inviare dati in modo sicuro al proprietario della chiave privata., Inoltre, chiunque può verificare che i dati ricevuti dal proprietario della chiave privata provengano in realtà da quella fonte e non da un sosia (vedi Cos’è un attacco on-path?).

In che modo TLS/SSL utilizza la crittografia a chiave pubblica?

La crittografia a chiave pubblica è estremamente utile per stabilire comunicazioni sicure su Internet (tramite HTTPS). Il certificato SSL/TLS di un sito Web, condiviso pubblicamente, contiene la chiave pubblica e la chiave privata è installata sul server di origine: è “di proprietà” del sito Web.,

Gli handshake TLS utilizzano la crittografia a chiave pubblica per autenticare l’identità del server di origine e per scambiare i dati utilizzati per generare le chiavi di sessione. Un algoritmo di scambio di chiavi, come RSA o Diffie-Hellman, utilizza la coppia di chiavi pubblica-privata per concordare le chiavi di sessione, che vengono utilizzate per la crittografia simmetrica una volta completata l’handshake. Client e server sono in grado di concordare nuove chiavi di sessione per ogni sessione di comunicazione, in modo che i cattivi attori non siano in grado di decifrare le comunicazioni anche se identificano o rubano una delle chiavi di sessione.