Penyedia Materi Terbungkus - AWS Enkripsi Database SDK

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Penyedia Materi Terbungkus

catatan

Pustaka enkripsi sisi klien kami diubah namanya menjadi AWS Database Encryption SDK. Topik berikut memberikan informasi tentang versi 1. x —2. x dari DynamoDB Encryption Client untuk Java dan versi 1. x —3. x dari DynamoDB Encryption Client untuk Python. Untuk informasi selengkapnya, lihat SDK Enkripsi AWS Database untuk dukungan versi DynamoDB.

Penyedia Bahan Terbungkus (Wrapped CMP) memungkinkan Anda menggunakan kunci pembungkus dan penandatanganan dari sumber mana pun dengan DynamoDB Encryption Client. Wrapped CMP tidak tergantung pada layanan AWS mana pun. Namun, Anda harus menghasilkan dan mengelola kunci pembungkus dan penandatanganan di luar klien, termasuk menyediakan kunci yang benar untuk memverifikasi dan mendekripsi item.

Wrapped CMP menghasilkan kunci enkripsi item yang unik untuk setiap item. CMP ini membungkus kunci enkripsi item dengan kunci pembungkus yang Anda masukkan dan menyimpan kunci enkripsi item terbungkus dalam atribut deskripsi materi item. Karena Anda memasukkan kunci pembungkus dan penandatangan, Anda menentukan bagaimana kunci pembungkus dan penandatanganan dihasilkan dan apakah kunci itu unik untuk setiap item atau digunakan kembali.

Wrapped CMP adalah implementasi yang aman dan pilihan yang baik untuk aplikasi yang dapat mengelola materi kriptografis.

Wrapped CMP adalah salah satu dari beberapa penyedia materi kriptografis (CMP) yang didukung DynamoDB Encryption Client. Untuk informasi tentang CMP lainnya, lihat Penyedia materi kriptografi.

Misalnya kode, lihat:

Cara menggunakannya

Untuk membuat Wrapped CMP, tentukan kunci pembungkus (diperlukan saat enkripsi), kunci pembuka pembungkus (diperlukan saat dekripsi), dan kunci penandatanganan. Anda harus menyediakan kunci ketika Anda mengenkripsi dan mendekripsi item.

Kunci pembungkus, pembuka pembungkus, dan penandatanganan dapat berupa kunci simetris atau pasangan kunci asimetris.

Java
// This example uses asymmetric wrapping and signing key pairs final KeyPair wrappingKeys = ... final KeyPair signingKeys = ... final WrappedMaterialsProvider cmp = new WrappedMaterialsProvider(wrappingKeys.getPublic(), wrappingKeys.getPrivate(), signingKeys);
Python
# This example uses symmetric wrapping and signing keys wrapping_key = ... signing_key = ... wrapped_cmp = WrappedCryptographicMaterialsProvider( wrapping_key=wrapping_key, unwrapping_key=wrapping_key, signing_key=signing_key )

Cara kerjanya

Wrapped CMP menghasilkan kunci enkripsi item baru untuk setiap item. CMP ini menggunakan kunci pembungkus, pembuka pembungkus, dan penandatanganan yang Anda berikan, seperti yang ditunjukkan dalam diagram berikut.

Input, pengolahan, dan output dari Penyedia Materi Terbungkus di DynamoDB Encryption Client

Dapatkan materi enkripsi

Bagian ini menjelaskan secara terperinci input, output, dan pengolahan Penyedia Materi Terbungkus (Wrapped CMP) ketika menerima permintaan materi enkripsi.

Input (dari aplikasi)

  • Kunci pembungkus: Sebuah kunci simetris Standar Enkripsi Lanjutan (AES), atau kunci publik RSA. Diperlukan jika ada nilai atribut yang dienkripsi. Jika tidak, itu bersifat opsional dan diabaikan.

  • Kunci pembuka pembungkus: Opsional dan diabaikan.

  • Kunci penandatanganan

