Bidang mana yang dienkripsi dan ditandatangani? - AWS Enkripsi Database SDK

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

Bidang mana yang dienkripsi dan ditandatangani?

Pustaka enkripsi sisi klien kami diubah namanya menjadi SDK Enkripsi AWS Database. Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB.

SDK Enkripsi AWS Database untuk DynamoDB adalah pustaka enkripsi sisi klien yang dirancang khusus untuk aplikasi Amazon DynamoDB. Amazon DynamoDB menyimpan data dalam tabel, yang merupakan kumpulan item. Setiap item adalah koleksi atribut. Tiap atribut memiliki nama dan nilai. SDK Enkripsi AWS Database untuk DynamoDB mengenkripsi nilai atribut. Kemudian, DynamoDB Encryption Client menghitung tanda tangan atas atribut. Anda dapat menentukan nilai atribut untuk dienkripsi dan yang disertakan dalam tanda tangan.

Enkripsi melindungi kerahasiaan nilai atribut. Penandatanganan menyediakan integritas semua atribut yang ditandatangani dan hubungan satu sama lain, dan menyediakan autentikasi. Hal ini memungkinkan Anda untuk mendeteksi perubahan yang tidak sah pada item secara keseluruhan, termasuk menambahkan atau menghapus atribut, atau mengganti satu nilai terenkripsi dengan yang lain.

Dalam item terenkripsi, beberapa data tetap dalam teks biasa, termasuk nama tabel, semua nama atribut, nilai atribut yang tidak Anda enkripsi, nama dan nilai atribut kunci primer (kunci partisi dan kunci sortir), dan jenis atribut. Jangan menyimpan data sensitif dalam bidang ini.

Untuk informasi selengkapnya tentang cara kerja SDK Enkripsi AWS Database untuk DynamoDB, lihat. Cara kerja SDK Enkripsi AWS Database

Enkripsi nilai atribut

SDK Enkripsi AWS Database untuk DynamoDB mengenkripsi nilai (tetapi bukan nama atau jenis atribut) atribut yang Anda tentukan. Untuk menentukan nilai atribut yang dienkripsi, gunakan tindakan atribut.

Sebagai contoh, item ini termasuk atribut example dan test.

'example': 'data', 'test': 'test-value', ...

Jika Anda mengenkripsi atribut example, tetapi tidak mengenkripsi atribut test, hasilnya terlihat seperti berikut ini. Nilai atribut example yang dienkripsi adalah data biner, bukan string.

'example': Binary(b"'b\x933\x9a+s\xf1\xd6a\xc5\xd5\x1aZ\xed\xd6\xce\xe9X\xf0T\xcb\x9fY\x9f\xf3\xc9C\x83\r\xbb\\"), 'test': 'test-value' ...

Atribut kunci primer - kunci partisi dan kunci sortir-dari setiap item harus tetap dalam plaintext karena DynamoDB menggunakannya untuk menemukan item dalam tabel. Atribut itu harus ditandatangani, tapi tidak dienkripsi.

SDK Enkripsi AWS Database untuk DynamoDB mengidentifikasi atribut kunci utama untuk Anda dan memastikan bahwa nilainya ditandatangani, tetapi tidak dienkripsi. Dan, jika Anda mengidentifikasi kunci utama Anda dan kemudian mencoba untuk mengenkripsinya, klien akan melemparkan pengecualian.

Klien menyimpan deskripsi materi dalam atribut baru (aws_dbe_head) yang ditambahkan ke item. Deskripsi materi menjelaskan bagaimana item dienkripsi dan ditandatangani. Klien menggunakan informasi ini untuk memverifikasi dan mendekripsi item. Bidang yang menyimpan deskripsi materi tidak dienkripsi.

Penandatanganan item

Setelah mengenkripsi nilai atribut yang ditentukan, SDK Enkripsi AWS Database untuk DynamoDB menghitung Kode Otentikasi Pesan Berbasis Hash (HMAC) dan tanda tangan digital atas kanonikalisasi deskripsi materi, konteks enkripsi, dan setiap bidang yang ditandai, atau dalam tindakan atribut. ENCRYPT_AND_SIGNSIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT Tanda tangan ECDSA diaktifkan secara default, tetapi tidak diperlukan. Klien menyimpan HMAC dan tanda tangan dalam atribut baru (aws_dbe_foot) yang ditambahkan ke item.