GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è la crittografia a chiave pubblica (Come funzionano le VPN, parte 2)

Questo articolo della serie "Come funzionano le VPN" descrive come funziona la crittografia a chiave pubblica (crittografia asimmetrica). Se ti sei già perso, niente panico! Questa serie di articoli è stata scritta per spiegare i concetti e i metodi alla base delle VPN senza richiedere un'analisi approfondita della matematica che le alimenta.

Se sei completamente nuovo al concetto di VPN, dai un'occhiata a questa introduzione. Se conosci già un po' come funzionano le VPN e vuoi saperne di più, questa serie fa per te. Ogni articolo affronta un aspetto dei mezzi con cui una VPN aiuta a proteggere i dati raccontando una storia che funge da metafora dei meccanismi logici coinvolti. Queste storie coinvolgono due persone, Adam e Burt, che cercano di mantenere un segreto e una terza persona, Cesar, che cerca di scoprire nefastamente il loro segreto. Poiché le VPN non hanno un perfetto equivalente nel mondo fisico, potrebbero esserci alcuni elementi che estendono i limiti della credibilità (ad esempio, Cesar ha accesso a un raggio duplicatore). Ricorda, è solo una storia...

Ogni articolo ha anche sezioni espandibili (indicate con l'ingranaggio icon) che contengono una spiegazione leggermente più approfondita che è un po' più tecnica ma evita comunque di perdersi troppo nella matematica. Queste sezioni collegano un po' di più gli eventi della storia ai componenti o ai passaggi della crittografia o dell'autenticazione, ma non sono necessarie per ottenere una comprensione di base dell'argomento.

Adam e Burt hanno già scoperto la debolezza nell'usare una cassetta di sicurezza con una chiave simmetrica condivisa per mantenere le cose al sicuro. Quindi, Burt propone di provare un nuovo metodo in cui ognuno di loro ha il proprio set di chiavi univoco (crittografia asimmetrica).

Crittografia a chiave pubblica

La crittografia a chiave pubblica è una metodologia di crittografia asimmetrica che cerca di mantenere la riservatezza senza dover mai condividere una chiave segreta su un canale non sicuro (come la posta elettronica non crittografata). In questa spiegazione, Adam e Burt hanno ciascuno un lucchetto unico, ma per il resto di questo esempio tratteremo il lucchetto e le chiavi di Burt (il lucchetto e le chiavi di Adam funzioneranno allo stesso modo). Ogni serratura ha due proprietà speciali:in primo luogo, la serratura ha due chiavi distinte e correlate che possono funzionare con essa, e in secondo luogo, ogni chiave che funziona con la serratura può girare nella serratura solo in una direzione, per il bene di questo esempio, girano solo in senso orario.

Chiavi accoppiate

Le due chiavi in ​​questo sistema asimmetrico funzionano solo in coppia. Se Burt dovesse riscrivere questo lucchetto, dovrebbe creare due nuove chiavi. Per rendere più semplice distinguere le due chiavi, Burt le codifica a colori. Uno lo rende verde e l'altro rosso. Burt mantiene la chiave rossa al sicuro (la sua chiave privata), ma può rendere la chiave verde ampiamente disponibile a chiunque la desideri (la sua chiave pubblica). Questo può sembrare controintuitivo. Ma una caratteristica importante di queste chiavi è che mentre sono correlate, è virtualmente impossibile capire una chiave basata sulla conoscenza dell'altra. In quanto tale, una chiave può essere resa pubblicamente disponibile senza rivelare nulla sulla sua controparte.


Sistemi di crittografia a chiave pubblica.

Queste chiavi sono, nell'uso effettivo, chiamate chiavi pubbliche e private (le designazioni dei colori servono a rendere il spiegazione un po' più facile da seguire). La generazione di queste chiavi implica una matematica piuttosto ingegnosa e complicata. (Questi algoritmi iniziano con calcoli che coinvolgono il prodotto di due numeri primi molto grandi e vanno ben oltre lo scopo di questo esempio.) Gli algoritmi comuni utilizzati nella crittografia a chiave pubblica includono RSA (dal nome dei suoi creatori, Rivest, Shamir e Adleman), DSA /DSS (algoritmo di firma digitale/standard di firma digitale) e ECDSA (algoritmo di firma digitale a curva ellittica). Quest'ultimo algoritmo utilizza invece la matematica attorno alle curve ellittiche ed è almeno altrettanto intimidatorio per gli avversi alla matematica quanto l'algoritmo RSA.

