Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Verifikasi data di Amazon QLDB
penting
Pemberitahuan akhir dukungan: Pelanggan yang ada akan dapat menggunakan Amazon QLDB hingga akhir dukungan pada 07/31/2025. Untuk detail selengkapnya, lihat Memigrasi QLDB Buku Besar Amazon ke Amazon Aurora Postgre
Dengan AmazonQLDB, Anda dapat mempercayai bahwa riwayat perubahan pada data aplikasi Anda akurat. QLDBmenggunakan log transaksional yang tidak dapat diubah, yang dikenal sebagai jurnal, untuk penyimpanan data. Jurnal melacak setiap perubahan pada data komitmen Anda dan mempertahankan riwayat perubahan yang lengkap dan dapat diverifikasi dari waktu ke waktu.
QLDBmenggunakan fungsi hash SHA -256 dengan model berbasis pohon Merkle untuk menghasilkan representasi kriptografi jurnal Anda, yang dikenal sebagai intisari. Intisari bertindak sebagai tanda tangan unik dari seluruh riwayat perubahan data Anda pada suatu titik waktu. Anda menggunakan intisari untuk memverifikasi integritas revisi dokumen Anda relatif terhadap tanda tangan tersebut.
Topik
- Jenis data apa yang dapat Anda verifikasiQLDB?
- Apa yang dimaksud dengan integritas data?
- Bagaimana cara kerja verifikasi?
- Contoh verifikasi
- Bagaimana redaksi data memengaruhi verifikasi?
- Memulai dengan verifikasi
- Langkah 1: Meminta intisari QLDB
- Langkah 2: Memverifikasi data Anda di QLDB
- Hasil verifikasi
- Tutorial: Memverifikasi data menggunakan AWS SDK
- Kesalahan umum untuk verifikasi
Jenis data apa yang dapat Anda verifikasiQLDB?
DalamQLDB, setiap buku besar memiliki tepat satu jurnal. Jurnal dapat memiliki banyak untaian, yang merupakan partisi jurnal.
catatan
QLDBsaat ini mendukung jurnal dengan satu untai saja.
Blok adalah objek yang berkomitmen pada untaian jurnal selama transaksi. Blok ini berisi objek entri, yang mewakili revisi dokumen yang dihasilkan dari transaksi. Anda dapat memverifikasi revisi individu atau seluruh blok jurnal diQLDB.
Diagram berikut menggambarkan struktur jurnal ini.
Diagram menunjukkan bahwa transaksi dilakukan pada jurnal sebagai blok yang berisi entri revisi dokumen. Ini juga menunjukkan bahwa setiap blok dirantai hash ke blok berikutnya dan memiliki nomor urut untuk menentukan alamatnya di dalam untai.
Untuk informasi tentang konten data dalam blok, lihatIsi jurnal di Amazon QLDB.
Apa yang dimaksud dengan integritas data?
Integritas data QLDB berarti bahwa jurnal buku besar Anda sebenarnya tidak dapat diubah. Dengan kata lain, data Anda (khususnya, setiap revisi dokumen) berada dalam keadaan di mana berikut ini benar:
-
Itu ada di lokasi yang sama di jurnal Anda tempat pertama kali ditulis.
-
Itu belum diubah dengan cara apa pun sejak ditulis.
Bagaimana cara kerja verifikasi?
Untuk memahami cara kerja verifikasi di AmazonQLDB, Anda dapat memecah konsep menjadi empat komponen dasar.
Hashing
QLDBmenggunakan fungsi hash kriptografi SHA -256 untuk membuat nilai hash 256-bit. Hash bertindak sebagai tanda tangan unik dan panjang tetap dari jumlah data input yang sewenang-wenang. Jika Anda mengubah bagian mana pun dari input—bahkan satu karakter atau bit—maka hash keluaran berubah sepenuhnya.
Diagram berikut menunjukkan bahwa fungsi hash SHA -256 menciptakan nilai hash yang benar-benar unik untuk dua QLDB dokumen yang berbeda hanya dengan satu digit.
Fungsi hash SHA -256 adalah salah satu cara, yang berarti bahwa secara matematis tidak layak untuk menghitung input ketika diberi output. Diagram berikut menunjukkan bahwa tidak layak untuk menghitung QLDB dokumen input ketika diberi nilai hash output.
Input data berikut di-hash QLDB untuk tujuan verifikasi:
-
Revisi dokumen
-
Pernyataan PartiQL
-
Entri revisi
-
Blok jurnal
Digest
Intisari adalah representasi kriptografi dari seluruh jurnal buku besar Anda pada suatu titik waktu. Sebuah jurnal hanya ditambahkan, dan blok jurnal diurutkan dan dirantai hash mirip dengan blockchain.
Anda dapat meminta intisari untuk buku besar kapan saja. QLDBmenghasilkan intisari dan mengembalikannya kepada Anda sebagai file keluaran aman. Kemudian Anda menggunakan intisari itu untuk memverifikasi integritas revisi dokumen yang dilakukan pada titik waktu sebelumnya. Jika Anda menghitung ulang hash dengan memulai dengan revisi dan diakhiri dengan intisari, Anda membuktikan bahwa data Anda belum diubah di antaranya.
Pohon Merkle
Seiring bertambahnya ukuran buku besar Anda, semakin tidak efisien untuk menghitung ulang rantai hash penuh jurnal untuk verifikasi. QLDBmenggunakan model pohon Merkle untuk mengatasi inefisiensi ini.
Pohon Merkle adalah struktur data pohon di mana setiap simpul daun mewakili hash dari blok data. Setiap node non-daun adalah hash dari node anaknya. Umumnya digunakan dalam blockchain, pohon Merkle membantu Anda memverifikasi kumpulan data besar secara efisien dengan mekanisme bukti audit. Untuk informasi lebih lanjut tentang pohon Merkle, lihat halaman Wikipedia pohon Merkle
QLDBImplementasi pohon Merkle dibangun dari rantai hash penuh jurnal. Dalam model ini, node daun adalah kumpulan semua hash revisi dokumen individual. Simpul akar mewakili intisari seluruh jurnal pada titik waktu.
Menggunakan bukti audit Merkle, Anda dapat memverifikasi revisi dengan memeriksa hanya sebagian kecil dari riwayat revisi buku besar Anda. Anda melakukan ini dengan melintasi pohon dari simpul daun tertentu (revisi) ke akarnya (intisari). Sepanjang jalur traversal ini, Anda secara rekursif melakukan hash pasangan node saudara kandung untuk menghitung hash induknya sampai Anda berakhir dengan intisari. Traversal ini memiliki kompleksitas waktu log(n)
node di pohon.
Bukti
Bukti adalah daftar urutan hash node yang QLDB mengembalikan intisari dan revisi dokumen tertentu. Ini terdiri dari hash yang diperlukan oleh model pohon Merkle untuk merantai hash simpul daun yang diberikan (revisi) ke hash root (intisari).
Mengubah data yang berkomitmen antara revisi dan intisari merusak rantai hash jurnal Anda dan membuatnya tidak mungkin untuk menghasilkan bukti.
Contoh verifikasi
Diagram berikut menggambarkan model pohon QLDB hash Amazon. Ini menunjukkan satu set hash blok yang menggulung ke simpul akar atas, yang mewakili intisari untai jurnal. Dalam buku besar dengan jurnal untai tunggal, simpul akar ini juga merupakan intisari dari seluruh buku besar.
Misalkan node A adalah blok yang berisi revisi dokumen yang hash ingin Anda verifikasi. Node berikut mewakili daftar hash yang diurutkan yang QLDB menyediakan dalam bukti Anda: B, E, G. Hash ini diperlukan untuk menghitung ulang intisari dari hash A.
Untuk menghitung ulang intisari, lakukan hal berikut:
-
Mulailah dengan hash A dan sambungkan dengan hash B. Kemudian, hash hasilnya untuk menghitung D.
-
Gunakan D dan E untuk menghitung F.
-
Gunakan F dan G untuk menghitung intisari.
Verifikasi berhasil jika intisari yang dihitung ulang sesuai dengan nilai yang diharapkan. Mengingat hash revisi dan intisari, tidak layak untuk merekayasa balik hash sebagai bukti. Oleh karena itu, latihan ini membuktikan bahwa revisi Anda memang ditulis di lokasi jurnal ini relatif terhadap intisari.
Bagaimana redaksi data memengaruhi verifikasi?
Di AmazonQLDB, sebuah DELETE
pernyataan hanya secara logis menghapus dokumen dengan membuat revisi baru yang menandainya sebagai dihapus. QLDBjuga mendukung operasi redaksi data yang memungkinkan Anda menghapus revisi dokumen yang tidak aktif secara permanen dalam riwayat tabel.
Operasi redaksi hanya menghapus data pengguna dalam revisi yang ditentukan, dan membiarkan urutan jurnal dan metadata dokumen tidak berubah. Setelah revisi disunting, data pengguna dalam revisi (diwakili oleh data
struktur) digantikan oleh bidang baru. dataHash
Nilai bidang ini adalah hash Amazon Ion dari data
struktur yang dihapus. Untuk informasi lebih lanjut dan contoh operasi redaksi, lihatMenyunting revisi dokumen.
Akibatnya, buku besar mempertahankan integritas data secara keseluruhan dan tetap dapat diverifikasi secara kriptografis melalui operasi verifikasi yang ada. API Anda masih dapat menggunakan API operasi ini seperti yang diharapkan untuk meminta digest (GetDigest), meminta bukti (GetBlockatau GetRevision), dan kemudian menjalankan algoritme verifikasi menggunakan objek yang dikembalikan.
Menghitung ulang hash revisi
Jika Anda berencana untuk memverifikasi revisi dokumen individual dengan menghitung ulang hash, Anda harus memeriksa secara kondisional apakah revisi telah dihapus. Jika revisi telah dihapus, Anda dapat menggunakan nilai hash yang disediakan di bidang. dataHash
Jika tidak disunting, Anda dapat menghitung ulang hash dengan menggunakan bidang. data
Dengan melakukan pemeriksaan bersyarat ini, Anda dapat mengidentifikasi revisi yang disunting dan mengambil tindakan yang sesuai. Misalnya, Anda dapat mencatat peristiwa manipulasi data untuk tujuan pemantauan.
Memulai dengan verifikasi
Sebelum Anda dapat memverifikasi data, Anda harus meminta intisari dari buku besar Anda dan menyimpannya untuk nanti. Setiap revisi dokumen yang dilakukan sebelum blok terbaru yang dicakup oleh intisari memenuhi syarat untuk verifikasi terhadap intisari tersebut.
Kemudian, Anda meminta bukti dari Amazon QLDB untuk revisi yang memenuhi syarat yang ingin Anda verifikasi. Dengan menggunakan bukti ini, Anda memanggil sisi klien API untuk menghitung ulang intisari, dimulai dengan hash revisi Anda. Selama intisari yang disimpan sebelumnya diketahui dan dipercaya di luar QLDB, integritas dokumen Anda terbukti jika hash intisari yang dihitung ulang cocok dengan hash intisari yang disimpan.
penting
-
Apa yang secara khusus Anda buktikan adalah bahwa revisi dokumen tidak diubah antara waktu Anda menyimpan intisari ini dan saat Anda menjalankan verifikasi. Anda dapat meminta dan menyimpan intisari segera setelah revisi yang ingin Anda verifikasi nanti dilakukan ke jurnal.
-
Sebagai praktik terbaik, kami menyarankan Anda meminta intisari secara teratur dan menyimpannya jauh dari buku besar. Tentukan frekuensi yang Anda minta intisari berdasarkan seberapa sering Anda melakukan revisi di buku besar Anda.
Untuk posting AWS blog terperinci yang membahas nilai verifikasi kriptografi dalam konteks kasus penggunaan yang realistis, lihat Verifikasi kriptografi dunia nyata
dengan Amazon. QLDB
Untuk step-by-step panduan tentang cara meminta intisari dari buku besar Anda dan kemudian memverifikasi data Anda, lihat berikut ini: