Gewusst wie: Erstellen und Ausführen des CNG-Beispiels

In diesem Thema wird die Dateiarchitektur für das CNG (Cryptography Next Generation)-Beispiel zur sicheren Kommunikation beschrieben. Außerdem wird erläutert, wie das Beispiel erstellt und ausgeführt wird.

Um das CNG-Beispiel zu erstellen, erzeugen Sie drei ausführbare Konsolendateien.Sie führen diese ausführbaren Dateien gleichzeitig aus, damit das zusammengesetzte, interaktive Beispiel angezeigt wird.

Das CNG-Beispiel wurde in C# geschrieben.Es erfordert Visual Studio 2008 oder höhere Versionen.

Erstellen des Beispiels

Das CNG-Beispiel besteht aus drei Visual Studio-Projekten: 

  • Alice

  • Bob

  • Mallory

Das Beispiel enthält sechs Dateien, die Sie in den folgenden Themen anzeigen und von dort kopieren können:

Jedes Projekt verfügt über eine eigene CS-Datei (Alice.cs, Bob.cs und Mallory.cs), die projektspezifischen Code enthält.Die Dateien Utilities.cs, ChannelManager.cs und Communicator.cs werden von den drei Projekten gemeinsam genutzt.Diese drei Dateien werden dem Projekt Alice direkt und den Projekten Bob und Mallory indirekt (über Dateiverknüpfung) hinzugefügt.

So erstellen Sie die Projekte Alice, Bob und Mallory

  1. Starten Sie Visual Studio.

  2. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

    Das Dialogfeld Neues Projekt wird angezeigt.

  3. Klicken Sie im Bereich Projekttypen auf Visual C#.

  4. Klicken Sie im Bereich Vorlagen auf Konsolenanwendung.

  5. Geben Sie im Feld Name die Zeichenfolge Alice ein.

  6. Geben Sie im Feld Speicherort den Speicherort ein, an dem Sie das Projekt Alice speichern möchten.

  7. Klicken Sie auf OK.

  8. Kopieren Sie den Quellcode von Alice in eine Datei mit dem Namen Alice.cs, und speichern Sie diese im Alice-Projektverzeichnis.Wenn Sie aufgefordert werden, bestätigen Sie, dass Sie die Standarddatei Alice.cs ersetzen möchten.

  9. Kopieren Sie den Quellcode von ChannelManager, Communicator und Utilities in verschiedene Dateien mit den Namen ChannelManager.cs, Communicator.cs und Utilities.cs, und speichern Sie diese im Alice-Projektverzeichnis.Fügen Sie diese drei Dateien dem Alice-Projekt wie folgt hinzu:

    1. Klicken Sie im Menü Ansicht auf Projektmappen-Explorer.

    2. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Alice, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Vorhandenes Element.

      Das Dialogfeld Vorhandenes Element hinzufügen wird angezeigt, das das Alice-Projektverzeichnis darstellt.

    3. Wählen Sie die Dateien ChannelManager.cs, Communicator.cs und Utilities.cs aus, und klicken Sie dann auf Hinzufügen.

  10. Wiederholen Sie die Schritte 2 bis 8 für die Projekte Bob und Mallory.Achten Sie darauf, den Quellcode für Bob im Bob-Projektverzeichnis und den Quellcode für Mallory im Mallory-Projektverzeichnis zu speichern.

  11. Wiederholen Sie Schritt 9 für die Projekte Bob und Mallory.Klicken Sie in Schritt 9.c jedoch statt auf Hinzufügen auf den Pfeil neben der Schaltfläche Hinzufügen, und klicken Sie dann auf Als Link hinzufügen.

  12. Legen Sie Ausgabeverzeichnisse für die Projekte Bob und Mallory wie folgt fest:

    1. Klicken Sie im Menü Projekt auf Eigenschaften und dann auf die Registerkarte Erstellen.

    2. Legen Sie den Ausgabepfad auf den Buildspeicherort fest, den das Alice-Projekt verwendet.Dieser Speicherort ist wahrscheinlich \bin\Debug\ im Alice-Projektverzeichnis, das Sie in Schritt 6 ausgewählt haben.

  13. Klicken Sie im Menü Erstellen auf Projektmappe erstellen, um die einzelnen Projekte zu erstellen.

  14. Überprüfen Sie, ob alle Projekte ohne Fehler erstellt werden und die ausführbaren Dateien Alice.exe, Bob.exe und Mallory.exe im Alice-Projektverzeichnis vorhanden sind.

Ausführen des Beispiels

Das Beispiel kann von Visual Studio aus oder als eigenständige Anwendung ausgeführt werden.Diese Methoden erzeugen identische Ausgaben.

