Seite 1 von 1

Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 19. Mai 2018, 21:28
von Col.Mars
Hallo,
Ich habe ein Programm geschrieben, welches bei erkennen eines RFID Chips die dazugehörigen Personenbezogenen Daten anzeigt :D , da es sich jedoch um Personenbezogene Daten handelt müssen diese ja verschlüsselt werden. :|
Gibt es eine Möglichkeit, wie ich die Daten verschlüsselt speichern kann und dennoch später im Klartext wieder ausgeben kann ?

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 19. Mai 2018, 21:48
von Sirius3
„verschlüsseln“ impliziert, dass man die Daten mit dem richtigen Schlüssel auch wieder entschlüsseln kann.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 19. Mai 2018, 21:55
von __deets__
Enthashen geht nicht. Wenn das möglich wäre, könnte man aus einer md5 Summe ein Terabyte-Archiv rekonstruieren. Was toll wäre. Ist aber nicht.

Wenn du diese Daten speicherst mit dem Ziel gesetzlichen Vorgaben zur Datensparsamkeit zu genügen, darfst du sie nicht wieder entschlüsseln können. Wenn du das doch brauchst, ist es im Grunde egal ob die verschlüsselt sind oder nicht - du erhebst sie. Dann musst du entsprechend darauf hinweisen.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 26. Mai 2018, 16:29
von Col.Mars
Also brauche ich die Daten nicht verschlüsseln ?

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 26. Mai 2018, 16:44
von kbr
Wenn personenbezogene Daten auf einem öffentlichen Weg übertragen werden, dann musst Du sie verschlüsselt übertragen.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Samstag 26. Mai 2018, 16:49
von Sirius3
Am besten speichert man sie auch verschlüsselt. Was hast Du denn genau vor?

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Sonntag 27. Mai 2018, 14:47
von DeaD_EyE
Man könnte asymmetrische Verschlüsselung nutzen. GPG ließe sich z.B. dafür missbrauchen.
Die Anwendung hat den privaten Schlüssel zum entschlüsseln. Der öffentliche Schlüssel wird zum verschlüsseln der ID bzw. für die anderen Daten genommen.

Ansonsten eine symmetrische Verschlüsselung einsetzen. Wenn ich mich richtig erinnere ist GPG eine Kombination aus asymmetrischer + symmetrischer Verschlüsselung.
Bei einer asymmetrischen Verschlüsselung ist nur begrenzt Platz und deswegen speichert GPG dort den Schlüssel für die symmetrische Verschlüsselung.

Ich hoffe ich hab mich jetzt nicht zu umständlich ausgedrückt.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Dienstag 5. Juni 2018, 10:17
von Col.Mars
Die Datenübertragung findet nur im LAN zwischen einem Raspberry und einem Desktop statt. Ein Potentieller Hacker müsste sich also im LAN befinden (also das WPA2 Passwort knacken/kennen) und die MySQL Zugangsdaten kennen/knacken, bzw. das Speichermedium entwenden um an die Daten zu kommen.

@DeaD_Eye Kennst du da evtl ein Modul welches hilfreich wäre ? (Und ich glaube du meinst PGP und nicht GPG ?)

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Dienstag 5. Juni 2018, 10:42
von __blackjack__
@Col.Mars: Wenn jemand das Speichermedium entwenden kann und dort dann die personenbezogenen Daten einfach so unverschlüsselt auslesen kann, dann sind die nicht ausreichend geschützt. Du musst entweder die Datenbank verschlüsseln wenn das DBMS so etwas bietet, oder den Datenträger auf dem das DBMS die Daten ablegt. Der Schlüssel dafür darf dann natürlich nicht auf dem selben Speichermedium gespeichert sein, denn dann kann man ja alles problemlos entschlüsseln und der Schutz ist keiner.

Was spricht gegen GPG?

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Dienstag 5. Juni 2018, 10:54
von DeaD_EyE
Ein Modul wäre z.B. dieses: https://pythonhosted.org/gnupg/gnupg.html
AFIK wird gpg vom Betriebssystem genutzt. Früher gab es auch öfters Probleme aufgrund der unterschiedlichen gpg-Versionen.
Die Schlüsselpaare kannst du entweder mit dem Modul direkt erzeugen oder
du nutzt eine GUI, um die GPG-Keys anzulegen. Das Modul kann auf diese Schlüssel zugreifen.

Du könntest aber auch außerhalb von Python in der Shell Backups z.B. mit gpg direkt verschlüsseln, ohne das jetzt in Python implementieren zu müssen.
Was dann noch halt fehlen würde, wäre eine Verschlüsselung der aktiv genutzten Datenbank.

Ich behaupte mal einfach, dass in der Praxis so gut wie niemand eine Datenbankverschlüsselung einsetzt.
Egal wo du hinschaust, alle Datenbanken liegen offen unverschlüsselt auf dem Server.

Technisch ist das Problem bereits gelöst: https://mariadb.com/kb/en/library/data- ... ncryption/
Du kannst die Funktionalität des Servers nutzen, anstatt selbst an einer eigenen Lösung zu basteln.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Dienstag 5. Juni 2018, 17:30
von DasIch
Du kannst Festplattenverschlüsselung auf Betriebsystem Ebene Regeln, damit sind die Daten "at-rest" verschlüsselt, für alles andere verbinde dich zur Datenbank mit TLS, damit sind die auch "in-transit" verschlüsselt.

Re: Datenbankeinträge hashen und wieder enthashen

Verfasst: Dienstag 19. März 2019, 11:10
von Beowolf
Col.Mars hat geschrieben: Samstag 19. Mai 2018, 21:28 Hallo,
Ich habe ein Programm geschrieben, welches bei erkennen eines RFID Chips die dazugehörigen Personenbezogenen Daten anzeigt :D , da es sich jedoch um Personenbezogene Daten handelt müssen diese ja verschlüsselt werden. :|
Gibt es eine Möglichkeit, wie ich die Daten verschlüsselt speichern kann und dennoch später im Klartext wieder ausgeben kann ?
Hallo,
hast Du das Programm noch im Einsatz?

Grüße
Manfred