Topik ini menjelaskan cara menggunakan kunci master pelanggan (CMK) asimetris untuk mengenkripsi dan mendekripsi data di Alibaba Cloud CLI.
- Penerima informasi mendistribusikan kunci publik kepada pengirim informasi.
- Pengirim informasi menggunakan kunci publik untuk mengenkripsi informasi sensitif.
- Pengirim informasi mengirimkan ciphertext yang dihasilkan dari informasi sensitif kepada penerima informasi.
- Penerima informasi menggunakan kunci privat untuk mendekripsi ciphertext.
Prasyarat
Sebuah CMK asimetris dibuat di Key Management Service (KMS) dengan memanggil operasi CreateKey, dengan parameter KeySpec diatur ke tipe CMK asimetris yang diperlukan dan parameter KeyUsage diatur ke ENCRYPT/DECRYPT.
Buat CMK tipe RSA_2048:
aliyun kms CreateKey --KeySpec=RSA_2048 --KeyUsage=ENCRYPT/DECRYPT --ProtectionLevel=HSMMemperoleh kunci publik
1. Panggil operasi GetPublicKey untuk memperoleh kunci publik dari CMK asimetris.
aliyun kms GetPublicKey --KeyId=5c438b18-05be-40ad-b6c2-3be6752c**** --KeyVersionId=2ab1a983-7072-4bbc-a582-584b5bd8****Keluaran yang Diharapkan:
{
"RequestId": "82c383eb-c377-4mf6-bxx8-81hkc1g5g7ab",
"KeyId": "5c438b18-05be-40ad-b6c2-3be6752c****",
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"PublicKey": "PublicKey-Data****"
}rsa_publickey.pub. PublicKey-Data**** adalah placeholder. Gantilah dengan kunci publik yang diperoleh.echo PublicKey-Data**** > rsa_publickey.pubGunakan kunci publik untuk mengenkripsi data
1. Buat file teks biasa contoh plaintext-file.txt yang berisi "this is plaintext".
echo "this is plaintext" > plaintext-file.txt2. Gunakan OpenSSL untuk mengenkripsi file dan tulis ciphertext biner yang diperoleh ke dalam file plaintext-file.enc.
openssl pkeyutl -encrypt -in plaintext-file.txt \
-inkey rsa_publickey.pub -pubin \
-pkeyopt rsa_padding_mode:oaep \
-pkeyopt rsa_oaep_md:sha256 \
-pkeyopt rsa_mgf1_md:sha256 \
-out plaintext-file.encPanggil operasi API KMS untuk mendekripsi data
Anda harus memanggil operasi API KMS dan menggunakan kunci privat untuk mendekripsi data.
openssl base64 -in plaintext-file.encKeluaran yang Diharapkan:
5kdCB06HHeAwgfH9ARY4/9Nv5vlpQ94GXZcmaC9FE59Aw8v8RYdozT6ggSbyZbi+
8STKVq9402MEfmUDmwJLuu0qgAZsCe5wU4JWHh1y84Qn6HT068j0qOy5X2HIlrjs
fCdetgtMtVorSgb3bbERk2RV67nHWrDkecNbUaz+6ik4AlZxv2uWrV62eQ9yUBYm
Jb956LbqnfWdCFxUSHH/qB5QCnLpijzvPmfNlZr653H4nF08gpZjnmlF4FjTu3i2
mGLzK4J3Rh/l7PQHiVMdc4hSnXosg68QmMVdZBGLK9/cD9SYngPDiirU7z0q7Git
dIeloyCAUDFyuQC6a+SqzA==aliyun kms AsymmetricDecrypt \
--KeyId 5c438b18-05be-40ad-b6c2-3be6752c**** \
--KeyVersionId 2ab1a983-7072-4bbc-a582-584b5bd8**** \
--Algorithm RSAES_OAEP_SHA_256 \
--CiphertextBlob 5kdCB06HHeAwgfH9ARY4/9Nv5vlpQ94GXZcmaC9FE59Aw8v8RYdozT6ggSbyZbi+8STKVq9402MEfmUDmwJLuu0qgAZsCe5wU4JWHh1y84Qn6HT068j0qOy5X2HIlrjsfCdetgtMtVorSgb3bbERk2RV67nHWrDkecNbUaz+6ik4AlZxv2uWrV62eQ9yUBYmJb956LbqnfWdCFxUSHH/qB5QCnLpijzvPmfNlZr653H4nF08gpZjnmlF4FjTu3i2mGLzK4J3Rh/l7PQHiVMdc4hSnXosg68QmMVdZBGLK9/cD9SYngPDiirU7z0q7GitdIeloyCAUDFyuQC6a+SqzA==Keluaran yang Diharapkan:
{
"KeyId": "5c438b18-05be-40ad-b6c2-3be6752c****",
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"Plaintext": "dGhpcyBpcyBwbGFpbnRleHQgDQo=",
"RequestId": "6be7a8e4-35b9-4549-ad05-c5b1b535a22c"
}echo dGhpcyBpcyBwbGFpbnRleHQgDQo= | openssl base64 -dthis is plaintext