Importa una chiave simmetrica in testo semplice usando AWS CloudHSM KMU - AWS CloudHSM

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Importa una chiave simmetrica in testo semplice usando AWS CloudHSM KMU

Utilizzate il imSymKey comando dello strumento AWS CloudHSM key_mgmt_util per importare una copia in testo semplice di una chiave simmetrica da un file nel modulo di sicurezza hardware (). HSM È possibile utilizzarlo per importare le chiavi generate con qualsiasi metodo diverso da HSM e le chiavi che sono state esportate da un fileHSM, ad esempio le chiavi che il comando, scrive in un file. exSymKey

Durante il processo di importazione, imSymKey utilizza una AES chiave selezionata dall'utente (la chiave di avvolgimento) per avvolgere (crittografare) e quindi decrittografare la chiave da importare. Tuttavia, imSymKey funziona solo per i file che contengono le chiavi in testo non crittografato. Per esportare e importare chiavi crittografate, utilizzate i comandi and. wrapKeyunWrapKey

Inoltre, il comando imSymKey importa solo le chiavi simmetriche. Per importare le chiavi pubbliche, utilizzare importPubKey. Per importare chiavi private, usa importPrivateKeyo wrapKey.

Nota

Non è possibile importare una PEM chiave protetta da password utilizzando una chiave simmetrica o privata.

Le chiavi importate funzionano in modo molto simile alle chiavi generate in. HSM Tuttavia, il valore dell'LOCALattributo OBJ _ ATTR _ è zero, il che indica che non è stato generato localmente. È possibile utilizzare il comando seguente per condividere una chiave simmetrica durante l'importazione. È possibile utilizzare il comando shareKey in cloudhsm_mgmt_util per condividere la chiave dopo l'importazione.

imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5

Dopo l'importazione di una chiave, assicurarsi di contrassegnare o eliminare il file della chiave. Questo comando non evita di importare lo stesso materiale chiave più volte. Di conseguenza, più chiavi con distinti handle e lo stesso materiale chiave rendono difficile monitorare l'utilizzo del materiale chiave ed evitare il superamento dei limiti crittografici.

Prima di eseguire qualsiasi comando key_mgmt_util, è necessario avviare key_mgmt_util e accedere come utente crittografico (CU). HSM

Sintassi

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>]

Esempi

Questi esempi mostrano come importare chiavi simmetriche nel tuo. imSymKey HSMs

Esempio : Importa una chiave simmetrica AES

In questo esempio viene utilizzata imSymKey l'importazione di una chiave AES simmetrica in. HSMs

Il primo comando utilizza Open SSL per generare una chiave simmetrica casuale a 256 bitAES. Memorizza la chiave nel file aes256.key.

$ openssl rand -out aes256-forImport.key 32

Il secondo comando consente imSymKey di importare la AES chiave dal file in. aes256.key HSMs Usa la chiave 20, una AES chiave inHSM, come chiave di avvolgimento e specifica un'etichetta di. imported A differenza dell'ID, l'etichetta non deve essere univoca nel cluster. Il valore del parametro -t (type) è31, che rappresenta. AES

L'output mostra che la chiave del file è stata racchiusa e aperta, quindi importata inHSM, dove è stata assegnata la maniglia di tastiera 262180.

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

Il comando successivo utilizza getAttributeper ottenere l'attributo OBJ _ ATTR _ (LOCALattributo 355) della chiave appena importata e lo scrive nel file. 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

Quando si esamina il file degli attributi, è possibile vedere che il valore dell'OBJ_ATTR_LOCALattributo è zero, il che indica che il materiale chiave non è stato generato inHSM.

$ cat attributes/attr_262180_local OBJ_ATTR_LOCAL 0x00000000
Esempio : spostamento di una chiave simmetrica tra cluster

Questo esempio mostra come utilizzare exSymKeye imSymKey spostare una AES chiave in testo semplice tra i cluster. È possibile utilizzare un processo come questo per creare un AES involucro esistente su entrambi i cluster. HSMs Una volta inserita la chiave di wrapping condivisa, è possibile utilizzare wrapKeye unWrapKeyspostare le chiavi crittografate tra i cluster.

L'utente CU che esegue questa operazione deve disporre dell'autorizzazione per accedere a entrambi i clusterHSMs.

Il primo comando utilizza exSymKeyl'esportazione della chiave 14, una AES chiave a 32 bit, dal cluster 1 nel file. aes.key Utilizza la chiave 6, una AES chiave del HSMs cluster 1, come chiave di avvolgimento.

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"

L'utente accede quindi a key_mgmt_util nel cluster 2 ed esegue un imSymKey comando per importare la chiave nel file nel cluster 2. aes.key HSMs Questo comando utilizza la chiave 252152, una chiave del cluster 2, come AES chiave di wrapping. HSMs

Poiché le chiavi di avvolgimento che imSymKey utilizziamo avvolgono exSymKeye scartano immediatamente le chiavi di destinazione, non è necessario che le chiavi di avvolgimento sui diversi cluster siano le stesse.

L'output indica che la chiave è stata importata nel cluster 2 e che le è stato assegnato un handle di 21.

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

Per dimostrare che la chiave 14 del cluster 1 e la chiave 21 del cluster 2 hanno lo stesso materiale chiave, ottieni il valore di controllo della chiave (KCV) di ciascuna chiave. Se i KCV valori sono gli stessi, il materiale chiave è lo stesso.

Il comando seguente utilizza getAttributeil cluster 1 per scrivere il valore dell'KCVattributo (attributo 371) della chiave 14 nel attr_14_kcv file. Poi, utilizza un comando cat per ottenere il contenuto del file attr_14_kcv.

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

Questo comando simile utilizza getAttributenel cluster 2 il valore dell'KCVattributo (attributo 371) della chiave 21 nel attr_21_kcv file. Poi, utilizza un comando cat per ottenere il contenuto del file attr_21_kcv.

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

L'output mostra che i KCV valori delle due chiavi sono gli stessi, il che dimostra che il materiale chiave è lo stesso.

Poiché lo stesso materiale chiave è presente in entrambi i cluster, ora è possibile condividere le chiavi crittografate tra i cluster senza mai esporre la chiave in chiaro. HSMs Ad esempio, è possibile utilizzare il comando wrapKey con la chiave di wrapping 14 per esportare una chiave crittografata dal cluster 1 e quindi utilizzare unWrapKey con la chiave di wrapping 21 per importare la chiave crittografata nel cluster 2.

Esempio : importazione di una chiave di sessione

Questo comando utilizza i -sess parametri di imSymKey per importare una DES chiave tripla a 192 bit valida solo nella sessione corrente.

Il comando utilizza il parametro -f per specificare il file che contiene la chiave da importare, il parametro -t per specificare il tipo di chiave e il parametro -w per specificare la chiave di wrapping. Utilizza il parametro -l per specificare un'etichetta che qualifichi la chiave e il parametro -id per creare un identificatore intuitivo, ma univoco per la chiave. Viene inoltre utilizzato il parametro -attest per verificare il firmware che importa la chiave.

L'output mostra che la chiave è stata impacchettata e scartata correttamente, importata in e assegnata la HSM chiave di controllo 37. Inoltre, il controllo di attestazione ha avuto esito positivo, il che indica che il firmware non è stato danneggiato.

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

Successivamente, è possibile utilizzare i findKeycomandi getAttributeo per verificare gli attributi della chiave appena importata. Il comando seguente utilizza findKey per verificare che la chiave 37 disponga del tipo, dell'etichetta e dell'ID specificati dal comando e che sia una chiave di sessione. Come illustrato alla riga 5 dell'output, findKey indica che l'unica chiave corrispondente a tutti gli attributi è la chiave 37.

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

Parametri

-attestare

Esegue un controllo di integrità per verificare che il firmware su cui viene eseguito il cluster non sia stato manomesso.

Impostazione predefinita: nessun controllo di attestazione.

Campo obbligatorio: no

-f

Specifica il file che contiene la chiave da importare.

Il file deve contenere una copia in testo semplice di una AES o tripla DES chiave della lunghezza specificata. RC4e DES le chiavi non sono valide in -mode. FIPS HSMs

  • AES: 16, 24 o 32 byte

  • Triple DES (3DES): 24 byte

Campo obbligatorio: sì

-h

Visualizza l'aiuto per il comando.

Campo obbligatorio: sì

-id

Specifica un identificatore definito dall'utente per la chiave. Digita una stringa univoca nel cluster. L'impostazione predefinita è una stringa vuota.

Impostazione predefinita: nessun valore ID.

Campo obbligatorio: no

-l

Specifica un'etichetta definita dall'utente per la chiave. Digita una stringa.

Puoi usare qualsiasi frase che ti aiuti a identificare la chiave. Poiché l'etichetta non deve essere necessariamente univoca, è possibile utilizzarla per raggruppare e classificare le chiavi.

