Manueller Sitzungsschlüsselaustausch
Anmerkung
Das in diesem Abschnitt beschriebene Verfahren setzt voraus, dass die Benutzer (oder CryptoAPI-Clients) bereits über einen eigenen Satz von öffentlichen/privaten Schlüsselpaaren verfügen und die öffentlichen Schlüssel der anderenerhalten haben.
Die folgende Abbildung zeigt, wie Sie dieses Verfahren verwenden, um eine verschlüsselte Nachricht zu senden.
Dieser Ansatz ist anfällig für mindestens eine häufige Angriffsform. Ein Abhörer kann Kopien einer oder mehrerer verschlüsselter Nachrichten und der verschlüsselten Schlüssel abrufen. Dann kann der Lauschdropper zu einem späteren Zeitpunkt eine dieser Nachrichten an den Empfänger senden, und der Empfänger hat keine Möglichkeit zu wissen, dass die Nachricht nicht direkt vom ursprünglichen Absender stammt. Dieses Risiko kann durch das Zeitstempeln aller Nachrichten oder durch Die Verwendung von Seriennummern reduziert werden.
Die einfachste Möglichkeit, verschlüsselte Nachrichten an einen anderen Benutzer zu senden, besteht darin, die Mit einem zufälligen Sitzungsschlüssel verschlüsselte Nachricht zusammen mit dem Sitzungsschlüssel zu senden, der mit dem Schlüssel des Empfängers verschlüsselt.
Im Folgenden sind die Schritte zum Senden eines verschlüsselten Sitzungsschlüssels aufgeführt.
So senden Sie einen verschlüsselten Sitzungsschlüssel
- Erstellen Sie einen zufälligen Sitzungsschlüssel mithilfe der CryptGenKey--Funktion.
- Verschlüsseln Sie die Nachricht mithilfe des Sitzungsschlüssels. Dieses Verfahren wird in Datenverschlüsselung und Entschlüsselungbehandelt.
- Exportieren Sie den Sitzungsschlüssel in eine -SCHLÜSSEL-BLOB- mit der CryptExportKey--Funktion, wobei angegeben wird, dass der Schlüssel mit dem öffentlichen Schlüsselaustauschschlüssel des Zielbenutzers verschlüsselt wird.
- Senden Sie sowohl die verschlüsselte Nachricht als auch den verschlüsselten Schlüssel-BLOB an den Zielbenutzer.
- Der Zielbenutzer importiert den Schlüssel-BLOB mithilfe der CryptImportKey--Funktion in seinen CSP. Dadurch wird der Sitzungsschlüssel automatisch entschlüsselt, vorausgesetzt, der öffentliche Schlüsselaustauschschlüssel des Zielbenutzers wurde in Schritt 3 angegeben.
- Der Zielbenutzer kann die Nachricht dann mithilfe des Sitzungsschlüssels entschlüsseln, indem er die in Datenverschlüsselung und Entschlüsselungbeschriebene Verfahren folgt.