Gattung RSA KeyPair - AWS CloudHSM

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Gattung RSA KeyPair

Der genRSAKeyPair-Befehl im key_mgmt_util-Tool generiert ein asymmetrisches RSA-Schlüsselpaar. Sie geben den Schlüsseltyp, die Modullänge und einen öffentlichen Exponenten an. Der Befehl generiert ein Modul der angegebenen Länge und erstellt das Schlüsselpaar. Sie können eine ID zuweisen, den Schlüssel mit anderen HSM-Benutzern teilen und nicht extrahierbare Schlüssel sowie Schlüssel, die bei Sitzungsende ablaufen, erstellen. Wenn der Befehl erfolgreich ausgeführt wurde, wird ein Schlüssel-Handle zurückgegeben, das das HSM zum Schlüssel zuweist. Sie können das Schlüssel-Handle nutzen, damit der Schlüssel für andere Befehle identifizierbar ist.

Bevor Sie einen key_mgmt_util-Befehl ausführen, müssen Sie key_mgmt_util starten und sich am HSM als Crypto-Benutzer (CU) anmelden.

Tipp

Um die Attribute eines von Ihnen erstellten Schlüssels wie Typ, Länge, Bezeichnung und ID zu finden, verwenden Sie getAttribute. Um die Schlüssel für einen bestimmten Benutzer zu finden, verwenden Sie. getKeyInfo Verwenden Sie findKey, um Schlüssel anhand ihrer Attributwerte zu finden.

Syntax

genRSAKeyPair -h genRSAKeyPair -m <modulus length> -e <public exponent> -l <label> [-id <key ID>] [-min_srv <minimum number of servers>] [-m_value <0..8>] [-nex] [-sess] [-timeout <number of seconds> ] [-u <user-ids>] [-attest]

Beispiele

Diese Beispiele verdeutlichen, wie mit genRSAKeyPair asymmetrische Schlüsselpaare in Ihren HSMs erstellt werden.

Beispiel : Erstellen und Untersuchen eines RSA-Schlüsselpaars

Mit diesem Befehl wird ein RSA-Schlüsselpaar mit einem 2048-Bit-Modul und einem Exponenten von 65537 erstellt. Die Ausgabe zeigt, dass das Schlüssel-Handle des öffentlichen Schlüssels 2100177 ist und das Schlüssel-Handle des privaten Schlüssels 2100426.

Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_test Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 2100177 private key handle: 2100426 Cluster Status: Node id 0 status: 0x00000000 : HSM Return: SUCCESS Node id 1 status: 0x00000000 : HSM Return: SUCCESS

Der nächste Befehl nutzt getAttribute, um die Attribute des öffentlichen Schlüssels abzurufen, den wir gerade erstellt haben. Die Ausgabe wird in die Datei attr_2100177 geschrieben. Auf diesen folgt ein cat-Befehl, der den Inhalt der Attribut-Datei abruft. Hilfe zur Interpretation der Schlüsselattribute finden Sie unter Schlüsselattributreferenz.

Die resultierenden Hexadezimalwerte bestätigen, dass es sich um einen öffentliche Schlüssel (OBJ_ATTR_CLASS 0x02) mit einem RSA-Typ von (OBJ_ATTR_KEY_TYPE 0x00) handelt. Sie können mit diesem öffentlichen Schlüssel (OBJ_ATTR_ENCRYPT 0x01) verschlüsseln, aber nicht (OBJ_ATTR_DECRYPT 0x00) entschlüsseln. Die Ergebnisse können auch die Schlüssellänge (512, 0x200), das Modul, die Modullänge (2048, 0x800) und den öffentlichen Exponenten (65537, 0x10001) enthalten.

