Condividi tramite


Panoramica del libro mastro

Si applica a: SQL Server 2022 (16.x) Database Azure SQL Istanza gestita di SQL di Azure

Stabilire la fiducia nell'integrità dei dati archiviati nei sistemi di database è un problema di lunga data per tutte le organizzazioni che gestiscono dati finanziari, sanitari o altri dati sensibili. La funzione di libro mastro offre funzionalità di prova di manomissione nel database. È possibile usare la crittografia per attestare ad altre parti, ad esempio revisori dei conti o altre parti commerciali, che i dati non sono stati manomessi.

Il libro mastro consente di proteggere i dati da qualsiasi utente malintenzionato o utente con privilegi elevati, inclusi gli amministratori di database (DBA), gli amministratori di sistema e gli amministratori del cloud. Come per un libro mastro tradizionale, la funzionalità conserva i dati cronologici. Se una riga viene aggiornata nel database, il relativo valore precedente viene mantenuto e protetto in una tabella della cronologia. Il libro mastro offre una cronologia di tutte le modifiche apportate al database nel tempo.

Il libro mastro e i dati storici vengono gestiti in modo trasparente, offrendo protezione senza alcuna modifica dell'applicazione. La funzionalità mantiene i dati storici in un formato relazionale per supportare le query SQL per il controllo, l'analisi forense e altri scopi. Fornisce garanzie di integrità crittografica dei dati mantenendo la potenza, la flessibilità e le prestazioni del database SQL.

Diagramma dell'architettura delle tabelle del libro mastro.

Casi d'uso per il libro mastro

Esaminiamo alcuni vantaggi legati all'uso del libro mastro.

Controlli di semplificazione

Il valore di qualsiasi sistema di produzione si basa sulla capacità di considerare attendibili i dati che il sistema sta consumando e producendo. Se un utente malintenzionato ha manomesso i dati nel database, ciò può avere risultati disastrosi nei processi aziendali basati su tali dati.

Mantenere la fiducia nei dati richiede una combinazione tra abilitazione dei controlli di sicurezza appropriati per ridurre potenziali attacchi, procedure di backup e ripristino e procedure di ripristino di emergenza complete. I controlli di parti esterne assicurano che queste procedure siano messe in atto.

I processi di controllo sono attività che richiedono molto tempo. Il controllo richiede l'ispezione in sede delle procedure implementate, ad esempio la revisione dei log di controllo, l'ispezione dell'autenticazione e l'ispezione dei controlli di accesso. Anche se questi processi manuali possono esporre potenziali lacune nella sicurezza, non possono fornire una prova attestabile che i dati non sono stati modificati in modo dannoso.

Il libro mastro fornisce la prova crittografica dell'integrità dei dati ai revisori. Questa prova può aiutare a semplificare il processo di controllo. Permette anche il non ripudio relativo all'integrità dei dati del sistema.

Processi aziendali a più parti

In alcuni sistemi, ad esempio i sistemi di gestione della catena di approvvigionamento, più organizzazioni devono condividere lo stato da un processo aziendale a un altro. Questi sistemi si battono per mostrare come condividere e considerare attendibili i dati. Molte organizzazioni si stanno rivolgendo a blockchain tradizionali, ad esempio Ethereum o Hyperledger Fabric, per trasformare digitalmente i processi aziendali a più parti.

Blockchain è la soluzione ideale per le reti a più parti in cui la fiducia tra le parti che partecipano alla rete è bassa. Molte di queste reti sono soluzioni fondamentalmente centralizzate in cui la fiducia è importante, ma un'infrastruttura completamente decentralizzata rappresenta una soluzione complicata.

Il libro mastro fornisce una soluzione per queste reti. I partecipanti possono verificare l'integrità dei dati ospitati centralmente, senza le implicazioni di complessità e prestazioni introdotte dal consenso di rete in una rete blockchain.

Customer success

Archiviazione off-chain attendibile per blockchain

Quando una rete blockchain è necessaria per un processo aziendale a più parti, la possibilità di eseguire query sui dati sulla blockchain senza sacrificarne le prestazioni è una sfida.

I modelli tipici per risolvere questo problema comportano la replica dei dati dalla blockchain a un archivio fuori catena, ad esempio un database. Tuttavia, dopo la replica dei dati nel database dalla blockchain, l'integrità dei dati garantisce che un'offerta blockchain venga persa. Il libro mastro fornisce l'integrità dei dati per l'archiviazione off-chain delle reti blockchain, contribuendo a garantire la completa attendibilità dei dati nell'intero sistema.

Funzionamento

Le righe modificate da una transazione in una tabella del libro mastro vengono crittografate con la variante di algoritmo SHA-256, usando una struttura di dati ad albero di Merkle che crea un hash radice che rappresenta tutte le righe della transazione. Le transazioni elaborate dal database vengono poi anch’esse sottoposte alla crittografia con la variante di algoritmo SHA-256, usando una struttura di dati ad albero di Merkle. Il risultato è un hash radice che forma un blocco. Il blocco viene quindi sottoposto ad hash SHA-256 tramite l'hash radice del blocco, insieme all'hash radice del blocco precedente come input per la funzione di hash. L'hashing costituisce una blockchain.

Gli hash radice nel libro mastro del database, detti anche digest del database, contengono le transazioni con hash crittografico e rappresentano lo stato del database. Possono essere generati e archiviati periodicamente all'esterno del database in una risorsa di archiviazione a prova di manomissione, ad esempio un’Archiviazione BLOB di Azure configurata con criteri di immutabilità, Azure Confidential Ledger o dispositivi di archiviazione Write Once Read Many (WORM) locali. I digest del database vengono successivamente usati per verificare l'integrità del database confrontando il valore dell'hash nel digest con gli hash calcolati nel database.

La funzionalità del libro mastro viene introdotta nelle tabelle in due forme:

Sia le tabelle del libro mastro aggiornabili che le tabelle del libro mastro di solo accodamento forniscono funzionalità a prova di manomissione e forensi digitali.

Tabelle del libro mastro aggiornabili

Le tabelle del libro mastro aggiornabili sono perfette per i modelli di applicazione che prevedono l'emissione di aggiornamenti ed eliminazioni nelle tabelle del database, come ad esempio le applicazioni di sistemi di registrazione (SOR). I modelli di dati esistenti per l'applicazione non devono essere modificati per abilitare la funzionalità del libro mastro.

Le tabelle del libro mastro aggiornabili tengono traccia della cronologia delle modifiche apportate a qualsiasi riga del database usando le tabelle con controllo delle versioni di sistema quando vengono effettuate transazioni che eseguono aggiornamenti ed eliminazioni. Una tabella del libro mastro aggiornabile è una tabella con controllo delle versioni di sistema che contiene un riferimento a un'altra tabella con uno schema con mirroring.

L'altra tabella è denominata tabella di cronologia. Il sistema usa questa tabella per archiviare automaticamente la versione precedente della riga ogni volta che una riga della tabella temporale viene aggiornata o eliminata. La tabella di cronologia viene creata automaticamente quando viene creata una tabella del libro mastro aggiornabile.

I valori nella tabella del libro mastro aggiornabile e nella tabella della cronologia corrispondente forniscono un registro dell’evoluzione dei valori del database nel corso del tempo. Una vista del libro mastro generata dal sistema unisce la tabella del libro mastro aggiornabile e la tabella della cronologia in modo da poter eseguire facilmente una query su questo registro dell’evoluzione del database.

Per altre informazioni sulle tabelle del libro mastro aggiornabili, vedere Creare e usare tabelle del libro mastro aggiornabili.

Tabelle del libro mastro di solo accodamento

