Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Referensi
Pustaka enkripsi sisi klien kami diubah namanya menjadi Enkripsi AWS Database. SDK Panduan pengembang ini masih memberikan informasi tentang Klien Enkripsi DynamoDB. |
Topik berikut memberikan rincian teknis untuk Enkripsi AWS DatabaseSDK.
Format deskripsi bahan
Deskripsi materi berfungsi sebagai header untuk catatan terenkripsi. Saat Anda mengenkripsi dan menandatangani bidang dengan Enkripsi AWS DatabaseSDK, enkripsi mencatat deskripsi materi saat merakit materi kriptografi dan menyimpan deskripsi materi di bidang baru (aws_dbe_head
) yang ditambahkan enkripsi ke catatan Anda. Deskripsi materi adalah struktur data berformat portabel yang berisi kunci data terenkripsi dan informasi tentang bagaimana catatan dienkripsi dan ditandatangani. Tabel berikut menjelaskan nilai-nilai yang membentuk deskripsi material. Byte ditambahkan dalam urutan yang ditunjukkan.
Nilai | Panjang dalam byte |
---|---|
Version | 1 |
Signatures Enabled | 1 |
Record ID | 32 |
Encrypt Legend | Variabel |
Encryption Context Length | 2 |
Encryption Context | Variabel |
Encrypted Data Key Count | 1 |
Encrypted Data Keys | Variabel |
Record Commitment | 1 |
- Versi
-
Versi format
aws_dbe_head
bidang ini. - Tanda Tangan Diaktifkan
-
Mengkodekan apakah tanda tangan ECDSA digital diaktifkan untuk catatan ini.
Nilai byte Arti 0x01
ECDSAtanda tangan digital diaktifkan (default) 0x00
ECDSAtanda tangan digital dinonaktifkan - Rekam ID
-
Nilai 256-bit yang dihasilkan secara acak yang mengidentifikasi catatan. ID Rekaman:
-
Secara unik mengidentifikasi catatan terenkripsi.
-
Mengikat deskripsi material ke catatan terenkripsi.
-
- Enkripsi Legenda
-
Deskripsi serial bidang yang diautentikasi dienkripsi. Encrypt Legend digunakan untuk menentukan bidang apa metode dekripsi harus mencoba untuk mendekripsi.
Nilai byte Arti 0x65
ENCRYPT_AND_SIGN
0x73
SIGN_ONLY
Encrypt Legend diserialisasikan sebagai berikut:
-
Secara leksikografis dengan urutan byte yang mewakili jalur kanonik mereka.
-
Untuk setiap bidang, secara berurutan, tambahkan salah satu nilai byte yang ditentukan di atas untuk menunjukkan apakah bidang itu harus dienkripsi.
-
- Panjang Konteks Enkripsi
-
Panjang konteks enkripsi. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit. Panjang maksimum adalah 65.535 byte.
- Konteks Enkripsi
-
Satu set pasangan nama-nilai yang berisi data otentikasi tambahan yang arbitrer dan non-rahasia.
Ketika tanda tangan ECDSA digital diaktifkan, konteks enkripsi berisi pasangan kunci-nilai.
{"aws-crypto-footer-ecdsa-key": Qtxt}
Qtxt
mewakili titik kurva elips yangQ
dikompresi menurut SEC1 versi 2.0dan kemudian dikodekan base64. - Hitungan Kunci Data Terenkripsi
-
Jumlah kunci data terenkripsi. Ini adalah nilai 1-byte ditafsirkan sebagai 8-bit unsigned integer yang menentukan jumlah kunci data terenkripsi. Jumlah maksimum kunci data terenkripsi di setiap catatan adalah 255.
- Kunci Data Terenkripsi
-
Urutan kunci data terenkripsi. Panjang urutan ditentukan oleh jumlah kunci data terenkripsi dan panjang masing-masing. Urutan berisi setidaknya satu kunci data terenkripsi.
Tabel berikut menjelaskan bidang yang membentuk setiap kunci data terenkripsi. Byte ditambahkan dalam urutan yang ditunjukkan.
Struktur Kunci Data Terenkripsi Bidang Panjang dalam byte Key Provider ID Length 2 Key Provider ID Variabel. Sama dengan nilai yang ditentukan dalam 2 byte sebelumnya (Panjang ID Penyedia Kunci). Key Provider Information Length 2 Key Provider Information Variabel. Sama dengan nilai yang ditentukan dalam 2 byte sebelumnya (Panjang Informasi Penyedia Kunci). Encrypted Data Key Length 2 Encrypted Data Key Variabel. Sama dengan nilai yang ditentukan dalam 2 byte sebelumnya (Panjang Kunci Data Terenkripsi). - Panjang ID Penyedia Kunci
-
Panjang pengidentifikasi penyedia kunci. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit yang menentukan jumlah byte yang berisi ID penyedia kunci.
- ID Penyedia Kunci
-
Pengidentifikasi penyedia kunci. Ini digunakan untuk menunjukkan penyedia kunci data terenkripsi dan dimaksudkan untuk dapat diperluas.
- Panjang Informasi Penyedia Kunci
-
Panjang informasi penyedia kunci. Ini adalah nilai 2-byte yang ditafsirkan sebagai integer unsigned 16-bit yang menentukan jumlah byte yang berisi informasi penyedia kunci.
- Informasi Penyedia Utama
-
Informasi penyedia utama. Itu ditentukan oleh penyedia kunci.
Bila Anda menggunakan AWS KMS keyring, nilai ini berisi Amazon Resource Name (ARN) dari AWS KMS key.
- Panjang Kunci Data Terenkripsi
-
Panjang kunci data terenkripsi. Ini adalah nilai 2-byte ditafsirkan sebagai 16-bit unsigned integer yang menentukan jumlah byte yang berisi kunci data terenkripsi.
- Kunci Data Terenkripsi
-
Kunci data terenkripsi. Ini adalah kunci data yang dienkripsi oleh penyedia kunci.
- Rekam Komitmen
-
Hash 256-bit Hash Based Message Authentication Code (HMAC) dihitung atas semua byte deskripsi material sebelumnya menggunakan kunci komit.
AWS KMS Rincian teknis keyring hierarkis
Keyring AWS KMS Hierarkis menggunakan kunci data unqiue untuk mengenkripsi setiap bidang dan mengenkripsi setiap kunci data dengan kunci pembungkus unik yang berasal dari kunci cabang aktif. Ini menggunakan derivasi kunci
-
Garam acak 16 byte
-
Kunci cabang aktif
-
Nilai UTF-8 yang dikodekan untuk pengenal
penyedia kunci "” aws-kms-hierarchy
Keyring Hierarkis menggunakan kunci pembungkus turunan untuk mengenkripsi salinan kunci data teks biasa menggunakan AES - GCM -256 dengan tag otentikasi 16 byte dan input berikut.
-
Kunci pembungkus turunan digunakan sebagai kunci AES - GCM cipher
-
Kunci data digunakan sebagai AES - GCM pesan
-
Vektor inisialisasi acak 12 byte (IV) digunakan sebagai AES - GCM IV
-
Data tambahan yang diautentikasi (AAD) yang berisi nilai serial berikut.
Nilai Panjang dalam byte Ditafsirkan sebagai "aws-kms-hierarchy" 17 UTF-8 dikodekan Pengidentifikasi kunci cabang Variabel UTF-8 dikodekan Versi kunci cabang 16 UTF-8 dikodekan Konteks enkripsi Variabel UTF-8 pasangan nilai kunci yang dikodekan