Sdílet prostřednictvím


Přehled účetní knihy

Platí pro: SQL Server 2022 (16.x) a novější verze Azure SQL DatabaseAzure SQL Managed Instance

Vytvoření důvěry v oblasti integrity dat uložených v databázových systémech je dlouhodobým problémem pro všechny organizace, které spravují finanční, lékařské nebo jiné citlivé údaje. Funkce účetní knihy poskytuje schopnosti pro detekci manipulace ve vaší databázi. Můžete kryptograficky ověřit jiné strany, jako jsou auditoři nebo jiné obchodní strany, že vaše data nebyla manipulována.

Ledger pomáhá chránit data před jakýmkoli útočníkem nebo vysoce privilegovaným uživatelem, včetně správců databází (DBA), správců systému a správců cloudu. Stejně jako u tradičního registru zachová tato funkce historická data. Pokud se v databázi aktualizuje řádek, zachová se její předchozí hodnota a bude chráněná v tabulce historie. Kniha účetnictví poskytuje záznam všech změn provedených v databázi v čase.

Hlavní kniha a historická data se spravují transparentně a nabízejí ochranu bez jakýchkoli změn aplikací. Tato funkce udržuje historická data v relační podobě, aby podporovala dotazy SQL pro auditování, forenzní účely a další účely. Poskytuje záruky integrity kryptografických dat při zachování výkonu, flexibility a výkonu databáze SQL.

Diagram architektury tabulky registru

Případy použití registru

Pojďme si projít některé výhody použití registru.

Streamování auditů

Jakákoli hodnota produkčního systému je založená na schopnosti důvěřovat datům, která systém spotřebovává a vytváří. Pokud uživatel se zlými úmysly manipuloval s daty ve vaší databázi, může mít katastrofální výsledky v obchodních procesech, které se na tato data spoléhají.

Udržování důvěry v data vyžaduje kombinaci povolení správných kontrolních mechanismů zabezpečení, aby se snížily potenciální útoky, postupy zálohování a obnovení a důkladné postupy zotavení po havárii. Audity externích stran zajišťují, aby byly tyto postupy zavedeny.

Procesy auditu jsou vysoce časově náročné aktivity. Auditování vyžaduje kontrolu implementovaných postupů na místě, jako je kontrola protokolů auditu, kontrola ověřování a kontrola řízení přístupu. I když tyto ruční procesy můžou odhalit potenciální mezery v zabezpečení, nemůžou poskytnout důkaz, že se data nezlými úmysly nezměnila.

Hlavní kniha poskytuje kryptografické doklady o integritě dat auditorům. Tento důkaz může zjednodušit proces auditování. Poskytuje také nererepudici týkající se integrity dat systému.

Obchodní procesy více stran

V některých systémech, jako jsou systémy řízení dodavatelského řetězce, musí několik organizací vzájemně sdílet stav z obchodního procesu. Tyto systémy se potýkají s výzvou, jak sdílet a důvěřovat datům. Mnoho organizací se mění na tradiční blockchainy, jako je Ethereum nebo Hyperledger Fabric, a digitálně transformují své obchodní procesy ve více stranách.

Blockchain je skvělé řešení pro sítě s více stranami, kde mezi stranami, které se účastní sítě, je nízká důvěra. Mnohé z těchto sítí jsou v podstatě centralizovaná řešení, kde je důležitá důvěra, ale plně decentralizovaná infrastruktura je těžké řešení.

Hlavní kniha poskytuje řešení pro tyto sítě. Účastníci můžou ověřit integritu centrálně uložených dat bez složitosti a dopadu na výkon, které v blockchainové síti zavádí konsensus sítě.

Úspěch zákazníka

Důvěryhodné mimořetězové úložiště pro blockchain

Pokud je blockchainová síť nezbytná pro více stran obchodní proces, možnost dotazovat se na data v blockchainu bez obětování výkonu je výzvou.

Typické vzory pro řešení tohoto problému zahrnují replikaci dat z blockchainu do mimořetězového úložiště, jako je databáze. Po replikaci dat do databáze z blockchainu ale integrita dat zaručuje ztrátu nabídky blockchainu. Hlavní kniha poskytuje integritu dat pro neřetězné úložiště blockchainových sítí, což pomáhá zajistit úplnou důvěryhodnost dat v celém systému.

Jak to funguje

Všechny řádky upravené transakcí v tabulce registru jsou kryptograficky SHA-256 hashovány pomocí datové struktury Merkle strom, která vytvoří kořenovou hodnotu hash představující všechny řádky v transakci. Transakce, které databáze zpracovává, jsou pak také hashovány pomocí SHA-256 společně prostřednictvím datové struktury ve formě Merkleova stromu. Výsledkem je kořenový hash, který tvoří blok. Blok je pak zhashován pomocí SHA-256, přičemž jako vstup do hashovací funkce slouží kořenový hash tohoto bloku spolu s kořenovým hashem předchozího bloku. Toto hashování tvoří blockchain.

Kořenové hodnoty hash v registru databáze, označované také jako hodnoty hash databáze, obsahují kryptograficky hashované transakce a představují stav databáze. Můžou se pravidelně generovat a ukládat mimo databázi v úložišti odolném proti manipulaci, jako je Azure Blob Storage nakonfigurované se zásadami neměnnosti, Azure Confidential Ledger nebo místním zařízením úložiště WORM (Read Many). Hodnoty hash databáze se později použijí k ověření integrity databáze porovnáním hodnoty hash v hodnotě hash s vypočítanými hodnotami hash v databázi.

