Descrizione dettagliata dello scambio di chiavi e messaggi (esempio CNG)
Le soluzioni di crittografia con chiave pubblica/privata sono soggette ad attacchi di tipo man-in-the-middle.Questi attacchi assumono varie forme, ad esempio eavesdropping, sostituzione, Denial of Service e phishing.Nell'esempio di comunicazione protetta tramite Cryptography Next Generation (CNG) viene illustrato un caso di sostituzione, in cui una terza parte (Mallory) si inserisce tra due endpoint di comunicazione (Alice e Bob).
Nelle sezioni seguenti vengono fornite informazioni generali, illustrazioni e istruzioni dettagliate relative alle cinque versioni di sicurezza descritte nella sezione Cenni preliminari sull'esempio CNG:
Versione 1: scambio di messaggi di base
Versione 2: scambio di messaggi e chiavi senza firma:
Senza intercettazione
Con intercettazione
Versione 3: scambio di messaggi e chiavi con firma
Versione 4: scambio di messaggi e chiavi con firma e rilevamento
Versione 5: scambio di messaggi e chiavi con firma e chiusura dell'applicazione
Versione 1: scambio di messaggi di base
Nella figura seguente sono illustrati Alice e Bob che inviano messaggi senza attacchi di tipo man-in-the-middle.I messaggi non sono crittografati né dotati di firma digitale.Nell'esempio CNG viene illustrata questa procedura quando si seleziona la versione 1.Dopo la figura è riportata una descrizione dettagliata del processo.
Versione 1: scambio di messaggi di base
Alice e Bob inviano messaggi non crittografati e senza firma
1.Alice crea un messaggio.
2.Alice invia il messaggio a Bob.
3.Bob riceve il messaggio di Alice.
4.Bob crea un messaggio.
5.Bob invia il messaggio ad Alice.
6.Alice riceve il messaggio di Bob.
Versione 2: chiavi e messaggi senza firma e senza intercettazione
Nella figura seguente viene illustrato lo scambio di chiavi e messaggi senza attacchi di tipo man-in-the-middle.Nell'esempio CNG questa procedura viene descritta quando si seleziona la versione 2 e si disattiva l'intercettazione da parte di Mallory.Dopo la figura è riportata una descrizione dettagliata del processo.
Versione 2: chiavi e messaggi senza firma e senza intercettazione
Alice e Bob creano le chiavi
1.Alice genera una coppia di chiavi pubblica/privata.
2.Alice invia la chiave pubblica a Bob.
3.Bob archivia la chiave pubblica di Alice.
4.Bob genera una coppia di chiavi pubblica/privata.
5.Bob invia la chiave pubblica ad Alice.
6.Alice archivia la chiave pubblica di Bob.
Alice e Bob derivano il materiale della chiave corrispondente
7.Alice utilizza la propria chiave privata e la chiave pubblica di Bob per generare una chiave privata condivisa,che utilizza per derivare il materiale della chiave.
8.Bob utilizza la propria chiave privata e la chiave pubblica di Alice per generare la stessa chiave privata condivisa,che utilizza per derivare lo stesso materiale della chiave di Alice.
Per ulteriori informazioni sulle chiavi private condivise e sulla derivazione di chiavi, vedere Cenni preliminari sull'algoritmo ECDH (esempio CNG).
Alice e Bob si scambiano messaggi
9.Alice crea un messaggio e lo crittografa con il materiale della chiave.
10.Alice invia il messaggio crittografato a Bob.
11.Bob riceve e decrittografa il messaggio.
12.Bob crea un messaggio e lo crittografa con il materiale della chiave.
13.Bob invia il messaggio ad Alice.
14.Alice riceve e decrittografa il messaggio.
Versione 2: chiavi e messaggi senza firma e con intercettazione
Nella figura seguente viene illustrato il flusso di chiavi e messaggi con un attacco di tipo man-in-the-middle.Nell'esempio CNG questa procedura viene descritta quando si seleziona la versione 2 e si attiva l'intercettazione da parte di Mallory.
Versione 2: chiavi e messaggi senza firma e con intercettazione
Mallory rappresenta Bob
1.Alice genera una coppia di chiavi pubblica/privata.
2.Alice invia la chiave pubblica a Bob.
3.Mallory intercetta e archivia la chiave pubblica di Alice.
4.Mallory genera la propria coppia di chiavi pubblica/privata da utilizzare con Alice.
5.Mallory invia la chiave pubblica ad Alice, facendole credere che proviene da Bob.
6.Alice archivia la chiave pubblica di Mallory, ritenendo che si tratti della chiave di Bob.
Mallory stabilisce un canale con Bob solo dopo aver completato questo scambio di chiavi con Alice,perché condivide la pipe PublicChannel con Alice. Vedere Cenni preliminari sul codice sorgente.Deve inviare ad Alice la propria chiave sostitutiva prima di poter chiudere la pipe PublicChannel, riaprirla e quindi connettersi a Bob.
Confrontare questo passaggio con i passaggi 17-22, in cui i messaggi inviati da Alice vengono trasferiti a Bob.
Mallory rappresenta Alice
7.Mallory genera una seconda coppia di chiavi pubblica/privata da utilizzare con Bob.
8.Mallory invia la chiave pubblica a Bob.
9.Bob archivia la chiave pubblica di Mallory, ritenendo che si tratti della chiave di Alice.
10.Bob genera una coppia di chiavi pubblica/privata.
11.Bob invia la chiave pubblica ad Alice.
12.Mallory intercetta e archivia la chiave pubblica di Bob.
Alice e Mallory derivano il materiale della chiave corrispondente
13.Alice utilizza la propria chiave privata e quella che crede sia la chiave pubblica di Bob (in realtà si tratta della chiave pubblica di Mallory/Alice) per generare una chiave privata condivisa,che utilizza per derivare il materiale della chiave di Mallory/Alice.
14.Mallory utilizza la propria chiave privata e la chiave pubblica di Alice per generare la stessa chiave privata condivisa,che utilizza quindi per derivare lo stesso materiale della chiave di Alice.
Bob e Mallory derivano il materiale della chiave corrispondente
15.Mallory utilizza la propria chiave privata e la chiave pubblica di Bob per generare una chiave privata condivisa,che utilizza per derivare il materiale della chiave di Mallory/Bob.
16.Bob utilizza la propria chiave privata e quella che crede sia la chiave pubblica di Alice (in realtà si tratta della chiave pubblica di Mallory/Bob) per generare la stessa chiave privata condivisa,che utilizza quindi per derivare lo stesso materiale della chiave di Mallory.
Nota
Dopo i passaggi 13 e 16, Alice e Bob credono di condividere lo stesso materiale della chiave.In realtà non condividono questo materiale tra loro, ma con Mallory.
Alice invia un messaggio a Bob.
A questo punto, Mallory può stabilire una doppia conversazione, perché ha a disposizione due pipe.Questo passaggio è diverso dai passaggi 1-6, in cui Mallory ha aperto un canale alla volta per intercettare le chiavi di crittografia.
17.Alice genera un messaggio e lo crittografa utilizzando il materiale della chiave di Mallory/Alice generato al passaggio 13.Alice comunica a Bob informazioni su un potenziale contatto commerciale.
18.Alice invia il messaggio a Bob.
19.Mallory intercetta e decrittografa il messaggio.Si impossessa delle informazioni del contatto.
20.Mallory genera un messaggio falso basato su quello di Alice, ma modifica l'indirizzo del contatto.Crittografa il messaggio falso utilizzando il materiale della chiave Mallory/Bob condiviso.
21.Mallory invia il messaggio a Bob.
22.Bob decrittografa il messaggio, ritenendo che provenga da Alice.
Bob invia un messaggio ad Alice.
23.Alice genera un messaggio e lo crittografa utilizzando il materiale della chiave di Mallory/Bob generato al passaggio 16.Bob comunica ad Alice la sua intenzione di concludere il contatto.
24.Bob invia il messaggio ad Alice.
25.Mallory intercetta, decrittografa ed elimina il messaggio.
26.Mallory genera un messaggio falso utilizzando il materiale della chiave Mallory/Alice condiviso.Avverte Alice di ritenere che l'indirizzo del contatto sia errato, ma che continuerà a tentare di raggiungerlo.
27.Mallory invia il messaggio ad Alice.
28.Alice decrittografa il messaggio, ritenendo che provenga da Bob.Accetta la spiegazione e passa ad altri clienti.
Versione 3: chiavi e messaggi con firma e con intercettazione
Nella figura seguente vengono illustrati il flusso di chiavi di crittografia e messaggi, un attacco di tipo man-in-the-middle e l'utilizzo di firme digitali per firmare chiavi e messaggi.Nell'esempio CNG questo scenario viene descritto quando si seleziona la versione 3 e si attiva l'intercettazione da parte di Mallory.
Versione 3: chiavi e messaggi con firma e con intercettazione
La versione 3 è identica alla versione 2, con la differenza che illustra l'utilizzo di una firma digitale per firmare messaggi e chiavi di crittografia.
Nei passaggi 1-6 Alice invia la chiave di firma digitale sulla pipe PublicChannel non protetta, in cui viene intercettata da Mallory che la utilizza per firmare le proprie chiavi e i messaggi sostitutivi.Di conseguenza, Alice, Bob e Mallory utilizzano la stessa chiave di firma digitale.Quando Alice e Bob convalidano le firme di chiavi e messaggi nei passaggi 15, 20, 35 e 42, non rilevano l'intercettazione di Mallory.
Versione 4: chiavi e messaggi con firma e con rilevamento
Nella figura seguente vengono illustrati il flusso di chiavi di crittografia e messaggi, un attacco di tipo man-in-the-middle e l'utilizzo di firme digitali per firmare chiavi e messaggi.Inoltre, nella versione 4 del software vengono rilevate le firme non valide.Nell'esempio CNG questo scenario viene descritto quando si seleziona la versione 4 e si attiva l'intercettazione da parte di Mallory.
Versione 4: chiavi e messaggi con firma e con rilevamento
La versione 4 presenta le differenze seguenti con la versione 3:
La versione 4 del software viene fornita solo ad Alice e Bob.
Nella versione 4 viene inviata la stessa chiave di firma digitale utilizzata nella versione 3, ma viene considerata falsa.
Nella versione 4 Alice può inviare a Bob una seconda chiave di firma digitale tramite un canale privato che Mallory non conosce(passaggio 0 nella figura precedente). Alice e Bob utilizzano questa firma digitale privata per firmare le chiavi e i messaggi.
Nella versione 4 vengono rilevate le firme non valide di Mallory dei passaggi 15, 20, 35 e 42 e vengono visualizzati avvisi di sicurezza.
Mallory continua a utilizzare la firma digitale della versione 3 per firmare chiavi e messaggi sostitutivi.Di conseguenza, si verifica quanto segue:
Non è al corrente della chiave di firma digitale privata della versione 4.
Non riceve avvisi di sicurezza.
Non sa che Alice e Bob possono rilevare le sue firme di chiavi e messaggi non valide.
Versione 5: chiavi e messaggi con firma e con chiusura della sessione
Nella figura seguente vengono illustrati il flusso di chiavi di crittografia e messaggi, un attacco di tipo man-in-the-middle e l'utilizzo di firme digitali per firmare chiavi e messaggi.Analogamente alla versione 4, le firme non valide vengono rilevate.Nell'esempio CNG questo scenario viene descritto quando si seleziona la versione 5 e si attiva l'intercettazione da parte di Mallory.
Versione 5: chiavi e messaggi con firma e con chiusura
La versione 5 è identica alla versione 4, con la differenza che la sessione viene chiusa quando Alice e Bob ricevono chiavi di crittografia pubbliche con firme digitali non valide.
Vedere anche
Concetti
Esempio di comunicazione protetta tramite Cryptography Next Generation (CNG)