Hallo,
gibt es eine Möglichkeiten bestimmte Daten beim schreiben in die Datenbank zu verschlüsseln, so dass diese trotzdem für jeden berechtigten Benutzer im Backend normal angezeigt werden?
Mirko
Hallo,
gibt es eine Möglichkeiten bestimmte Daten beim schreiben in die Datenbank zu verschlüsseln, so dass diese trotzdem für jeden berechtigten Benutzer im Backend normal angezeigt werden?
Mirko
Klar, aber was ist der Use Case von sowas, wenn man es eh entschlüsseln kann?
Es geht um Personenbezogene Daten aus Formularen, welche nur für bestimmte Benutzer/Personen zugänglich sein dürfen – über die Frage des Sinns hab ich auch schon mit den Verantwortlichen diskutiert, eher erfolglos.
Aus diesem Grund würde ich das gern so umsetzen.
Es gibt ein Public/Private Key-Paar, was zum ver- und entschlüsseln der Daten verantwortlich ist. Der private Key zum entschlüsseln der Daten liegt selbst wieder verschlüsselt auf dem Server und zwar für jeden User der Zugriff auf die Daten haben soll eine eigene Instanz. Diese Instanz enthält den private Key ist aber für jeden User individuell verschlüsselt. Workflow wäre dann:
Speichern: public Key verwenden um zu verschlüsseln.
Auslesen: User loggt sich ein => entschlüsselt seine instanz des private Keys mit seinem eigenen Key und kommt somit an den original private Key um die Daten zu entschlüsseln.
Wenn ein neuer User Zugriff haben soll, muss halt beim Anlegen oder so (kann man per Plugin automatisieren) ein neues Key-Paar angelegt werden. Voraussetzung ist natürlich, dass der Ersteller des Users selbst Zugriff auf den private Key hat, der für das neue Key-Paar verwendet werden kann.
siehe: JCrypt
Ansonsten....sehr wackelig, viel Aufwand und am Ende will es der Kunde eh nicht mehr haben, da Suchen, übertragen etc. recht aufwändig/unmöglich ist + und natürlich muss man dann auch all-in gehen und z.B. keinen Export etc. anbieten.
Nachtrag: das Entschlüsseln der Daten muss natürlich automatisch passieren, sodass kein User jemals Zugriff auf den original private Key bekommt, ansonsten hast du ein Problem, wenn für einzelne User der Zugriff entzogen werden soll (z.B. wenn er die Firma verlässt).
Es gibt auch die Möglichkeit, über Browserlösungen, hier Ansätze, die man adaptieren kann: klick
Oder über Hardware-Tokens (Yubikey) oder ähnliches....
Am Ende macht es wahrscheinlich einfach am meisten Sinn, wenn du das Backend mit den richtigen Rechten ausstattest...
Ich habe früher in der IT einer Bank gearbeitet. Und auch hier haben sich die Security-Experten fast immer gegen die Verschlüsselung von Datenbeständen entschieden, weil die operativen Probleme als höher angesehen wurden als der Zugewinn an Sicherheit. Daher stimme ich bembelimen zu, dass die Lösung eher über eine sinnvolle Rechtevergabe im Backend erfolgen sollte.
Genau den Käse hatten wir mal bei einer Nextcloud-Installation.
Diese Verschlüsselung dann wieder rückgängig zu machen war so problematisch, dass die ganze Installation ohne Verschlüsselung wieder neu aufgesetzt werden musste.
Finger weg von der Verschlüsselung.
Das klingt mal nach guten Aussagen und ist für mich irgendwie auch schlüssig.
Herzlichen Dank an alle.
Ich würde das Thema erst mal abschließen.
Danke für die Infos.