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à.
Prtachiavi AWS KMS ECDH
La nostra libreria di crittografia lato client è stata rinominata Database Encryption. AWS SDK Questa guida per sviluppatori fornisce ancora informazioni sul DynamoDB Encryption Client. |
Importante
Il AWS KMS ECDH portachiavi è disponibile solo con la versione 1.5.0 della Material Providers Library.
Un AWS KMS ECDH portachiavi utilizza un accordo di chiave asimmetrico AWS KMS keysper ricavare una chiave di avvolgimento simmetrica condivisa tra due parti. Innanzitutto, il portachiavi utilizza l'algoritmo di accordo di chiave Elliptic Curve Diffie-Hellman (ECDH) per ricavare un segreto condiviso dalla chiave privata nella coppia KMS di chiavi del mittente e dalla chiave pubblica del destinatario. Quindi, il portachiavi utilizza il segreto condiviso per derivare la chiave di wrapping condivisa che protegge le chiavi di crittografia dei dati. La funzione di derivazione delle chiavi SDK utilizzata da AWS Database Encryption (KDF_CTR_HMAC_SHA384
) per derivare la chiave di wrapping condivisa è conforme alle raccomandazioni per la derivazione delle chiavi. NIST
La funzione di derivazione delle chiavi restituisce 64 byte di materiale di codifica. Per garantire che entrambe le parti utilizzino il materiale di codifica corretto, la crittografia del AWS database SDK utilizza i primi 32 byte come chiave di commit e gli ultimi 32 byte come chiave di wrapping condivisa. In fase di decrittografia, se il portachiavi non è in grado di riprodurre la stessa chiave di commit e la stessa chiave di wrapping condivisa memorizzate nel campo di descrizione del materiale del record crittografato, l'operazione ha esito negativo. Ad esempio, se si crittografa un record con un portachiavi configurato con la chiave privata di Alice e la chiave pubblica di Bob, un portachiavi configurato con la chiave privata di Bob e la chiave pubblica di Alice riprodurrà la stessa chiave di impegno e la stessa chiave di wrapping condivisa e sarà in grado di decrittografare il record. Se la chiave pubblica di Bob non proviene da una coppia di KMS chiavi, Bob può creare un ECDHportachiavi Raw per decrittografare il record.
Il AWS KMS ECDH portachiavi crittografa i record con una chiave simmetrica utilizzando -. AES GCM La chiave dati viene quindi crittografata in busta con la chiave di wrapping condivisa derivata utilizzando -. AES GCM Ogni AWS KMS ECDH portachiavi può avere una sola chiave di imballaggio condivisa, ma è possibile includere più AWS KMS ECDH portachiavi, da soli o con altri portachiavi, in un portachiavi multiplo.
Argomenti
AWS KMS ECDHAutorizzazioni richieste per i portachiavi
La crittografia del AWS database SDK non richiede un AWS account e non dipende da alcun AWS servizio. Tuttavia, per utilizzare un AWS KMS ECDH portachiavi, è necessario disporre di un AWS account e delle seguenti autorizzazioni minime presenti AWS KMS keys nel portachiavi. Le autorizzazioni variano in base allo schema di accordo chiave utilizzato.
-
Per crittografare e decrittografare i record utilizzando lo schema di accordo
KmsPrivateKeyToStaticPublicKey
chiave, sono necessari kms: GetPublicKey e kms: DeriveSharedSecret sulla coppia di chiavi asimmetrica del mittente. KMS Se fornisci direttamente la chiave pubblica DER codificata dal mittente quando crei un'istanza del tuo portachiavi, hai solo bisogno dell'DeriveSharedSecretautorizzazione kms: sulla coppia di chiavi asimmetrica del mittente. KMS -
Per decrittografare i record utilizzando lo schema di accordo
KmsPublicKeyDiscovery
chiave, sono necessarie le GetPublicKey autorizzazioni kms: DeriveSharedSecret e kms: sulla coppia di chiavi asimmetrica specificata. KMS
AWS KMS ECDHCreazione di un portachiavi
Per creare un AWS KMS ECDH portachiavi che crittografa e decrittografa i dati, è necessario utilizzare lo schema degli accordi chiave. KmsPrivateKeyToStaticPublicKey
Per inizializzare un AWS KMS ECDH portachiavi con lo schema dell'accordo KmsPrivateKeyToStaticPublicKey
chiave, fornite i seguenti valori:
-
ID del mittente AWS KMS key
Deve identificare una coppia di KMS key ECC pair ellittica () NIST consigliata in modo asimmetrico con un valore di.
KeyUsage
KEY_AGREEMENT
La chiave privata del mittente viene utilizzata per derivare il segreto condiviso. -
(Facoltativo) Chiave pubblica del mittente
L' AWS KMS GetPublicKeyoperazione restituisce la chiave pubblica di una coppia di chiavi asimmetrica nel KMS formato con codifica richiesto. DER
Per ridurre il numero di AWS KMS chiamate effettuate dal portachiavi, puoi fornire direttamente la chiave pubblica del mittente. Se non viene fornito alcun valore per la chiave pubblica del mittente, il portachiavi chiama AWS KMS per recuperare la chiave pubblica del mittente.
-
Chiave pubblica del destinatario
L' AWS KMS GetPublicKeyoperazione restituisce la chiave pubblica di una coppia di chiavi asimmetrica nel KMS formato con codifica richiesto. DER
-
Specificazione della curva
Identifica la specifica della curva ellittica nelle coppie di chiavi specificate. Entrambe le coppie di chiavi del mittente e del destinatario devono avere la stessa specifica di curva.
Valori validi:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Facoltativo) Un elenco di token di concessione
Se controlli l'accesso alla KMS chiave del tuo AWS KMS ECDH portachiavi con le sovvenzioni, devi fornire tutti i token di concessione necessari quando inizializzi il portachiavi.
Creare un portachiavi AWS KMS ECDH Discovery
Durante la decrittografia, è consigliabile specificare le chiavi che la crittografia SDK del AWS database può utilizzare. Per seguire questa procedura ottimale, utilizzate un AWS KMS ECDH portachiavi con lo schema degli accordi KmsPrivateKeyToStaticPublicKey
chiave. Tuttavia, è anche possibile creare un portachiavi AWS KMS ECDH discovery, ovvero un AWS KMS ECDH portachiavi in grado di decrittografare qualsiasi record in cui la chiave pubblica della coppia di chiavi specificata corrisponda alla KMS chiave pubblica del destinatario memorizzata nel campo di descrizione del materiale del record crittografato.
Importante
Quando si decifrano i record utilizzando lo schema degli accordi di KmsPublicKeyDiscovery
chiave, si accettano tutte le chiavi pubbliche, indipendentemente dal proprietario.
Per inizializzare un AWS KMS ECDH portachiavi con lo schema degli accordi KmsPublicKeyDiscovery
chiave, fornisci i seguenti valori:
-
ID del destinatario AWS KMS key
Deve identificare una coppia di KMS key ECC pair ellittica () NIST consigliata in modo asimmetrico con un valore di.
KeyUsage
KEY_AGREEMENT
-
Specificazione della curva
Identifica la specifica della curva ellittica nella key pair KMS del destinatario.
Valori validi:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Facoltativo) Un elenco di token di concessione
Se controlli l'accesso alla KMS chiave del tuo AWS KMS ECDH portachiavi con le sovvenzioni, devi fornire tutti i token di concessione necessari quando inizializzi il portachiavi.