Le tabelle libro mastro di solo accodamento sono perfette per i modelli di applicazione a solo inserimento, ad esempio applicazioni SIEM (Security Information and Event Management). Le tabelle del libro mastro di solo accodamento bloccano gli aggiornamenti e le eliminazioni a livello di API. Questo blocco garantisce una protezione maggiore dalla manomissione da parte di utenti con privilegi, ad esempio amministratori di sistema e amministratori di database (DBA).

Poiché solo gli inserimenti sono consentiti nel sistema, le tabelle del libro mastro di solo accodamento non hanno una tabella della cronologia corrispondente perché non è presente alcuna cronologia da registrare. Come per le tabelle del libro mastro aggiornabili, una vista del libro mastro fornisce informazioni dettagliate sulle transazioni che inseriscono righe della tabella di solo accodamento e sull'utente che ha eseguito l'inserimento.

Per altre informazioni sulle tabelle del libro mastro di solo accodamento, vedere Creare e usare tabelle del libro mastro di solo accodamento.

Database del libro mastro

I database del libro mastro offrono una soluzione semplice per le applicazioni che richiedono la protezione dell'integrità di tutti i dati per l'intera durata del database. Un database di un libro mastro può contenere solo tabelle del libro mastro. La creazione di tabelle normali (diverse dalle tabelle del libro mastro) non è supportata. Ogni tabella è, per impostazione predefinita, creata come tabella del libro mastro aggiornabile con impostazioni predefinite, che semplificano la creazione di tali tabelle. È possibile configurare un database come database del libro mastro durante la creazione. Una volta creato, un database del libro mastro non può essere convertito in un database normale. Per altre informazioni, vedere Configurare un database di libro mastro.

Digest del database

L'hash del blocco più recente nel libro mastro del database è chiamato digest del database. Rappresenta lo stato di tutte le tabelle del libro mastro nel database al momento della generazione del blocco.

Quando si forma un blocco, il digest del database associato viene pubblicato e archiviato all'esterno del database in una risorsa di archiviazione a prova di manomissione. Poiché i digest dei database rappresentano lo stato dei database nel momento in cui sono stati generati, la protezione dei digest dalle manomissioni è fondamentale. Un utente malintenzionato che può accedere per modificare i digest potrebbe:

  1. Manomettere i dati nel database.
  2. Generare gli hash che rappresentano il database con tali modifiche.
  3. Modificare i digest per rappresentare l'hash aggiornato delle transazioni nel blocco.

Il libro mastro consente di generare e archiviare automaticamente i digest dei database in una risorsa di archiviazione non modificabile o in Azure Confidential Ledger per evitare manomissioni. In alternativa, gli utenti possono generare manualmente i digest dei database e archiviarli nella posizione desiderata. I digest dei database vengono usati per verificare successivamente che i dati archiviati nelle tabelle del libro mastro non siano stati manomessi.

Verifica del libro mastro

La funzionalità del libro mastro non consente di modificare il contenuto delle viste di sistema del libro mastro, delle tabelle di solo accodamento e delle tabelle della cronologia. Tuttavia, un utente malintenzionato o un amministratore di sistema, che ha il controllo del computer, può ignorare tutti i controlli di sistema e manomettere direttamente i dati. Ad esempio, un utente malintenzionato o un amministratore di sistema possono modificare i file di database nell'archiviazione. Il libro mastro non può prevenire tali attacchi, ma garantisce che eventuali manomissioni vengano rilevate quando vengono verificati i dati del libro mastro.

Il processo di verifica del libro mastro accetta come input uno o più digest di database generati in precedenza e ricompila gli hash archiviati nel libro mastro del database in base allo stato corrente delle tabelle del libro mastro. Se gli hash calcolati non corrispondono ai digest di input, la verifica ha esito negativo e significa che i dati sono stati manomessi. Il libro mastro segnala quindi tutte le incoerenze rilevate.

Vedi anche