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à.
ECDHPortachiavi Raw
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 ECDH portachiavi Raw è disponibile solo con la versione 1.5.0 della Material Providers Library.
Il ECDH portachiavi Raw utilizza le coppie di chiavi pubblica-privata a curva ellittica fornite dall'utente per ricavare una chiave di wrapping condivisa tra due parti. Innanzitutto, il portachiavi ricava un segreto condiviso utilizzando la chiave privata del mittente, la chiave pubblica del destinatario e l'algoritmo di accordo chiave Elliptic Curve Diffie-Hellman (). ECDH 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 proviene da una AWS KMS key coppia, allora Bob può creare un portachiavi per decrittografare il record.AWS KMS ECDH
Il ECDH portachiavi Raw crittografa i record con una chiave simmetrica usando -. AES GCM La chiave dati viene quindi crittografata in busta con la chiave di wrapping condivisa derivata utilizzando -. AES GCM Ogni ECDH portachiavi Raw può avere solo una chiave di imballaggio condivisa, ma puoi includere più portachiavi Raw, da soli o con altri ECDH portachiavi, in un portachiavi multiplo.
L'utente è responsabile della generazione, dell'archiviazione e della protezione delle chiavi private, preferibilmente in un modulo di sicurezza hardware () HSM o in un sistema di gestione delle chiavi. Le coppie di chiavi del mittente e del destinatario devono trovarsi sulla stessa curva ellittica. La crittografia del AWS database SDK supporta le seguenti specifiche della curva ellittica:
ECC_NIST_P256
ECC_NIST_P384
ECC_NIST_P512
Creazione di un portachiavi Raw ECDH
Il ECDH portachiavi Raw supporta tre schemi di accordo chiave:RawPrivateKeyToStaticPublicKey
, EphemeralPrivateKeyToStaticPublicKey
e. PublicKeyDiscovery
Lo schema di accordo chiave selezionato determina le operazioni crittografiche che è possibile eseguire e il modo in cui vengono assemblati i materiali di codifica.
RawPrivateKeyToStaticPublicKey
Utilizza lo schema degli accordi RawPrivateKeyToStaticPublicKey
chiave per configurare staticamente la chiave privata del mittente e la chiave pubblica del destinatario nel portachiavi. Questo schema di accordo chiave può crittografare e decrittografare i record.
Per inizializzare un ECDH portachiavi Raw con lo schema degli accordi RawPrivateKeyToStaticPublicKey
chiave, fornisci i seguenti valori:
-
Chiave privata del mittente
-
Chiave pubblica del destinatario
È possibile specificare la chiave pubblica di una coppia di chiavi asimmetrica con accordo di chiave o la KMS chiave pubblica da una coppia di chiavi generata all'esterno di. AWS
-
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
EphemeralPrivateKeyToStaticPublicKey
I portachiavi configurati con lo schema EphemeralPrivateKeyToStaticPublicKey
key agreement creano una nuova coppia di chiavi localmente e derivano una chiave di wrapping condivisa unica per ogni chiamata crittografata.
Questo schema di accordo chiave può solo crittografare i record. Per decrittografare i record crittografati con lo schema del contratto di EphemeralPrivateKeyToStaticPublicKey
chiave, è necessario utilizzare uno schema di accordo di chiave di rilevamento configurato con la chiave pubblica dello stesso destinatario. Per decrittografare, puoi utilizzare un ECDH portachiavi Raw con l'algoritmo di accordo PublicKeyDiscoverychiave oppure, se la chiave pubblica del destinatario proviene da una KMS coppia di chiavi asimmetrica, puoi utilizzare AWS KMS ECDH un portachiavi con lo schema di accordo chiave. KmsPublicKeyDiscovery
Per inizializzare un portachiavi ECDH Raw con lo schema di accordo chiave, fornisci i seguenti valoriEphemeralPrivateKeyToStaticPublicKey
:
-
Chiave pubblica del destinatario
È possibile specificare la chiave pubblica di una coppia di chiavi asimmetrica con accordo di chiave o la KMS chiave pubblica da una coppia di chiavi generata all'esterno di. AWS
-
Specificazione della curva
Identifica la specifica della curva ellittica nella chiave pubblica specificata.
In encrypt, il portachiavi crea una nuova coppia di chiavi sulla curva specificata e utilizza la nuova chiave privata e la chiave pubblica specificata per derivare una chiave di wrapping condivisa.
Valori validi:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
PublicKeyDiscovery
Durante la decrittografia, è consigliabile specificare le chiavi di wrapping che la crittografia del AWS database può utilizzare. SDK Per seguire questa procedura ottimale, utilizzate un ECDH portachiavi che specifichi sia la chiave privata del mittente che la chiave pubblica del destinatario. Tuttavia, puoi anche creare un portachiavi Raw ECDH discovery, ovvero un portachiavi Raw ECDH in grado di decrittografare qualsiasi record in cui la chiave pubblica della chiave specificata corrisponda alla chiave pubblica del destinatario memorizzata nel campo di descrizione del materiale del record crittografato. Questo schema di accordo chiave può solo decrittografare i record.
Importante
Quando si decrittografano i record utilizzando lo schema del contratto di PublicKeyDiscovery
chiave, si accettano tutte le chiavi pubbliche, indipendentemente dal proprietario.
Per inizializzare un ECDH portachiavi Raw con lo schema degli accordi PublicKeyDiscovery
chiave, fornisci i seguenti valori:
-
Chiave privata statica del destinatario
-
Specificazione della curva
Identifica la specifica della curva ellittica nella chiave privata specificata. 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