Daten in Datenbank verschlüsseln

  • 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.

    Freundliche Grüße aus Wächtersbach, Rolf Dautrich

  • 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.