Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Welche Datenbank für Kassensoftware (https://www.delphipraxis.net/207523-welche-datenbank-fuer-kassensoftware.html)

AnonyM.E 2. Apr 2021 16:21

Datenbank: SQLite • Version: x • Zugriff über: x

Welche Datenbank für Kassensoftware
 
Hallo Forum,

Momentan schreibe ich an einem Kassenprogramm.

Nun heißt es ja, Daten dürften nicht veränderbar sein. Ich frage mich aber, wie man das realistisch gesehen überhaupt umsetzen soll. Selbst bei einer verschlüsselbaren Datenbank wie MS-SQL hat man ja immer noch das Problem, dass man das Passwort irgendwie in der Exe hinterlegen muss. Findet man das Passwort in der Exe oder im Arbeitsspeicher, so sind die Daten ja direkt wieder änderbar bzw. manipulierbar.

Daher mal so eine generelle Frage: Wie ist das mit der Nichtveränderbarkeit eigentlich gemeint? Weiß darüber jemand mehr? Soll das nur heißen, dass die Software, die man programmiert, keine Daten ändern können soll? Wo soll man da realistisch gesehen eine Grenze setzen, ab wann man es als nichtveränderbar bezeichnen kann?

Aktuell benutze ich SQLite. Der Grund: Die meiner Erfahrung nach extrem hohe Stabilität. Hat jemand andere Empfehlungen, um "nichtveränderbarkeit" in die Software reinzukriegen? SQLite unterstützt ja leider keine Verschlüsselung.

Bin hier unsicher. Und so wirklich beantworten kann oder will die Frage niemand. Das Finanzamt sagt, man "kann" solche Fragen nicht beantworten. Steuerberater und Rechtsanwälte sagen, man wisse es nicht. Beim Bundesministerium der Finanzen kommt die Aussage, man sei für diese Frage nicht zuständig. Obwohl diese Regelung von denen kommt?

Bin gespannt auf Eure Gedanken dazu,
Markus

Andreas13 2. Apr 2021 17:50

AW: Welche Datenbank für Kassensoftware
 
Hallo Markus,
ABSOLUTE Database https://www.componentace.com/bde_rep...e_database.htm hat eine eingebaute Verschlüsselung. Allerdings kann ich nicht beurteilen, ob die DB sonst für Deine Zwecke geeignet ist. Du kannst aber eine kostenlose Demo-Version herunterladen.
Gruß, Andreas

IBExpert 2. Apr 2021 18:04

AW: Welche Datenbank für Kassensoftware
 
Eine encrypted firebird 3.0 datenbank ohne den benutzten schlüssel zu verändern, halte ich für nahzu unmöglich.
wie man das macht und was man ggf braucht findest du zum Beispiel hier
https://www.ibexpert.net/ibe/pmwiki....ptionPluginFB3

Wie und wo du in deiner applikation den benutzten key dann speicherst ist ein ganz anderes thema, aber ganz wichtig:
kein Finanzamt der welt wird in irgendeiner Software die Unveränderbarkeit von Daten fordern können, weil veränderungen
von Daten (zum Beispiel Lagerbestände) elementarer Bestandteil von Software ist.

Wenn du aber egal ob encrypted db oder auch in einer normalen DB sämtliche Änderungen sauber protokollierst
und bei jedem betroffenen Datensatz alle Änderungen im Protokoll hast, ist das wesentlich wichtiger, mit diesen
Informationen dem schnüffelnden Prüfer eine ausführliche Möglichkeit gibst, Veränderungen der Datensätze
nachsehen zu können.

Ob du dafür am Ende Trigger basierende Protkolldatensätze erstellst, oder ganz modern irgendwelche Blockchain
Techniken einbaust, ist als Medium ziemlich egal. Auf Anfrage solltest du in der Lage sein, technisch zu begründen,
warum du der Meinung bist, das deine Software Mechanismen eingebaut hat, die nachträglich gemachte Veränderungen
erkennbar protokolliert und auf Anfrage als Historie exportieren kannst.

Wenn du als Softwarehersteller, der den Key der Datenbank aber nun mal kennt, deinen Kunden aber
ein kleines Zusatzprogramm anbietest, mit dem zum Beispiel ein Restaurant Inhaber einfach mal
die Tagessumsätze ausbuchen kann, ohne das am Ende Datensätze überbleiben, dann wird das
niemals jemand finden können, es sei denn, das Finanzamt macht mal ein paar Testkäufe und
prüft dann ob die dabei erstellten umsätze in der Datenbank auch wirklich erkennbar vorhanden sind
(was ja vor kurzem einem Softwarehersteller mit ziemlich vielen Chinarestaurants als Kunden
so passiert ist und wo nun die beiden Gründer der Softwarefirma wohl im Knast sitzen ....)

Aufgrund aktueller Verordnungen wirst du bei der Sicherung der Datenbankinhalte mit ganz normalen
Sicherungsmechnismen und ggf per Trigger erstellen Datensatzänderungsprotokollen ganz gut klar kommen,
weil du im Kassenbereich sowieso nicht um die Nutzung von einer TSE
https://de.wikipedia.org/wiki/Techni...itseinrichtung
herumkommen wirst, weil nur da drin zertifizierte Hardware verbaut ist, die dein Kunde
seinem Prüfer auch glaubhaft als sicheren Mechanismus zeigen kann und gefordert ist.

Wenn auf dem Wege alle relevanten Dokumente erstellt wurde und in diesem System (zB der Kassendrucker)
sauber und vollständig gespeichert wurde, wird ein Prüfer jederzeit mit Stichproben in deiner Software
nachschauen können, ob die denn die gleichen Inhalte anzeigt.

Warum da wer was und wann geändert hat, solltest du in deiner Software ziemlich lückenlos anzeigen können

Beispiel:
Auf dem Bon und damit in der TSE steht ein verkauftes Schnitzel zu 7 €, der Preis in der Kasse ist aber
aktuell 14 €. Wenn der Prüfer das seltsam findet und deine Software nicht nachweisen kann, warum der preis
mal 7 Euro und mal 14 Euro ist, wird der ziemlich schnell davon ausgehen, das deine Software da nicht konsistent
ist und dein Kunde vorwerfen, das er vermutlich 14€ dafür kassiert hat, aber nur 7€ abgerechnet hat und damit
ziemlich einfach nachvollziehbar mit Hilfe deiner Software bescheisst. Kein schöner Moment für Fragen ....

Warum wirst du niemals etwas wie eine TSE Sicherheit in der Software haben können? Starte deine Software
in einer VM und niemand hindert dich ggf mit geeigneten Mitteln daran, beliebige Inhalte direkt im Arbeitsspeicher
zu manipulieren, ohne das deine Software davon überhaupt irgemand was merkt.

Es gibt übrigend auch zum Beispiel eine Banking Software von Oracle, bei der alle beteiligten Softwaremodule
so dermaßen gegen manipulation abgesichert sind, wie es nur gehen kann. Das hindert aber einen in den Betrug
involvierten Administrator, der aus welchen Gründen auch immer sämtliche Adminzugänge und Rechte an der
Software direkt auf Datenbankebene kennt oder benutzte Software reverse engineert und anpasst, da auch
einfach mal ein paar Konten zu manipulieren oder Records zu löschen. So was scheint bei Banken, die
genau so schnell vom Markt verschwinden, wie die gekommen sind, gar nicht mal so unüblich zu sein,
Mitarbeiter mit entsprechendem Wissen sind sehr gesuchte Arbeitskräfte in solchen unseriösen Unternehmen ...

Oder als Fazit: konzentrier dich auf Integration der TSE und versuche, deine Software so abzusichern,
das nicht jeder 08/15 Datenbank Browser da die Inhalte manipulieren kann.

In einer Firebird Datenbank, die nicht encrypted ist, änder ich dir nahezu alles an daten, was ich will, in IBExpert
ist mit Tools-Database Inside ein Werkzeug eingebaut, mit dem man nicht nur defekte Datenbanken retten kann, sondern
auch die Inhalte auslesen kann, egal ob irgendein Datenbanktrigger das verhindern will oder nur ein User da angeblich
reinkommt, weil das Modul gar keinen Firebird Server benutzt, sondern die Inhalte direkt ausliest und man schnell
per Hex Editor die Position findet, um sachen zu ändern, die per Software oder Firebird SQL gar nicht gehen würde.
Im Vergleich zu anderen Datenbank ist der Aufbau einer FB Db sogar noch ziemlich kompliziert.

Ähnliche Tools findet man zu fast allen Datenbankformaten oder nimmt einfach einen Hex Editor und try and error ...

Mit einer in FB3 encrypteten Datenbank, von der wir den Key nicht kennen, kannst du das Tool und auch einen
Hex Editor aber direkt vergessen.

Daher wäre das schon ein weg, sicherer zu sein, als ohne, meine Erfahrung sagt mir aber, das im Handels- oder
Dienstleistungsbereich ganz wenig Kunden auch nur drüber nachdenken, an den Daten was verändern zu können, wenn
der Hersteller der Software das nicht als Feature per Mund zu Mund Propaganda streut. Das Knast Risiko muss
dann aber jeder für seine eigene Lebensplanung abwägen ...

Neumann 3. Apr 2021 12:54

AW: Welche Datenbank für Kassensoftware
 
Ich würde mir erstmal überlegen - warum überhaupt eine Kassensoftware, ich würde davon abraten das zu versuchen. Es gibt schon viele und der Aufwand ist groß. Unterschätzt man vorher meistens. Sagen wir mal 3-5 Mannjahre bis was brauchbares erzeugt ist. Wir machen auch Kassensoftware und selbst nach vielen Jahren muss man konstant dran arbeiten. Es geht mir nicht darum einem neuen "Konkurrenten" zu verhindern, ob es 120 oder 130 Mitbewerber gibt ist völlig uninteressant.

jaenicke 3. Apr 2021 14:30

AW: Welche Datenbank für Kassensoftware
 
Das stimmt, wenn es etwas sein soll, das dann auch verkauft werden kann. Dann sind 3-5 Mannjahre eher schon zu niedrig gegriffen.

Es kommt aber ganz auf das Ziel an. Eine kleine einfache Kassenanwendung kannst du auch alleine in ein paar Monaten schreiben. Nur kann die dann eben auch nicht mehr. Wenn das z.B. eine kleine Kasse für die Nutzung im eigenen Betrieb sein soll, z.B. in der Kantine, ist das aber ggf. auch schon vollkommen ausreichend.

Viele vergessen aber was da alles dran hängt und welche Gesetze es zu dem Thema gibt. Da ist die eingangs genannte Unveränderbarkeit der Daten (soweit das eben machbar ist) noch der kleinste Punkt. Und deshalb ist vor allem eines wichtig:
Fachwissen

Ich gebe mal ein paar Stichworte:
Fiskalisierung (wie schon genannt) mit Fiskalexporten usw. (z.B. §146 AO), Abschläge, Kassensturz, Ausdrucke, Schnittstellen zu anderen Systemen, Bedienerführung, ... (und das könnte man noch fast beliebig fortführen)

Hier im Forum sind ja einige Mitarbeiter von Firmen unterwegs, die in der Branche sind.

TurboMagic 3. Apr 2021 17:49

AW: Welche Datenbank für Kassensoftware
 
Meines Wissens nach kann FireDAC auch SQLite Datenbanken
verschlüsseln. Ist dann aber ein FireDAC Feature.

Frickler 6. Apr 2021 18:22

AW: Welche Datenbank für Kassensoftware
 
Zitat:

Zitat von TurboMagic (Beitrag 1486507)
Meines Wissens nach kann FireDAC auch SQLite Datenbanken
verschlüsseln. Ist dann aber ein FireDAC Feature.

UniDAC kann das auch. Es gibt aber auch eine "offizielle" SQLite Verschlüsselung, die "SQLite Encryption Extension". Die ist nur ziemlich teuer ($2000,-).

Neumann 6. Apr 2021 19:05

AW: Welche Datenbank für Kassensoftware
 
Muss man überhaupt verschlüsseln, es wir doch alles über die TSE abgesichert?

himitsu 6. Apr 2021 19:27

AW: Welche Datenbank für Kassensoftware
 
Zitat:

Zitat von Neumann (Beitrag 1486588)
Muss man überhaupt verschlüsseln, es wir doch alles über die TSE abgesichert?

Klingt so, als will er eine eigene "TSE" aus irgendeiner DB bauen.

Daniel 7. Apr 2021 06:09

AW: Welche Datenbank für Kassensoftware
 
Das liest sich mittlerweile fast so, als wäre es anrüchig, eine Datenbank verschlüsseln zu wollen. Dafür kann es viele Gründe geben und keiner davon muss euch genannt werden.
Und nein, eine TSE lässt sich nicht selber entwickeln. Ich habe auch nicht herausgelesen dass dies auch nur ansatzweise geplant sei. Ich weiß nicht, warum ihm das jetzt unterstellt werden muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz