Gambaran umum ledger

Berlaku untuk: Database Azure SQL SQL Server 2022 (16.x)

Membangun kepercayaan seputar integritas data yang disimpan dalam sistem database telah menjadi masalah lama bagi semua organisasi yang mengelola data keuangan, medis, atau data sensitif lainnya. Fitur ledger menyediakan kemampuan bukti perubahan dalam database Anda. Anda dapat membuktikan secara kriptografi kepada pihak lain, seperti auditor atau pihak bisnis lainnya, bahwa data Anda tidak diubah.

Ledger membantu melindungi data dari penyerang atau pengguna dengan hak istimewa tingkat tinggi, termasuk Administrator Database (DBA), administrator sistem, dan administrator cloud. Seperti halnya ledger tradisional, fitur ini mempertahankan data riwayat. Jika baris diperbarui dalam database, nilai sebelumnya dipertahankan dan dilindungi dalam tabel riwayat. Ledger menyediakan rangkaian semua perubahan yang dilakukan pada database dari waktu ke waktu.

Ledger dan data riwayat dikelola secara transparan, menawarkan perlindungan tanpa perubahan aplikasi. Fitur tersebut mempertahankan data riwayat dalam bentuk relasional untuk mendukung kueri SQL untuk audit, forensik, dan tujuan lain. Ini memberikan jaminan integritas data kriptografi sambil mempertahankan daya, fleksibilitas, dan performa database SQL.

Diagram arsitektur tabel ledger.

Menggunakan kasus untuk ledger

Mari kita membahas beberapa keuntungan untuk menggunakan ledger.

Menyederhanakan audit

Setiap nilai sistem produksi didasarkan pada kemampuan untuk mempercayai data yang dikonsumsi dan diproduksi sistem. Jika pengguna berbahaya telah mengubah data di database Anda, data tersebut dapat mengakibatkan hasil yang buruk dalam proses bisnis yang mengandalkan data tersebut.

Menjaga kepercayaan pada data Anda memerlukan kombinasi untuk memungkinkan kontrol keamanan yang tepat dalam mengurangi potensi serangan, praktik pencadangan dan pemulihan, dan prosedur pemulihan bencana menyeluruh. Audit oleh pihak eksternal memastikan bahwa praktik tersebut diberlakukan.

Proses audit adalah kegiatan yang sangat memakan waktu. Audit memerlukan pemeriksaan praktik yang diterapkan di tempat, seperti meninjau log audit, memeriksa autentikasi, dan memeriksa kontrol akses. Meskipun dapat mengekspos potensi celah keamanan, proses manual tersebut tidak dapat memberikan bukti konkret bahwa data tidak mengalami perubahan yang membahayakan.

Ledger memberikan bukti kriptografi integritas data kepada auditor. Bukti ini dapat membantu menyederhanakan proses audit. Bukti ini juga memberikan nonrepudiasi mengenai integritas data sistem.

Proses bisnis yang melibatkan beberapa pihak

Dalam beberapa sistem, seperti sistem manajemen rantai pasokan, beberapa organisasi harus membagikan status dari proses bisnis satu sama lain. Sistem tersebut berjuang dengan tantangan cara membagikan dan mempercayai data. Banyak organisasi beralih ke blockchain tradisional, seperti Ethereum atau Hyperledger Fabric, untuk mengubah proses bisnis yang melibatkan beberapa pihak secara digital.

Blockchain adalah solusi yang tepat untuk jaringan yang melibatkan beberapa pihak saat kepercayaan antara pihak yang terlibat di dalamnya rendah. Kebanyakan jaringan tersebut pada dasarnya adalah solusi terpusat dengan kepercayaan yang merupakan hal penting, tetapi infrastruktur yang sepenuhnya terdesentralisasi adalah solusi yang lebih penting.

Ledger menyediakan solusi untuk jaringan tersebut. Pihak yang terlibat dapat memverifikasi integritas data yang ditempatkan secara terpusat, tanpa kompleksitas dan implikasi performa yang diperkenalkan oleh konsensus jaringan dalam jaringan blockchain.

