Freigeben über


Speichern eines Sitzungsschlüssels

Hinweis

In diesem Abschnitt wird davon ausgegangen, dass Benutzer über einen Satz öffentlicher/privater Schlüsselpaare verfügen. Anweisungen und ein Beispiel zum Erstellen von Schlüsselpaaren finden Sie unter Beispiel-C-Programm: Erstellen eines Schlüsselcontainers und Generieren von Schlüsseln.

 

So speichern Sie einen Sitzungsschlüssel

  1. Erstellen Sie mithilfe der CryptExportKey-Funktion ein einfaches Schlüsselblob. Dadurch wird der Sitzungsschlüssel vom CSP in den Arbeitsspeicher einer Anwendung übertragen. Geben Sie an, dass ein öffentlicher Exchange-Schlüssel zum Signieren des Schlüsselblobs verwendet wird.
  2. Speichern Sie das BLOB des signierten Schlüssels auf dem Datenträger. Es wird davon ausgegangen, dass alle Datenträger unsicher sind.
  3. Wenn der Schlüssel benötigt wird, lesen Sie das Schlüsselblob vom Datenträger.
  4. Importieren Sie das Schlüsselblob mithilfe der CryptImportKey-Funktion wieder in den CSP.

Ein Beispiel für das Erstellen eines Sitzungsschlüssels und das Exportieren dieses Schlüssels in ein einfaches Schlüsselblob , das in eine Datenträgerdatei geschrieben werden kann, finden Sie unter Beispiel C-Programm: Exportieren eines Sitzungsschlüssels.

Dieses Verfahren bietet nur minimale Sicherheit. Wenn der gespeicherte Sitzungsschlüssel zu einem späteren Zeitpunkt verwendet wird, um Daten zu einem späteren Zeitpunkt zu verschlüsseln, bietet das vorherige Verfahren keine ausreichende Sicherheit.

Um mehr Sicherheit zu gewährleisten, signieren Sie das Schlüsselblob mit einem privaten Exchange-Schlüssel, bevor es auf dem Datenträger gespeichert wird. Wenn das Schlüsselblob später vom Datenträger gelesen wird, kann seine Signatur überprüft werden, um sicherzustellen, dass das Schlüsselblob intakt ist.

Wenn das Schlüsselblob nicht signiert ist, kann jeder, der Zugriff auf den Datenträger oder andere Medien hat, auf denen der Schlüssel gespeichert ist, einen neuen Sitzungsschlüssel erstellen.

Der neue Sitzungsschlüssel kann mit dem öffentlichenSchlüsselaustauschschlüssel des ursprünglichen Benutzers verschlüsselt werden, und dieser neue Schlüssel kann durch den ursprünglichen ersetzt werden. Wenn der Benutzer unwissentlich den ersetzten Sitzungsschlüssel verwendet hat, um Dateien und Nachrichten zu verschlüsseln, kann die Person, die den Ersatzschlüssel erstellt hat, diese problemlos entschlüsseln.

Digitale Signaturen werden unter Hashes und Digitale Signaturen ausführlich erläutert.