Datenüberprüfung bei Amazon QLDB - Amazon Quantum Ledger-Datenbank (AmazonQLDB)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Datenüberprüfung bei Amazon QLDB

Wichtig

Hinweis zum Ende des Supports: Bestandskunden können Amazon QLDB bis zum Ende des Supports am 31.07.2025 nutzen. Weitere Informationen finden Sie unter Migrieren eines Amazon QLDB Ledgers zu Amazon Aurora SQL Postgre.

Mit Amazon QLDB können Sie darauf vertrauen, dass der Verlauf der Änderungen an Ihren Anwendungsdaten korrekt ist. QLDBverwendet ein unveränderliches Transaktionsprotokoll, ein sogenanntes Journal, für die Datenspeicherung. Das Journal verfolgt jede Änderung an Ihren übertragenen Daten und führt einen vollständigen und überprüfbaren Verlauf der Änderungen im Laufe der Zeit.

QLDBverwendet die Hash-Funktion SHA -256 mit einem Merkle-Tree-Modell, um eine kryptografische Darstellung Ihres Journals, einen sogenannten Digest, zu generieren. Der Digest dient als eindeutige Signatur des gesamten Änderungsverlaufs Ihrer Daten zu einem bestimmten Zeitpunkt. Sie verwenden den Digest, um die Integrität der Änderungen an Ihrem Dokument in Bezug auf diese Signatur zu überprüfen.

Welche Art von Daten können Sie verifizieren? QLDB

QLDBIn hat jedes Hauptbuch genau ein Journal. Ein Journal kann mehrere Strähnen umfassen. Dabei handelt es sich um Partitionen des Journals.

Anmerkung

QLDBunterstützt derzeit nur Zeitschriften mit einem einzigen Strang.

Ein Block ist ein Objekt, das bei einer Transaktion in der Journalsträhne festgeschrieben wird. Dieser Block enthält Objekte vom Typ Eintrag, die die Dokumentversionen wiedergeben, die aufgrund der Transaktion entstanden sind. Sie können entweder eine einzelne Revision oder einen ganzen Journalblock in überprüfenQLDB.

Das folgende Diagramm veranschaulicht diese Journalstruktur.

Das QLDB Amazon-Journalstrukturdiagramm zeigt eine Reihe von Hash-verketteten Blöcken, die einen Strang bilden, sowie die Sequenznummer und den Hash jedes Blocks.

Das Diagramm zeigt, dass Transaktionen in das Journal als Blöcke übergeben werden, die Dokumentrevisionseinträge enthalten. Sie zeigt auch, dass jeder Block mit nachfolgenden Blöcken Hash-verkettet ist und eine Sequenznummer aufweist, um seine Adresse innerhalb der Strähne anzugeben.

Hinweise zum Dateninhalt in einem Block finden Sie unter Journalinhalte bei Amazon QLDB.

Was bedeutet Datenintegrität?

Datenintegrität QLDB bedeutet, dass das Journal Ihres Hauptbuchs tatsächlich unveränderlich ist. Mit anderen Worten: Ihre Daten (bzw. alle Dokumentversionen) befinden sich in einem Zustand, in dem die folgenden Bedingungen erfüllt sind:

  1. Sie befinden sich an derselben Position im Journal, an der sie ursprünglich geschrieben wurden.

  2. Sie wurden seit dem ursprünglichen Schreibvorgang nicht verändert.

Wie funktioniert die Überprüfung?

Um zu verstehen, wie die Überprüfung bei Amazon funktioniertQLDB, können Sie das Konzept in vier grundlegende Komponenten unterteilen.

Hashing

QLDBverwendet die kryptografische Hash-Funktion SHA -256, um 256-Bit-Hashwerte zu erstellen. Ein Hash fungiert als eine eindeutige Signatur mit fester Länge für eine beliebige Anzahl von Eingabedaten. Wenn Sie einen Teil der Eingabe ändern — auch nur ein einzelnes Zeichen oder Bit —, ändert sich der Ausgabe-Hash vollständig.

Das folgende Diagramm zeigt, dass die Hash-Funktion SHA -256 völlig eindeutige Hashwerte für zwei QLDB Dokumente erzeugt, die sich nur durch eine einzige Ziffer unterscheiden.

Das Diagramm zeigt, dass die kryptografische Hashfunktion SHA -256 völlig eindeutige Hashwerte für zwei QLDB Dokumente erzeugt, die sich nur durch eine einzige Ziffer unterscheiden.

Die Hash-Funktion SHA -256 ist eine Möglichkeit, was bedeutet, dass es mathematisch nicht möglich ist, die Eingabe zu berechnen, wenn eine Ausgabe gegeben wird. Das folgende Diagramm zeigt, dass es nicht möglich ist, das QLDB Eingabedokument zu berechnen, wenn ein Ausgabe-Hashwert gegeben wird.

Das Diagramm zeigt, dass es nicht möglich ist, das QLDB Eingabedokument zu berechnen, wenn ein Ausgabe-Hashwert angegeben wird.

Die folgenden Dateneingaben werden zu QLDB Überprüfungszwecken per Hashwert eingegeben:

  • Dokumentversionen

  • PartiQL-Anweisungen

  • Revisionseinträge

  • Journalblöcke

Digest

Ein Digest ist eine kryptografische Darstellung des gesamten Journals Ihres Ledgers zu einem Zeitpunkt. Das Journal kann nur angehängt werden (Append-only) und Journalblöcke werden ähnlich wie Blockchains sequenziert und Hash-verkettet.

Sie können jederzeit eine Zusammenfassung für ein Hauptbuch anfordern. QLDBgeneriert den Digest und gibt ihn als sichere Ausgabedatei an Sie zurück. Anschließend verwenden Sie diesen Digest, um die Integrität von Dokumentüberarbeitungen zu überprüfen, die zu einem früheren Zeitpunkt übernommen wurden. Wenn Sie Hashes neu berechnen, indem Sie mit einer Revision beginnen und mit dem Digest enden, weisen Sie nach, dass Ihre Daten zwischenzeitlich nicht verändert wurden.

Merkle-Baum

Je größer Ihr Hauptbuch wird, desto ineffizienter wird es, die gesamte Hash-Kette des Journals zur Überprüfung neu zu berechnen. QLDBverwendet ein Merkle-Tree-Modell, um diese Ineffizienz zu beheben.

Ein Hash-Baum ist eine Baumdatenstruktur, in der jeder Blattknoten ein Hash eines Datenblocks darstellt. Jeder Nicht-Blattknoten ist ein Hash seiner untergeordneten Knoten. Ein Merkle-Baum, der häufig in Blockchains verwendet wird, hilft Ihnen dabei, große Datensätze mithilfe eines prüfungssicheren Mechanismus effizient zu verifizieren. Weitere Informationen zu Hash-Bäumen finden Sie auf der Wikipedia-Seite zu Hash-Bäumen. Weitere Informationen zu Hash-Prüfnachweisen und einen Beispiel-Anwendungsfall finden Sie im Artikel How Log Proofs Work auf der Website von Certificate Transparency.

Die QLDB Implementierung des Merkle-Baums basiert auf der vollständigen Hash-Kette eines Journals. In diesem Modell sind die Blattknoten die Menge aller einzelnen Dokumentrevisions-Hashes. Der Stammknoten stellt den Digest des gesamten Journals ab einem Zeitpunkt dar.

Mithilfe eines Hash-Baum-Prüfnachweises können Sie eine Revision verifizieren, indem Sie nur eine kleine Teilmenge des Revisionsverlaufs Ihres Ledgers überprüfen. Sie tun dies, indem Sie den Baum von einem bestimmten Blattknoten (Revision) bis zu seiner Stamm (Digest) durchlaufen. Entlang dieses Durchlaufpfads werden Geschwisterpaare von Knoten rekursiv gehasht, um ihren übergeordneten Hash zu berechnen, bis Sie mit dem Digest enden. Dieser Durchlauf weist eine zeitliche Komplexität von log(n)-Knoten in der Struktur auf.

Nachweis

Ein Beweis ist die geordnete Liste von Knoten-Hashes, die für einen bestimmten Digest und eine bestimmte Dokumentenrevision QLDB zurückgegeben wird. Er besteht aus den Hashes, die von einem Hash-Baummodell benötigt werden, um den gegebenen Blattknoten-Hash (eine Revision) mit dem Stamm-Hash (dem Digest) zu verketten.

Das Ändern von übergebenen Daten zwischen einer Revision und einem Digest unterbricht die Hash-Kette Ihres Journals und macht es unmöglich, einen Nachweis zu generieren.

Beispiel für eine Überprüfung

Das folgende Diagramm veranschaulicht das QLDB Amazon-Hash-Tree-Modell. Es zeigt einen Satz von Block-Hashes, die zum obersten Stammknoten aufgerollt werden, der den Digest einer Journalsträhne darstellt. In einem Ledger mit einem einsträhnigen Journal stellt dieser Stammknoten den Digest des gesamten Ledgers dar.

QLDBAmazon-Hash-Baumdiagramm für eine Reihe von Block-Hashes in einem Journalstrang.

Angenommen, Knoten A ist der Block, der die Dokumentrevision enthält, deren Hash-Wert Sie verifizieren möchten. Die folgenden Knoten stellen die geordnete Liste der Hashes dar, die QLDB Sie in Ihrem Beweis erhalten: B, E, G. Diese Hashes werden benötigt, um den Digest aus Hash A neu zu berechnen.

Gehen Sie wie folgt vor, um den Digest neu zu berechnen:

  1. Beginnen Sie mit Hash A und verketten Sie ihn mit Hash B. Hashen Sie dann das Ergebnis, um D zu berechnen.

  2. Verwenden Sie D und E, um F zu berechnen.

  3. Verwenden Sie F und G, um den Digest zu berechnen.