Command: getAttribute -o 2100177 -a 512 -out attr_2100177 Attribute size: 801, count: 26 Written to: attr_2100177 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS $ cat attr_2100177 OBJ_ATTR_CLASS 0x02 OBJ_ATTR_KEY_TYPE 0x00 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x01 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x01 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x00 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL rsa_test OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x00000200 OBJ_ATTR_KCV 0xc51c18 OBJ_ATTR_MODULUS 0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c 1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d 6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0 97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857 d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873 970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec b3e4203294a96fae06f8f0db7982cb5d7f OBJ_ATTR_MODULUS_BITS 0x00000800 OBJ_ATTR_PUBLIC_EXPONENT 0x010001 OBJ_ATTR_TRUSTED 0x00 OBJ_ATTR_WRAP_WITH_TRUSTED 0x00 OBJ_ATTR_DESTROYABLE 0x01 OBJ_ATTR_DERIVE 0x00 OBJ_ATTR_ALWAYS_SENSITIVE 0x00 OBJ_ATTR_NEVER_EXTRACTABLE 0x00
Beispiel : Generieren eines freigegebenen RSA-Schlüsselpaars

Dieser Befehl generiert ein RSA-Schlüsselpaar und teilt den privaten Schlüssel mit Benutzer 4, einem anderen CU auf dem HSM. Der Befehl verwendet den Parameter m_value, damit mindestens zwei Genehmigungen erforderlich sind, ehe der private Schlüssel des Paares in einer kryptografischen Operation verwendet werden kann. Wenn Sie den Parameter m_value verwenden, müssen Sie auch -u im Befehl nutzen. Dabei darf der m_value nicht die Gesamtanzahl an Benutzern übersteigen (Anzahl der Werte in -u + Eigentümer).

Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2 Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 27 private key handle: 28 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS

Parameter

-h

Zeigt Hilfe für den Befehl an.

Erforderlich: Ja

-m

Gibt die Länge des Moduls in Bits an. Der minimale Wert beträgt 2048.

Erforderlich: Ja

-e

Gibt den öffentlichen Exponenten an. Bei diesem Wert muss es sich eine ungerade Zahl gleich oder größer als 65537 handeln.

Erforderlich: Ja

-l

Gibt eine benutzerdefinierte Bezeichnung für das Schlüsselpaar an. Geben Sie eine Zeichenfolge ein. Dieselbe Bezeichnung gilt für beide Schlüssel im Paar. Die maximal zulässige Größe für label beträgt 127 Zeichen.

Sie können eine beliebige Phrase verwenden, die Ihnen bei der Identifizierung des Schlüssels hilft. Da die Bezeichnung nicht eindeutig sein muss, können Sie sie verwenden, um Schlüssel zu gruppieren und zu kategorisieren.

Erforderlich: Ja

-id

Gibt einen benutzerdefinierten Bezeichner für das Schlüsselpaar an. Geben Sie eine Zeichenfolge ein, die im Cluster eindeutig ist. Der Standardwert ist eine leere Zeichenfolge. Die von Ihnen angegebene ID gilt für beide Schlüssel im Paar.

Standard : Kein ID-Wert.

Erforderlich: Nein

-min_srv

Gibt die Mindestanzahl der HSMs an, in denen der Schlüssel synchronisiert wird, bevor der Wert des Parameters -timeout verfällt. Falls der Schlüssel nicht in der zulässigen vorgegebenen Zeit mit der angegebenen Anzahl von Servern synchronisiert wird, wird er nicht erstellt.

AWS CloudHSM synchronisiert automatisch jeden Schlüssel mit jedem HSM im Cluster. Zur Beschleunigung Ihres Prozesses legen Sie den Wert von min_srv auf weniger als die Anzahl der HSMs im Cluster fest und stellen einen niedrigen Zeitüberschreitungswert ein. Beachten Sie jedoch, dass einige Anfragen möglicherweise keinen Schlüssel generieren.

Standard: 1

Erforderlich: Nein

-m_value

Gibt die Anzahl der Benutzer an, die jede kryptografische Operation genehmigen müssen, die den privaten Schlüssel des Paares verwendet. Geben Sie einen Wert von 0 bis 8 ein.