Il lucchetto in senso orario (come funzionano le chiavi)

Oltre a funzionare solo come parte di una coppia, queste chiavi funzionano anche nella serratura in una direzione. Ad esempio, Burt usa la chiave verde (pubblica) per proteggere la serratura, che richiede un mezzo giro nella serratura. Poiché la serratura funziona solo in una direzione, la chiave verde non può sbloccare la serratura invertendo la direzione come una normale serratura. A questo punto, a causa della natura speciale di questo meccanismo di blocco, l'unico modo per sbloccarlo è utilizzare la chiave rossa (privata) abbinata.

In questo modo, quando la serratura è protetta con la chiave verde (pubblica), solo chi possiede la chiave rossa (privata) può aprirla. È così che Burt può rendere la chiave verde ampiamente disponibile al pubblico. Può inviare una copia della chiave verde ad Adam (potrebbe persino renderne disponibile una copia per il ritiro o la duplicazione pubblica). Chiunque abbia una copia di questa chiave verde può bloccare questo lucchetto e, a quel punto, solo Burt, ammesso che mantenga al sicuro la sua chiave rossa (privata), può aprire il lucchetto. Ora, quando Adam vuole inviare qualcosa in modo sicuro a Burt, può usare la chiave verde (pubblica) di Burt. Allo stesso modo, Adam avrebbe la sua coppia di chiavi e potrebbe anche mettere a disposizione di Burt (o chiunque altro) la sua chiave verde.

Ora, se il nostro maleducato Cesar provasse a violare questo metodo di sicurezza, avrebbe bisogno di aprire due lucchetti diversi per ottenere l'intera conversazione. Anche se fosse in grado di superarne solo uno, sarebbe in grado di vedere solo metà della conversazione.


Crittografia unidirezionale.

Questo utilizzo della crittografia unidirezionale viene impiegato in alcuni scambi di posta elettronica sicuri, ad esempio con l'uso di PGP (Pretty Good Privacy) o GPG (Gnu Privacy Guard). Se hai mai visto menzionare la chiave pubblica PGP o GPG di qualcuno (e probabilmente un blocco di testo dall'aspetto casuale che era la chiave stessa), puoi capire perché può essere pubblicata come parte di una firma e-mail o come un sito web. Con quella chiave, chiunque può crittografare un'e-mail che solo il possessore della chiave privata (il destinatario) può decifrare.

Una scatola chiusa due volte

Ecco da dove Burt ha un'idea intelligente. Mette alcune opere d'arte per il fumetto su cui stanno lavorando lui e Adam in una scatola, posiziona il suo lucchetto sulla scatola e la protegge con la sua chiave verde (pubblica). Ora, è l'unica persona (dato che ha l'unica copia della chiave rossa) che può sbloccare questa scatola. Invia questa scatola ad Adam.

Adam, non avendo una copia della chiave rossa (privata) di Burt, non riesce ad aprire la serratura. Ma può mettere il suo lucchetto sulla scatola. Protegge questo lucchetto con la sua chiave verde (pubblica). Adam rispedisce questa scatola chiusa due volte a Burt.

Burt prende la scatola e l'unico modo in cui può aprirla è se ha sia la sua chiave rossa che la chiave rossa di Adam. Ma Adam tiene segreta la sua chiave rossa proprio come Burt tiene la sua chiave rossa, quindi Burt non sarà in grado di aprire la scatola. Burt, però, non vuole aprire la scatola:ricorda, ha iniziato questo processo, quindi vuole che Adam ottenga l'illustrazione contenuta all'interno della scatola. Tuttavia, può sbloccare il proprio lucchetto con la propria chiave rossa (privata). Quando lo fa, l'unica sicurezza sulla scatola è il lucchetto che Adam ha protetto.

Burt rispedisce la scatola ad Adam, e ora Adam, usando la sua chiave rossa, sblocca il lucchetto rimanente. Burt ha inviato con successo e in modo sicuro questo pacco. Questo metodo aggiunge un paio di livelli di sicurezza, in quanto ci sono due livelli di blocco/crittografia e nel fatto che nessuna chiave condivisa deve mai essere scambiata tramite un mezzo potenzialmente non sicuro. Tuttavia, non è un sistema molto efficiente se devono inviare messaggi più sicuri avanti e indietro in modo più tempestivo.


Raddoppia la crittografia.