Funkce registru se zavádí do tabulek ve dvou formách:

Aktualizovatelné tabulky registru i tabulky registru pouze s možností přidání poskytují důkazy o neoprávněných změnách a digitální forenziku.

Aktualizovatelné tabulky registru

Aktualizovatelné tabulky registru jsou ideální pro vzory aplikací, které očekávají vydání aktualizací a odstranění tabulek v databázi, jako je systém aplikací záznamů (SOR). Stávající vzory dat pro vaši aplikaci se nemusí měnit, aby se povolily funkce registru.

Aktualizovatelné tabulky registru sledují historii změn všech řádků v databázi, když dojde k transakcím, které provádějí aktualizace nebo odstranění. Aktualizovatelná tabulka registru je tabulka se systémovou verzí, která obsahuje odkaz na jinou tabulku se zrcadleným schématem.

Druhá tabulka se nazývá tabulka historie. Systém používá tuto tabulku k automatickému uložení předchozí verze řádku při každé aktualizaci nebo odstranění řádku v tabulce registru. Tabulka historie se vytvoří automaticky při vytváření aktualizovatelné tabulky registru.

Hodnoty v tabulce aktualizovatelných registrů a odpovídající tabulce historie poskytují kroniku hodnot databáze v průběhu času. Zobrazení registru generované systémem spojuje aktualizovatelnou tabulku registru a tabulku historie, abyste mohli snadno dotazovat tuto kroniku databáze.

Další informace o aktualizovatelných tabulkách registru naleznete v tématu Vytvoření a použití aktualizovatelných tabulek registru.

Tabulky záznamové pouze pro přidávání

Tabulky registru jen pro připojení jsou ideální pro vzory aplikací, které jsou určené jen pro vložení, jako jsou aplikace pro správu událostí (SIEM) a informace o zabezpečení. Tabulky registru jen pro připojení blokují aktualizace a odstranění na úrovni rozhraní API. Toto blokování poskytuje větší ochranu před privilegovanými uživateli, jako jsou správci systému a dba.

Vzhledem k tomu, že do systému jsou povoleny pouze vkládání, tabulky registru pouze pro připojení nemají odpovídající tabulku historie, protože neexistuje žádná historie, která by se měla zachytit. Stejně jako u aktualizovatelných tabulek registru poskytuje zobrazení registru přehled o transakci, která vkládaly řádky do tabulky jen pro připojení, a uživatel, který provedl vložení.

Další informace o tabulkách registru jen pro připojení naleznete v tématu Vytvoření a použití tabulek registru pouze připojení.

Databáze registru

Databáze registru poskytují jednoduché řešení pro aplikace, které vyžadují ochranu integrity všech dat po celou dobu životnosti databáze. Databáze registru může obsahovat pouze tabulky registru. Vytváření běžných tabulek (které nejsou tabulkami registru) není podporováno. Každá tabulka je ve výchozím nastavení vytvořená jako aktualizovatelná tabulka registru s výchozím nastavením, což usnadňuje vytváření takových tabulek. Databázi nakonfigurujete jako databázi registru při vytváření. Po vytvoření nelze databázi registru převést na běžnou databázi. Další informace naleznete v tématu Konfigurace databáze registru.

Databázové souhrny

Hash hodnota nejnovějšího bloku v databázovém registru se nazývá souhrn databáze . Představuje stav všech tabulek registru v databázi v době, kdy se blok vygeneroval.

Při vytvoření bloku se publikuje a uloží jeho přidružený digest databáze mimo databázi v úložišti odolném proti manipulaci. Vzhledem k tomu, že hodnoty hash databáze představují stav databáze v době, kdy byly generovány, je ochrana hodnot hash před manipulací nejdůležitější. Útočník, který má přístup k úpravě digestů, by mohl:

  1. Manipulujte s daty v databázi.
  2. Vygenerujte hodnoty hash, které představují databázi s těmito změnami.
  3. Upravte hodnoty hash tak, aby představovaly aktualizovanou hodnotu hash transakcí v bloku.

Hlavní kniha umožňuje automaticky generovat a ukládat přehledy databáze v neměnném úložišti nebo důvěrném registru Azure, aby se zabránilo manipulaci. Alternativně mohou uživatelé manuálně vytvářet kontroly souhrnů databází a ukládat je do umístění dle svého výběru. Data uložená v tabulkách registru se používají k pozdějšímu ověření, že data uložená v tabulkách registru nebyla manipulována.

Ověření registru

Funkce registru neumožňuje upravovat obsah systémových zobrazení registru, tabulky pouze připojení a tabulky historie. Útočník nebo správce systému, který má kontrolu nad počítačem, ale může obejít všechny kontroly systému a přímo manipulovat s daty. Například útočník nebo správce systému může upravovat soubory databáze v úložišti. Hlavní kniha nemůže takovým útokům zabránit, ale zaručuje, že se při ověření dat registru zjistí jakákoli manipulace.

Proces ověření registru přebírá jako vstup jeden nebo více dříve vygenerovaných hodnot hash databáze a rekomputuje hodnoty hash uložené v registru databáze na základě aktuálního stavu tabulek registru. Pokud vypočítané hodnoty hash neodpovídají vstupním hodnotám hash, ověření selže a značí, že data byla manipulována. Hlavní kniha pak hlásí všechny nekonzistence, které zjistila.