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à.
Concetti nel AWS Encryption SDK
Questa sezione introduce i concetti utilizzati in AWS Encryption SDK, e fornisce un glossario e riferimenti. È stato progettato per aiutarti a capire come AWS Encryption SDK funziona e i termini che utilizziamo per descriverlo.
Serve aiuto?
-
Scopri come AWS Encryption SDK utilizza la crittografia a busta per proteggere i tuoi dati.
-
Scopri gli elementi della crittografia in busta: le chiavi dati che proteggono i tuoi dati e le chiavi di avvolgimento che proteggono le tue chiavi dati.
-
Scopri i portachiavi e i fornitori di chiavi principali che determinano le chiavi di avvolgimento da utilizzare.
-
Scopri il contesto di crittografia che aggiunge integrità al tuo processo di crittografia. È facoltativo, ma è una best practice che consigliamo.
-
Scopri il messaggio crittografato restituito dai metodi di crittografia.
-
Quindi sei pronto per utilizzarlo AWS Encryption SDK nel tuo linguaggio di programmazione preferito.
Argomenti
Crittografia envelope
La sicurezza dei dati crittografati dipende in parte dalla protezione della chiave di dati che può decrittarli. Una best practice accettata per la protezione della chiave di dati è crittografarla. A tale scopo, è necessaria un'altra chiave di crittografia, nota come chiave di crittografia a chiave o chiave di wrapping. La pratica di utilizzare una chiave di wrapping per crittografare le chiavi di dati è nota come crittografia a busta.
- Protezione delle chiavi dei dati
-
AWS Encryption SDK Crittografa ogni messaggio con una chiave dati unica. Quindi crittografa la chiave dati sotto la chiave di avvolgimento specificata. Memorizza la chiave dati crittografata con i dati crittografati nel messaggio crittografato che restituisce.
Per specificare la chiave di avvolgimento, si utilizza un portachiavi o un fornitore di chiavi principali.
- Crittografia degli stessi dati con più chiavi di avvolgimento
-
È possibile crittografare la chiave dati con più chiavi di wrapping. Potresti voler fornire chiavi di avvolgimento diverse per utenti diversi, oppure chiavi di avvolgimento di tipi diversi o in posizioni diverse. Ciascuna delle chiavi di wrapping crittografa la stessa chiave di dati. AWS Encryption SDK Memorizza tutte le chiavi dati crittografate con i dati crittografati nel messaggio crittografato.
Per decrittografare i dati, è necessario fornire una chiave di wrapping in grado di decrittografare una delle chiavi dati crittografate.
- Abbinare i punti di forza di più algoritmi
-
Per crittografare i dati, per impostazione predefinita, AWS Encryption SDK utilizza una sofisticata suite di algoritmi conAES: crittografia GCM simmetrica, una funzione di derivazione delle chiavi () e firma. HKDF Per crittografare la chiave dati, è possibile specificare un algoritmo di crittografia simmetrico o asimmetrico appropriato alla chiave di wrapping.
In generale, gli algoritmi di crittografia di chiavi simmetriche sono più rapidi e producono testi cifrati di dimensioni minori rispetto alla crittografia della chiave pubblica o asimmetrica. Tuttavia, gli algoritmi di chiave pubblica forniscono una separazione intrinseca dei ruoli e facilitano la gestione delle chiavi. Per combinare i punti di forza di ciascuno, puoi crittografare i dati con la crittografia a chiave simmetrica e quindi crittografare la chiave dati con la crittografia a chiave pubblica.
Chiave di dati
Una chiave di dati è una chiave di crittografia che l' AWS Encryption SDK utilizza per crittografare i dati. Ogni chiave di dati corrisponde a un array di byte conforme ai requisiti per le chiavi di crittografia. A meno che non utilizzi la memorizzazione nella cache delle chiavi dati, AWS Encryption SDK utilizza una chiave dati unica per crittografare ogni messaggio.
Non è necessario specificare, generare, implementare, estendere, proteggere o utilizzare chiavi dati. L' AWS Encryption SDK si occupa di tutte queste attività quando chiami le operazioni di crittografia e decrittazione.
Per proteggere le chiavi dati, le AWS Encryption SDK crittografa utilizzando una o più chiavi di crittografia a chiave note come chiavi di wrapping o chiavi master. Dopo aver AWS Encryption SDK utilizzato le chiavi dati in testo non crittografato per crittografare i dati, le rimuove dalla memoria il prima possibile. Quindi, archivia le chiavi di dati con i dati crittografati nel messaggio crittografato restituito dalle operazioni di crittografia. Per informazioni dettagliate, consultare Come funziona AWS Encryption SDK.
Suggerimento
Nel AWS Encryption SDK, distinguiamo le chiavi dati dalle chiavi di crittografia dei dati. Molteplici suite di algoritmi supportate, tra cui la suite predefinita, utilizzano una funzione di derivazione della chiave
Ogni chiave di dati crittografata include metadati, incluso l'identificatore della chiave di wrapping che l'ha crittografata. Questi metadati facilitano l'identificazione di chiavi di wrapping valide AWS Encryption SDK durante la decrittografia.
Chiave di avvolgimento
Una chiave di wrapping è una chiave di crittografia a chiave AWS Encryption SDK utilizzata per crittografare la chiave dati che crittografa i dati. Ogni chiave di dati in testo semplice può essere crittografata con una o più chiavi di wrapping. Sei tu a determinare quali chiavi di wrapping vengono utilizzate per proteggere i tuoi dati quando configuri un portachiavi o un fornitore di chiavi master.
Nota
La chiave di avvolgimento si riferisce alle chiavi di un portachiavi o di un fornitore di chiavi principali. La chiave master è in genere associata alla MasterKey
classe di cui si crea un'istanza quando si utilizza un provider di chiavi master.
AWS Encryption SDK Supporta diverse chiavi di wrapping di uso comune, come AWS Key Management Service (AWS KMS) chiavi simmetriche (incluse chiavi multiregionali), KMS chiavi raw AES - AWS KMS keysGCM(Advanced Encryption Standard/Galois Counter Mode) e chiavi raw. RSA È inoltre possibile estendere o implementare le proprie chiavi di wrapping.
Quando si utilizza la crittografia a busta, è necessario proteggere le chiavi di wrapping da accessi non autorizzati. È possibile eseguire questa operazione in uno dei seguenti modi:
-
Utilizza un servizio Web progettato per questo scopo, ad esempio AWS Key Management Service (AWS KMS)
. -
Utilizzate un modulo di sicurezza hardware (HSM)
come quelli offerti da AWS CloudHSM . -
Utilizzate altri strumenti e servizi di gestione delle chiavi.
Se non disponi di un sistema di gestione delle chiavi, ti consigliamo AWS KMS. AWS Encryption SDK Si integra con AWS KMS per aiutarti a proteggere e utilizzare le tue chiavi di imballaggio. Tuttavia, AWS Encryption SDK non richiede alcun AWS AWS servizio.
Portachiavi e fornitori di chiavi principali
Per specificare le chiavi di wrapping utilizzate per la crittografia e la decrittografia, si utilizza un portachiavi o un fornitore di chiavi master. È possibile utilizzare i portachiavi e i provider di chiavi principali che AWS Encryption SDK fornisce o progettare implementazioni personalizzate. AWS Encryption SDK Fornisce portachiavi e fornitori di chiavi principali compatibili tra loro soggetti a vincoli linguistici. Per informazioni dettagliate, consultare Compatibilità dei keyring.
Un keyring genera, crittografa e decritta le chiavi di dati. Quando definisci un portachiavi, puoi specificare le chiavi di avvolgimento che crittografano le tue chiavi dati. La maggior parte dei portachiavi specifica almeno una chiave di avvolgimento o un servizio che fornisce e protegge le chiavi di avvolgimento. È inoltre possibile definire un portachiavi senza chiavi avvolgenti o un portachiavi più complesso con opzioni di configurazione aggiuntive. Per informazioni sulla scelta e sull'utilizzo dei portachiavi che definisce, consulta AWS Encryption SDK . Utilizzo dei keyring
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).
Un fornitore di chiavi principali è un'alternativa a un portachiavi. Il provider di chiavi master restituisce le chiavi di wrapping (o chiavi master) specificate. Ogni chiave master è associata a un provider di chiavi master, ma un provider di chiavi master in genere fornisce più chiavi master. I provider di chiavi principali sono supportati in Java, Python e Encryption. AWS CLI
È necessario specificare un portachiavi (o un provider di chiavi master) per la crittografia. È possibile specificare lo stesso portachiavi (o fornitore di chiavi principali) o uno diverso per la decrittografia. Durante la crittografia, AWS Encryption SDK utilizza tutte le chiavi di wrapping specificate per crittografare la chiave dati. Durante la decrittografia, AWS Encryption SDK utilizza solo le chiavi di wrapping specificate per decrittografare una chiave dati crittografata. Specificare le chiavi di wrapping per la decrittografia è facoltativo, ma è una procedura consigliata. AWS Encryption SDK
Per informazioni dettagliate sulla specificazione delle chiavi di wrapping, consulta. Selezione dei tasti di avvolgimento
Contesto di crittografia
Per migliorare la sicurezza delle operazioni di crittografia, includi un contesto di crittografia in tutte le richieste di crittografia dei dati. L'utilizzo di un contesto di crittografia è facoltativo, ma viene consigliato come best practice.
Un contesto di crittografia è un set di coppie nome-valore che contiene dati autenticati aggiuntivi arbitrari e non segreti. Il contesto di crittografia può contenere qualsiasi tipo di dati scelto, ma in genere consiste in dati utili in registrazioni e monitoraggi, ad esempio i dati relativi al tipo di file, allo scopo o al proprietario. Durante la crittografia dei dati, il contesto di crittografia viene vincolato a livello crittografico ai dati crittografati, per cui dovrai utilizzare lo stesso contesto per decrittarli. L' AWS Encryption SDK include il contesto di crittografia in testo normale nell'intestazione del messaggio crittografato restituito.
Il contesto di crittografia AWS Encryption SDK utilizzato è costituito dal contesto di crittografia specificato e da una coppia di chiavi pubbliche aggiunta dal gestore dei materiali crittografici (CMM). In particolare, ogni volta che si utilizza un algoritmo di crittografia con la firma, CMM aggiunge una coppia nome-valore al contesto di crittografia che consiste in un nome riservato e un valore che rappresenta la chiave di verifica pubblica. aws-crypto-public-key
Il aws-crypto-public-key
nome nel contesto di crittografia è riservato da AWS Encryption SDK e non può essere utilizzato come nome in nessun'altra coppia nel contesto di crittografia. Per i dettagli, vedere AADnel riferimento al formato dei messaggi.
Il contesto di crittografia di esempio seguente è costituito da due coppie di contesti di crittografia specificate nella richiesta e dalla coppia di chiavi pubbliche che CMM aggiunge.
"Purpose"="Test", "Department"="IT", aws-crypto-public-key=
<public key>
Per decrittografare i dati, è necessario passare il messaggio crittografato. Poiché è AWS Encryption SDK possibile estrarre il contesto di crittografia dall'intestazione del messaggio crittografato, non è necessario fornire il contesto di crittografia separatamente. Tuttavia, grazie al contesto di crittografia puoi verificare di stare decrittando il messaggio corretto.
-
Nella AWS Encryption SDK Command Line Interface (CLI), se fornite un contesto di crittografia in un comando decrypt, CLI verifica che i valori siano presenti nel contesto di crittografia del messaggio crittografato prima che questo restituisca i dati in chiaro.
-
In altre implementazioni del linguaggio di programmazione, la risposta di decrittografia include il contesto di crittografia e i dati in chiaro. La funzione di decrittazione nell'applicazione deve sempre verificare che il contesto di crittografia nella risposta di decrittazione includa il contesto della relativa richiesta (o in un sottoinsieme) prima di restituire i dati di testo normale.
Nota
Con la versione 4. x del AWS Encryption SDK modulo. NETe versione 3. x di SDK di crittografia AWS per Java, è possibile richiedere un contesto di crittografia in tutte le richieste di crittografia con il contesto CMM di crittografia richiesto.
Quando scegli un contesto di crittografia, ricordati che non è segreto. Il contesto di crittografia viene visualizzato in testo semplice nell'intestazione del messaggio crittografato restituito. AWS Encryption SDK Se si utilizza AWS Key Management Service, il contesto di crittografia potrebbe anche apparire in testo non crittografato nei record e nei registri di controllo, ad esempio. AWS CloudTrail
Messaggio crittografato
Quando si crittografano i dati con AWS Encryption SDK, viene restituito un messaggio crittografato.
Un messaggio crittografato è una struttura di dati formattata portatile che include i dati crittografati insieme a copie crittografate delle chiavi dati, all'ID dell'algoritmo e, facoltativamente, un contesto di crittografia e una firma digitale. Le operazioni di crittografia in AWS Encryption SDK restituiscono un messaggio crittografato, mentre le operazioni di decrittazione richiedono un messaggio crittografato come input.
Abbinando i dati crittografati e le relative chiavi di dati crittografati è possibile semplificare l'operazione di decrittografia e ti consente di evitare di archiviare e gestire chiavi di dati crittografate in modo indipendente rispetto ai dati che crittografano.
Per informazioni tecniche sui messaggi crittografati, vedi Formato dei messaggi crittografati.
Suite di algoritmi
AWS Encryption SDK Utilizza una suite di algoritmi per crittografare e firmare i dati contenuti nel messaggio crittografato restituito dalle operazioni di crittografia e decrittografia. AWS Encryption SDK supporta diverse suite di algoritmi. Tutte le suite supportate utilizzano Advanced Encryption Standard (AES) come algoritmo principale e lo combinano con altri algoritmi e valori.
AWS Encryption SDK Stabilisce una suite di algoritmi consigliata come predefinita per tutte le operazioni di crittografia. L'impostazione predefinita potrebbe cambiare con il migliorare di standard e best practice. È possibile specificare una suite di algoritmi alternativa nelle richieste di crittografia dei dati o durante la creazione di un gestore di materiali crittografici (CMM), ma a meno che non sia richiesta un'alternativa per la propria situazione, è preferibile utilizzare quella predefinita. L'impostazione predefinita attuale èAES: GCM con una funzione di derivazione della extract-and-expand chiave HMAC
Se la tua applicazione richiede prestazioni elevate e gli utenti che crittografano i dati e quelli che decifrano i dati sono altrettanto affidabili, potresti prendere in considerazione l'idea di specificare una suite di algoritmi senza firma digitale. Tuttavia, consigliamo vivamente una suite di algoritmi che includa l'impegno delle chiavi e una funzione di derivazione delle chiavi. Le suite di algoritmi senza queste funzionalità sono supportate solo per la compatibilità con le versioni precedenti.
Responsabile di materiali crittografici
Il gestore dei materiali crittografici (CMM) assembla i materiali crittografici utilizzati per crittografare e decrittografare i dati. I materiali di crittografia includono chiavi di dati crittografati e testo non crittografato e una chiave facoltativa di firma dei messaggi. Non interagisci mai direttamente con. CMM I metodi di crittografia e decrittazione lo gestiscono per te.
Puoi utilizzare l'impostazione predefinita CMM o la memorizzazione nella cache CMM AWS Encryption SDK fornita o scriverne una personalizzataCMM. E puoi specificare unCMM, ma non è obbligatorio. Quando specificate un portachiavi o un fornitore di chiavi principali, ne AWS Encryption SDK crea automaticamente uno predefinitoCMM. L'impostazione predefinita CMM ottiene i materiali di crittografia o decrittografia dal portachiavi o dal provider di chiavi master specificato. Ciò potrebbe comportare una chiamata a un servizio crittografico, come AWS Key Management Service (AWS KMS).
Poiché CMM funge da collegamento tra il AWS Encryption SDK e un portachiavi (o fornitore di chiavi principali), è il punto di riferimento ideale per la personalizzazione e l'estensione, ad esempio il supporto per l'applicazione delle policy e la memorizzazione nella cache. AWS Encryption SDK Fornisce una memorizzazione nella cache per supportare la memorizzazione nella cache CMM delle chiavi di dati.
Crittografia simmetrica e asimmetrica
La crittografia simmetrica utilizza la stessa chiave per crittografare e decrittografare i dati.
La crittografia asimmetrica utilizza una coppia di chiavi di dati matematicamente correlate. Una chiave della coppia crittografa i dati; solo l'altra chiave della coppia può decrittografare i dati.
AWS Encryption SDK Utilizza la crittografia a busta. Crittografa i dati con una chiave dati simmetrica. Crittografa la chiave dati simmetrica con una o più chiavi di avvolgimento simmetriche o asimmetriche. Restituisce un messaggio crittografato che include i dati crittografati e almeno una copia crittografata della chiave dati.
- Crittografia dei dati (crittografia simmetrica)
-
Per crittografare i dati, AWS Encryption SDK utilizza una chiave dati simmetrica e una suite di algoritmi che include un algoritmo di crittografia simmetrica. Per decrittografare i dati, AWS Encryption SDK utilizza la stessa chiave dati e la stessa suite di algoritmi.
- Crittografia della chiave dati (crittografia simmetrica o asimmetrica)
-
Il portachiavi o il fornitore di chiavi master fornito per un'operazione di crittografia e decrittografia determina il modo in cui la chiave dati simmetrica viene crittografata e decrittografata. Puoi scegliere un portachiavi o un provider di chiavi master che utilizza la crittografia simmetrica, ad esempio un portachiavi, o uno che utilizza la crittografia asimmetrica, come un AWS KMS portachiavi non elaborato o. RSA
JceMasterKey
Impegno chiave
AWS Encryption SDK Supporta key commitment (a volte nota come robustezza), una proprietà di sicurezza che garantisce che ogni testo cifrato possa essere decrittografato solo in un singolo testo in chiaro. A tale scopo, key commitment garantisce che solo la chiave dati che ha crittografato il messaggio verrà utilizzata per decrittografarlo. La crittografia e la decrittografia con impegno chiave è una best practice.AWS Encryption SDK
La maggior parte dei cifrari simmetrici moderni (inclusiAES) crittografano un testo in chiaro con un'unica chiave segreta, ad esempio la chiave dati univoca utilizzata per crittografare ogni messaggio di testo in chiaro. AWS Encryption SDK La decrittografia di questi dati con la stessa chiave di dati restituisce un testo in chiaro identico all'originale. La decrittografia con una chiave diversa di solito fallisce. Tuttavia, è possibile decrittografare un testo cifrato con due chiavi diverse. In rari casi, è possibile trovare una chiave in grado di decrittografare alcuni byte di testo cifrato in un testo semplice diverso, ma comunque comprensibile.
AWS Encryption SDK Crittografa sempre ogni messaggio di testo in chiaro con un'unica chiave di dati. Potrebbe crittografare quella chiave dati con più chiavi di wrapping (o chiavi master), ma le chiavi di wrapping crittografano sempre la stessa chiave dati. Tuttavia, un messaggio crittografato sofisticato creato manualmente potrebbe effettivamente contenere diverse chiavi di dati, ognuna crittografata da una chiave di wrapping diversa. Ad esempio, se un utente decrittografa il messaggio crittografato, restituisce 0x0 (falso) mentre un altro utente che decrittografa lo stesso messaggio crittografato ottiene 0x1 (vero).
Per evitare questo scenario, supporta l'impegno chiave durante la crittografia e la decrittografia AWS Encryption SDK . Quando AWS Encryption SDK crittografa un messaggio con impegno chiave, associa crittograficamente la chiave di dati univoca che ha prodotto il testo cifrato alla stringa di impegno chiave, un identificatore di chiave di dati non segreto. Quindi memorizza la stringa di impegno chiave nei metadati del messaggio crittografato. Quando decripta un messaggio con impegno chiave, AWS Encryption SDK verifica che la chiave dati sia l'unica chiave per quel messaggio crittografato. Se la verifica della chiave dati non riesce, l'operazione di decrittografia ha esito negativo.
Il supporto per Key Commitment è stato introdotto nella versione 1.7. x, che può decrittografare i messaggi con un impegno chiave, ma non lo farà con un impegno chiave. È possibile utilizzare questa versione per implementare completamente la capacità di decrittografare il testo cifrato con impegno chiave. Versione 2.0. x include il supporto completo per Key Commitment. Per impostazione predefinita, crittografa e decrittografa solo con l'impegno della chiave. Questa è una configurazione ideale per le applicazioni che non necessitano di decrittografare il testo cifrato crittografato dalle versioni precedenti di. AWS Encryption SDK
Sebbene la crittografia e la decrittografia con impegno chiave siano una best practice, lasciamo che sia tu a decidere quando utilizzarla e a regolare il ritmo con cui adottarla. A partire dalla versione 1.7. x, AWS Encryption SDK supporta una politica di impegno che imposta la suite di algoritmi predefinita e limita le suite di algoritmi che possono essere utilizzate. Questa politica determina se i dati vengono crittografati e decrittografati con un impegno chiave.
Key Commitment si traduce in un messaggio crittografato leggermente più grande (+ 30 byte) e richiede più tempo per l'elaborazione. Se l'applicazione è molto sensibile alle dimensioni o alle prestazioni, è possibile scegliere di disattivare l'impegno chiave. Ma fatelo solo se necessario.
Per ulteriori informazioni sulla migrazione alle versioni 1.7. x e 2.0. x, incluse le loro principali funzionalità di impegno, vediMigrazione della tuaAWS Encryption SDK. Per informazioni tecniche su Key Commitment, vedere AWS Encryption SDK riferimento agli algoritmi eAWS Encryption SDK riferimento al formato dei messaggi.
Politica di impegno
Una policy di impegno è un'impostazione di configurazione che determina se l'applicazione esegue la crittografia e la decrittografia con un impegno chiave. La crittografia e la decrittografia con impegno chiave è una procedura consigliata.AWS Encryption SDK
La politica di impegno ha tre valori.
Nota
Potrebbe essere necessario scorrere orizzontalmente o verticalmente per visualizzare l'intera tabella.
Valore | Crittografa con impegno chiave | Crittografa senza impegno chiave | Decripta con impegno chiave | Decripta senza impegno chiave |
---|---|---|---|---|
ForbidEncryptAllowDecrypt | ||||
RequireEncryptAllowDecrypt | ||||
RequireEncryptRequireDecrypt |
L'impostazione della politica di impegno è stata introdotta nella AWS Encryption SDK versione 1.7. x. È valido in tutti i linguaggi di programmazione supportati.
-
ForbidEncryptAllowDecrypt
decrittografa con o senza impegno chiave, ma non crittografa con impegno chiave. Questo valore, introdotto nella versione 1.7. x, è progettato per preparare tutti gli host che eseguono l'applicazione alla decrittografia con impegno chiave prima che incontrino un testo cifrato crittografato con impegno chiave. -
RequireEncryptAllowDecrypt
crittografa sempre con un impegno chiave. Può decriptare con o senza impegno chiave. Questo valore, introdotto nella versione 2.0. x, consente di iniziare a crittografare con l'impegno delle chiavi, ma di decrittografare comunque i testi cifrati precedenti senza l'impegno di chiave. -
RequireEncryptRequireDecrypt
crittografa e decrittografa solo con un impegno chiave. Questo valore è l'impostazione predefinita per la versione 2.0. x. Usa questo valore quando sei certo che tutti i tuoi testi cifrati siano crittografati con l'impegno della chiave.
L'impostazione della politica di impegno determina quali suite di algoritmi è possibile utilizzare. A partire dalla versione 1.7. x, AWS Encryption SDK supporta suite di algoritmi per l'impegno chiave, con e senza firma. Se specificate una suite di algoritmi che è in conflitto con la vostra politica di impegno, AWS Encryption SDK restituisce un errore.
Per informazioni sull'impostazione della politica di impegno, consultaImpostazione della politica di impegno.
Firme digitali
AWS Encryption SDK Crittografa i dati utilizzando un algoritmo di crittografia autenticato, AES -GCM, e il processo di decrittografia verifica l'integrità e l'autenticità di un messaggio crittografato senza utilizzare una firma digitale. Tuttavia, poiché AES GCM utilizza chiavi simmetriche, chiunque sia in grado di decrittografare la chiave dati utilizzata per decrittografare il testo cifrato potrebbe anche creare manualmente un nuovo testo cifrato crittografato, causando potenziali problemi di sicurezza. Ad esempio, se utilizzi una AWS KMS key come chiave di avvolgimento, un utente con autorizzazioni potrebbe creare testi cifrati crittografati senza chiamare. kms:Decrypt
kms:Encrypt
Per evitare questo problema, AWS Encryption SDK supporta l'aggiunta di una firma Elliptic Curve Digital Signature Algorithm (ECDSA) alla fine dei messaggi crittografati. Quando viene utilizzata una suite di algoritmi di firma, AWS Encryption SDK genera una chiave privata temporanea e una coppia di chiavi pubbliche per ogni messaggio crittografato. AWS Encryption SDK Memorizza la chiave pubblica nel contesto di crittografia della chiave dati e scarta la chiave privata. Ciò garantisce che nessuno possa creare un'altra firma verificabile con la chiave pubblica. L'algoritmo associa la chiave pubblica alla chiave dati crittografata come dati autenticati aggiuntivi nell'intestazione del messaggio, impedendo agli utenti che possono solo decrittografare i messaggi di alterare la chiave pubblica o influire sulla verifica della firma.
La verifica della firma comporta un notevole costo in termini di prestazioni in termini di decrittografia. Se gli utenti che crittografano i dati e gli utenti che decifrano i dati sono altrettanto affidabili, prendi in considerazione l'utilizzo di una suite di algoritmi che non includa la firma.
Nota
Se il portachiavi o l'accesso al materiale crittografico di imballaggio non fanno distinzione tra crittografatori e decryptor, le firme digitali non forniscono alcun valore crittografico.
AWS KMS I portachiavi, incluso il portachiavi asimmetrico RSA AWS KMS , possono distinguere tra crittografatori e decryptor in base a politiche e politiche chiave. AWS KMS IAM
A causa della loro natura crittografica, i seguenti portachiavi non possono distinguere tra crittografatori e decryptor:
-
AWS KMS Portachiavi gerarchico
-
Keyring AWS KMS ECDH
-
AESPortachiavi grezzo
-
Portachiavi Raw RSA
-
Portachiavi Raw ECDH