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à.
Portachiavi
Le implementazioni del linguaggio di programmazione supportate utilizzano i portachiavi per eseguire la crittografia delle buste. I keyring generano, crittografano e decrittano le chiavi di dati. I portachiavi determinano l'origine delle chiavi dati univoche che proteggono ogni messaggio e delle chiavi di avvolgimento che crittografano tale chiave di dati. Puoi specificare un keyring durante la crittografia e lo stesso keyring o uno diverso durante la decrittazione. Puoi utilizzare i keyring forniti dall'SDK oppure scrivere keyring personalizzati compatibili.
I keyring possono essere utilizzati singolarmente o combinati in keyring multipli. Anche se la maggior parte dei keyring è in grado di generare, crittografare e decrittare le chiavi di dati, ne puoi creare uno che esegua solo una determinata operazione, ad esempio la generazione delle chiavi di dati, e utilizzarlo in combinazione con altri.
Ti consigliamo di utilizzare un portachiavi che protegga le tue chiavi di wrapping ed esegua operazioni crittografiche entro un limite sicuro, come il AWS KMS portachiavi, che utilizza that never leave () unencrypted. AWS KMS keys AWS Key Management ServiceAWS KMS Puoi anche scrivere un portachiavi che utilizzi chiavi di avvolgimento archiviate nei moduli di sicurezza hardware (HSMs) o protette da altri servizi di chiavi principali. Per informazioni dettagliate, consulta l'argomento Interfaccia di keyring
I portachiavi svolgono il ruolo delle chiavi principali e dei fornitori di chiavi principali utilizzati nelle implementazioni di altri linguaggi di programmazione. Se utilizzi implementazioni linguistiche diverse per crittografare e AWS Encryption SDK decrittografare i dati, assicurati di utilizzare portachiavi e fornitori di chiavi master compatibili. Per informazioni dettagliate, consultare Compatibilità dei keyring.
Questo argomento spiega come utilizzare la funzionalità portachiavi di AWS Encryption SDK e come scegliere un portachiavi.
Come funzionano i keyring
Quando si crittografano i dati, AWS Encryption SDK richiede al portachiavi i materiali di crittografia. Il portachiavi restituisce una chiave dati in testo semplice e una copia della chiave dati crittografata da ciascuna delle chiavi di avvolgimento del portachiavi. AWS Encryption SDK Utilizza la chiave di testo semplice per crittografare i dati, quindi distrugge la chiave di dati in testo semplice. Quindi, AWS Encryption SDK restituisce un messaggio crittografato che include le chiavi di dati crittografate e i dati crittografati.

Quando decifri i dati, puoi usare lo stesso portachiavi che hai usato per crittografare i dati o uno diverso. Per decrittografare i dati, un portachiavi di decrittografia deve includere (o avere accesso a) almeno una chiave di avvolgimento nel portachiavi di crittografia.
AWS Encryption SDK Passa le chiavi di dati crittografate dal messaggio crittografato al portachiavi e chiede al portachiavi di decrittografarle tutte. Il keyring utilizza le chiavi di wrapping per decrittare una delle chiavi di dati crittografate e restituisce una chiave di dati di testo normale. AWS Encryption SDK utilizza la chiave di dati di testo normale per decrittare i dati. Se nessuna delle chiavi di wrapping nel keyring è in grado di decrittare una qualsiasi delle chiavi di dati crittografate, l'operazione di decrittazione non riesce.

Puoi utilizzare un singolo keyring o combinarne più di uno dello stesso tipo o di tipi diversi in un keyring multiplo. Quando esegui la crittografia dei dati, il keyring multiplo restituisce una copia della chiave di dati crittografata da tutte le chiavi di wrapping di tutti i keyring che costituiscono il keyring multiplo. È possibile decrittografare i dati utilizzando un portachiavi con una qualsiasi delle chiavi di avvolgimento del portachiavi multiplo.
Compatibilità dei keyring
Sebbene le diverse implementazioni linguistiche di presentino alcune differenze architettoniche, AWS Encryption SDK sono completamente compatibili, soggette a vincoli linguistici. È possibile crittografare i dati utilizzando un'implementazione linguistica e decrittografarli con qualsiasi altra implementazione linguistica. Tuttavia, è necessario utilizzare la stessa chiave di wrapping o quella corrispondente per crittografare e decrittografare le chiavi dati. Per informazioni sui vincoli linguistici, consultate l'argomento relativo a ciascuna implementazione linguistica, ad esempio nell'argomento. Compatibilità del SDK di crittografia AWS per JavaScript SDK di crittografia AWS per JavaScript
I portachiavi sono supportati nei seguenti linguaggi di programmazione:
-
SDK di crittografia AWS per C
-
SDK di crittografia AWS per JavaScript
-
AWS Encryption SDK per.NET
-
versione 3. x del SDK di crittografia AWS per Java
-
Versione 4. x di SDK di crittografia AWS per Python, se utilizzato con la dipendenza opzionale Cryptographic Material Providers Library
(MPL). -
AWS Encryption SDK per Rust
-
AWS Encryption SDK per Go
Requisiti diversi per i portachiavi di crittografia
Nelle implementazioni AWS Encryption SDK linguistiche diverse dalla SDK di crittografia AWS per C, tutte le chiavi di inserimento in un portachiavi di crittografia (o portachiavi multiplo) o in un provider di chiavi master devono essere in grado di crittografare la chiave dati. Se una chiave di wrapping non riesce a crittografare, il metodo di crittografia fallisce. Di conseguenza, il chiamante deve disporre delle autorizzazioni necessarie per tutte le chiavi del portachiavi. Se si utilizza un portachiavi Discovery per crittografare i dati, da solo o in un portachiavi multiplo, l'operazione di crittografia non riesce.
L'eccezione è la SDK di crittografia AWS per C, in cui l'operazione di crittografia ignora un portachiavi di rilevamento standard, ma ha esito negativo se si specifica un portachiavi di rilevamento multiarea, da solo o in un portachiavi multiregionale.
Keyring e fornitori di chiavi master compatibili
La tabella seguente mostra quali chiavi master e provider di chiavi master sono compatibili con i portachiavi forniti. AWS Encryption SDK Qualsiasi incompatibilità minore dovuta a vincoli linguistici è spiegata nell'argomento relativo all'implementazione della lingua.
Portachiavi: | Fornitore di chiavi principali: |
---|---|
AWS KMS portachiavi |
NotaGli SDK di crittografia AWS per Python e SDK di crittografia AWS per Java non includono una chiave master o un provider di chiavi master equivalente al portachiavi Discovery AWS KMS regionale. |
AWS KMS Portachiavi gerarchico | Supportato dai seguenti linguaggi e versioni di programmazione:
|
AWS KMS Portachiavi ECDH | Supportato dai seguenti linguaggi e versioni di programmazione:
|
Keyring non elaborato AES | Se utilizzati con chiavi di crittografia simmetriche: JceMasterKeyRawMasterKey |
Keyring non elaborato RSA | Se utilizzati con chiavi di crittografia asimmetriche: JceMasterKeyRawMasterKey NotaIl portachiavi Raw RSA non supporta chiavi KMS asimmetriche. Se desideri utilizzare chiavi RSA KMS asimmetriche, versione 4. x of the AWS Encryption SDK for .NET supporta i AWS KMS portachiavi che utilizzano la crittografia simmetrica () o l'RSA asimmetrica. |
Portachiavi ECDH grezzo | Supportato dai seguenti linguaggi e versioni di programmazione:
|