Keyring non elaborato RSA - AWS Crittografia database SDK

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à.

Keyring non elaborato RSA

La nostra libreria di crittografia lato client è stata rinominata AWS Database Encryption SDK. Questa guida per sviluppatori fornisce ancora informazioni sul DynamoDB Encryption Client.

Il portachiavi Raw RSA esegue la crittografia e la decrittografia asimmetriche delle chiavi di dati nella memoria locale con una chiave pubblica e privata RSA fornita dall'utente. È necessario generare, archiviare e proteggere la chiave privata, preferibilmente in un modulo di sicurezza hardware (HSM) o in un sistema di gestione delle chiavi. La funzione di crittografia consente di crittografare la chiave di dati nella chiave pubblica RSA. La funzione di decrittazione consente di decrittare la chiave di dati con la chiave privata. Puoi scegliere tra i diverse modalità di padding RSA.

Un keyring non elaborato RSA che esegue crittografia e decrittazione deve includere una coppia di chiavi pubblica e privata asimmetriche. Tuttavia, è possibile crittografare i dati con un portachiavi Raw RSA che ha solo una chiave pubblica e decrittografare i dati con un portachiavi Raw RSA che ha solo una chiave privata. Puoi includere qualsiasi portachiavi Raw RSA in un portachiavi multiplo. Se configuri un portachiavi Raw RSA con una chiave pubblica e una privata, assicurati che facciano parte della stessa coppia di chiavi.

Il portachiavi Raw RSA è equivalente e interagisce con il JceMasterKeyin SDK di crittografia AWS per Java quando viene utilizzato con chiavi di crittografia asimmetrica RSA.

Nota

Il portachiavi Raw RSA non supporta le chiavi KMS asimmetriche. Per utilizzare chiavi RSA KMS asimmetriche, crea un portachiavi.AWS KMS

Namespace e nomi

Per identificare il materiale chiave RSA in un portachiavi, il portachiavi Raw RSA utilizza uno spazio dei nomi e un nome chiave forniti dall'utente. Questi valori non sono segreti. Vengono visualizzati in testo semplice nella descrizione del materiale che AWS Database Encryption SDK aggiunge al record. Ti consigliamo di utilizzare lo spazio dei nomi e il nome della chiave che identificano la coppia di chiavi RSA (o la relativa chiave privata) nel tuo HSM o sistema di gestione delle chiavi.

Nota

Lo spazio dei nomi e il nome della chiave sono equivalenti ai campi Provider ID (o Provider) e Key ID di. JceMasterKey

Se si creano portachiavi diversi per crittografare e decrittografare un determinato record, lo spazio dei nomi e i valori dei nomi sono fondamentali. Se lo spazio dei nomi della chiave e il nome della chiave nel portachiavi di decrittografia non corrispondono esattamente, con distinzione tra maiuscole e minuscole, per lo spazio dei nomi della chiave e il nome della chiave nel portachiavi di crittografia, il portachiavi di decrittografia non viene utilizzato, anche se le chiavi appartengono alla stessa coppia di chiavi.

Lo spazio dei nomi e il nome chiave del materiale chiave nei portachiavi di crittografia e decrittografia devono essere gli stessi indipendentemente dal fatto che il portachiavi contenga la chiave pubblica RSA, la chiave privata RSA o entrambe le chiavi della coppia di chiavi. Ad esempio, supponiamo di crittografare i dati con un portachiavi RSA Raw per una chiave pubblica RSA con namespace e nome chiave. HSM_01 RSA_2048_06 Per decrittografare quei dati, costruisci un portachiavi Raw RSA con la chiave privata (o coppia di chiavi) e lo stesso namespace e nome della chiave.

Modalità di imbottitura

È necessario specificare una modalità di riempimento per i portachiavi Raw RSA utilizzati per la crittografia e la decrittografia oppure utilizzare funzionalità dell'implementazione del linguaggio che la specificano automaticamente.

AWS Encryption SDK Supporta le seguenti modalità di riempimento, soggette ai vincoli di ogni lingua. Consigliamo una modalità di riempimento OAEP, in particolare OAEP con SHA-256 e MGF1 con SHA-256 Padding. La modalità di riempimento PKCS1 è supportata solo per la compatibilità con le versioni precedenti.

  • OAEP con SHA-1 e MGF1 con imbottitura SHA-1

  • OAEP con SHA-256 e MGF1 con imbottitura SHA-256

  • OAEP con SHA-384 e MGF1 con imbottitura SHA-384

  • OAEP con SHA-512 e MGF1 con imbottitura SHA-512

  • Imbottitura PKCS1 v1.5

Il seguente esempio Java mostra come creare un portachiavi Raw RSA con la chiave pubblica e privata di una coppia di chiavi RSA e l'OAEP con SHA-256 e MGF1 con modalità padding SHA-256. RSAPublicKeyRSAPrivateKeyLe variabili and rappresentano il materiale chiave fornito.

Java
final CreateRawRsaKeyringInput keyringInput = CreateRawRsaKeyringInput.builder() .keyName("RSA_2048_06") .keyNamespace("HSM_01") .paddingScheme(PaddingScheme.OAEP_SHA256_MGF1) .publicKey(RSAPublicKey) .privateKey(RSAPrivateKey) .build(); final MaterialProviders matProv = MaterialProviders.builder() .MaterialProvidersConfig(MaterialProvidersConfig.builder().build()) .build(); IKeyring rawRsaKeyring = matProv.CreateRawRsaKeyring(keyringInput);
C# / .NET
var keyNamespace = "HSM_01"; var keyName = "RSA_2048_06"; // Get public and private keys from PEM files var publicKey = new MemoryStream(System.IO.File.ReadAllBytes("RSAKeyringExamplePublicKey.pem")); var privateKey = new MemoryStream(System.IO.File.ReadAllBytes("RSAKeyringExamplePrivateKey.pem")); // Create the keyring input var keyringInput = new CreateRawRsaKeyringInput { KeyNamespace = keyNamespace, KeyName = keyName, PaddingScheme = PaddingScheme.OAEP_SHA512_MGF1, PublicKey = publicKey, PrivateKey = privateKey }; // Create the keyring var matProv = new MaterialProviders(new MaterialProvidersConfig()); var rawRsaKeyring = matProv.CreateRawRsaKeyring(keyringInput);