Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS KMS ECDHgantungan kunci
Pustaka enkripsi sisi klien kami diubah namanya menjadi Enkripsi AWS Database. SDK Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB. |
penting
AWS KMS ECDHKeyring hanya tersedia dengan versi 1.5.0 dari Perpustakaan Penyedia Material.
Sebuah AWS KMS ECDH keyring menggunakan kesepakatan kunci asimetris AWS KMS keysuntuk mendapatkan kunci pembungkus simetris bersama antara dua pihak. Pertama, keyring menggunakan algoritma perjanjian kunci Elliptic Curve Diffie-Hellman (ECDH) untuk mendapatkan rahasia bersama dari kunci pribadi di key pair pengirim dan kunci publik penerima. KMS Kemudian, keyring menggunakan rahasia bersama untuk mendapatkan kunci pembungkus bersama yang melindungi kunci enkripsi data Anda. Fungsi derivasi kunci yang SDK digunakan Enkripsi AWS Database (KDF_CTR_HMAC_SHA384
) untuk mendapatkan kunci pembungkus bersama sesuai dengan NISTrekomendasi
Fungsi derivasi kunci mengembalikan 64 byte bahan kunci. Untuk memastikan bahwa kedua belah pihak menggunakan bahan kunci yang benar, Enkripsi AWS Database SDK menggunakan 32 byte pertama sebagai kunci komitmen dan 32 byte terakhir sebagai kunci pembungkus bersama. Saat mendekripsi, jika keyring tidak dapat mereproduksi kunci komitmen yang sama dan kunci pembungkus bersama yang disimpan di bidang deskripsi material dari catatan terenkripsi, operasi gagal. Misalnya, jika Anda mengenkripsi rekaman dengan keyring yang dikonfigurasi dengan kunci pribadi Alice dan kunci publik Bob, keyring yang dikonfigurasi dengan kunci pribadi Bob dan kunci publik Alice akan mereproduksi kunci komitmen yang sama dan kunci pembungkus bersama dan dapat mendekripsi catatan. Jika kunci publik Bob bukan dari KMS key pair, maka Bob dapat membuat ECDHkeyring Raw untuk mendekripsi rekaman.
AWS KMS ECDHKeyring mengenkripsi catatan dengan kunci simetris menggunakan -. AES GCM Kunci data kemudian dienkripsi dengan kunci pembungkus bersama turunan menggunakan -. AES GCM Setiap AWS KMS ECDH keyring hanya dapat memiliki satu kunci pembungkus bersama, tetapi Anda dapat menyertakan beberapa AWS KMS ECDH gantungan kunci, sendiri atau dengan gantungan kunci lainnya, dalam multi-keyring.
Topik
Izin yang diperlukan untuk keyrings AWS KMS ECDH
Enkripsi AWS Database SDK tidak memerlukan AWS akun dan tidak bergantung pada AWS layanan apa pun. Namun, untuk menggunakan AWS KMS ECDH keyring, Anda memerlukan AWS akun dan izin minimum berikut pada keyring Anda. AWS KMS keys Izin bervariasi berdasarkan skema perjanjian kunci yang Anda gunakan.
-
Untuk mengenkripsi dan mendekripsi catatan menggunakan skema perjanjian
KmsPrivateKeyToStaticPublicKey
kunci, Anda memerlukan kms: GetPublicKey dan kms: DeriveSharedSecret pada symmetric key pair pengirim. KMS Jika Anda langsung memberikan kunci publik DER -encoded pengirim saat membuat instance keyring, Anda hanya perlu izin kms: pada symmetric key pair DeriveSharedSecret pengirim. KMS -
Untuk mendekripsi catatan menggunakan skema perjanjian
KmsPublicKeyDiscovery
kunci, Anda memerlukan GetPublicKey izin kms: DeriveSharedSecret dan kms: pada key pair asimetris yang ditentukan. KMS
Membuat AWS KMS ECDH keyring
Untuk membuat AWS KMS ECDH keyring yang mengenkripsi dan mendekripsi data, Anda harus menggunakan skema perjanjian kunci. KmsPrivateKeyToStaticPublicKey
Untuk menginisialisasi AWS KMS ECDH keyring dengan skema perjanjian KmsPrivateKeyToStaticPublicKey
kunci, berikan nilai-nilai berikut:
-
ID Pengirim AWS KMS key
Harus mengidentifikasi asimetris NIST -recommended elliptic curve () KMS key ECC pair dengan nilai.
KeyUsage
KEY_AGREEMENT
Kunci pribadi pengirim digunakan untuk mendapatkan rahasia bersama. -
(Opsional) Kunci publik pengirim
AWS KMS GetPublicKeyOperasi mengembalikan kunci publik dari sebuah symmetric KMS key pair dalam format DER -encoded yang diperlukan.
Untuk mengurangi jumlah AWS KMS panggilan yang dilakukan keyring Anda, Anda dapat langsung memberikan kunci publik pengirim. Jika tidak ada nilai yang diberikan untuk kunci publik pengirim, keyring akan memanggil AWS KMS untuk mengambil kunci publik pengirim.
-
Kunci publik penerima
AWS KMS GetPublicKeyOperasi mengembalikan kunci publik dari sebuah symmetric KMS key pair dalam format DER -encoded yang diperlukan.
-
Spesifikasi kurva
Mengidentifikasi spesifikasi kurva elips dalam pasangan kunci yang ditentukan. Pasangan kunci pengirim dan penerima harus memiliki spesifikasi kurva yang sama.
Nilai valid:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Opsional) Daftar Token Hibah
Jika Anda mengontrol akses ke KMS kunci di AWS KMS ECDH keyring Anda dengan hibah, Anda harus memberikan semua token hibah yang diperlukan saat Anda menginisialisasi keyring.
Membuat AWS KMS ECDH keyring penemuan
Saat mendekripsi, ini adalah praktik terbaik untuk menentukan kunci yang SDK dapat digunakan Enkripsi AWS Database. Untuk mengikuti praktik terbaik ini, gunakan AWS KMS ECDH keyring dengan skema perjanjian KmsPrivateKeyToStaticPublicKey
kunci. Namun, Anda juga dapat membuat keyring AWS KMS ECDH penemuan, yaitu AWS KMS ECDH keyring yang dapat mendekripsi rekaman apa pun di mana kunci publik dari key pair yang ditentukan cocok dengan KMS kunci publik penerima yang disimpan di bidang deskripsi materi dari catatan terenkripsi.
penting
Ketika Anda mendekripsi catatan menggunakan skema perjanjian KmsPublicKeyDiscovery
kunci, Anda menerima semua kunci publik, terlepas dari siapa yang memilikinya.
Untuk menginisialisasi AWS KMS ECDH keyring dengan skema perjanjian KmsPublicKeyDiscovery
kunci, berikan nilai-nilai berikut:
-
AWS KMS key ID Penerima
Harus mengidentifikasi asimetris NIST -recommended elliptic curve () KMS key ECC pair dengan nilai.
KeyUsage
KEY_AGREEMENT
-
Spesifikasi kurva
Mengidentifikasi spesifikasi kurva eliptik dalam key pair KMS penerima.
Nilai valid:
ECC_NIST_P256
,ECC_NIS_P384
,ECC_NIST_P512
-
(Opsional) Daftar Token Hibah
Jika Anda mengontrol akses ke KMS kunci di AWS KMS ECDH keyring Anda dengan hibah, Anda harus memberikan semua token hibah yang diperlukan saat Anda menginisialisasi keyring.