Memilih panjang suar - AWS Enkripsi Database SDK

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

Memilih panjang suar

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

Saat Anda menulis nilai baru ke bidang terenkripsi yang dikonfigurasi untuk enkripsi yang dapat dicari, SDK Enkripsi AWS Database menghitung HMAC di atas nilai teks biasa. Output HMAC ini adalah satu-ke-satu (1:1) cocok untuk nilai plaintext dari bidang itu. Output HMAC dipotong sehingga beberapa, nilai plaintext yang berbeda memetakan ke tag HMAC terpotong yang sama. Tabrakan ini, atau positif palsu, membatasi kemampuan pengguna yang tidak sah untuk mengidentifikasi informasi yang membedakan tentang nilai teks biasa.

Jumlah rata-rata positif palsu yang dihasilkan untuk setiap suar ditentukan oleh panjang suar yang tersisa setelah pemotongan. Anda hanya perlu menentukan panjang suar saat mengkonfigurasi beacon standar. Suar majemuk menggunakan panjang suar dari beacon standar tempat mereka dibangun.

Suar tidak mengubah keadaan terenkripsi bidang. Namun, ketika Anda menggunakan beacon, ada tradeoff yang melekat antara seberapa efisien kueri Anda dan berapa banyak informasi yang terungkap tentang distribusi data Anda.

Tujuan enkripsi yang dapat dicari adalah untuk mengurangi biaya kinerja yang terkait dengan database terenkripsi sisi klien dengan menggunakan beacon untuk melakukan kueri pada data terenkripsi. Beacon disimpan bersama bidang terenkripsi mereka dihitung dari. Ini berarti bahwa mereka dapat mengungkapkan informasi yang membedakan tentang distribusi dataset Anda. Dalam kasus ekstrim, pengguna yang tidak sah mungkin dapat menganalisis informasi yang diungkapkan tentang distribusi Anda dan menggunakannya untuk mengidentifikasi nilai plaintext bidang. Memilih panjang suar yang tepat dapat membantu mengurangi risiko ini dan menjaga kerahasiaan distribusi Anda.

Tinjau model ancaman Anda untuk menentukan tingkat keamanan yang Anda butuhkan. Misalnya, semakin banyak individu yang memiliki akses ke database Anda, tetapi seharusnya tidak memiliki akses ke data teks biasa, semakin Anda mungkin ingin melindungi kerahasiaan distribusi set data Anda. Untuk meningkatkan kerahasiaan, suar perlu menghasilkan lebih banyak positif palsu. Peningkatan kerahasiaan menghasilkan kinerja kueri yang berkurang.

Keamanan vs Kinerja
  • Panjang suar yang terlalu panjang menghasilkan terlalu sedikit positif palsu dan mungkin mengungkapkan informasi yang membedakan tentang distribusi kumpulan data Anda.

  • Panjang suar yang terlalu pendek menghasilkan terlalu banyak positif palsu dan meningkatkan biaya kinerja kueri karena memerlukan pemindaian database yang lebih luas.

Saat menentukan panjang suar yang sesuai untuk solusi Anda, Anda harus menemukan panjang yang secara memadai menjaga keamanan data Anda tanpa memengaruhi kinerja kueri Anda lebih dari yang mutlak diperlukan. Jumlah keamanan yang diawetkan oleh suar tergantung pada distribusi kumpulan data Anda dan korelasi bidang tempat beacon Anda dibangun. Topik berikut mengasumsikan bahwa beacon Anda didistribusikan secara seragam dan tidak mengandung data yang berkorelasi.

Menghitung panjang suar

Panjang suar didefinisikan dalam bit dan mengacu pada jumlah bit tag HMAC yang disimpan setelah pemotongan. Panjang suar yang disarankan bervariasi tergantung pada distribusi set data, keberadaan nilai yang berkorelasi, dan persyaratan keamanan dan kinerja spesifik Anda. Jika kumpulan data Anda didistribusikan secara seragam, Anda dapat menggunakan persamaan dan prosedur berikut untuk membantu mengidentifikasi panjang suar terbaik untuk implementasi Anda. Persamaan ini hanya memperkirakan jumlah rata-rata positif palsu yang akan dihasilkan beacon, mereka tidak menjamin bahwa setiap nilai unik dalam kumpulan data Anda akan menghasilkan sejumlah positif palsu tertentu.

catatan

Efektivitas persamaan ini tergantung pada distribusi dataset Anda. Jika dataset Anda tidak didistribusikan secara seragam, lihat. Apakah beacon tepat untuk dataset saya?

