Condividi tramite


Procedura: compilare ed eseguire l'esempio CNG

Aggiornamento: Luglio 2008

In questo argomento viene descritta l'architettura dei file per l'esempio di comunicazione protetta tramite Cryptography Next Generation (CNG) e viene illustrato come compilare ed eseguire l'esempio.

Per compilare l'esempio CNG, creare tre eseguibili di console che dovranno essere eseguiti simultaneamente per visualizzare l'esempio composito interattivo.

L'esempio CNG è stato scritto in C#. Richiede Visual Studio 2008 o versioni successive.

Compilazione dell'esempio

L'esempio CNG è costituito da tre progetti di Visual Studio. 

  • Alice

  • Bob

  • Mallory

L'esempio contiene sei file, che è possibile visualizzare e copiare dagli argomenti seguenti:

Ogni progetto include un file con estensione cs (Alice.cs, Bob.cs e Mallory.cs) che contiene codice specifico del progetto. I tre progetti condividono i file Utilities.cs, ChannelManager.cs e Communicator.cs. Questi tre file vengono aggiunti direttamente al progetto Alice e indirettamente (tramite collegamento di file) ai progetti Bob e Mallory.

Per compilare i progetti Alice, Bob e Mallory

  1. Avviare Visual Studio.

  2. Scegliere Nuovo dal menu File, quindi scegliere Progetto.

    Verrà visualizzata la finestra di dialogo Nuovo progetto,

  3. Nel riquadro Tipi progetto fare clic su Visual C#.

  4. Nel riquadro Modelli fare clic su Applicazione console.

  5. Nella casella Nome digitare Alice.

  6. Nella casella Percorso immettere il percorso in cui si desidera archiviare il progetto Alice.

  7. Scegliere OK.

  8. Copiare il codice sorgente di Alice in un file denominato Alice.cs e salvarlo nella directory del progetto Alice. Quando richiesto, confermare che si desidera sostituire il file Alice.cs predefinito.

  9. Copiare il codice sorgente di ChannelManager, Communicator e Utilities in file distinti denominati ChannelManager.cs, Communicator.cs e Utilities.cs e salvarli nella directory del progetto Alice. Aggiungere questi tre file al progetto Alice come indicato di seguito:

    1. Scegliere Esplora soluzioni dal menu Visualizza.

    2. Nella finestra Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Alice, scegliere Aggiungi, quindi Elemento esistente.

      Verrà visualizzata la finestra di dialogo Aggiungi elemento esistente contenente la directory del progetto Alice.

    3. Selezionare i file ChannelManager.cs, Communicator.cs e Utilities.cs, quindi fare clic su Aggiungi.

  10. Ripetere i passaggi da 2 a 8 per i progetti Bob e Mallory. Assicurarsi di salvare il codice sorgente di Bob nella directory del progetto Bob e il codice sorgente di Mallory nella directory del progetto Mallory.

  11. Ripetere il passaggio 9 per i progetti Bob e Mallory. Tuttavia, nel passaggio 9.c, anziché fare clic su Aggiungi fare clic sulla freccia accanto al pulsante Aggiungi e scegliere Aggiungi come collegamento.

  12. Impostare le directory di output per i progetti Bob e Mallory come indicato di seguito:

    1. Scegliere Proprietà dal menu Progetto, quindi fare clic sulla scheda Compilazione.

    2. Impostare il percorso di output sul percorso di compilazione utilizzato dal progetto Alice. Questo percorso corrisponde probabilmente a \bin\Debug\ nella directory del progetto Alice selezionata nel passaggio 6.

  13. Per compilare ogni progetto, scegliere Compila soluzione dal menu Compila.

  14. Verificare che tutti i progetti vengano compilati senza errori e che nella directory del progetto Alice siano disponibili i file eseguibili Alice.exe, Bob.exe e Mallory.exe.

Esecuzione dell'esempio

L'esempio può essere eseguito da Visual Studio o come applicazione autonoma. Questi metodi producono un output identico.

Per eseguire l'esempio CNG

  1. Per eseguire l'esempio da Visual Studio, fare doppio clic sui file con estensione sln per i tre progetti, Alice.sln, Bob.sln e Mallory.sln, per aprire tre istanze di Visual Studio. Nel progetto Alice scegliere Avvia debug dal menu Debug. Ripetere questa operazione per i progetti Bob e Mallory. 

    -oppure-

    Per eseguire l'esempio come applicazione autonoma, copiare i file eseguibili (con estensione exe) per tutti e tre i progetti in una singola directory. Fare doppio clic su Alice.exe in Esplora risorse. Alice chiamerà gli eseguibili di Bob e Alice tramite il proprio autoloader incorporato.

    Nota:

    È anche possibile eseguire l'eseguibile di Alice da una finestra della console passando alla directory che contiene i tre file eseguibili e immettendo alice.exe dalla riga di comando.

    Quando si eseguono i tre eseguibili, verranno visualizzate tre finestre della console. I titoli delle finestre riflettono i nomi dei progetti e le dimensioni e le posizioni delle finestre sono tali da agevolare la visualizzazione del flusso di messaggi in un monitor da 1280 x 1024. È possibile spostare e ridimensionare le finestre della console per ottimizzare la visualizzazione.

  2. Nella finestra Alice, quando viene richiesto di immettere una versione di sicurezza, digitare un numero compreso tra 1 e 5. Per il primo test, digitare 1.

    Questi numeri corrispondono alle cinque versioni software descritte nella sezione Cenni preliminari sull'esempio CNG.

  3. Le versioni da 2 a 5 richiederanno un output dettagliato. Immettere n per la modalità normale oppure y per la modalità dettagliata.

    • In modalità normale verranno visualizzati solo messaggi di testo normale.

    • In modalità dettagliata verranno visualizzati messaggi di testo normale, chiavi di firma digitale, chiavi di crittografia, vettori di inizializzazione, testo crittografato e firme digitali.

  4. Quando viene richiesto di specificare se si desidera disattivare Mallory, digitare n per no oppure y per sì.

    Se disattivato, Mallory non riceverà alcun messaggio e rimarrà inattivo. Alice e Bob comunicheranno senza intercettazione da parte di Mallory.

  5. Seguire la conversazione tramite script tra Alice e Bob.

    I dettagli della conversazione dipendono dal numero di versione selezionato nel passaggio 2. Ogni finestra crea un ciclo di messaggi in cui vengono utilizzate alternativamente la modalità di invio e quella di ricezione. La modalità di invio è indicata dal prompt :>. La modalità di ricezione è indicata da una riga vuota. Se Alice è in modalità di invio, Bob sarà in modalità di ricezione. Quando Bob riceve un messaggio, passerà alla modalità di invio e Alice a quella di ricezione.

    Analizzare attentamente i messaggi di Alice e Bob. Il secondo messaggio di Alice a Bob e la risposta di quest'ultimo sono stati modificati da Mallory.

    Al termine della conversazione tramite script, Alice chiederà di specificare se si desidera comunicare con Bob.

  6. Se si desidera inviare messaggi, effettuare le operazioni seguenti al prompt:

    1. Digitare un messaggio e premere INVIO. Alice invierà il messaggio a Bob.

    2. Impostare lo stato attivo sulla finestra Bob, digitare un messaggio e premere INVIO. Bob invierà il messaggio ad Alice.

    3. Ripetere i due passaggi precedenti per inviare altri messaggi.

  7. Quando si desidera uscire, premere INVIO nella finestra di Alice o di Bob quando è attiva la modalità di invio (indicata dal prompt :>).

    Le tre finestre verranno reimpostate sugli stati del passaggio 2.

    Nota:

    Se si chiude una finestra facendo clic sul pulsante di chiusura, è possibile che la finestra non risponda. Sarà necessario chiudere tutte le finestre aperte e riavviare l'esempio.

  8. Eseguire l'esempio con opzioni diverse. Se si seleziona la modalità dettagliata e la versione 2, 3, 4 o 5, è possibile confrontare le stringhe crittografate inviate da Alice con le stringhe crittografate ricevute da Bob. Dovrebbero corrispondere perfettamente, a meno che Mallory non sia attivato. Si noti tuttavia che le stringhe di lunghezza maggiore di 128 caratteri vengono rappresentate da punti interrogativi (?) nel set di caratteri ASCII perché non possono essere visualizzate.

Vedere anche

Concetti

Esempio di comunicazione protetta tramite Cryptography Next Generation (CNG)

Cenni preliminari sulla crittografia

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2008

Argomento aggiunto.

Miglioramento delle informazioni.