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

Im Beispiel für sichere Cryptography Next Generation (CNG)-Kommunikation wird eine kryptografische Lösung für einen Man-in-the-middle-Angriff modelliert.Es wird die Kommunikation zwischen den drei Personen Alice, Bob und Mallory in einem fiktiven Werbeunternehmen simuliert.Im Beispiel werden CNG-Klassen, Transport über Named Pipes sowie interaktive Konsolenfenster verwendet, um eine sichere Lösung für einen Man-in-the-middle-Angriff darzustellen.

Dies ist ein fortgeschrittenes Beispiel und setzt Kenntnisse in Kryptografie, prozessübergreifender Kommunikation und Netzwerksicherheit voraus.

Hinweis

Die CNG-Klassen sind nur in Windows Vista und nachfolgenden Windows-Betriebssystemen verfügbar.

Dieses Kapitel bietet eine Übersicht über das CNG-Beispiel.Es werden folgende Punkte diskutiert:

  • Das Beispielszenario

  • Sicherheitsrisiken des IM-Tools

  • Version 1: Named Pipes

  • Versionen 2 bis 5: Inkrementelle Sicherheitsverbesserungen

  • Testergebnisse

  • Der Beispielcode

  • Namenskonventionen

  • Ausführliche Informationen

Das Beispielszenario

Ein Werbeunternehmen entwickelt ein Instant Messaging (IM)-Tool, das auf dem Desktop ausgeführt wird.Alle Mitarbeiter können die in das Tool eingegebenen Nachrichten anzeigen.

Alice und Bob arbeiten im Vertrieb.Sie verwenden das IM-Tool, um einander Vertriebskontakte zu senden.Mallory ist ein Netzwerkingenieur, der an Systemoperationen arbeitet.Er überwacht heimlich die Nachrichten von Alice und Bob.Einmal im Monat kopiert er wertvolle Vertriebskontakte und verkauft sie zur persönlichen Bereicherung an Konkurrenten des Unternehmens.

Nach mehreren Monaten bemerkt das Unternehmen, dass jemand Vertriebskontakte stiehlt und die Kommunikation innerhalb der Abteilung kompromittiert ist.Man entscheidet sich, ein neues IM-Tool zu erstellen und beginnt mit der Sicherheitsanalyse des aktuellen Tools.

Sicherheitsrisiken des IM-Tools

Das Unternehmen stellt fest, dass das aktuelle IM-Tool die folgenden Sicherheitsrisiken aufweist:

  • Es überträgt Klartext-Nachrichten (unverschlüsselte Nachrichten).

  • Es überträgt diese Nachrichten über das Unternehmensnetzwerk.

  • Die Nachrichten können von jedem Mitarbeiter angezeigt und sogar aufgezeichnet werden.

Das Unternehmen kommt zu dem Schluss, dass das neue IM-Tool diese Probleme lösen kann, indem es eine Punkt-zu-Punkt-Kommunikation im Unternehmensnetzwerk ermöglicht.

Version 1: Named Pipes

Das Unternehmen erstellt ein neues IM-Tool, das auf Named Pipes (oder Channels) für die prozessübergreifende Kommunikation (Interprocess Communication, IPC) beruht.In dieser Version werden keine Verschlüsselung oder digitalen Signaturen verwendet.

Alice und Bob erhalten die folgenden Anweisungen:

  1. Erstellen Sie eine erste Verbindung über einen Channel mit dem Namen PublicChannel.

  2. Senden Sie einander den Namen eines privaten Channels, und trennen Sie dann sofort die Verbindung mit PublicChannel.

  3. Stellen Sie über den privaten Channel eine Verbindung her, und senden Sie einander Vertriebskontakte.

Das Unternehmen hofft, dass der Channel der Punkt-zu-Punkt-Kommunikation hinreichend gegen das übrige Unternehmensnetzwerk abgeschirmt ist.Bald wird deutlich, dass diese Lösung unzureichend ist.Mallory findet heraus, wie er das neue System unterlaufen kann.Er fährt fort, Vertriebskontakte zu stehlen und kaschiert seine Handlungen durch sorgfältiges Ändern der Kontaktadressen.