Secara umum, semakin jauh kumpulan data Anda berasal dari distribusi seragam, semakin Anda perlu mempersingkat panjang suar Anda.

  1. Perkirakan populasi

    Populasi adalah jumlah nilai unik yang diharapkan di bidang tempat suar standar Anda dibangun dari, itu bukan jumlah total yang diharapkan dari nilai yang disimpan di lapangan. Misalnya, pertimbangkan Room bidang terenkripsi yang mengidentifikasi lokasi rapat karyawan. RoomBidang ini diharapkan menyimpan 100.000 nilai total, tetapi hanya ada 50 ruangan berbeda yang dapat dipesan karyawan untuk rapat. Ini berarti bahwa populasi adalah 50 karena hanya ada 50 kemungkinan nilai unik yang dapat disimpan di Room lapangan.

    catatan

    Jika suar standar Anda dibangun dari bidang virtual, populasi yang digunakan untuk menghitung panjang suar adalah jumlah kombinasi unik yang dibuat oleh bidang virtual.

    Saat memperkirakan populasi Anda, pastikan untuk mempertimbangkan proyeksi pertumbuhan kumpulan data. Setelah Anda menulis catatan baru dengan suar, Anda tidak dapat memperbarui panjang suar. Tinjau model ancaman Anda dan solusi database apa pun yang ada untuk membuat perkiraan jumlah nilai unik yang Anda harapkan untuk disimpan bidang ini dalam lima tahun ke depan.

    Populasi Anda tidak perlu tepat. Pertama, identifikasi jumlah nilai unik dalam database Anda saat ini, atau perkirakan jumlah nilai unik yang Anda harapkan untuk disimpan di tahun pertama. Selanjutnya, gunakan pertanyaan-pertanyaan berikut untuk membantu Anda menentukan proyeksi pertumbuhan nilai unik selama lima tahun ke depan.

    • Apakah Anda mengharapkan nilai unik untuk dikalikan dengan 10?

    • Apakah Anda mengharapkan nilai unik untuk dikalikan dengan 100?

    • Apakah Anda mengharapkan nilai unik untuk dikalikan dengan 1000?

    Perbedaan antara 50.000 dan 60.000 nilai unik tidak signifikan dan keduanya akan menghasilkan panjang suar yang direkomendasikan yang sama. Namun, perbedaan antara 50.000 dan 500.000 nilai unik akan berdampak signifikan pada panjang suar yang direkomendasikan.

    Pertimbangkan untuk meninjau data publik tentang frekuensi tipe data umum, seperti kode ZIP atau nama belakang. Misalnya, ada 41.707 kode POS di Amerika Serikat. Populasi yang Anda gunakan harus sebanding dengan database Anda sendiri. Jika ZIPCode bidang dalam database Anda menyertakan data dari seluruh Amerika Serikat, maka Anda mungkin mendefinisikan populasi Anda sebagai 41.707, bahkan jika ZIPCode bidang saat ini tidak memiliki 41.707 nilai unik. Jika ZIPCode bidang dalam database Anda hanya menyertakan data dari satu negara, dan hanya akan menyertakan data dari satu negara, maka Anda mungkin mendefinisikan populasi Anda sebagai jumlah total kode ZIP dalam keadaan itu, bukan 41,704.

  2. Hitung kisaran yang disarankan untuk jumlah tabrakan yang diharapkan

    Untuk menentukan panjang suar yang sesuai untuk bidang tertentu, Anda harus terlebih dahulu mengidentifikasi rentang yang sesuai untuk jumlah tabrakan yang diharapkan. Jumlah tabrakan yang diharapkan mewakili jumlah rata-rata nilai plaintext unik yang dipetakan ke tag HMAC tertentu. Jumlah positif palsu yang diharapkan untuk satu nilai plaintext unik adalah kurang dari jumlah tabrakan yang diharapkan.

    Kami merekomendasikan bahwa jumlah tabrakan yang diharapkan lebih besar dari atau sama dengan dua, dan kurang dari akar kuadrat populasi Anda. Persamaan berikut hanya berfungsi jika populasi Anda memiliki 16 atau lebih nilai unik.

    2 ≤ number of collisions < √(Population)

    Jika jumlah tabrakan kurang dari dua, suar akan menghasilkan terlalu sedikit positif palsu. Kami merekomendasikan dua sebagai jumlah minimum tabrakan yang diharapkan karena artinya, rata-rata, setiap nilai unik di lapangan akan menghasilkan setidaknya satu false positive dengan memetakan ke satu nilai unik lainnya.

  3. Hitung kisaran yang disarankan untuk panjang suar

    Setelah mengidentifikasi jumlah minimum dan maksimum tabrakan yang diharapkan, gunakan persamaan berikut untuk mengidentifikasi rentang panjang suar yang sesuai.

    number of collisions = Population * 2-(beacon length)

    Pertama, pecahkan panjang suar di mana jumlah tabrakan yang diharapkan sama dengan dua (jumlah minimum yang disarankan dari tabrakan yang diharapkan).

    2 = Population * 2-(beacon length)

    Kemudian, selesaikan panjang suar di mana jumlah tabrakan yang diharapkan sama dengan akar kuadrat populasi Anda (jumlah maksimum yang disarankan dari tabrakan yang diharapkan).

    √(Population) = Population * 2-(beacon length)

    Kami merekomendasikan pembulatan output yang dihasilkan oleh persamaan ini ke panjang suar yang lebih pendek. Misalnya, jika persamaan menghasilkan panjang suar 15,6, kami sarankan pembulatan nilai yang turun ke 15 bit bukannya pembulatan hingga 16 bit.

  4. Pilih panjang suar

    Persamaan ini hanya mengidentifikasi rentang panjang suar yang direkomendasikan untuk bidang Anda. Sebaiknya gunakan panjang suar yang lebih pendek untuk menjaga keamanan kumpulan data Anda bila memungkinkan. Namun, panjang suar yang sebenarnya Anda gunakan ditentukan oleh model ancaman Anda. Pertimbangkan persyaratan kinerja Anda saat Anda meninjau model ancaman Anda untuk menentukan panjang suar terbaik untuk bidang Anda.

    Menggunakan panjang suar yang lebih pendek mengurangi kinerja kueri, sementara menggunakan panjang suar yang lebih panjang mengurangi keamanan. Secara umum, jika kumpulan data Anda didistribusikan secara tidak merata, atau jika Anda membuat beacon berbeda dari bidang yang berkorelasi, Anda perlu menggunakan panjang suar yang lebih pendek untuk meminimalkan jumlah informasi yang diungkapkan tentang distribusi kumpulan data Anda.

    Jika Anda meninjau model ancaman dan memutuskan bahwa setiap informasi pembeda yang diungkapkan tentang distribusi bidang tidak menimbulkan ancaman bagi keamanan Anda secara keseluruhan, Anda dapat memilih untuk menggunakan panjang suar yang lebih panjang dari kisaran yang direkomendasikan yang Anda hitung. Misalnya, jika Anda menghitung kisaran panjang suar yang disarankan untuk bidang sebagai 9-16 bit, Anda dapat memilih untuk menggunakan panjang suar 24 bit untuk menghindari kehilangan kinerja.

    Pilih panjang suar Anda dengan hati-hati. Setelah Anda menulis catatan baru dengan suar, Anda tidak dapat memperbarui panjang suar.

