Freigeben über


Basisanbieterschlüssel-BLOBs

Der Basisanbieter und der erweiterte Anbieter verwenden dieselben Schlüssel-BLOBs.

BloBs für öffentliche Schlüssel

BLOBs für öffentliche Schlüssel, typ PUBLICKEYBLOB, werden verwendet, um öffentlichen Schlüssel außerhalb eines kryptografischen Dienstanbieters (CSP) zu speichern. Öffentliche Schlüssel-BLOBs des Basisanbieters weisen das folgende Format auf.

PUBLICKEYSTRUC  publickeystruc;
RSAPUBKEY rsapubkey;
BYTE modulus[rsapubkey.bitlen/8];

In der folgenden Tabelle werden die einzelnen Öffentlichen Schlüsselkomponenten beschrieben. Alle Werte befinden sich im little-endian Format.

Feld Beschreibung
Modul Die Daten des öffentlichen Schlüsselmoduls befinden sich direkt nach der RSAPUBKEY Struktur. Die Größe dieser Daten variiert je nach Größe des öffentlichen Schlüssels. Die Anzahl der Bytes kann durch Dividieren des Werts des RSAPUBKEY-Bitlen- Felds durch acht bestimmt werden.
publickeystruc Eine PUBLICKEYSTRUC- Struktur.
rsapubkey Eine RSAPUBKEY- Struktur. Das magische Mitglied muss auf 0x31415352 festgelegt werden. Dieser Hexadezimalwert ist die ASCII- Codierung von RSA1.

 

Anmerkung

BloBs für öffentliche Schlüssel sind nicht verschlüsselt. Sie enthalten öffentliche Schlüssel in Nur-Text- Formular.

 

Private Key BLOBs

PRIVATE Key BLOBs, typ PRIVATEKEYBLOB, werden verwendet, um privaten Schlüssel außerhalb eines CSP zu speichern. Private Schlüssel-BLOBs des Basisanbieters weisen das folgende Format auf.

PUBLICKEYSTRUC  publickeystruc;
RSAPUBKEY rsapubkey;
BYTE modulus[rsapubkey.bitlen/8];
BYTE prime1[rsapubkey.bitlen/16];
BYTE prime2[rsapubkey.bitlen/16];
BYTE exponent1[rsapubkey.bitlen/16];
BYTE exponent2[rsapubkey.bitlen/16];
BYTE coefficient[rsapubkey.bitlen/16];
BYTE privateExponent[rsapubkey.bitlen/8];

In der folgenden Tabelle wird die BLOB-Komponente des privaten Schlüssels beschrieben.

Anmerkung

Diese Felder entsprechen den In Abschnitt 7.2 von Public Key Cryptography Standards (PKCS) Nr. 1 mit geringfügigen Unterschieden beschriebenen Feldern.

 

Feld Beschreibung
Koeffizient Koeffizient. Dies hat einen numerischen Wert von (Umkehrung von q) mod p.
exponent1 Exponent 1. Dies hat einen numerischen Wert von d mod (p – 1).
exponent2 Exponent 2. Dies hat einen numerischen Wert von d mod (q – 1).
Modul Das Modul. Dies hat einen Wert von Prime1×Prime2 und wird häufig als n bezeichnet.
prime1 Primzahl 1, häufig als p bezeichnet.
Prime2 Primzahl 2, häufig als q bezeichnet.
privateExponent Privater Exponent, häufig als d bezeichnet.
publickeystruc Eine PUBLICKEYSTRUC- Struktur.
rsapubkey Eine RSAPUBKEY- Struktur. Das magische Mitglied muss auf 0x32415352 festgelegt werden. Dieser Hexadezimalwert ist die ASCII- Codierung von RSA2.

 

Anmerkung

Private Schlüssel-BLOBs sind nicht verschlüsselt. Sie enthalten private Schlüssel in Nur-Text-Form.

 

Beim Aufrufen CryptExportKeykann der Entwickler auswählen, ob der Schlüssel verschlüsselt werden soll. Die PRIVATEKEYBLOB- wird verschlüsselt, wenn der hExpKey Parameter ein gültiges Handle für einen Sitzungsschlüssel enthält. Alles, aber die PUBLICKEYSTRUC Teil des BLOB verschlüsselt ist.

Anmerkung

Der Verschlüsselungsalgorithmus und die Verschlüsselungsschlüsselparameter werden nicht zusammen mit dem PRIVATEN SCHLÜSSEL-BLOB gespeichert. Die Anwendung muss diese Informationen verwalten und speichern. Wenn Null für hExpKey-übergeben wird, wird der private Schlüssel ohne Verschlüsselung exportiert.

 

Vorsicht

Es ist gefährlich, private Schlüssel ohne Verschlüsselung zu exportieren, da sie dann anfällig für abfangen und von nicht autorisierten Entitäten verwendet werden.

 

Simple Key BLOBs

Simple key BLOBs, typ SIMPLEBLOB, werden verwendet, um Sitzungsschlüssel außerhalb eines CSP zu speichern und zu transportieren. Einfache Schlüssel-BLOBs des Basisanbieters werden immer mit einem Schlüsselaustausch public keyverschlüsselt. Das pbData- Mitglied der SIMPLEBLOB- ist eine Folge von Bytes im folgenden Format.

PUBLICKEYSTRUC  publickeystruc;
ALG_ID algid;
BYTE encryptedkey[rsapubkey.bitlen/8];

In der folgenden Tabelle werden die einzelnen Komponenten des pbData- Mitglieds der SIMPLEBLOB-beschrieben.

Feld Beschreibung
algid Eine ALG_ID Struktur, die den Verschlüsselungsalgorithmus angibt, der zum Verschlüsseln der Sitzungsschlüsseldaten verwendet wird. Dies weist in der Regel einen Wert von CALG_RSA_KEYX auf, der angibt, dass die Sitzungsschlüsseldaten mit einem öffentlichen Schlüsselaustauschschlüssel verschlüsselt wurden, indem der RSA Public Key-Algorithmusverwendet wird.
verschlüsselter Schlüssel Eine BYTE- Sequenz, die die verschlüsselten Sitzungsschlüsseldaten in Form eines PKCS #1-Verschlüsselungsblocks darstellt. Informationen zu diesem Datenformat finden Sie in den Public Key Cryptography Standards (PKCS) #1, veröffentlicht von RSA Data Security, Inc. Diese Daten sind immer die gleiche Größe wie der Modulus des öffentlichen Schlüssels. Beispielsweise können öffentliche Schlüssel, die vom Microsoft RSA Base Provider generiert werden, 512 Bit (64 Bytes) lang sein, sodass die verschlüsselten Sitzungsschlüsseldaten auch immer 512 Bit (64 Bytes) sind.
publickeystruc Eine PUBLICKEYSTRUC- Struktur.