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.
Importieren Sie einen symmetrischen Klartext-Schlüssel mit AWS CloudHSM KMU
Verwenden Sie den imSymKey Befehl im Tool AWS CloudHSM key_mgmt_util, um eine Klartextkopie eines symmetrischen Schlüssels aus einer Datei in das Hardware-Sicherheitsmodul () zu importieren. HSM Sie können damit Schlüssel importieren, die Sie mit einer beliebigen Methode außerhalb der Schlüssel HSM und, die aus einer exportiert wurden, generiert haben, z. B. die Schlüssel, die der HSM Befehl, in eine Datei schreibt. exSymKey
imSymKeyVerwendet während des Importvorgangs einen von Ihnen ausgewählten AES Schlüssel (den Umschließungsschlüssel), um den zu importierenden Schlüssel zu umschließen (zu verschlüsseln) und dann zu entpacken (zu entschlüsseln). Allerdings funktioniert imSymKey nur für Dateien, die Klartextschlüssel enthalten. Verwenden Sie die Befehle und, um verschlüsselte Schlüssel zu exportieren und zu importieren. wrapKeyunWrapKey
Darüber hinaus exportiert der Befehl imSymKey nur symmetrische Schlüssel. Zum Importieren von öffentlichen Schlüsseln verwenden Sie importPubKey. Verwenden Sie importPrivateKeyoder, um private Schlüssel zu importieren wrapKey.
Anmerkung
Sie können einen kennwortgeschützten PEM Schlüssel nicht mithilfe eines symmetrischen oder privaten Schlüssels importieren.
Importierte Schlüssel funktionieren sehr ähnlich wie Schlüssel, die in der generiert wurden. HSM Der Wert des LOCALAttributs OBJ _ ATTR _ ist jedoch Null, was darauf hinweist, dass es nicht lokal generiert wurde. Mit dem folgenden Befehl können Sie einen symmetrischen Schlüssel freigeben, während Sie ihn importieren. Mit dem Befehl shareKey
in cloudhsm_mgmt_util können Sie den Schlüssel freigeben, nachdem er importiert wurde.
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
Vergewissern Sie sich, dass Sie die Schlüsseldatei nach dem Importieren des Schlüssels markieren oder entfernen. Dieser Befehl verhindert nicht das wiederholte Importieren der gleichen Schlüsselinformationen. Das Ergebnis, mehrere Schlüssel mit eindeutigen Schlüssel-Handles und den gleichen Schlüsselinformationen, erschwert es, die Verwendung der Schlüsselinformationen nachzuverfolgen und eine Überschreitung der kryptografischen Grenzwerte zu verhindern.
Syntax
imSymKey -h imSymKey -f <key-file> -w <wrapping-key-handle> -t <key-type> -l <label> [-id <key-ID>] [-sess] [-wk <wrapping-key-file> ] [-attest] [-min_srv <minimum-number-of-servers>] [-timeout <number-of-seconds> ] [-u <user-ids>]
Beispiele
Diese Beispiele zeigen, wie Sie symmetrische Schlüssel in Ihren importieren können. imSymKey HSMs
Beispiel : Importiert einen AES symmetrischen Schlüssel
In diesem Beispiel wird imSymKey ein AES symmetrischer Schlüssel in den importiert. HSMs
Der erste Befehl verwendet OpenSSL, um einen zufälligen symmetrischen AES 256-Bit-Schlüssel zu generieren. Der Schlüssel wird in der Datei aes256.key
gespeichert.
$
openssl rand -out aes256-forImport.key 32
Der zweite Befehl verwendetimSymKey, um den AES Schlüssel aus der aes256.key
Datei in die zu importieren. HSMs Er verwendet den Schlüssel 20, einen AES Schlüssel in derHSM, als Umbruchschlüssel und gibt eine Bezeichnung von animported
. Im Gegensatz zur ID muss die Beschriftung im Cluster nicht eindeutig sein. Der Wert des Parameters -t
(Typ) ist31
, was bedeutetAES.
Die Ausgabe zeigt, dass der Schlüssel in der Datei umgebrochen und entpackt und dann in den importiert wurdeHSM, wo ihm das Schlüsselwort 262180 zugewiesen wurde.
Command:
imSymKey -f aes256.key -w 20 -t 31 -l imported
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 262180 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Im nächsten Befehl wird getAttributedas OBJ _ ATTR _ LOCAL -Attribut (Attribut 355) des neu importierten Schlüssels abgerufen und in die Datei geschrieben. attr_262180
Command:
getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
Wenn Sie die Attributdatei untersuchen, können Sie feststellen, dass der Wert des OBJ_ATTR_LOCAL
Attributs Null ist, was darauf hinweist, dass das Schlüsselmaterial nicht in der generiert wurdeHSM.
$
cat attributes/attr_262180_local
OBJ_ATTR_LOCAL 0x00000000
Beispiel : Verschieben eines symmetrischen Schlüssels zwischen Clustern
Dieses Beispiel zeigt, wie ein AES Klartext-Schlüssel verwendet exSymKeyund imSymKey zwischen Clustern verschoben wird. Sie könnten einen Prozess wie diesen verwenden, um ein AES Wrapping zu erstellen, das in HSMs beiden Clustern vorhanden ist. Sobald der gemeinsame Wrapping-Schlüssel eingerichtet ist, können Sie verschlüsselte Schlüssel verwenden wrapKeyund unWrapKeyzwischen den Clustern verschieben.
Der CU-Benutzer, der diesen Vorgang ausführt, muss über die Berechtigung verfügen, sich HSMs auf beiden Clustern anzumelden.
Mit dem ersten Befehl wird exSymKeySchlüssel 14, ein AES 32-Bit-Schlüssel, aus dem Cluster 1 in die aes.key
Datei exportiert. Er verwendet Schlüssel 6, einen AES Schlüssel auf dem HSMs In-Cluster 1, als Umschließungsschlüssel.
Command:
exSymKey -k 14 -w 6 -out aes.key
Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS Wrapped Symmetric Key written to file "aes.key"
Der Benutzer meldet sich dann bei key_mgmt_util in Cluster 2 an und führt einen imSymKey Befehl aus, um den Schlüssel in der aes.key
Datei in Cluster 2 zu importieren. HSMs Dieser Befehl verwendet den Schlüssel 252152, einen Schlüssel HSMs im Cluster 2, als AES Umschließungsschlüssel.
Da die Umbruchschlüssel, die exSymKeyich imSymKey verwende, die Zielschlüssel umbrechen und sofort entpacken, müssen die Umbruchschlüssel in den verschiedenen Clustern nicht identisch sein.
Die Ausgabe zeigt, dass der Schlüssel erfolgreich in Cluster 2 importiert und das Schlüssel-Handle 21 zugwiesen wurde.
Command:
imSymKey -f aes.key -w 262152 -t 31 -l xcluster
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 21 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
Um zu beweisen, dass Schlüssel 14 von Cluster 1 und Schlüssel 21 in Cluster 2 dasselbe Schlüsselmaterial haben, rufen Sie den Schlüsselprüfwert (KCV) für jeden Schlüssel ab. Wenn die KCV Werte identisch sind, ist das Schlüsselmaterial dasselbe.
Der folgende Befehl verwendet getAttributein Cluster 1 den Wert des KCV Attributs (Attribut 371) von Schlüssel 14 in die attr_14_kcv
Datei. Anschließend wird mit dem Befehl cat der Inhalt der Datei attr_14_kcv
abgerufen.
Command:
getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file
$
cat attr_14_kcv
OBJ_ATTR_KCV 0xc33cbd
Dieser ähnliche Befehl verwendet getAttributein Cluster 2, um den Wert des KCV Attributs (Attribut 371) des Schlüssels 21 in die attr_21_kcv
Datei zu schreiben. Anschließend wird mit dem Befehl cat der Inhalt der Datei attr_21_kcv
abgerufen.
Command:
getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file
$
cat attr_21_kcv
OBJ_ATTR_KCV 0xc33cbd
Die Ausgabe zeigt, dass die KCV Werte der beiden Schlüssel identisch sind, was beweist, dass das Schlüsselmaterial identisch ist.
Da in beiden Clustern dasselbe Schlüsselmaterial vorhanden ist, können Sie jetzt verschlüsselte Schlüssel zwischen den Clustern gemeinsam nutzen, ohne jemals den Klartext-Schlüssel preiszugeben. HSMs Beispielsweise können Sie den Befehl wrapKey
mit dem Schlüssel 14 zum Packen verwenden, um einen verschlüsselten Schlüssel aus Cluster 1 zu exportieren, und anschließend unWrapKey
mit Schlüssel 21 zum Packen verwenden, um den verschlüsselten Schlüssel in Cluster 2 zu importieren.
Beispiel : Importieren eines Sitzungsschlüssels
Dieser Befehl verwendet die -sess
Parameter vonimSymKey, um einen DES 192-Bit-Triple-Schlüssel zu importieren, der nur in der aktuellen Sitzung gültig ist.
Der Befehl verwendet den Parameter -f
, um die Datei mit dem zu importierenden Schlüssel anzugeben, den Parameter -t
zur Angabe des Schlüsseltyps und den Parameter -w
, um den Schlüssel zum Packen festzulegen. Er verwendet den Parameter -l
zum Angeben einer Beschriftung, die den Schlüssel kategorisiert, und den Parameter -id
zum Erstellen eines benutzerfreundlichen, aber eindeutigen Bezeichners für den Schlüssel. Mit dem Parameter -attest
wird außerdem die Firmware, die den Schlüssel importiert, überprüft.
Die Ausgabe zeigt, dass der Schlüssel erfolgreich verpackt und entpackt, in den importiert und ihm das HSM Schlüssel-Handle 37 zugewiesen wurde. Außerdem wurde die Bescheinigungsprüfung bestanden, was angibt, dass die Firmware nicht unbefugt geändert wurde.
Command:
imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest
Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Unwrapped. Key Handle: 37 Attestation Check : [PASS] Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Als Nächstes können Sie die findKeyBefehle getAttributeoder verwenden, um die Attribute des neu importierten Schlüssels zu überprüfen. Der folgende Befehl verwendet findKey, um zu überprüfen, dass der Schlüssel 37 über die vom Befehl angegebenen Typ-, Beschriftungs- und ID-Werte verfügt, und dass es sich um einen Sitzungsschlüssel handelt. Wie in Zeile 5 der Ausgabe gezeigt, meldet findKey, dass der einzige Schlüssel, der allen Attributen entspricht, Schlüssel 37 ist.
Command:
findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1 number of keys matched from start index 0::0 37 Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
Parameter
- -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
- -f
-
Gibt die Datei an, die den zu importierenden Schlüssel enthält.
Die Datei muss eine Klartextkopie eines Schlüssels AES oder eines DES Dreifachschlüssels der angegebenen Länge enthalten. RC4und DES Schlüssel sind im FIPS HSMs -Mode nicht gültig.
-
AES: 16, 24 oder 32 Byte
-
Dreifach DES (3DES): 24 Byte
Erforderlich: Ja
-
- -h
-
Zeigt Hilfe für den Befehl an.
Erforderlich: Ja
- -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
- -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
- -min_srv
-
Gibt die Mindestanzahl HSMs an, mit der 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
- -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 dauerhaften (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
- -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:
-
21: Dreifach DES (3DES)
. -
31: AES
Erforderlich: Ja
-
- -u
-
Gibt den zu importierenden 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 ID oder eine durch Kommas getrennte HSM Benutzerliste einIDs, z. B. -u.
5,6
Geben Sie nicht die HSM Benutzer-ID des aktuellen Benutzers an. Um die ID zu finden, können Sie den listUsersBefehl im Befehlszeilentool cloudhsm_mgmt_util oder den Befehl im Befehlszeilentool key_mgmt_util verwenden. listUsersErforderlich: Nein
- -w
-
Gibt das Schlüssel-Handle des Verpackungsschlüssels an. Dieser Parameter muss angegeben werden. Verwenden findKeySie den Befehl, um Tastenkombinationen zu finden.
Ein Wrapping-Schlüssel ist ein Schlüssel in derHSM, der verwendet wird, um den Schlüssel während des Importvorgangs zu verschlüsseln („einzupacken“) und dann zu entschlüsseln („auszupacken“). Nur AES Schlüssel können als Schlüssel zum Umschließen verwendet werden.
Sie können einen beliebigen AES Schlüssel (beliebiger Größe) als Umbruchschlüssel verwenden. Da der Umbruchschlüssel den Zielschlüssel umschließt und dann sofort wieder entpackt, können Sie ihn als Schlüssel für den Zeilenumbruch als AES Schlüssel für den Zeilenumbruch verwenden. Um zu ermitteln, ob ein Schlüssel als Umbruchschlüssel verwendet werden kann, rufen Sie getAttributeden Wert des
OBJ_ATTR_WRAP
Attributs ab (262). Um einen Umschließungsschlüssel zu erstellen, verwenden Sie, genSymKeyum einen AES Schlüssel zu erstellen (geben Sie 31 ein).Wenn Sie den Parameter
-wk
zum Angeben eines externen Schlüssels zum Packen verwenden, wird der-w
-Schlüssel zum Packen zwar zum Entpacken, jedoch nicht zum Verpacken des Schlüssels während des Importvorgangs verwendet.Anmerkung
Schlüssel 4 ist ein nicht unterstützter, interner Schlüssel. Es wird empfohlen, einen AES Schlüssel, den Sie selbst erstellen und verwalten, als Umschließungsschlüssel zu verwenden.
Erforderlich: Ja
- -wk
-
Verwenden Sie den AES Schlüssel in der angegebenen Datei, um den importierten Schlüssel zu umschließen. Geben Sie den Pfad und den Namen einer Datei ein, die einen AES Klartext-Schlüssel enthält.
Wenn Sie diesen Parameter einbeziehen. imSymKeyverwendet den Schlüssel in der
-wk
Datei, um den importierten Schlüssel zu umschließen, und verwendet den Schlüssel in demHSM, der im-w
Parameter angegeben ist, um ihn zu entpacken. Die Parameterwerte-w
und-wk
müssen durch denselben Klartextschlüssel aufgelöst werden.Standard: Verwenden Sie zum Entpacken den Umbruchschlüssel HSM auf der.
Erforderlich: Nein