Questa capacità è una delle caratteristiche interessanti della matematica alla base della crittografia a chiave pubblica. Un messaggio può essere crittografato più volte; quindi, durante la decrittazione, tale decrittografia può essere eseguita in qualsiasi ordine. Funziona in modo commutativo come funzionano alcune semplici funzioni matematiche. Ad esempio, se dovessi iniziare con il numero 10 e aggiungere altri tre numeri, ad esempio 3, 5 e 7 (quindi, 10 + 3 + 5 + 7 per ottenere 25), potresti quindi sottrarli dal totale in qualsiasi ordine per tornare allo stesso numero originario (25 – 5 – 7 – 3 =10). Naturalmente, la matematica alla base di questa crittografia è molto più complessa.

Una serratura complicata e robusta

Quindi, mentre Adam e Burt ora hanno elaborato un metodo di crittografia a chiave pubblica, non è privo di inconvenienti. Questo metodo di blocco doppio per mantenere la comunicazione sicura richiede il triplo del tempo per messaggio. Inoltre, i metodi di crittografia a chiave pubblica tendono ad essere più laboriosi quando si tratta di eseguire la crittografia o la decrittografia. Nell'esempio sopra, immagina che invece di girare ogni chiave nella serratura di mezzo giro, richieda 10 rotazioni complete. Ciò significherebbe 40 rotazioni (blocchi Burt (10) + blocchi Adam (10) + sblocca Burt (10) + sblocca Adam (10)) per messaggio!

C'è, tuttavia, un vantaggio in questa inefficienza. Se Cesar dovesse utilizzare un dispositivo in grado di simulare qualsiasi chiave, e supponendo che per aprire una di queste serrature siano necessarie le 10 rotazioni complete solo per vedere se quella chiave funziona, allora gli impiegherebbe il tempo per provare ogni combinazione di tasti (un bruto force attack) aumenta anche di un fattore 10.


Come chiavi più grandi migliorano la sicurezza.

La lunghezza di una chiave di crittografia viene misurata in bit. Maggiore è la lunghezza del bit della chiave, maggiore è la resistenza che la chiave viene scoperta tramite tentativi di cracking con forza bruta. Maggiore è la lunghezza in bit della chiave significa anche che il lavoro richiesto per eseguire la crittografia o la decrittografia aumenta. Tuttavia, poiché gli algoritmi di crittografia asimmetrici e simmetrici funzionano in modi diversi, le lunghezze delle loro chiavi non sono direttamente confrontabili. Ad esempio, una chiave RSA (asimmetrica) a 1024 bit ha all'incirca la stessa forza di una chiave simmetrica a 80 bit. Sono disponibili strumenti per confrontare le lunghezze relative delle chiavi tra i diversi metodi di crittografia, come quello gestito da BlueKrypt, che possono aiutare a chiarire la differenza di costo computazionale tra questi metodi.

Queste differenze evidenziano uno dei principali enigmi della sicurezza informatica:sicurezza e convenienza. Il lavoro svolto per migliorare l'uno spesso va a scapito dell'altro. L'aumento della lunghezza in bit della chiave di crittografia ne aumenta la forza, ma significa anche che ci vorrà più tempo per eseguire la crittografia e la decrittografia. Quando vengono prese misure per migliorare la praticità, come aumentare la potenza di calcolo o ridurre la lunghezza della chiave, quelle stesse misure significano anche che richiede meno lavoro per indovinare con successo la chiave attraverso metodi di forza bruta.

Altro nella serie "Come funzionano le VPN"

Parte 1:Algoritmi di crittografia simmetrica
Parte 3:Scambio di chiavi condivise
Ulteriori informazioni sui servizi di Atlantic.Net, incluso l'hosting VPS.


Linux
  1. Che cos'è un Makefile e come funziona?

  2. Che cos'è un server Web e come funziona un server Web?

  3. Che cos'è lo scambio di chiavi condivise (Come funzionano le VPN, parte 3)

  4. Come crittografare un file di grandi dimensioni in openssl utilizzando la chiave pubblica

  5. come aggiornare homebrew con Cron su Mac os

Come configurare la chiave pubblica e privata SSH in Linux

Cos'è Docker? Come funziona?

Come aggiungere la chiave pubblica SSH al server

Che cos'è il comando sorgente in Linux e come funziona?

Come funziona un sistema di bilanciamento del carico? Che cos'è il bilanciamento del carico?

Che cos'è la crittografia a chiave simmetrica (Come funzionano le VPN, parte 1)