GNU/Linux >> Linux Esercitazione >  >> Linux

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

Questo articolo della serie "Come funzionano le VPN" descrive come funziona uno scambio di chiavi condivise. Se ti sei già perso, niente panico! Questa serie di articoli spiega 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 di come una VPN aiuta a proteggere i dati raccontando una storia che funge da metafora dei meccanismi logici coinvolti. Queste storie coinvolgono Adam e Burt che cercano di mantenere un segreto e una terza persona, Cesar, che cerca di scoprire il loro segreto in modo nefasto. Poiché le VPN non hanno un perfetto equivalente del mondo fisico, alcuni elementi possono estendere 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'icona a forma di ingranaggio), 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.

Scambio di chiavi condivise

Nelle avventure precedenti, i nostri amici Adam e Burt hanno cercato di mantenere il loro progetto di fumetti segreto dalla ficcanaso di Cesar assicurandosi i messaggi che si scambiano con una chiave condivisa e un più elaborato sistema di coppia chiave pubblica/privata. Ogni sistema ha i suoi punti di forza e di debolezza. Ma i ragazzi hanno bisogno di una pausa da questo progetto e, fortunatamente per loro, c'è una fiera in corso nelle vicinanze. Entrano nel chili cook-off e, poiché amano mantenere segrete le loro creazioni, escogitano un modo per mantenere segreta la loro ricetta, anche se la preparano davanti agli spettatori. La ricetta sarà così sicura; anche loro non lo sapranno!

Un noto punto di partenza

Per portare a termine questa impresa, Adam e Burt dovranno ciascuno sviluppare una parte della ricetta senza sapere nulla di ciò che l'altro ha contribuito. Se nessuno dei due conosce l'intera ricetta, nessuno dei due può rivelarla. Tuttavia, sono d'accordo su una base comune di ingredienti (una miscela di base di pomodoro, condimento al peperoncino, manzo e fagioli). Non c'è bisogno di mantenere segreta questa parte:la maggior parte degli altri concorrenti inizia con una base simile, quindi guadagnano poco spendendo lo sforzo per oscurare questi ingredienti.


Negoziare lo scambio delle chiavi.

Il fatto che le due parti possano iniziare con questa negoziazione su un mezzo pubblico insicuro è una delle idee fondamentali e intelligenti alla base di questo metodo di avvio della crittografia. Prima che possa verificarsi qualsiasi crittografia, è necessario che ci sia del traffico non crittografato tra peer, altrimenti nessuno dei due saprà come decrittografare eventuali messaggi futuri. Questo passaggio iniziale consente a un host di dire a un altro che desidera iniziare una negoziazione di un metodo di crittografia offrendo un paio di valori iniziali a una nota formula matematica (che, in questo esempio, è la base del peperoncino). La vera magia arriva nei prossimi passi.

Seminare la chiave

Adam e Burt hanno preparato in modo indipendente e segreto una porzione di condimento e ingredienti aggiuntivi sigillati in una carta di riso opaca sacchetto che si scioglierà una volta immerso nel peperoncino. In questo cook-off, il sacchetto di Adam contiene tomatillos, chipotles, pepe di cayenna e cannella; Burt's ha condimento Cajun, birra, cumino, origano e salsa Worcester*. Adam lancia il suo pacchetto nella sua pentola e mescola, assaggiando il suo peperoncino finché non è sicuro che il sacchetto si sia sciolto e abbia rilasciato i suoi ingredienti. Burt fa lo stesso con il suo piatto. A questo punto, Adam e Burt hanno due peperoncini diversi.

* (nel caso ti stia chiedendo perché questo non si stia già dissolvendo dalla birra, supponiamo che Burt abbia precongelato i liquidi prima di metterli nella busta solubili.)


Generazione della chiave condivisa.

Nell'effettivo processo di scambio delle chiavi, questi "ingredienti" sono in realtà numeri primi molto grandi. Nel processo di scambio delle chiavi, questi grandi numeri primi vengono generati casualmente. Più grandi sono i numeri utilizzati per inserire questo scambio di chiavi, più difficile è usare tecniche di forza bruta per decifrare. La dimensione di questi numeri è chiamata gruppo di bit. Un gruppo di numeri primi della stessa lunghezza in bit binari (ad esempio, 1024 o 2048 o lunghezze di bit anche maggiori) appartengono tutti allo stesso gruppo. Più grande è il gruppo di bit, più robusto diventa questo processo di scambio di chiavi e più resistente diventa all'analisi e al potenziale compromesso.

Completamento dello scambio

