Mehr Sicherheit für Datenbanken in Oracle Database 20c Blockchain in Oracle-Datenbanken

Autor / Redakteur: Thomas Joos / Peter Schmitz

Seit Version 20c von Oracle Database können die Datenbanken mit Blockchain-Technologien abgesichert werden. Datenbanktabellen können mit einem neuen Typ erstellt werden und ermöglichen dadurch die Anbindung von Blockchain-Apps.

In Oracle Database 20c stehen mit dem Tabellentyp „Blockchain“ verschiedene Eigenschaften zur Verfügung, mit denen sich die Sicherheit in Oracle-Datenbanken verbessern lässt.
In Oracle Database 20c stehen mit dem Tabellentyp „Blockchain“ verschiedene Eigenschaften zur Verfügung, mit denen sich die Sicherheit in Oracle-Datenbanken verbessern lässt.
(© sdecoret - stock.adobe.com)

Mit Oracle Database 20c ist es möglich Datenbanktabellen mit dem Typ „Blockchain“ zu betreiben. Das ermöglicht Unternehmen die Verwendung von Blockchain-Technologien, ohne selbst eine Blockchain betreiben oder komplexe Änderungen an der Infrastruktur vornehmen zu müssen. Die neuen Tabellen werden direkt in Oracle-Datenbanken integriert und ermöglichen den Nutzen von Vorteilen einer Blockchain mit Standardlösungen wie Oracle Database. Dazu ist kein Betrieb einer eigenen Blockchain-Infrastruktur notwendig, was einen sehr schnellen Einstieg ermöglicht.

Vorteile und Möglichkeiten von Blockchain-Tabellen

Oracle Blockchain-Tabellen sind INSERT-Only. Operationen wie DROP TABLE, DELETE, MERGE und UPDATE können mit diesen Tabellen nicht durchgeführt werden. Werden solche Operationen auf die Datenbank ausgeführt, wird eine Fehlermeldung ausgelöst. Beim Erstellen der Tabellen wird der idle-Wert festgelegt, nachdem Daten aus der Tabelle gelöscht werden können.

Parallel zu den Werten der Spalte speichert die Tabelle auch krpytografische Hashwerte der bereits eingefügten Blöcke. Diese Daten speichert die Blockchain-Tabelle zusammen mit den neuen Daten. Dadurch bleibt die Blockchain jederzeit nachvollziehbar und unveränderbar. Der Hashwert wird über eine SHA2-512 auf Basis verschiedener Tabellenwerte errechnet.

Einfach ausgedrückt wird dadurch verhindert, dass Daten manipuliert und verändert werden können, da jeder Zeile mit der vorhergehenden Zeile verknüpft ist. Obwohl es sich bei den gespeicherten Daten um eine Blockchain-Funktion handelt, können die Daten mit SQL- oder PL/SQL ausgelesen werden, genauso wie bei normalen Datenbanken. Auch JDBC kann genutzt werden. Außerdem können die Blockchain-Tabellen auch mit Abfragen im Zusammenhang mit anderen Tabellen genutzt werden.

Die Funktionen lassen sich auch in der Oracle-Cloud testen. Auch hier stehen natürlich Oracle Databases zur Verfügung. Der Typ „Blockchain“ steht ab Version 20c zur Verfügung. Testen lassen sich diese Funktionen über eine Oracle Cloud Database Service Virtual Machine. Die neuen Tabellen arbeiten auch mit verschiedenen Funktionen in der Oracle Blockchain Platform zusammen.

Blockchain-Anwendungen in Oracle-Datenbanken verwalten

Mit dem Tabellentyp „Blockchain“ stehen verschiedene Eigenschaften zur Verfügung, mit denen die Sicherheit in Datenbanken gewährleistet werden kann. Die wichtigste Sicherheitsfunktion ist natürlich, dass Daten nur eingefügt und nicht verändert werden können. Auch das Löschen erfolgt speziellen Richtlinien, die auch beim Erstellen von Datenbanken bereits festgelegt werden können.

Das spielt vor allem dann eine Rolle, wenn Blockchain-Anwendungen angebunden werden sollen. Ein Einsatzszenario kann hier das Speichern von IoT-Daten sein, die transparent und sicher gespeichert werden sollen.

Blockchain-Tabellen werden, wie andere Tabellen auch, mit CREATE TABLE erstellt. Hier ist es notwendig, dass einige Angaben vorgenommen werden, zum Beispiel mit:

CREATE BLOCKCHAIN TABLE blocktab1 (bank VARCHAR2(128), d_date DATE, d_amount NUMBER)NO DROP UNTIL 30 DAYS IDLENO DELETE UNTIL 60 DAYS AFTER INSERTHASHING USING "SHA2_512" VERSION v1;

„NO DROP“ ist eine notwendige Angabe, da diese steuert wie Daten gelöscht werden können. Der Mindestwert ist 16. Mit ALTER TABLE kann der Wert nachträglich verändert werden. Wenn NO DELETE (mit oder ohne LOCKED) oder NO DELETE UNTILTIL ... LOCKED verwendet werden, können die Einstellungen nicht mehr geändert werden. Ansonsten kann mit ALTER TABLE der aktuelle Wert von n erhöht werden. Eine Verringerung ist dann aber nicht möglich.

HASHING USING legt fest, dass Hashing-Berechnungen für die Zeilenverkettung den SHA2-Algorithmus mit 512 Bit Ausgabelänge verwenden. Diese Klausel wird für OGG oder die logische Replikation benötigt, um sicherzustellen, dass bei der Replikation der DDL dieser Tabelle in einer neuen Version nicht standardmäßig ein anderer Hash-Algorithmus oder eine andere Datenformatversion verwendet wird.

Mehr zu den Möglichkeiten sind im Oracle-Blog-Beitrag „Blockchain inside Oracle Database 20c“ zu finden. In der Oracle-Dokumentation sind bereits umfassende Anleitungen zu finden, mit denen Blockchain-Tabellen angelegt und genutzt werden können.

Bereits beim Anlegen kann festgelegt werden, ab wann Daten in der Tabelle gelöscht werden dürfen, im oberen Beispiel nach 30 Tagen. Auch das Löschen ganzer Zeilen kann auf diesem Weg gesteuert werden. Bei der oben angelegten Tabelle können nach 60 Tagen Zeilen gelöscht werden. Aktuell sind die Datentypen NUMBER, VARCHAR2, RAW, JSON, BLOB, CLOB, DATE und einige weitere nutzbar. Um sich Informationen zu den angelegten Blockchain-Tabellen kann die Tabelle „user_blockchain_tables“ abgefragt werden:

SELECT * FROM user_blockchain_tables;

Mit Blockchain-Tabellen kann auch das Package „DBMS_BLOCKCHAIN_TABLE“ genutzt werden. Mit diesem können Zeilen gelöscht und überprüft werden. Auch das Verwalten von Signaturen ist damit möglich. Um Signaturen zu einer Tabelle hinzuzufügen, um bestimmte Zeilen zu verifizieren, benötigt die komplette Datenbank zunächst ein Zertifikat hinzugefügt. Für die Signaturen wird ein X.509-Zertifikat genutzt, dass auch bei anderen PKI-basierten Signaturen zum Einsatz kommt.

Auf dieser Basis wird die Signatur berechnet. Die einzelnen Befehle sind im Oracle-Blog und in der Oracle-Dokumentation zu finden.

(ID:47133021)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist