genRSAKeyPair - 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à.

genRSAKeyPair

Il comando genRSAKeyPair nello strumento key_mgmt_util genera una coppia di chiavi asimmetriche RSA. Occorre specificare il tipo di chiave, la lunghezza del modulo e un esponente pubblico. Il comando genera un modulo della lunghezza specificata e crea la coppia di chiavi. È possibile assegnare un ID, condividere la chiave con altri utenti HSM, creare chiavi non estraibili e chiavi che scadono al termine della sessione. Quando il comando viene completato con successo, restituisce un handle che l'HSM assegna alla chiave. È possibile utilizzare l'handle per identificare la chiave per altri comandi.

Prima di eseguire un comando key_mgmt_util, devi avviare key_mgmt_util e accedere all'HSM come crypto user (CU).

Suggerimento

Per trovare gli attributi di una chiave che hai creato, ad esempio tipo, lunghezza, etichetta e ID, usa getAttribute. Per trovare le chiavi di un utente specifico, utilizza getKeyInfo. Per trovare le chiavi in base ai valori degli attributi, usa findKey.

Sintassi

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]

Esempi

Questi esempi mostrano come utilizzare genRSAKeyPair per creare coppie di chiavi asimmetriche nei moduli HSM.

Esempio : crea ed esamina una coppia di chiavi RSA

Questo comando crea una coppia di chiavi RSA con un modulo a 2048 bit e un esponente di 65537. L'output indica che l'handle della chiave pubblica è 2100177 e l'handle della chiave privata è 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

Il comando successivo utilizza getAttribute per ottenere gli attributi della chiave pubblica appena creata. Scrive l'output nel file attr_2100177. È seguito da un comando cat che ottiene il contenuto del file degli attributi. Per informazioni sull'interpretazione degli attributi delle chiavi, vedi Riferimento per l'attributo della chiave.

I risultanti valori esadecimali confermano che è una chiave pubblica (OBJ_ATTR_CLASS 0x02) con un tipo di RSA (OBJ_ATTR_KEY_TYPE 0x00). È possibile utilizzare questa chiave pubblica per la crittografia (OBJ_ATTR_ENCRYPT 0x01), ma non per la decodifica (OBJ_ATTR_DECRYPT 0x00). I risultati includono anche la lunghezza della chiave (512, 0x200), il modulo, la lunghezza del modulo (2048, 0x800) e l'esponente pubblico (65537, 0x10001).

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
Esempio : genera una coppia di chiavi RSA condivise

Questo comando genera una coppia di chiavi RSA e condivide la chiave privata con l'utente 4, un altro CU sull'HSM. Il comando utilizza il parametro m_value per richiedere almeno due approvazioni prima che la chiave privata nella coppia possa essere utilizzata in un'operazione di crittografia. Quando si utilizza il parametro m_value, è necessario utilizzare anche -u nel comando e m_value non può superare il numero totale di utenti (numero di valori in -u + proprietario).

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

Parametri

-h

Visualizza l'aiuto per il comando.

Campo obbligatorio: sì

-m

Specifica la lunghezza del modulo in bit. Il valore minimo è 2048.

Campo obbligatorio: sì

-e

Specifica l'esponente pubblico. Il valore deve essere un numero dispari maggiore o uguale a 65537.

Campo obbligatorio: sì

-l

Specifica un'etichetta definita dall'utente per la chiave privata. Digita una stringa La stessa etichetta si applica a entrambe le chiavi della coppia. La dimensione massima per label è di 127 caratteri.

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ì

-id

Specifica un identificatore definito dall'utente per la coppia di chiavi. Digita una stringa univoca nel cluster. L'impostazione predefinita è una stringa vuota. L'ID specificato si applica a entrambe le chiavi della coppia.

Impostazione predefinita: nessun valore dell'ID.

Campo obbligatorio: no

-min_srv

Specifica il numero minimo di moduli HSM su cui la chiave importata è sincronizzata prima che il valore del parametro -timeout scada. Se la chiave non è sincronizzata sul numero di server specificato nel tempo allocato, non viene creata.

AWS CloudHSM sincronizza automaticamente ogni chiave su ogni modulo HSM nel cluster. Per velocizzare il processo, imposta il valore di min_srv su un valore inferiore al numero di moduli HSM nel cluster e imposta un valore di timeout basso. Tuttavia, alcune richieste potrebbero non generare una chiave.

Impostazione predefinita: 1

Campo obbligatorio: no

-m_valore

Specifica il numero di utenti che devono approvare le operazioni di crittografia che utilizzano la chiave importata. Digitare un valore da 0 a 8.

Questo parametro stabilisce un requisito di autenticazione del quorum per la chiave privata. Il valore predefinito, 0, disabilita la funzionalità di autenticazione del quorum per la chiave. Quando l'autenticazione del quorum è abilitata, il numero specificato di utenti deve firmare un token per approvare le operazioni crittografiche che utilizzano la chiave privata e le operazioni che condividono o annullano la condivisione della chiave privata.

Per trovare m_value di una chiave, utilizzare getKeyInfo.

Questo parametro è valido soltanto quando il parametro -u nel comando condivide la chiave con un numero sufficiente di utenti per soddisfare il requisito m_value.

Impostazione predefinita: 0

Campo obbligatorio: no

-successivo

Rende la chiave privata non estraibile. La chiave privata generata non può essere esportata dall'HSM. Le chiavi pubbliche sono sempre estraibili.

Impostazione predefinita: sia la chiave pubblica che quella privata nella coppia di chiavi sono estraibili.

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 potresti aver bisogno di decodificare dopo la fine della sessione.

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

Impostazione Predefinita: la chiave è persistente.

Campo obbligatorio: no

timeout

Specifica per quanto tempo (in secondi) il comando attende la sincronizzazione di una chiave con il numero di HSM 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

-u

Condivide la chiave privata della coppia con gli utenti specificati. Questo parametro fornisce agli altri crypto user (CU) HSM l'autorizzazione per utilizzare questa chiave nelle operazioni di crittografia. Le chiavi pubbliche possono essere utilizzate da qualsiasi utente senza condividerle.

Digitare un elenco separato da virgole degli ID utente dell'HSM, come -u 5,6. Non includere l'ID utente HSM dell'utente attuale. Per trovare gli ID utente dell'HSM dei CU su HSM, utilizza ElencaUtenti. Quindi, per condividere o interrompere la condivisione di una chiave esistente, utilizza shareKey in cloudhsm_mgmt_util.

Impostazione predefinita: soltanto l'utente attuale può utilizzare la chiave privata.

Campo obbligatorio: no

-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

Argomenti correlati