Esempio di comunicazione protetta tramite Cryptography Next Generation (CNG)

Nell'esempio di comunicazione protetta tramite Cryptography Next Generation (CNG) viene modellata una soluzione di crittografia per un attacco di tipo man-in-the-middle.Vengono simulate le comunicazioni tra tre utenti, Alice, Bob e Mallory, in un'agenzia pubblicitaria fittizia.Nell'esempio vengono utilizzate classi CNG, un trasporto di named pipe e finestre della console interattive per illustrare le soluzioni di sicurezza per un attacco di tipo man-in-the-middle.

Si tratta di un esempio avanzato che presuppone familiarità con i concetti di crittografia, comunicazione interprocesso e sicurezza di rete.

Nota

Le classi CNG sono disponibili solo in Windows Vista e nelle versioni successive dei sistemi operativi Windows.

Nel presente argomento viene fornita una panoramica dell'esempio CNG,in particolare degli aspetti seguenti:

  • Scenario dell'esempio

  • Vulnerabilità di sicurezza dello strumento di messaggistica immediata

  • Versione 1: named pipe

  • Versioni 2-5: miglioramenti incrementali della sicurezza

  • Risultati dei test

  • Codice dell'esempio

  • Convenzioni di denominazione

  • Informazioni dettagliate

Scenario dell'esempio

Un'agenzia pubblicitaria sviluppa uno strumento di messaggistica immediata da eseguire sul desktop.Tutti i dipendenti possono visualizzare i messaggi immessi nello strumento.

Alice e Bob lavorano nello stesso reparto vendite.Utilizzano lo strumento di messaggistica immediata per scambiarsi contatti commerciali.Mallory è un tecnico di rete che si occupa di operazioni di sistema.In segreto, controlla i messaggi di Alice e Bob.Una volta al mese copia preziosi contatti commerciali e li vende alla concorrenza per tornaconto personale.

Dopo diversi mesi, la società si accorge del furto dei contatti commerciali e realizza che le comunicazioni interreparto sono state compromesse.Si decide quindi di creare un nuovo strumento di messaggistica immediata, iniziando con un'analisi della sicurezza dello strumento corrente.

Vulnerabilità di sicurezza dello strumento di messaggistica immediata

La società realizza che lo strumento di messaggistica immediata corrente presenta le seguenti vulnerabilità di sicurezza:

  • Trasferisce messaggi di testo normale (non crittografati).

  • Trasmette tali messaggi sulla rete aziendale.

  • I messaggi possono essere visualizzati e anche registrati da chiunque.

La società decide che è possibile risolvere questi problemi con il nuovo strumento di messaggistica immediata abilitando la comunicazione point-to-point nella rete aziendale.

Versione 1: named pipe

La società crea un nuovo strumento di messaggistica immediata che si basa su named pipe (o canali) per la comunicazione interprocesso (IPC).Questa versione non prevede l'utilizzo della crittografia o delle firme digitali.

Ad Alice e Bob vengono fornite le istruzioni seguenti:

  1. Creare una connessione iniziale su un canale denominato PublicChannel.

  2. Inviare il nome di un canale privato l'una all'altro, quindi disconnettersi immediatamente da PublicChannel.

  3. Connettersi utilizzando il canale privato e scambiarsi contatti commerciali.

La società si augura che i canali di comunicazione point-to-point forniscano un isolamento sufficiente dal resto della rete aziendale.La soluzione si rivela ben presto insufficiente.Mallory scopre come aggirare il nuovo sistema.Continua con il furto di contatti commerciali e inizia a nascondere i suoi interventi modificando con attenzione gli indirizzi.

La società decide di aggiungere misure di sicurezza allo strumento di messaggistica immediata per interrompere i furti.

Versioni 2-5: miglioramenti incrementali della sicurezza

Il novo software viene testato e ottimizzato per diversi mesi.Al termine dei test, sono state create quattro nuove versioni dello strumento di messaggistica immediata,ognuna più avanzata di quella precedente:

  • La versione 2 incorpora crittografia basata su CNG che utilizza coppie di chiavi pubblica/privata.

  • Nella versione 3 viene applicata una firma digitale alle chiavi di crittografia e ai messaggi.

  • Nella versione 4 viene aggiunto un canale privato per trasmettere una firma digitale da applicare a chiavi di crittografia e messaggi.

  • Nella versione 5 le intrusioni vengono bloccate terminando tutte le sessioni di messaggistica immediata che ricevono chiavi con firme non valide.

Risultati dei test

Nella versione 2 viene utilizzato un algoritmo di crittografia ad alta sicurezza.I tentativi di decrittografia richiederebbero un utilizzo elevato di risorse e tempo.Pertanto, il fatto che la soluzione sia stata compromessa viene accolto con stupore nella società.

Neanche la versione 3, in cui si utilizzano le firme digitale, impedisce i furti.Tuttavia, consente alla società di fare un'importante scoperta: se le chiavi di crittografia e le firme digitali vengono intercettate e sostituite, il canale utilizzato per trasmetterle deve essere l'origine del problema.

Questa idea viene testata aggiungendo un canale privato alla versione 4 per trasmettere una firma digitale.In questa versione viene anche visualizzato un avviso quando una chiave o un messaggio è associato a una firma non valida.La versione 4 viene consegnata solo a due dipendenti della società: Alice e Bob.Non appena Alice e Bob inviano i primi messaggi, vengono visualizzati messaggi di avviso.La società comprende finalmente che la rete sta subendo un attacco di tipo man-in-the-middle.

La versione 5 è identica alla versione 4, con la differenza che la sessione viene chiusa alla prima violazione di sicurezza.Non appena viene installata questa versione, i furti di contatti commerciali si interrompono.

Codice dell'esempio

Il codice fornito con questo esempio modella le cinque versioni di sicurezza.Per una panoramica del codice, vedere Cenni preliminari sul codice sorgente (esempio CNG).

Nota

In questo esempio non viene fornita una soluzione di sicurezza completa.L'unico scopo è dimostrare l'API CNG in uno scenario di sicurezza plausibile.Un'applicazione di sicurezza completa esula dall'ambito di questo esempio.

Convenzioni di denominazione

Nella documentazione di questo esempio si fa riferimento a cinque versioni software e ai livelli di sicurezza corrispondenti tramite un numero, ad esempio "versione 1", "versione 2" e così via.

A seconda del contesto, i nomi "Alice", "Bob" e "Mallory" possono fare riferimento ai tre utenti coinvolti nello scenario di esempio e alle tre applicazioni di Visual Studio.Per semplicità, nella documentazione vengono utilizzati gli stessi nomi per fare riferimento a entrambi.Ad esempio, "Alice carica automaticamente Bob e Mallory" significa che l'applicazione Alice carica automaticamente le applicazioni Bob e Mallory.

Informazioni dettagliate

Negli argomenti seguenti vengono fornite informazioni dettagliate sullo scenario e sul codice dell'esempio:

Vedere anche

Concetti

Servizi di crittografia

Modello di crittografia di .NET Framework

Servizi di crittografia

Altre risorse

Attività di crittografia