Campo obbligatorio: sì

-min_srv

Speciifica il numero minimo HSMs su cui la chiave viene sincronizzata prima della scadenza del valore del -timeout parametro. Se la chiave non è sincronizzata sul numero di server specificato nel tempo allocato, non viene creata.

AWS CloudHSM sincronizza automaticamente ogni chiave con tutte le chiavi del cluster. HSM Per velocizzare il processo, impostate un valore inferiore min_srv al numero di componenti del HSMs cluster e impostate un valore di timeout basso. Tuttavia, alcune richieste potrebbero non generare una chiave.

Impostazione predefinita: 1

Campo obbligatorio: no

-sessione

Crea una chiave che esiste solo nella sessione corrente. La chiave non può essere recuperata dopo la fine della sessione.

Utilizza questo parametro quando hai bisogno di una chiave solo per un breve periodo, ad esempio una chiave di wrapping che crittografa e quindi decodifica rapidamente un'altra chiave. Non utilizzare una chiave di sessione per crittografare dati che potresti aver bisogno di decodificare al termine della sessione.

Per cambiare una chiave di sessione in una chiave persistente (token), usa setAttribute.

Impostazione Predefinita: la chiave è persistente.

Campo obbligatorio: no

-timeout

Speciifica per quanto tempo (in secondi) il comando attende che una chiave venga sincronizzata con il numero HSMs specificato dal parametro. min_srv

Questo parametro è valido solo quando il parametro min_srv viene utilizzato anche nel comando.

Impostazione Predefinita: No timeout. Il comando attende a tempo indefinito e viene restituito solo quando la chiave è sincronizzata con il numero minimo di server.

Campo obbligatorio: no

-t

Specifica il tipo di chiave simmetrica. Inserisci la costante che rappresenta il tipo di chiave. Ad esempio, per creare una AES chiave, immettere. -t 31

Valori validi:

Campo obbligatorio: sì

-u

Condivide la chiave importata con utenti specificati. Questo parametro consente agli altri utenti HSM crittografici (CUs) di utilizzare questa chiave nelle operazioni crittografiche.

Digita un ID o un elenco di HSM utenti separati da virgoleIDs, ad esempio -u. 5,6 Non includere l'ID HSM utente dell'utente corrente. Per trovare un ID, puoi usare il listUserscomando nello strumento da riga di comando cloudhsm_mgmt_util o il comando nello strumento da riga di comando key_mgmt_util. listUsers

Campo obbligatorio: no

-w

Specifica l'handle di una chiave di wrapping. Questo parametro è obbligatorio. Per trovare le maniglie dei tasti, usa il comando. findKey

Una chiave di wrapping è una chiave utilizzata per crittografare («avvolgere») e quindi decrittografare («scartare») la chiave durante il processo di importazione. HSM Solo AES le chiavi possono essere utilizzate come chiavi di avvolgimento.

È possibile utilizzare qualsiasi AES chiave (di qualsiasi dimensione) come chiave di avvolgimento. Poiché la chiave di avvolgimento avvolge e quindi annulla immediatamente la chiave di destinazione, è possibile utilizzarla come chiave di avvolgimento come chiave di avvolgimento solo per la sessione. AES Per determinare se una chiave può essere utilizzata come chiave di avvolgimento, utilizzate to get il valore dell'getAttributeattributo (262). OBJ_ATTR_WRAP Per creare una chiave di avvolgimento, usa genSymKeyper creare una AES chiave (tipo 31).

Se si utilizza il parametro -wk per specificare una chiave di wrapping esterna, la chiave di wrapping -w viene utilizzata per annullare il wrapping della chiave importata, ma non per eseguirlo.

Nota

La chiave 4 è una chiave interna non supportata. Ti consigliamo di utilizzare una AES chiave creata e gestita da te come chiave di wrapping.

Campo obbligatorio: sì

-wk

Utilizzate la AES chiave nel file specificato per racchiudere la chiave che viene importata. Immettete il percorso e il nome di un file che contiene una chiave di testo sempliceAES.

Quando includi questo parametro. imSymKeyutilizza la chiave nel -wk file per racchiudere la chiave da importare e utilizza HSM la chiave specificata dal -w parametro per scartarla. I valori di parametro -w e -wk devono determinare la stessa chiave non crittografata.

Impostazione predefinita: utilizza la chiave di avvolgimento su HSM per estrarre.

Campo obbligatorio: no

Argomenti correlati