Generieren Sie ein AWS CloudHSM ECC key pair mit KMU - 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.

Generieren Sie ein AWS CloudHSM ECC key pair mit KMU

Verwenden Sie den genECCKeyPair Befehl im Tool AWS CloudHSM key_mgmt_util, um ein Elliptic Curve Cryptography (ECC) -Schlüsselpaar in Ihren Hardware-Sicherheitsmodulen () zu generieren. HSM Beim Ausführen des genECCKeyPair-Befehls müssen Sie die elliptische Kurvenkennung und eine Beschriftung für das Schlüsselpaar angeben. Sie können den privaten Schlüssel auch mit anderen CU-Benutzern teilen sowie nicht extrahierbare Schlüssel, Quorum-kontrollierte Schlüssel und Schlüssel, die bei Sitzungsende ablaufen, erstellen. Wenn der Befehl erfolgreich ist, gibt er die Schlüsselnamen zurück, die er den öffentlichen und privaten Schlüsseln zuweist. HSM ECC Sie können die Schlüssel-Handles nutzen, damit die Schlüssel für andere Befehle identifizierbar sind.

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

Tipp

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

Syntax

genECCKeyPair -h genECCKeyPair -i <EC curve id> -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

Die folgenden Beispiele zeigen, wie genECCKeyPair Sie ECC Schlüsselpaare in Ihrem erstellen könnenHSMs.

Beispiel : Ein ECC key pair erstellen und untersuchen

Dieser Befehl verwendet eine elliptische Kurve NID _secp384r1 und eine Bezeichnung, um ein ecc14 key pair zu erstellen. ECC Die Ausgabe zeigt, dass das Schlüssel-Handle des privaten Schlüssels 262177 ist und das Schlüssel-Handle des öffentlichen Schlüssels 262179. Die Bezeichnung gilt sowohl für den öffentlichen als auch den privaten Schlüssel.

Command: genECCKeyPair -i 14 -l ecc14 Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 262179 private key handle: 262177 Cluster Error Status Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Nach dem Generieren des Schlüssels können Sie seine Attribute untersuchen. Wird verwendet getAttribute, um alle Attribute (dargestellt durch die Konstante512) des neuen privaten Schlüssels in die Datei zu schreiben. ECC attr_262177

Command: getAttribute -o 262177 -a 512 -out attr_262177 got all attributes of size 529 attr cnt 19 Attributes dumped into attr_262177 Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

Verwenden Sie dann den cat-Befehl, um den Inhalt der attr_262177-Attributdatei anzuzeigen. Die Ausgabe zeigt, dass der Schlüssel ein privater Ellipsenkurvenschlüssel ist, der zum Signieren, aber nicht zum Verschlüsseln, Entschlüsseln, Verpacken, Entpacken oder Verifizieren verwendet werden kann. Der Schlüssel ist persistent und exportierbar.

$ cat attr_262177 OBJ_ATTR_CLASS 0x03 OBJ_ATTR_KEY_TYPE 0x03 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x00 OBJ_ATTR_DECRYPT 0x00 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x01 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL ecc2 OBJ_ATTR_ID OBJ_ATTR_VALUE_LEN 0x0000008a OBJ_ATTR_KCV 0xbbb32a OBJ_ATTR_MODULUS 044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5 OBJ_ATTR_MODULUS_BITS 0x0000019f
Beispiel Es wird eine ungültige EEC Kurve verwendet

Dieser Befehl versucht, mithilfe einer ECC NID _X9_62_Prime192V1-Kurve ein key pair zu erstellen. Da diese elliptische Kurve für den -Modus nicht gültig ist, schlägt der Befehl fehl. FIPS HSMs In der Meldung wird gemeldet, dass ein Server im Cluster nicht verfügbar ist. Dies deutet jedoch normalerweise nicht auf ein Problem mit dem HSMs im Cluster hin.

Command: genECCKeyPair -i 1 -l ecc1 Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies Cluster Error Status Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable

Parameter

-h

Zeigt Hilfe für den Befehl an.

Erforderlich: Ja

-i

Gibt die ID für die elliptische Kurve an. Geben Sie eine ID ein.

Zulässige Werte:

  • 2: NID _X9_62_Prime256V1

  • 14: NID _secp384r1

  • 16: NID _secp256k1

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 HSMs an, für die der Schlüssel synchronisiert wird, bevor der Wert des Parameters abläuft. -timeout 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 Schlüssel HSM im Cluster. Um Ihren Prozess zu beschleunigen, setzen Sie den Wert von min_srv auf weniger als die Anzahl von HSMs im Cluster und legen Sie einen niedrigen Timeout-Wert fest. 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 ermitteln, 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 exportiert werdenHSM. Ö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 HSMs angegebenen Anzahl von 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 gibt anderen HSM Krypto-Benutzern (CUs) die Erlaubnis, den privaten Schlüssel für kryptografische Operationen zu verwenden. Öffentliche Schlüssel können von jedem Benutzer verwendet werden, ohne sie zu teilen.

Geben Sie eine durch Kommas getrennte HSM Benutzerliste einIDs, z. B. -. u 5,6 Geben Sie nicht die HSM Benutzer-ID des aktuellen Benutzers an. Um den HSM Benutzer IDs von CUs on the zu findenHSM, verwenden Sie listUsers. Verwenden Sie in der Datei cloudhsm_mgmt_util, um bestehende Schlüssel zu teilen oder shareKeyderen Freigabe aufzuheben.

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