Die Verifizierung ist erfolgreich, wenn der neu berechnete Digest dem erwarteten Wert entspricht. Bei einem Revisions-Hash und einem Digest ist es nicht möglich, die Hashes in einem Nachweis zurückzuentwickeln. Daher beweist diese Übung, dass Ihre Revision tatsächlich an dieser Stelle des Journals im Verhältnis zum Digest geschrieben wurde.

Wie wirkt sich die Schwärzung von Daten auf die Überprüfung aus?

In Amazon löscht eine DELETE Anweisung ein Dokument nur logischQLDB, indem eine neue Version erstellt wird, die es als gelöscht markiert. QLDBunterstützt auch einen Vorgang zum Schwärzen von Daten, mit dem Sie inaktive Dokumentversionen in der Historie einer Tabelle dauerhaft löschen können.

Beim Schwärzen werden nur die Benutzerdaten in der angegebenen Version gelöscht, und die Journalsequenz und die Metadaten des Dokuments bleiben unverändert. Nachdem eine Revision geschwärzt wurde, werden die Benutzerdaten in der Revision (dargestellt durch die data Struktur) durch ein neues Feld ersetzt. dataHash Der Wert dieses Feldes ist der Amazon Ion-Hash der entfernten data Struktur. Weitere Informationen und ein Beispiel für einen Schwärzungsvorgang finden Sie unterRevisionen von Dokumenten redigieren.

Dadurch behält das Hauptbuch seine allgemeine Datenintegrität bei und bleibt im Rahmen der bestehenden Verifizierungsvorgänge kryptografisch überprüfbar. API Sie können diese API Operationen weiterhin wie erwartet verwenden, um einen Digest (GetDigest), einen Nachweis (GetBlockoder GetRevision) anzufordern und dann Ihren Verifizierungsalgorithmus mit den zurückgegebenen Objekten auszuführen.

Neuberechnung eines Revisions-Hashs

Wenn Sie die Revision eines einzelnen Dokuments überprüfen möchten, indem Sie den Hashwert neu berechnen, müssen Sie unter bestimmten Bedingungen überprüfen, ob die Revision geschwärzt wurde. Wenn die Revision geschwärzt wurde, können Sie den Hashwert verwenden, der in dem Feld angegeben ist. dataHash Wenn es nicht redigiert wurde, können Sie den Hash mithilfe des Felds neu berechnen. data

Durch diese bedingte Prüfung können Sie redigierte Versionen identifizieren und die entsprechenden Maßnahmen ergreifen. Sie können beispielsweise Datenmanipulationsereignisse zu Überwachungszwecken protokollieren.

Erste Schritte mit der Überprüfung

Bevor Sie Daten überprüfen können, müssen Sie vom Ledger einen Digest anfordern und für später speichern. Jede Dokumentversion, die vor dem neuesten im Digest enthaltenen Block festgeschrieben wurde, ist für die Überprüfung anhand des Digests qualifiziert.

Anschließend fordern Sie von Amazon einen Nachweis QLDB für eine berechtigte Version an, die Sie verifizieren möchten. Anhand dieses Nachweises rufen Sie einen Client an, um den Digest neu API zu berechnen, wobei Sie mit Ihrem Revisions-Hash beginnen. Solange der zuvor gespeicherte Digest außerhalb von bekannt und vertrauenswürdig ist, ist die Integrität Ihres Dokuments bewiesenQLDB, wenn Ihr neu berechneter Digest-Hash mit dem gespeicherten Digest-Hash übereinstimmt.

Wichtig
  • Konkret beweisen Sie, dass die Revision des Dokuments zwischen dem Zeitpunkt, an dem Sie diesen Digest gespeichert haben, und dem Zeitpunkt, an dem Sie die Überprüfung durchführen, nicht geändert wurde. Sie können eine Zusammenfassung anfordern und speichern, sobald eine Revision, die Sie später überprüfen möchten, in das Journal übernommen wurde.

  • Als bewährte Methode empfehlen wir, dass Sie regelmäßig Zusammenfassungen anfordern und diese nicht im Hauptbuch speichern. Legen Sie anhand der Häufigkeit fest, mit der Sie Überarbeitungen in Ihrem Hauptbuch vornehmen, wie häufig Sie Überarbeitungen anfordern.

    Einen ausführlichen AWS Blogbeitrag, in dem der Wert der kryptografischen Überprüfung im Kontext eines realistischen Anwendungsfalls erörtert wird, finden Sie unter Kryptografische Verifizierung in der Praxis mit Amazon. QLDB

step-by-step Anleitungen dazu, wie Sie einen Digest aus Ihrem Ledger anfordern und anschließend Ihre Daten verifizieren können, finden Sie im Folgenden: