Ich habe bisher einen Aspekt absichtlich und gewissenhaft aus der sQLshell herausgelassen, mich aber jetzt - wo die Zahl der gefundenen Sicherheitslücken in allen möglichen Produkten immer mehr zunimmt - doch einmal damit beschäftigt...
Die sQLshell bietet ja Unterstützung bei der Migration ganzer Datenmodelle an, die auf XML beruht. Damit ist es auch möglich, zwischen Datenbank-Systemen zu nigrieren, die jede ihr eigenes proprietäres Austauschformat definieren und das jeweils andere nicht verstehen würden. Tabellenstruktur und einige andere Aspekte werden in extra dafür generierten XML-Schemata abgebildet.
Diese Lösung ist extrem flexibel: Beides - Schema und die eigentlichen Daten - läßt sich mit Standardwerkzeugen bearbeiten und anpassen. Es ist sogar möglich, mittels dieser Lösung eine direkte Migration zwischen Datenbanken mit der sQLshell zu realisieren: Sind zeitgleich beide Verbindungen (die zu Ziel und Quelle) in der sQLshell geöffnet, kommt der Migrationsprozess vollkommen ohne Dateien aus - alle Informationen werden direkt an die Zieldatenbank durchgeleitet.
Der Aspekt, den ich oben angesprochen habe und den ich bisher vernachlässigte ist sicherzustellen, dass die Daten, die aus der Quelle exportiert werden auch genau so wieder im Ziel importiert werden. Ich bin bisher hier der Unix-Philosophie gefolgt, die ja besagt: "Mach eine Sache - aber mache sie richtig!" Und daraus folgt, dass die Daten zunächst einmal aus dem Export als ganz normale Daten herauspurzeln und in Dateien geschrieben werden.
Anschließend steht es dem Anwender frei, diese Dateien zu verschlüsseln und/oder elektronisch zu signieren. Dann besteht aber ein kurzer Moment zwischen Abschluss des Exports und Beginn der Arbeit des hypothetischen Werkzeugs zum Absichern der Datei, in dem sie manipuliert werden könnte. Schließlich ist der Export zunächst nur eine Datei im Dateisystem ohne besondern Schutz. Und im Sinne von Zero Trust ist sogar die Möglichkeit nicht auszuschließen, dass das Dateisystem selbst kompromittiert ist und die Manipulation bereits beim Schreiben der Datei geschieht. Daher die Überlegung, das Signieren der Daten bereits in der sQLshell zu realisieren.
Zunächst schaute ich mir dafür XML Signaturen an. Allerdings gibt es in der Java-Implementierung hierbei ein Problem: Es besteht nur eine Implementierung für das Document Object Model (DOM) und nicht für die Simple API for XML (SAX). Der Unterschied: Für die Arbeiten mit XML-Dokumenten mittels DOM muss das Dokument komplett in den Speicher des Prozesses passen. Das lässt sich aber im beschriebenen Szenario nur schwer garantieren - schließlich ist die Größe des resultierenden XML nur von der Anzahl der Zeilen im Export abhängig und nicht begrenzt. Das war auch der Grund, warum ich mich entschied, für die Import/Export-Funktionalität der sQLshell auf SAX zu setzen.
Das bedeutet, es gibt mehrere Möglichkeiten für eine Umsetzung (abgesehen von der, die Umsetzung nicht vorzunehmen und alles so zu belassen, wie es aktuell ist):
Precision Time Protocol
15.10.2021
Durch meinen Neffen wurde ich neulich auf ein Video im Internet aufmerksam gemacht, aus dem ich von der Existenz des Protokolls PTP oder Precision Time Protocol erfuhr. Hier einige Gedanken dazu
WeiterlesenAI und ML Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Hardware Java Jupyter JupyterBinder Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Eine Präsentation, die einige der Gesichtspunkte beleuchtet, die man beachten sollte, wenn man sich für elektronische Signaturen und Zertifikate in der eigenen Anwendung entscheidet. Weiterhin werden Möglichkeiten zur Benutzung aufgezeigt, die etwas weiter vom Mainstream entfernt sind.
WeiterlesenNach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2026 folgt hier gleich die nächste:
WeiterlesenAls ich diese Lösung zur Darstellunbg und Analyse von beliebigen strukturierten Daten fand (das Beispiel erledigt das für ASN.1 kodierte Informationen), fasste ich den Entschluss, dass ich eine entsprechende Komponente in Java realisieren wollte.
WeiterlesenManche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.