Das Unternehmen entscheidet sich, das IM-Tool mit Sicherheitsvorkehrungen auszustatten, um die Diebstähle zu beenden.

Versionen 2 bis 5: Inkrementelle Sicherheitsverbesserungen

Die neue Software wird mehrere Monate lang getestet und verbessert.Bis zum Abschluss der Tests werden vier weitere Versionen des IM-Tools erstellt.Jede Version wird auf Grundlage der vorherigen Version erstellt:

  • Version 2 integriert CNG-basierte Verschlüsselung, bei der öffentliche/private Schlüsselpaare verwendet werden.

  • Version 3 verwendet eine digitale Signatur zum Signieren von kryptografischen Schlüsseln und Nachrichten.

  • Version 4 fügt einen privaten Channel hinzu, um eine digitale Signatur zur Signierung kryptografischer Schlüssel und Nachrichten zu senden.

  • Version 5 verhindert Eingriffe, indem alle IM-Sitzungen beendet werden, die signierte Schlüssel mit ungültigen Signaturen empfangen.

Testergebnisse

Version 2 verwendet einen Verschlüsselungsalgorithmus von hoher Sicherheit.Die Entschlüsselung erfordert umfangreiche Ressourcen und viel Zeit.Aus diesem Grund ist das Unternehmen überrascht, dass die Verschlüsselung das Problem nicht löst.

Auch Version 3, die digitale Signaturen verwendet, verhindert den Diebstahl nicht.Jedoch hilft diese Version dem Unternehmen, eine wichtige Entdeckung zu machen: Wenn der kryptografische Schlüssel und die digitale Signatur abgefangen und ersetzt werden, muss die Ursache des Problems der Channel sein, auf dem der Schlüssel und die Signatur gesendet werden.

Dieser Verdacht wird getestet, indem zu Version 4 ein nicht öffentlicher Channel zum Senden einer digitalen Signatur hinzugefügt wird.Version 4 zeigt zudem eine Warnung an, wenn ein Schlüssel oder eine Nachricht über eine ungültige Signatur verfügt.Version 4 wird innerhalb des Unternehmens nur an Alice und Bob ausgegeben.In dieser Version werden Sicherheitswarnungen angezeigt, sobald Alice und Bob ihre ersten Nachrichten senden.Das Unternehmen erkennt schließlich, dass das Netzwerk einem Man-in-the-middle-Angriff ausgesetzt ist.

Version 5 ist mit Version 4 bis auf den Unterschied, dass die Sitzung beim ersten Fehler beendet wird, identisch.Der Diebstahl von Vertriebskontakten endet, sobald diese Version installiert ist.

Der Beispielcode

Der mit diesem Beispiel bereitgestellte Code zeigt die fünf Sicherheitsversionen.Ein Überblick über den Code wird unter Quellcodeübersicht (CNG-Beispiel) gegeben.

Hinweis

Dieses Beispiel liefert keine Gesamtlösung für Sicherheitsprobleme.Der Zweck des Beispiels ist, die CNG-API in einem verständlichen Sicherheitsszenario zu veranschaulichen.Eine vollständige Sicherheitsanwendung überschreitet den Rahmen dieses Beispiels.

Namenskonventionen

Die Dokumentation des Beispiels verweist mit Nummern auf die fünf Software-Versionen und die entsprechenden Sicherheitsstufen (zum Beispiel "Version 1", "Version 2" usw.).

Die Namen "Alice", "Bob" und "Mallory" verweisen je nach Kontext auf die drei Personen aus dem Beispiel oder auf die drei Visual Studio-Anwendungen.Der Einfachheit halber verwendet die Dokumentation jeweils denselben Namen, um auf beides zu verweisen."Alice lädt Bob and Mallory automatisch" bedeutet beispielsweise, dass die Alice-Anwendung automatisch die Anwendungen Bob und Mallory lädt.

Ausführliche Informationen

Die folgenden Themen enthalten ausführliche Informationen zum Beispielszenario und -code:

Siehe auch

Konzepte

Kryptografische Dienste

Das Kryptografiemodell in .NET Framework

Kryptografische Dienste

Weitere Ressourcen

Kryptografische Aufgaben