Freigeben über


Schlüsselimport und -export

Sie können symmetrischen Schlüssel und asymmetrische Schlüssel mit CNG importieren und exportieren. Und Sie können Schlüsselexport- und Importfunktionen verwenden, um Schlüssel zwischen Computern zu verschieben.

Symmetrische Schlüssel

Zum Importieren oder Exportieren symmetrischer Schlüssel (oder Sitzungsschlüssel), in denen derselbe Schlüssel zum Verschlüsseln und Entschlüsseln einiger Daten verwendet wird, können Sie die funktionen BCryptImportKey und BCryptExportKey verwenden. In der Regel exportieren Sie zunächst einen Schlüssel mithilfe der BCryptExportKey--Funktion, bevor Sie mithilfe der funktion BCryptImportKey importieren. Die Funktionen sind so konzipiert, dass die Verschlüsselung exportierter und importierter Schlüssel mithilfe der parameter hExportKey und hImportKey ermöglicht wird; Die Microsoft-Implementierung dieser Funktionen unterstützt jedoch keine Verschlüsselung exportierter und importierter Schlüssel.

Asymmetrische Schlüssel

Um asymmetrische Schlüsselpaare (oder öffentliche/private) zu importieren, in denen ein Schlüssel zum Verschlüsseln verwendet wird und der andere zum Entschlüsseln einiger Daten verwendet wird, können Sie eine der BCryptImportKeyPair oder NCryptImportKey Funktionen verwenden. Ein CNG-Anbieter muss das Schlüsselpaar mithilfe eines unterstützten Schlüssel-BLOB- Typs codieren. BCryptExportKey- kann zum Erstellen des codierten Schlüssel-BLOB verwendet werden. CNG-Strukturen beschreibt die wichtigsten BLOB-Typen und -Strukturen, die microsoft Key Storage Provider unterstützt.

Damit BCryptExportKey- ein beibehaltenes Schlüsselpaar erstellen kann, muss das Eingabeschlüssel-BLOB einen privaten Schlüsselenthalten. öffentlichen Schlüssel werden nicht beibehalten.

Der Schlüsselname und die Exportrichtlinie sind nicht Teil der BLOB- Struktur, die in CNG-Strukturendefiniert ist. Wenn ein BLOB jedoch einen undurchsichtigen BLOB-Typ aufweist (z. B. das Speicherimage eines internen Schlüsselzustands), enthält das BLOB möglicherweise den Schlüsselnamen und die Eigenschaften der Exportrichtlinie.

Im folgenden Verfahren wird beschrieben, wie ein beibehaltener privater Schlüssel mit seinen Eigenschaften importiert wird.

So importieren Sie einen dauerhaften Schlüssel

  1. Erstellen Sie einen beibehaltenen Schlüssel mithilfe der funktion NCryptCreatePersistedKey.
  2. Legen Sie alle gewünschten Eigenschaften für das Schlüsselobjekt mithilfe der NCryptSetProperty--Funktion fest.
  3. Legen Sie den IMPORTschlüssel-BLOB als Eigenschaft für den Schlüssel fest, wobei der BLOB-Typ als Eigenschaftsname verwendet wird.
  4. Finalize the persisted key import by using the NCryptFinalizeKey function.