Come posso utilizzare OpenSSL per crittografare un file con chiavi asimmetriche AWS KMS?
Desidero utilizzare OpenSSL per crittografare un file con chiavi del Servizio AWS di gestione delle chiavi (AWS KMS).
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Crea la coppia di chiavi RSA, scarica la chiave pubblica e crea una chiave AES a 256 bit
Completa i seguenti passaggi:
- Crea la coppia di chiavi RSA.
- Per scaricare la chiave pubblica, esegui il comando AWS CLI get-public-key:
Nota: sostituisci your-key-id con l'ID della tua chiave asimmetrica. La funzione --query ottiene la chiave pubblica e decodifica il file base64 in una chiave DER.aws kms get-public-key --key-id your-key-id --output text --query 'PublicKey' > RSAPublic.b64 && base64 -d RSAPublic.b64 > RSAPublic.bin - Esegui questo comando OpenSSL rand per creare una chiave AES (Advanced Encryption Standard) a 256 bit:
openssl rand -base64 32 > key.bin
Crittografa i dati
Completa i seguenti passaggi:
- Esegui questo comando OpenSSL enc con il file key.bin:
Nota: sostituisci FILE_TO_ENCRYPT con il nome del tuo file. Il comando**-pbkdf2** è disponibile solo con OpenSSL 1.1.1. L'AMI (Amazon Machine Image) Amazon Linux 2 utilizza OpenSSL 1.0.2 e non supporta il comando -pbkdf2.openssl enc -aes-256-cbc -salt -pbkdf2 -in FILE_TO_ENCRYPT -out FILE_TO_ENCRYPT.enc -pass file:./key.bin - Crittografa il file key.bin con la chiave pubblica AWS KMS. In questo modo, proteggi i dati della chiave. Solo gli utenti che hanno accesso alla chiave privata AWS KMS possono accedere al file key.bin. Per farlo, esegui il comando OpenSSL pkeyutl:
Nota: il comando pkeyutl utilizza un algoritmo di crittografia che supporta la decrittografia tramite l'API AWS KMS RSAES_OAEP_SHA_256. La chiave pubblica AWS KMS RSAPublic.bin crittografa la chiave AES a 256 bit e crea un nuovo file denominato enc.key.bin.openssl pkeyutl -in key.bin -out enc.key.bin -inkey RSAPublic.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 - Per crittografare il file key.bin in modo che gli utenti debbano decrittografare il file enc.key.bin per accedere a key.bin, esegui il comando AWS CLI rm:
Nota: sostituisci FILE_TO_ENCRYPT con il nome del tuo file.aws s3 rm key.bin && rm FILE_TO_ENCRYPT - (Facoltativo) Elimina il file originale che desideri crittografare in modo che gli utenti non possano accedervi.
Ora hai a disposizione le seguenti risorse:
- I dati crittografati nel file FILE_TO_ENCRYPT.enc.
- La chiave AES a 256 bit crittografata enc.key.bin.
- La chiave pubblica AWS KMS RSAPublic.bin.
Nota: gli utenti con dati crittografati devono inviarti i file da decrittografare.
Decrittografa i file
Per recuperare i dati crittografati, decrittografa la chiave enc.key.bin, quindi utilizzala per decrittografare il file FILE_TO_ENCRYPT.enc.
Nota: devi avere accesso all'API AWS KMS perché la chiave privata AWS KMS non è visualizzabile in chiaro.
Completa i seguenti passaggi:
- Per decrittografare il file enc.key.bin e inviarlo all'API AWS KMS, esegui il comando AWS CLI decrypt:
Nota: sostituisci your-key-id con l'ID della tua chiave. La funzione --query seleziona il testo in chiaro e decodifica il valore base64 nel file decryptedKey.bin.aws kms decrypt --key-id your-key-id --ciphertext-blob fileb://enc.key.bin --encryption-algorithm RSAES_OAEP_SHA_256 --output text --query 'Plaintext' | base64 --decode > decryptedKey.bin - Per produrre il file decrittografato, utilizza il file decryptedKey.bin quando esegui questo comando OpenSSL enc:
Nota: sostituisci DECRYPTED_FILE con il nome del tuo file.openssl enc -d -aes-256-cbc -pbkdf2 -in FILE_TO_ENCRYPT.enc -out DECRYPTED_FILE -pass file:./decryptedKey.bin - Per verificare che la crittografia e la decrittografia siano state completate correttamente, confronta DECRYPTED_FILE con FILE_TO_ENCRYPT.
- Argomenti
- Security, Identity, & Compliance
- Lingua
- Italiano
