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à.
Dopo aver scaricato la chiave pubblica e il token di importazione, esegue la crittografia del materiale della chiave utilizzando la chiave pubblica scaricata e l'algoritmo di wrapping specificato. Se devi sostituire la chiave pubblica o il token di importazione oppure modificare l'algoritmo di wrapping, devi scaricare una nuova chiave pubblica e un nuovo token di importazione. Per informazioni sulle chiavi pubbliche e sugli algoritmi di wrapping AWS KMS supportati, vedere Selezione di una specifica della chiave pubblica di wrapping e. Selezione di un algoritmo di wrapping
Il materiale delle chiavi deve essere in formato binario. Per informazioni dettagliate, consulta Requisiti per il materiale della chiave importato.
Nota
Per le coppie di chiavi asimmetriche, crittografa e importa solo la chiave privata. AWS KMS ricava la chiave pubblica dalla chiave privata.
La seguente combinazione NON è supportata: materiale della chiave ECC_NIST_P521, specifica della chiave di wrapping pubblica RSA_2048 e algoritmo di wrapping RSAES_OAEP_SHA_*.
Non puoi eseguire il wrapping del materiale della chiave ECC_NIST_P521 direttamente con una chiave di wrapping pubblica RSA_2048. Usa una chiave di wrapping più grande o un algoritmo di wrapping RSA_AES_KEY_WRAP_SHA_*.
Gli algoritmi di wrapping RSA_AES_KEY_WRAP_SHA_256 e RSA_AES_KEY_WRAP_SHA_1 non sono supportati nelle regioni della Cina.
Di solito, è possibile crittografare il materiale delle chiavi quando viene esportato dal modulo di sicurezza hardware (HSM) o dal sistema di gestione delle chiavi. Per informazioni su come esportare il materiale delle chiavi in formato binario, consulta la documentazione per il tuo HSM o per il sistema di gestione delle chiavi. È anche possibile consultare la sezione seguente che fornisce un proof of concept sull'utilizzo di OpenSSL.
Quando crittografi il materiale della chiave, usa lo stesso algoritmo di wrapping specificato quando hai scaricato la chiave pubblica e il token di importazione. Per trovare l'algoritmo di wrapping specificato, consulta l'evento di registro per la richiesta associata. CloudTrail GetParametersForImport
Genera il materiale della chiave per i test
I comandi OpenSSL indicati di seguito generano il materiale della chiave di ogni tipo supportato per i test. Questi esempi vengono forniti solo a scopo di test e proof-of-concept dimostrazioni. Per i sistemi di produzione, usa un metodo più sicuro per generare e memorizzare il materiale della chiave, ad esempio un modulo di sicurezza hardware o un sistema di gestione delle chiavi.
Per convertire le chiavi private delle coppie di chiavi asimmetriche in formato con codifica DER, reindirizza il comando di generazione del materiale della chiave sul comando openssl pkcs8
seguente. Il parametro topk8
indica a OpenSSL di accettare una chiave privata come input e restituire una chiave in formato PKCS #8. (Il comportamento predefinito è l'opposto.)
openssl pkcs8 -topk8 -outform der -nocrypt
I comandi indicati di seguito generano il materiale della chiave per ogni tipo di chiave supportato.
-
Chiavi di crittografia simmetrica (32 byte)
Questo comando genera una chiave simmetrica a 256 bit (stringa casuale di 32 byte) e la salva nel file
PlaintextKeyMaterial.bin
. Non è necessario codificare questo materiale della chiave.openssl rand -out PlaintextKeyMaterial.bin 32
Solo nelle regioni cinesi, devi generare una chiave simmetrica a 128 bit (stringa casuale di 16 byte).
openssl rand -out PlaintextKeyMaterial.bin 16
-
Chiavi HMAC
Questo comando genera una stringa di byte casuale della dimensione specificata. Non è necessario codificare questo materiale della chiave.
La lunghezza della chiave HMAC deve corrispondere alla lunghezza definita dalle specifiche della chiave KMS. Ad esempio, se la chiave KMS è HMAC_384, devi importare una chiave a 384 bit (48 byte).
openssl rand -out HMAC_224_PlaintextKey.bin 28 openssl rand -out HMAC_256_PlaintextKey.bin 32 openssl rand -out HMAC_384_PlaintextKey.bin 48 openssl rand -out HMAC_512_PlaintextKey.bin 64
-
Chiavi private RSA
openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_2048_PrivateKey.der openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:3072 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_3072_PrivateKey.der openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:4096 | openssl pkcs8 -topk8 -outform der -nocrypt > RSA_4096_PrivateKey.der
-
Chiavi private EEC
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P256_PrivateKey.der openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-384 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P384_PrivateKey.der openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-521 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_NIST_P521_PrivateKey.der openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:secp256k1 | openssl pkcs8 -topk8 -outform der -nocrypt > ECC_SECG_P256K1_PrivateKey.der
-
SM2 chiavi private (solo regioni della Cina)
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:sm2 | openssl pkcs8 -topk8 -outform der -nocrypt > SM2_PrivateKey.der
Esempio di crittografia del materiale della chiave con OpenSSL
Gli esempi seguenti descrivono l'utilizzo di OpenSSL
Importante
Questo esempio è solo una dimostrazione di proof of concept. Per i sistemi di produzione, utilizzare un metodo più sicuro (ad esempio un sistema di gestione delle chiavi commerciale o HSM) per generare e memorizzare il materiale delle chiavi.
La seguente combinazione NON è supportata: materiale della chiave ECC_NIST_P521, specifica della chiave di wrapping pubblica RSA_2048 e algoritmo di wrapping RSAES_OAEP_SHA_*.
Non puoi eseguire il wrapping del materiale della chiave ECC_NIST_P521 direttamente con una chiave di wrapping pubblica RSA_2048. Usa una chiave di wrapping più grande o un algoritmo di wrapping RSA_AES_KEY_WRAP_SHA_*.
AWS KMS supporta RSAES_OAEP_SHA_1 per chiavi di crittografia simmetriche (SYMMETRIC_DEFAULT), chiavi private a curva ellittica (ECC), chiavi private e chiavi HMAC. SM2
RSAES_OAEP_SHA_1 non è supportato per le chiavi private RSA. Inoltre, non puoi utilizzare una chiave di wrapping pubblica RSA_2048 con un algoritmo di wrapping RSAES_OAEP_SHA_* per eseguire il wrapping di una chiave privata ECC_NIST_P521 (secp521r1). Devi utilizzare una chiave di wrapping più grande o un algoritmo di wrapping RSA_AES_KEY_WRAP.
Nell'esempio seguente il materiale della chiave viene criptato con la chiave pubblica scaricata e l'algoritmo di wrapping RSAES_OAEP_SHA_1, quindi viene salvato nel file EncryptedKeyMaterial.bin
.
In questo esempio:
-
è il file che contiene la chiave pubblica di wrapping scaricata.WrappingPublicKey.bin
-
è il file che contiene il materiale della chiave da crittografare, ad esempioPlaintextKeyMaterial.bin
PlaintextKeyMaterial.bin
,HMAC_384_PlaintextKey.bin
oECC_NIST_P521_PrivateKey.der
.
$
openssl pkeyutl \
-encrypt \
-in PlaintextKeyMaterial.bin
\
-out EncryptedKeyMaterial.bin \
-inkey WrappingPublicKey.bin
\
-keyform DER \
-pubin \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha1
Passa a Fase 4: importare il materiale delle chiavi.