Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applica a: SQL Server 2022 (16.x) e versioni successive
Azure SQL Database
Azure SQL Managed Instance
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 ledger offre funzionalità di rilevazione di manomissioni 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 registro fornisce 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.
Casi d'uso per il libro mastro
Esaminiamo alcuni vantaggi legati all'uso del libro mastro.
Semplificazione degli audit
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 multi-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.
Ledger 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.
Successo del cliente
Archiviazione off-chain sicura per la tecnologia 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, una volta che i dati sono replicati nel database dalla blockchain, la garanzia dell'integrità dei dati offerta dalla blockchain viene 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 funzione di hash SHA-256, attraverso 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 di radice nel libro mastro del database, detti anche digest del database, contengono transazioni crittografate e rappresentano lo stato del database. Possono essere generati e archiviati periodicamente all'esterno del database in un archivio a prova di manomissione, ad esempio Azure Blob Storage configurati con criteri di immutabilità, Azure Confidential Ledger o in locale Write Once Read Many (WORM) storage devices. 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:
- Tabelle del libro mastro aggiornabili che consentono di aggiornare ed eliminare righe nelle tabelle.
- Tabelle di registro di solo aggiunta che consentono solo inserimenti nelle proprie tabelle.
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 di registro aggiornabili tengono traccia della cronologia delle modifiche apportate a qualsiasi riga del database quando vengono effettuate transazioni che eseguono aggiornamenti e cancellazioni. Una tabella del libro mastro aggiornabile è una tabella versionata a livello di sistema che contiene un riferimento a un'altra tabella con uno schema speculare.
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 di registro di solo accodamento sono perfette per i modelli di applicazione a solo inserimento, come le applicazioni SIEM (Security Information and Event Management). Le tabelle di tipo append-only 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 di registro aggiornabili, una vista del registro fornisce informazioni dettagliate sulle transazioni che hanno inserito righe nella tabella append-only e sull'utente che ha eseguito l'inserimento.
Per ulteriori informazioni sulle tabelle del libro mastro di solo accodamento, consultare Creare e utilizzare le 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 del registro può contenere solo tabelle del registro. 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 al momento della 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 riepilogo 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 un sistema 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:
- Manomettere i dati nel database.
- Generare gli hash che rappresentano il database con tali modifiche.
- Modificare i digest per rappresentare l'hash aggiornato delle transazioni nel blocco.
Il Ledger consente di generare e archiviare automaticamente i digest del database su archiviazione immutabile o Azure Confidential Ledger, per prevenirne la manomissione. 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, delle tabelle con sola aggiunta 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 registro contabile segnala quindi tutte le incoerenze rilevate.
Contenuto correlato
- Che cos'è il libro mastro del database?
- Creare e usare tabelle del libro mastro di solo accodamento
- Creare e usare tabelle del libro mastro aggiornabili
- Abilitare l'archiviazione automatica del riepilogo
- Configurare un database di registro
- Verificare una tabella del libro mastro per rilevare una manomissione
- Portare la potenza della blockchain ad Azure SQL Database e SQL Server con ledger | Data Exposed