Input (dari enkriptor item)

Output (untuk enkriptor item):

  • Kunci enkripsi item plaintext

  • Kunci penandatanganan (tidak berubah)

  • Deskripsi materi aktual: Nilai-nilai ini disimpan dalam atribut deskripsi materi yang ditambahkan klien ke item.

    • amzn-ddb-env-key: Kunci enkripsi item terbungkus yang didekodekan Base64

    • amzn-ddb-env-alg: Algoritma enkripsi yang digunakan untuk mengenkripsi item. Defaultnya adalah AES-256-CBC.

    • amzn-ddb-wrap-alg: Algoritma pembungkus yang digunakan Wrapped CMP untuk membungkus kunci enkripsi item. Jika kunci pembungkus adalah kunci AES, kuncinya dibungkus menggunakan AES-Keywrap tanpa pad sebagaimana didefinisikan dalam RFC 3394. Jika kunci pembungkus adalah kunci RSA, kunci tersebut dienkripsi dengan menggunakan RSA OAEP dengan padding MGF1.

Pengolahan

Saat mengenkripsi item, Anda memasukkan kunci pembungkus dan kunci penandatanganan. Kunci pembuka pembungkus bersifat opsional dan diabaikan.

  1. Wrapped CMP menghasilkan kunci enkripsi item simetris yang unik untuk setiap item tabel.

  2. CMP ini menggunakan kunci pembungkus yang Anda tentukan untuk membungkus kunci enkripsi item. Kemudian, ia menghapusnya dari memori sesegera mungkin.

  3. Ia mengembalikan kunci enkripsi item plaintext, kunci penandatanganan yang Anda berikan, dan deskripsi materi aktual yang mencakup kunci enkripsi item terbungkus, serta algoritma enkripsi dan pembungkus.

  4. Enkriptor item menggunakan kunci enkripsi plaintext untuk mengenkripsi item. Ia menggunakan kunci penandatanganan yang Anda masukkan untuk menandatangani item. Kemudian, ia menghapus kunci plaintext dari memori sesegera mungkin. Ia menyalin bidang dalam deskripsi materi aktual, termasuk kunci enkripsi terbungkus (amzn-ddb-env-key), ke atribut deskripsi materi item.

Dapatkan materi dekripsi

Bagian ini menjelaskan secara terperinci input, output, dan pengolahan Penyedia Materi Terbungkus (Wrapped CMP) ketika menerima permintaan materi dekripsi.

Input (dari aplikasi)

  • Kunci pembungkus: Opsional dan diabaikan.

  • Kunci pembuka pembungkus: Kunci simetris Standar Enkripsi Lanjutan (AES) yang sama atau kunci privat RSA yang sesuai dengan kunci publik RSA yang digunakan untuk mengenkripsi. Diperlukan jika ada nilai atribut yang dienkripsi. Jika tidak, itu bersifat opsional dan diabaikan.

  • Kunci penandatanganan

Input (dari enkriptor item)

Output (untuk enkriptor item)

  • Kunci enkripsi item plaintext

  • Kunci penandatanganan (tidak berubah)

Pengolahan

Ketika Anda mendekripsi item, Anda memasukkan kunci pembuka pembungkus dan kunci penandatanganan. Kunci pembuka pembungkus bersifat opsional dan diabaikan.

  1. Wrapped CMP mendapatkan kunci enkripsi item terbungkus dari atribut deskripsi materi dari item.

  2. Ia menggunakan kunci pembuka pembungkus dan algoritma untuk membuka bungkus kunci enkripsi item.

  3. Ia mengembalikan kunci enkripsi item plaintext, kunci penandatanganan, serta algoritma enkripsi dan penandatanganan ke enkriptor item.

  4. Enkriptor item menggunakan kunci penandatanganan untuk memverifikasi item. Jika berhasil, ia menggunakan kunci enkripsi item untuk mendekripsi item. Kemudian, ia menghapus kunci plaintext dari memori sesegera mungkin.