Keberhasilan pelanggan

Penyimpanan off-chain tepercaya untuk blockchain

Saat jaringan blockchain diperlukan untuk proses bisnis yang melibatkan beberapa pihak, kemampuan kueri data pada blockchain tanpa mengorbankan performa adalah sebuah tantangan.

Pemecahan masalah ini pada umumnya melibatkan replikasi data dari blockchain ke penyimpanan off-chain seperti database. Namun, setelah data direplikasi ke database dari blockchain, jaminan integritas data yang ditawarkan blockchain tidak berlaku. Ledger menyediakan integritas data yang diperlukan untuk penyimpanan off-chain jaringan blockchain, yang membantu memastikan kepercayaan data sepenuhnya di seluruh sistem.

Cara kerjanya

Setiap baris yang dimodifikasi oleh transaksi dalam tabel ledger secara kriptografis SHA-256 di-hash menggunakan struktur data pohon Merkle yang membuat hash akar yang mewakili semua baris dalam transaksi. Transaksi yang diproses database kemudian juga di-hash SHA-256 bersama-sama melalui struktur data pohon Merkle. Hasilnya adalah hash akar yang membentuk blok. Blok tersebut kemudian di-hash SHA-256 melalui akar hash dari blok tersebut, bersama dengan akar hash dari blok sebelumnya sebagai input ke fungsi hash. Hash tersebut membentuk blockchain.

Hash akar dalam ledger database, juga disebut Hash database, berisi transaksi yang di-hash secara kriptografis dan mewakili status database. Mereka dapat dibuat dan disimpan secara berkala di luar database dalam penyimpanan anti-perubahan, seperti Azure Blob Storage dikonfigurasi dengan kebijakan imutabilitas, Azure Confidential Ledger, atau perangkat penyimpanan Write Once Read Many (WORM) lokal. Hash database kemudian digunakan untuk memverifikasi integritas database dengan membandingkan nilai hash dalam hash terhadap hash yang dihitung dalam database.

Fungsionalitas ledger diperkenalkan ke tabel dalam dua bentuk:

Baik tabel ledger yang dapat diperbarui dan tabel ledger hanya-tambahkan memberikan bukti perubahan dan kemampuan forensik digital.

Tabel ledger yang dapat diperbarui

Tabel ledger yang dapat diperbarui sangat ideal untuk pola aplikasi yang diharapkan dapat melakukan pembaruan dan penghapusan tabel di database Anda, seperti aplikasi system of record (SOR). Pola data yang ada untuk aplikasi Anda tidak perlu berubah untuk mengaktifkan fungsionalitas ledger.

Tabel ledger yang dapat diperbarui melacak riwayat perubahan pada baris mana pun di database Anda ketika transaksi pembaruan atau penghapusan terjadi. Tabel ledger yang dapat diperbarui adalah tabel versi sistem yang berisi referensi ke tabel lain dengan skema cermin.

Tabel lainnya disebut tabel riwayat. Sistem menggunakan tabel ini untuk menyimpan versi baris sebelumnya secara otomatis setiap kali baris dalam tabel ledger diperbarui atau dihapus. Tabel riwayat secara otomatis dibuat saat Anda membuat tabel ledger yang dapat diperbarui.

Nilai yang terkandung dalam tabel ledger yang dapat diperbarui dan tabel riwayat terkait menyediakan rangkaian nilai database Anda dari waktu ke waktu. Tampilan ledger yang dihasilkan sistem menggabungkan tabel ledger yang dapat diperbarui dan tabel riwayat, sehingga Anda dapat dengan mudah meminta rangkaian database.

Untuk informasi selengkapnya tentang tabel ledger yang dapat diperbarui, lihat Membuat dan menggunakan tabel ledger yang dapat diperbarui.

Tabel ledger hanya-tambahkan