So führen Sie das CNG-Beispiel aus

  1. Um das Beispiel in Visual Studio auszuführen, doppelklicken Sie auf die SLN-Dateien Alice.sln, Bob.sln und Mallory.sln der drei Projekte und öffnen Sie so drei Instanzen von Visual Studio.Klicken Sie im Projekt Alice im Menü Debuggen auf Debuggen starten.Wiederholen Sie dies für die Projekte Bob und Mallory.

    - oder -

    Um das Beispiel als eigenständige Anwendung auszuführen, kopieren Sie die ausführbaren Dateien (EXE-Dateien) aller drei Projekte in ein Verzeichnis.Doppelklicken Sie in Windows-Explorer auf Alice.exe.Alice ruft die ausführbaren Dateien Bob und Mallory über den integrierten Autoloader auf.

    Hinweis

    Sie können die ausführbare Datei für Alice auch von einem Konsolenfenster aus ausführen, indem Sie zu dem Verzeichnis mit den drei ausführbaren Dateien navigieren und auf der Befehlszeile alice.exe eingeben.

    Wenn Sie die drei ausführbaren Dateien ausführen, werden drei Konsolenfenster angezeigt.Die Fenstertitel geben die Projektnamen an, und die Fenster werden so in der Größe angepasst und positioniert, dass Sie den Nachrichtenfluss auf einem Monitor mit einer Auflösung von 1280 x 1024 gut sehen können.Sie können die Konsolenfenster für eine optimale Anzeige verschieben und in der Größe anpassen.

  2. Wenn Sie im Alice-Fenster aufgefordert werden, eine Sicherheitsversion einzugeben, geben Sie eine Zahl zwischen 1 und 5 ein.Geben Sie für den ersten Test 1 ein.

    Diese Zahlen entsprechen den fünf in der Übersicht über das CNG-Beispiel erläuterten Softwareversionen.

  3. Die Versionen 2 bis 5 fordern Sie zur Bestätigung einer ausführlichen Ausgabe auf.Geben Sie n für den normalen Modus oder y für den ausführlichen Modus ein.

    • Im normalen Modus werden nur Klartextmeldungen angezeigt.

    • Im ausführlichen Modus werden Klartextmeldungen, digitale Signaturschlüssel, kryptografische Schlüssel, Initialisierungsvektoren, verschlüsselter Text und digitale Signaturen angezeigt.

  4. Wenn Sie gefragt werden, ob Sie Mallory deaktivieren möchten, geben Sie n für "Nein" oder y für "Ja" ein.

    Wenn Mallory deaktiviert ist, empfängt das Programm keine Meldungen und verbleibt im Leerlauf.Alice und Bob kommunizieren ohne Abfangen von Mallory.

  5. Folgen Sie der geschriebenen Unterhaltung zwischen Alice und Bob.

    Die Details der Konversation hängen von der Versionsnummer ab, die Sie in Schritt 2 ausgewählt haben.Jedes Fenster erstellt eine Nachrichtenschleife, die zwischen Sende- und Empfangsmodus wechselt.Der Sendemodus wird durch die Eingabeaufforderung :> gekennzeichnet.Der Empfangsmodus wird durch eine Leerzeile gekennzeichnet.Wenn Alice sich im Sendemodus befindet, ist Bob im Empfangsmodus.Wenn Bob eine Nachricht empfängt, wechselt er in den Sendemodus, und Alice wechselt in den Empfangsmodus.

    Schauen Sie sich die Nachrichten von Alice und Bob genau an.Die zweite Nachricht von Alice an Bob und Bobs Antwort an Alice wurden von Mallory geändert.

    Nachdem die geschriebene Konversation beendet ist, fragt Alice Sie, ob Sie mit Bob sprechen möchten.

  6. Wenn Sie eigene Nachrichten senden möchten, gehen Sie folgendermaßen an der Eingabeaufforderung vor:

    1. Geben Sie eine Nachricht ein, und drücken Sie die EINGABETASTE.Alice sendet die Nachricht an Bob.

    2. Wechseln Sie den Fokus auf das Fenster Bob, geben Sie eine Nachricht ein, und drücken Sie die EINGABETASTE.Bob sendet die Nachricht an Alice.

    3. Wiederholen Sie die beiden vorherigen Schritte, um weitere Nachrichten zu senden.

  7. Wenn Sie aufhören möchten, drücken Sie im Fenster von Alice oder Bob die EINGABETASTE während es sich im Sendemodus (gekennzeichnet durch die Eingabeaufforderung :>) befindet.

    Die drei Fenster werden in die Zustände in Schritt 2 zurückgesetzt.

    Hinweis

    Wenn Sie ein Fenster schließen, indem Sie auf die Schaltfläche Schließen klicken, werden möglicherweise keine Antworten mehr von den Fenstern gesendet.Sie müssen alle geöffneten Fenster schließen und das Beispiel neu starten.

  8. Führen Sie das Beispiel mit anderen Optionen aus.Wenn Sie den ausführlichen Modus und Version 2, 3, 4 oder 5 auswählen, können Sie die von Alice gesendeten verschlüsselten Zeichenfolgen mit den von Bob empfangenen verschlüsselten Zeichenfolgen vergleichen.Sie sollten vollkommen übereinstimmen, es sei denn, Mallory wird aktiviert.Beachten Sie jedoch, dass Zeichen oberhalb von 128 im ASCII-Zeichensatz durch Fragezeichen dargestellt (?) werden, da sie nicht angezeigt werden können.

Siehe auch

Konzepte

Beispiel für sichere Cryptography Next Generation (CNG)-Kommunikation

Kryptografische Dienste