Ora cambiano i piatti a cui tendono, quindi Burt è al piatto che Adam ha iniziato e viceversa. Ognuno di loro prende un'altra busta identica a quella con cui hanno iniziato e aggiunge questa seconda busta alla pentola che l'altra aveva iniziato (così Adam aggiunge i suoi tomatillos, chipotles, pepe di Caienna e cannella alla pentola Burt ha iniziato con il condimento Cajun, birra , cumino, origano e salsa Worcester; e Burt aggiunge la sua borsa alla pentola che Adam ha iniziato). Dopo che ognuno di loro ha mescolato le rispettive pentole e sciolto i sacchetti per rilasciare gli ingredienti segreti, possono essere sicuri che ogni pentola ora contenga peperoncini identici.


Lo scambio di chiavi Diffie-Hellman.

In termini matematici, l'algoritmo che governa lo scambio di chiavi condivise è commutativo:può essere eseguito in qualsiasi ordine e ottenere lo stesso risultato. Inoltre, nota che né Adam né Burt hanno i mezzi per ricostruire la chiave da soli. Ognuno di loro conosce solo il valore casuale che ciascuno ha contribuito all'algoritmo. E poiché ciascuno genera anche una copia della chiave al termine della negoziazione, ciascuno ha anche una copia della chiave finale senza che sia stata trasmessa in rete.

Questo scambio o negoziazione di chiavi condivise è chiamato Diffie-Hellman Key Exchange, dal nome degli autori del documento che per primi ha descritto in dettaglio questo metodo, Whitfield Diffie e Martin Hellman. Il loro lavoro si è basato sul lavoro precedente svolto da Ralph Merkle, quindi è stato suggerito (dallo stesso Hellman) che questo metodo fosse chiamato Diffie-Hellman-Merkle Key Exchange. Nelle configurazioni effettive, vedrai spesso questo metodo applicato come Gruppi DH, diversi gruppi corrispondenti a chiavi di diversa lunghezza in bit binari.

Gusti complessi

Durante la preparazione, tutti i giudici avrebbero potuto vedere e prelevare campioni dai vasi di partenza o da quelli intermedi. Anche se Cesar, intento ad apprendere la ricetta segreta, si atteggiasse a giudice, non sarebbe in grado di ricostruire in modo affidabile la ricetta finale utilizzata da Adam e Burt. (Questo esempio presuppone che Cesar non abbia la capacità di distinguere tutti i singoli aromi inclusi nel peperoncino. Tentare di identificare gli ingredienti e le loro quantità tramite analisi di laboratorio sarebbe abbastanza costoso in termini di tempo ed energia investiti per renderlo irrealizzabile.)


Potenziali vulnerabilità.

Se un utente malintenzionato volesse compromettere qualsiasi comunicazione crittografata con questa chiave, un tipico attacco di intercettazione man-in-the-middle sarebbe insufficiente. Un aggressore potrebbe, tuttavia, inserirsi come uomo di transito nel mezzo. Se un attaccante si dispone in modo che tutte le comunicazioni tra i due host dovessero passare attraverso di lui, potrebbe eseguire una negoziazione Diffie-Hellman con ciascun peer. Ciascun lato della connessione saprebbe solo se è stata negoziata una chiave riuscita, ma non con chi. In questa posizione, l'uomo nel mezzo sarebbe in grado di vedere l'intera conversazione, infatti, dovrebbe decrittare il traffico in entrata e ricrittografarlo prima di inviarlo dall'altra parte per mantenere l'impressione che ogni end ha ancora la sua connessione "sicura".

È anche possibile che un attaccante tenti di mettere in scena un attacco man-in-the-middle per declassare il gruppo DH a un gruppo la cui lunghezza in bit è molto più piccola e meno sicura. Quell'attaccante potrebbe quindi raccogliere i dati debolmente crittografati ed eseguire un attacco di forza bruta offline contro la crittografia per decifrarla in un ragionevole lasso di tempo. Attacchi come FREAK e Logjam utilizzano una sorta di metodologia di downgrade per indebolire lo scambio di chiavi Diffie-Hellman.

Altro nella serie Come funzionano le VPN:

Parte 1:Algoritmi di crittografia simmetrica
Parte 2:Crittografia a chiave pubblica
Ulteriori informazioni sui nostri servizi di hosting VPS e sul prezzo di hosting VPS.


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

  2. Cos'è NGINX? Come funziona?

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

  4. Come funzionano gli pseudo-terminali *nix? Qual è il canale master/slave?

  5. come aggiornare homebrew con Cron su Mac os

Che cos'è il DNS inverso e come funziona?

Che cos'è VDI e come funziona?

Cos'è Docker? Come funziona?

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)