Tabel ledger hanya-tambahkan sangat ideal untuk pola aplikasi yang hanya menyisipkan, seperti aplikasi Security Information and Event Management (SIEM). Tabel ledger hanya-tambahkan memblokir pembaruan dan penghapusan di level API. Pemblokiran ini memberikan lebih banyak perlindungan perubahan dari pengguna dengan hak istimewa seperti administrator sistem dan DBA.

Karena hanya sisipan yang diizinkan masuk ke dalam sistem, tabel ledger hanya-tambahkan tidak memiliki tabel riwayat yang sesuai karena tidak ada riwayat yang disimpan. Seperti tabel ledger yang dapat diperbarui, tampilan ledger memberikan wawasan tentang transaksi yang menyisipkan baris ke dalam tabel hanya-tambahkan, dan pengguna yang melakukannya.

Untuk informasi selengkapnya tentang tabel ledger hanya-tambahkan, lihat Membuat dan menggunakan tabel ledger hanya-tambahkan.

Database ledger

Database ledger menyediakan solusi mudah untuk aplikasi yang memerlukan integritas semua data untuk dilindungi selama seluruh masa pakai database. Database ledger hanya dapat berisi tabel ledger. Membuat tabel reguler (yang bukan tabel ledger) tidak didukung. Setiap tabel, secara default, dibuat sebagai tabel ledger yang dapat diperbarui dengan pengaturan default, yang membuat pembuatan tabel tersebut sangat mudah. Anda mengonfigurasi database sebagai database ledger saat pembuatan. Setelah dibuat, database ledger tidak dapat dikonversi ke database biasa. Untuk informasi selengkapnya, lihat Mengonfigurasi database ledger.

Hash database

Hash blok terbaru dalam ledger database disebut hash database. Ini merepresentasikan status semua tabel ledger dalam database pada saat blok tersebut dihasilkan.

Ketika blok terbentuk, hash database terkait diterbitkan dan disimpan di luar database dalam penyimpanan anti-perubahan. Karena hash database merepresentasikan status database pada saat hash database tersebut dihasilkan, melindungi hash dari perubahan adalah yang terpenting. Penyerang yang memiliki akses untuk memodifikasi hash akan dapat:

  1. Mengubah data dalam database.
  2. Menghasilkan hash yang merepresentasikan database dengan perubahan tersebut.
  3. Memodifikasi hash untuk merepresentasikan hash transaksi yang diperbarui di blok.

Ledger menyediakan kemampuan untuk membuat dan menyimpan hash database secara otomatis di penyimpanan yang tidak dapat diubah atau Azure Confidential Ledger, untuk mencegah perubahan. Atau, pengguna dapat secara manual menghasilkan hash database dan menyimpannya di lokasi pilihan. Hash database digunakan untuk kemudian memverifikasi bahwa data yang disimpan dalam tabel ledger belum diubah.

Catatan

Manajemen hash otomatis hanya didukung di Azure SQL Database dan SQL Server 2022 (16.x) atau yang lebih tinggi. Mengelola hash secara manual didukung baik di Azure SQL Database maupun SQL Server.

Verifikasi ledger

Fitur ledger tidak mengizinkan modifikasi konten tampilan sistem ledger, tabel khusus tambahan, dan tabel riwayat. Namun, penyerang atau administrator sistem yang memiliki kontrol terhadap komputer dapat melewati semua pemeriksaan sistem dan langsung mengubah data. Misalnya, penyerang atau administrator sistem dapat mengedit file database di penyimpanan. Ledger tidak dapat mencegah serangan tersebut tetapi menjamin bahwa setiap perubahan akan terdeteksi ketika data ledger diverifikasi.

Proses verifikasi ledger dimaknai sebagai input satu atau beberapa hash database yang dihasilkan sebelumnya dan mengolah ulang hash yang disimpan dalam ledger database berdasarkan status tabel ledger saat ini. Jika hash komputasi tidak cocok dengan hash input, verifikasi gagal, mengindikasikan bahwa data telah diubah. Ledger kemudian melaporkan semua inkonsistensi yang telah terdeteksi.

Langkah berikutnya

Lihat juga