Schlüsselimport und -export
Sie können symmetrische Schlüssel und asymmetrische Schlüssel mit CNG importieren und exportieren. Außerdem können Sie Schlüsselexport- und -importfunktionen verwenden, um Schlüssel zwischen Computern zu verschieben.
Symmetrische Schlüssel
Um symmetrische Schlüssel (oder Sitzungsschlüssel) zu importieren oder zu exportieren, 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 Funktion BCryptExportKey , bevor Sie den Import mithilfe der Funktion BCryptImportKey verwenden. Die Funktionen sind so konzipiert, dass sie die Verschlüsselung exportierter und importierter Schlüssel mithilfe der Parameter hExportKey und hImportKey ermöglichen. Die Microsoft-Implementierung dieser Funktionen unterstützt jedoch keine Verschlüsselung von exportierten und importierten Schlüsseln.
Asymmetrische Schlüssel
Um asymmetrische (oder öffentliche/private) Schlüsselpaare zu importieren, bei denen ein Schlüssel zum Verschlüsseln und der andere zum Entschlüsseln einiger Daten verwendet wird, können Sie eine der Funktionen BCryptImportKeyPair oder NCryptImportKey verwenden. Ein CNG-Anbieter muss das Schlüsselpaar mit einem unterstützten Schlüsselblobtyp codieren. BCryptExportKey kann verwendet werden, um das codierte Schlüsselblob zu erstellen. CNG-Strukturen beschreibt die wichtigsten BLOB-Typen und -Strukturen, die vom Microsoft Key Storage-Anbieter unterstützt werden.
Damit BCryptExportKey ein persistentes Schlüsselpaar erstellen kann, muss das Eingabeschlüssel-BLOB einen privaten Schlüssel enthalten. Öffentliche Schlüssel werden nicht beibehalten.
Der Schlüsselname und die Exportrichtlinie sind nicht Teil der blob-Struktur , die in CNG-Strukturen definiert ist. Wenn ein BLOB jedoch einen undurchsichtigen BLOB-Typ aufweist (z. B. das Speicherimage eines internen Schlüsselzustands), kann das BLOB den Schlüsselnamen und die Eigenschaften export-policy enthalten.
Im folgenden Verfahren wird beschrieben, wie Ein persistenter privater Schlüssel mit seinen Eigenschaften importiert wird.
So importieren Sie einen persistenten Schlüssel
- Erstellen Sie mithilfe der Funktion NCryptCreatePersistedKey einen persistenten Schlüssel.
- Legen Sie alle gewünschten Eigenschaften für das Schlüsselobjekt mithilfe der NCryptSetProperty-Funktion fest.
- Legen Sie den Importschlüssel BLOB als Eigenschaft für den Schlüssel mit dem BLOB-Typ als Eigenschaftennamen fest.
- Schließen Sie den Import des dauerhaften Schlüssels mit der Funktion NCryptFinalizeKey ab.