Contoh

Pertimbangkan database yang menandai unit bidang seperti ENCRYPT_AND_SIGN dalam tindakan kriptografi. Untuk mengkonfigurasi suar standar untuk unit lapangan, kita perlu menentukan jumlah positif palsu dan panjang suar yang diharapkan untuk bidang. unit

  1. Perkirakan populasi

    Setelah meninjau model ancaman dan solusi database saat ini, kami berharap unit bidang tersebut pada akhirnya memiliki 100.000 nilai unik.

    Ini berarti bahwa Populasi = 100.000.

  2. Hitung kisaran yang disarankan untuk jumlah tabrakan yang diharapkan.

    Untuk contoh ini, jumlah tabrakan yang diharapkan harus antara 2—316.

    2 ≤ number of collisions < √(Population)
    1. 2 ≤ number of collisions < √(100,000)
    2. 2 ≤ number of collisions < 316
  3. Hitung kisaran yang disarankan untuk panjang suar.

    Untuk contoh ini, panjang suar harus antara 9-16 bit.

    number of collisions = Population * 2-(beacon length)
    1. Hitung panjang suar di mana jumlah tabrakan yang diharapkan sama dengan minimum yang diidentifikasi pada Langkah 2.

      2 = 100,000 * 2-(beacon length)

      Panjang suar = 15,6, atau 15 bit

    2. Hitung panjang suar di mana jumlah tabrakan yang diharapkan sama dengan maksimum yang diidentifikasi pada Langkah 2.

      316 = 100,000 * 2-(beacon length)

      Panjang suar = 8,3, atau 8 bit

  4. Tentukan panjang suar yang sesuai untuk persyaratan keamanan dan kinerja Anda.

    Untuk setiap bit di bawah 15, biaya kinerja dan keamanan ganda.

    • 16 bit

      • Rata-rata, setiap nilai unik akan dipetakan menjadi 1,5 unit lainnya.

      • Keamanan: dua record dengan tag HMAC terpotong yang sama adalah 66% cenderung memiliki nilai plaintext yang sama.

      • Kinerja: kueri akan mengambil 15 catatan untuk setiap 10 catatan yang sebenarnya Anda minta.

    • 14 bit

      • Rata-rata, setiap nilai unik akan dipetakan menjadi 6,1 unit lainnya.

      • Keamanan: dua catatan dengan tag HMAC terpotong yang sama adalah 33% kemungkinan memiliki nilai plaintext yang sama.

      • Kinerja: kueri akan mengambil 30 catatan untuk setiap 10 catatan yang sebenarnya Anda minta.