Dieser Parameter legt eine Quorum-Authentifizierungsanforderung für den privaten Schlüssel fest. Der Standardwert, 0, deaktiviert die Quorum-Authentifizierungsfunktion für den Schlüssel. Wenn die Quorumauthentifizierung aktiviert ist, muss die angegebene Anzahl von Benutzern ein Token signieren, um kryptografische Operationen, bei denen der private Schlüssel verwendet wird, sowie Operationen, bei denen der private Schlüssel gemeinsam genutzt oder die gemeinsame Nutzung aufgehoben wird, zu genehmigen.

Um den Wert m_value eines Schlüssels zu finden, verwenden Sie. getKeyInfo

Dieser Parameter ist nur gültig, wenn der -u-Parameter im Befehl das Schlüsselpaar für ausreichend Benutzer freigibt, um die m_value-Anforderung zu erfüllen.

Standard: 0

Erforderlich: Nein

-nex

Macht den privaten Schlüssel nicht extrahierbar. Der generierte private Schlüssel kann nicht aus dem HSM exportiert werden. Öffentliche Schlüssel sind immer extrahierbar.

Standard: Sowohl der öffentliche als auch der private Schlüssel im Schlüsselpaar können extrahiert werden.

Erforderlich: Nein

-sess

Erstellt einen Schlüssel, der nur in der aktuellen Sitzung existiert. Der Schlüssel kann nach Ende der Sitzung nicht wiederhergestellt werden.

Verwenden Sie diesen Parameter, wenn Sie einen Schlüssel zum Packen nur für kurze Zeit benötigen, z. B. einen Schlüssel, der einen anderen Schlüssel verschlüsselt und dann schnell entschlüsselt. Verwenden Sie keinen Sitzungsschlüssel, um Daten zu verschlüsseln, die Sie nach dem Ende der Sitzung möglicherweise entschlüsseln müssen.

Um einen Sitzungsschlüssel in einen persistenten (Token-)Schlüssel zu ändern, verwenden Sie setAttribute.

Standard: Der Schlüssel ist persistent.

Erforderlich: Nein

-timeout

Gibt an, wie lange (in Sekunden) der Befehl darauf wartet, dass ein Schlüssel mit der im min_srv-Parameter angegebenen Anzahl von HSMs synchronisiert wird.

Dieser Parameter ist nur gültig, wenn der min_srv-Parameter auch im Befehl verwendet wird.

Voreinstellung: Keine Zeitüberschreitung. Der Befehl wartet auf unbestimmte Zeit und kehrt erst zurück, wenn der Schlüssel mit der Mindestanzahl von Servern synchronisiert ist.

Erforderlich: Nein

-u

Teilt den privaten Schlüssel des Paares mit den angegebenen Benutzern. Dieser Parameter erteilt anderen HSM-Crypto-Benutzern die Berechtigung zur Verwendung des privaten Schlüssels in kryptographischen Vorgängen. Öffentliche Schlüssel können von jedem Benutzer verwendet werden, ohne sie zu teilen.

Geben Sie eine durch Kommas getrennte Liste der HSM-Benutzer-IDs ein, wie etwa -u 5,6. Fügen Sie die HSM-Benutzer-ID des aktuellen Benutzers nicht ein. Verwenden Sie listUsers, um im HSM nach den HSM-Benutzer-IDs von CUs zu suchen. Nutzen Sie zum Freigeben oder zum Aufheben der Freigabe vorhandener Schlüssel shareKey in cloudhsm_mgmt_util.

Standard: Nur der aktuelle Benutzer kann den privaten Schlüssel verwenden.

Erforderlich: Nein

-attest

Führt eine Integritätsprüfung durch, die sicherstellt, dass die Firmware, auf der der Cluster läuft, nicht manipuliert wurde.

Standard: Keine Bescheinigungsprüfung.

Erforderlich: Nein

Verwandte Themen