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 einen AWS CloudHSM symmetrischen Schlüssel mit KMU
Verwenden Sie den genSymKey Befehl im Tool AWS CloudHSM key_mgmt_util, um einen symmetrischen Schlüssel in Ihren Hardware-Sicherheitsmodulen () zu generieren. HSM Sie können den Schlüsseltyp und die Größe angeben, eine ID und ein Label zuweisen und den Schlüssel mit anderen Benutzern teilen. HSM Sie können auch nicht extrahierbare Schlüssel erstellen sowie Schlüssel, die ablaufen, wenn die Sitzung endet. Wenn der Befehl erfolgreich ist, gibt er ein Tastenkürzel zurück, das der Taste HSM zugewiesen wird. Sie können das Schlüssel-Handle nutzen, damit der Schlüssel für andere Befehle identifizierbar ist.
Syntax
genSymKey -h genSymKey -t
<key-type>
-s<key-size>
-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 zeigen, wie Sie symmetrische Schlüssel in Ihrem erstellen können. genSymKey HSMs
Tipp
Um die Schlüssel, die Sie mit diesen Beispielen erstellen, für HMAC Operationen zu verwenden, müssen Sie OBJ_ATTR_VERIFY
TRUE
nach dem Generieren des Schlüssels festlegen OBJ_ATTR_SIGN
und auf. Verwenden setAttribute Sie das Cloud HSM Management Utility (CMU), um diese Werte festzulegen. Weitere Informationen finden Sie unter setAttribute.
Beispiel : Generieren Sie einen AES Schlüssel
Dieser Befehl erstellt einen AES 256-Bit-Schlüssel mit einer aes256
Bezeichnung. Die Ausgabe zeigt, dass das Schlüssel-Handle des neuen Schlüssels 6
ist.
Command:
genSymKey -t 31 -s 32 -l aes256
Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Beispiel : Erstellen eines Sitzungsschlüssels
Dieser Befehl erstellt einen nicht extrahierbaren AES 192-Bit-Schlüssel, der nur in der aktuellen Sitzung gültig ist. Sie können einen solchen Schlüssel erstellen, um einen Schlüssel, der exportiert wird, zu verpacken (und dann sofort zu entpacken).
Command:
genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess
Beispiel : Schnelles Zurückgeben
Mit diesem Befehl wird ein generischer 512-Byte-Schlüssel mit der Bezeichnung IT_test_key
erstellt. Der Befehl wartet nicht darauf, dass der Schlüssel mit allen HSMs im Cluster synchronisiert wird. Stattdessen kehrt er zurück, sobald der Schlüssel auf einem beliebigen Schlüssel HSM (-min_srv 1
) oder innerhalb von 1 Sekunde (-timeout 1
) erstellt wurde, je nachdem, welcher Wert kürzer ist. Wenn der Schlüssel HSMs vor Ablauf des Timeouts nicht mit der angegebenen Mindestanzahl synchronisiert wird, wird er nicht generiert. Sie können einen solchen Befehl in einem Skript verwenden, das zahlreiche Schlüssel erstellt, wie die for
-Schleife im folgenden Beispiel.
Command:
genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1
$
for i in {1..30}; do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; done;
Beispiel : Erstellen eines allgemeinen Schlüssels mit Quorum-Autorisierung
Mit diesem Befehl wird ein allgemeiner geheimer 2048-Bit-Schlüssel mit der Bezeichnung generic-mV2
erstellt. Der Befehl verwendet den -u
-Parameter, um den Schlüssel mit einem anderen CU, Benutzer 6, zu teilen. Er verwendet den -m_value
-Parameter, damit für alle kryptografischen Vorgänge, die den Schlüssel verwenden, ein Quorum aus mindestens zwei Genehmigungen erforderlich ist. Der Befehl verwendet auch den -attest
-Parameter, um die Integrität der Firmware zu überprüfen, auf der der Schlüssel generiert wird.
Die Ausgabe zeigt, dass der Befehl einen Schlüssel mit dem Schlüssel-Handle 9
generiert hat und dass die Bescheinigungsprüfung auf der Cluster-Firmware erfolgreich bestanden wurde.
Command:
genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest
Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 9 Attestation Check : [PASS] Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Beispiel : Erstellen und Untersuchen eines Schlüssels
Dieser Befehl erstellt einen DES Dreifachschlüssel mit einer 3DES_shared
Bezeichnung und der IT-02
ID. Der Schlüssel kann von dem aktuellen Benutzer und den Benutzern 4 und 5 verwendet werden. Der Befehl schlägt fehl, wenn die ID im Cluster nicht eindeutig ist oder wenn der aktuelle Benutzer der Benutzer 4 oder 5 ist.
Die Ausgabe zeigt, dass der neue Schlüssel das Schlüssel-Handle 7
aufweist.
Command:
genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5
Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 7 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Um zu überprüfen, ob der neue DES 3-Schlüssel dem aktuellen Benutzer gehört und mit den Benutzern 4 und 5 geteilt wird, verwenden SiegetKeyInfo. Der Befehl verwendet das Handle, das dem neuen Schlüssel zugewiesen wurde (Key Handle: 7
).
Die Ausgabe bestätigt, dass der Schlüssel im Besitz des Benutzers 3 ist und gemeinsam mit den Benutzern 4 und 5 verwendet wird.
Command:
getKeyInfo -k 7
Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS Owned by user 3 also, shared to following 2 user(s): 4, 5
Um die anderen Eigenschaften des Schlüssels zu bestätigen, verwenden Sie getAttribute. Der erste Befehl verwendet getAttribute
, um alle Attribute (-a 512
) von Schlüssel-Handle 7 (-o 7
) abzurufen. Sie werden in die Datei attr_7
geschrieben. Der zweite Befehl verwendet cat
, um den Inhalt der attr_7
-Datei abzurufen.
Dieser Befehl bestätigt, dass es sich bei Schlüssel 7 um einen symmetrischen Schlüssel (3) mit 192 Bit DES (OBJ_ATTR_VALUE_LEN
0x00000018
OBJ_ATTR_KEY_TYPE 0x15
oder 24 ByteOBJ_ATTR_CLASS 0x04
) mit der Bezeichnung () und der ID 3DES_shared
(OBJ_ATTR_LABEL 3DES_shared
) handelt. IT_02
OBJ_ATTR_ID
IT-02
Der Schlüssel ist persistent (OBJ_ATTR_TOKEN 0x01
) und extrahierbar (OBJ_ATTR_EXTRACTABLE 0x01
) und kann für das Verschlüsseln, Entschlüsseln und Verpacken verwendet werden.
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.
Hilfe zur Interpretation der Schlüsselattribute finden Sie unter AWS CloudHSM Referenz zu einem Schlüsselattribut für KMU.
Command:
getAttribute -o 7 -a 512 -out attr_7
got all attributes of size 444 attr cnt 17 Attributes dumped into attr_7 file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
$
cat attr_7
OBJ_ATTR_CLASS 0x04 OBJ_ATTR_KEY_TYPE 0x15 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x01 OBJ_ATTR_WRAP 0x00 OBJ_ATTR_UNWRAP 0x00 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL 3DES_shared OBJ_ATTR_ID IT-02 OBJ_ATTR_VALUE_LEN 0x00000018 OBJ_ATTR_KCV 0x59a46e
Tipp
Um die Schlüssel, die Sie mit diesen Beispielen erstellen, für HMAC Operationen zu verwenden, müssen Sie OBJ_ATTR_VERIFY
TRUE
nach dem Generieren des Schlüssels festlegen OBJ_ATTR_SIGN
und zu. Um diese Werte festzulegen, verwenden Sie setAttribute inCMU. Weitere Informationen finden Sie unter setAttribute.
Parameter
- -h
-
Zeigt Hilfe für den Befehl an.
Erforderlich: Ja
- -t
-
Gibt den Typ des symmetrischen Schlüssels an. Geben Sie die Konstante ein, die den Schlüsseltyp darstellt. Um beispielsweise einen AES Schlüssel zu erstellen, geben Sie ein
-t 31
.Zulässige Werte:
-
16: GENERIC_ SECRET
. Ein generischer geheimer Schlüssel ist ein Byte-Array, das keinem bestimmten Standard entspricht, z. B. den Anforderungen für einen AES Schlüssel. -
18: RC4
. RC4Schlüssel sind im FIPS -Mode nicht gültig HSMs -
21: Dreifach DES (3DES)
. Gemäß den NIST Leitlinien ist dies für Cluster, die sich nach 2023 im FIPS Modus befinden, nicht zulässig. Für Cluster, die sich nicht im FIPS Modus befinden, ist dies auch nach 2023 zulässig. Details dazu finden Sie unter FIPS140-Konformität: Der Mechanismus wird 2024 nicht mehr unterstützt. -
31: AES
Erforderlich: Ja
-
- -s
-
Gibt die Schlüsselgröße in Byte an. Um beispielsweise einen 192-Bit-Schlüssel zu erstellen, geben Sie
24
ein.Gültige Werte für jeden Schlüsseltyp:
-
AES: 16 (128 Bit), 24 (192 Bit), 32 (256 Bit)
-
3DES: 24 (192 Bit)
-
Allgemeiner geheimer Schlüssel: <3584 (28672 Bit)
Erforderlich: Ja
-
- -l
-
Gibt eine benutzerdefinierte Bezeichnung für den Schlüssel an. Geben Sie eine Zeichenfolge ein.
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
- -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
- -id
-
Gibt einen benutzerdefinierten Bezeichner für den Schlüssel an. Geben Sie eine Zeichenfolge ein, die im Cluster eindeutig ist. Der Standardwert ist eine leere Zeichenfolge.
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
-timeout
Parameters abläuft. 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 einen kryptografischen Vorgang genehmigen müssen, der den Schlüssel verwendet. Geben Sie einen Wert von
0
bis8
ein.Dieser Parameter legt eine Quorum-Authentifizierungsanforderung für den 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 Schlüssel verwendet wird, sowie Operationen, bei denen der 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 den Schlüssel für ausreichend Benutzer freigibt, um diem_value
-Anforderung zu erfüllen.Standard: 0
Erforderlich: Nein
- -nex
-
Macht den Schlüssel nicht extrahierbar. Der generierte Schlüssel kann nicht aus dem exportiert werdenHSM.
Standard: Der Schlüssel ist extrahierbar.
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
-
Gibt den Schlüssel für die angegebenen Benutzer frei. Dieser Parameter gibt anderen HSM Krypto-Benutzern (CUs) die Erlaubnis, diesen Schlüssel für kryptografische Operationen zu verwenden.
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 Schlüssel verwenden.
Erforderlich: Nein