AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank mit Tabellenverschlüsselung benötigt.

Datenbank mit Tabellenverschlüsselung benötigt.

Ein Thema von johndoe049 · begonnen am 10. Mai 2019 · letzter Beitrag vom 18. Mai 2019
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 08:17
http://www.ibexpert.net/ibe/index.ph...ptionPluginFB3

Wobei bei firebird gleich die gesamte DB verschlüsselt ist, was aber auch keineswegs als
Nachteil zu sehen ist, wenn die Anforderung des Kunden eben eine Verschlüsselung erfordert.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 09:28
postgreSQL kann da auch was: https://www.postgresql.org/docs/8.1/...n-options.html und http://www.postgresonline.com/journa...-pgcrypto.html

Grüße
Klaus
Klaus

Geändert von Klaus01 (11. Mai 2019 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 10:53
Du kannst auch die Daten der Felder verschlüsseln. Z. B. mit dem DEC -> https://github.com/decfpc/DelphiEncryptionCompendium oder https://github.com/winkelsdorf/Delph...ionCompendium/
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.688 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 11:23
Das kann aber Probleme geben, wenn die verschlüsselten Felder zur Sortierung verwendet werden sollen. Auch in WHERE Clauses mit größer, kleiner oder BETWEEN wird das vermutlich nicht funktionieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 13:24
Das kann aber Probleme geben, wenn die verschlüsselten Felder zur Sortierung verwendet werden sollen. Auch in WHERE Clauses mit größer, kleiner oder BETWEEN wird das vermutlich nicht funktionieren.
Definitiv nicht mehr. Eine nicht auf DB-Ebene laufende Verschlüsselung ist eine KO-Kriterium wenn man mal etwas mehr als ein paar Datensätze benötig.
Auch sowas wie Abfragen mit Like und Wildcards geht auch nicht mehr.
Da kann man gleich ohne DBMS arbeiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
175 Beiträge
 
#6

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 15:17
Hallo,

danke für die Hinweise.

Bei MsSQL habe ich Informationen zur Version 2016 gefunden. Tabellenverschlüsselung, dass der DB Administrator das nicht lesen kann, bedeutet, dass man u.a. auf joins und where verzichten muss. Wie von Bernhard Geyer geschrieben, ist das nicht sinnvoll.

Bei PostrgeSQL ist unter pgcrypto folgendes geschrieben.
Zitat:
The /contrib function library pgcrypto allows certain fields to be stored encrypted. This is useful if only some of the data is sensitive. The client supplies the decryption key and the data is decrypted on the server and then sent to the client.

The decrypted data and the decryption key are present on the server for a brief time while it is being decrypted and communicated between the client and server. This presents a brief moment where the data and keys can be intercepted by someone with complete access to the database server, such as the system administrator.


Problem ist, dass der Kunde ein Audit hat und man auf dieses Scenario besteht.

Angeblich würde das Steuerrecht vorgeben, dass auch auch Änderungen vom DB Administrator nachvollzogen werden müssen, bzw. wenn dies nicht möglich ist unterbunden werden müssen.

Nur mal so gefragt: Kennt jemand so eine Vorgabe, oder ist dass von den Auditoren eine Wunschvorstellung?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 15:41
Hallo,

danke für die Hinweise.

Bei MsSQL habe ich Informationen zur Version 2016 gefunden. Tabellenverschlüsselung, dass der DB Administrator das nicht lesen kann, bedeutet, dass man u.a. auf joins und where verzichten muss. Wie von Bernhard Geyer geschrieben, ist das nicht sinnvoll.
Wenn ich Bernhard richtig verstanden habe bezog er sich auf nicht DBMS verschlüsselungs Methoden.
D.h. wenn Du von deinem Client die Daten verschlüsselt in dei Datenbank ablegst - dann hat das DBMS Probleme mit where, joins etc.
Es kann die Daten schlichtweg nicht lesen.

Wenn es eine Verschlüsselung ist, die vom DBMS unterstütz ist, dann kann das DBMS diese Daten bei SQL Abfragen auch entschlüsseln.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#8

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 17:13
Angeblich würde das Steuerrecht vorgeben, dass auch auch Änderungen vom DB Administrator nachvollzogen werden müssen, bzw. wenn dies nicht möglich ist unterbunden werden müssen.
Das finde ich irgendwie befremdlich:

Wenn also Änderungen vom DB Administartor nachvollzogen werden können, ist alles ok und man braucht keine Verschlüsselung?

Wenn man Änderungen aber nicht nachvollziehen kann, dann verschlüsselt man die Daten einfach, denn damit kann man dann sicherstellen, dass der DB Administrator die nicht nachvollziehbaren Änderungen sehen und erkennen kann und damit nicht feststellen kann, dass sie nicht nachvollziehbar sind?

Zugegeben: Etwas arg überspitzt formuliert. Aber mir scheint das nicht der richtige Ansatz zu sein.

Alternativ könnte man dem DB Administartor doch einfach auch den Zugriff auf die DB untersagen / ihm keine entsprechenden Rechte geben, dann kann er auch nicht in die Daten schauen.

Wenn man ihm jedoch Zugriff auf die Datenbank gewährt, so kann er auch die Daten in der Datenbank sehen, da die Verschlüsselung ja (höchstwahrscheinlich) für alle Datenbankanwender funktioniert. Oder anders formuliert: Wenn der DB Administartor die Daten in der Datenbank nicht lesen darf und sie deshalb verschlüsselt werden, so scheidet eine datenbankseitige Verschlüsselung aus, da sie ja letztlich für alle Anwender, also auch den DB Administrator, transparent ist, also nicht sichtbar. Verschlüsselt die Datenbank, so bekommen alle Anwender bei 'nem select * from tabelle die unverschlüsselten Daten zu sehen, auch der DB Administrator ist nur ein Anwender, wenn er auf die Daten schaut. Schaut man aber mit 'nem HEX-Editor ... an der Datenbank vorbei in die Daten, dann bekommt man nur "verschlüsseltes Gelumpe" zu sehen.

Oder soll die Datenbank hergehen und die Daten nur entschlüsselt liefern, wenn eine bestimmte Software sie anfordert und andernfalls die verschlüsselten Daten?

Das hieße dann: Die Verschlüsselung muss durch die Software erfolgen, damit ist eigentlich jede sinnvolle Arbeit mit der Datenbank hinfällig.

Natürlich kann man Abfragen parametrisiert gestalten und über die Parameter dann die verschlüsselten Werte an die Abfragen geben.
Aber, wie weiter oben schon erwähnt, wird es dann bei allem, was auch nur im Ansatz zu einer unscharfen Suche dient, wie like, between, Substrings aber auch Order By, dann eher "spaßig" werden oder zu unerwarteten Ergebnissen führen.

Einzig funktionieren könnten dann noch exakte Abfragen auf Werte, wie z. B. technische Datensatzschlüssel, Namen in exakter Schreibweise. Alles andere wird gnadenlos scheitern.

Nur mal so gefragt: Kennt jemand so eine Vorgabe, oder ist dass von den Auditoren eine Wunschvorstellung?
Egal ob es diese Vorgabe gibt oder nicht: Die gefolgerte Konsequenz erscheint mir fraglich.
Wenn ich nicht will, dass der DB Administrator in die Daten schauen kann, dann untersage ich ihm den Zugriff auf die Daten Punkt
Aber die Daten unlesbar und in letzter Konsequenz unbrauchbar zu machen, erscheint mir der falsche Ansatz.

In Arbeitsverträgen ist für gewöhnlich geregelt, wer wo in welche Daten Einsicht nehmen darf und welche Folgen die Nichtbeachtung hat.
Details regelt man über entsprechende Rechtevergaben für Datenbanken, Filesysteme ...
Man stellt ja auch nicht sicher, dass jemand alle Emails aller Nutzer einsehen kann, indem man sie so verschlüsselt, das bestimmte Emails nur von einem bestimmten Nutzer gelesen werden können, aber nicht von den anderen.

Bevor Du da jetzt weiterforschst, lass von Deinem Arbeitgeber erstmal definitiv klären, ob die "behauptete Rechtsgrundlage" eine "real existierende Rechtsgrundlage" ist, weise ihn schonmal auf die zu erwartenden Konsequenzen in Bezug auf die Nutzbarkeit der Software hin und lass ihn dann entscheiden, ob er den Auftrag überhaupt annehmen mag

PS:
Abgesehen davon kann man in "gewöhnlichen" Datenbanken per Grant Rechte vergeben.
Wenn der DB Administrator keine Rechte auf die Tabellen mit Geschäftsdaten bekommen soll, dann kann man sie ihm ja per Revoke entziehen und damit kann er dann auch nicht mehr in die Daten schauen. Natürlich wird das den Umfang seiner Arbeitsmöglichkeiten einschränken, aber sicherlich seine Arbeit nicht unmöglich machen.
(Achso: Der DB Administrator sollte in diesem Fall nicht das Recht haben, sich selbst beliebige Rechte zu erteilen )

Geändert von Delphi.Narium (11. Mai 2019 um 17:15 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
628 Beiträge
 
Delphi XE6 Enterprise
 
#9

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 15:30
http://www.ibexpert.net/ibe/index.ph...ptionPluginFB3

Wobei bei firebird gleich die gesamte DB verschlüsselt ist, was aber auch keineswegs als
Nachteil zu sehen ist, wenn die Anforderung des Kunden eben eine Verschlüsselung erfordert.
Was ist das für eine Verschlüsselung? IBPhoenix und IBSurgeon bieten beide AES-Verschlüsselung (IBPhoenix AES128 und AES256, IBSurgeon nur AES256), allerdings zu einem stolzen Preis, zumindest wenn man das jeweilige Modul mit eigener Software ausliefern will: da braucht man jeweils die "unlimited" Version und ist bei IBPhoenix mit $2500 und bei IBSurgeon mit €2500 dabei...
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
175 Beiträge
 
#10

AW: Datenbank mit Tabellenverschlüsselung benötigt.

  Alt 11. Mai 2019, 15:47
Für den Preis kann man aber auch andere Datenbanken bekommen.
Sind wengistens Firmenanteile dabei?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz