marvin.seb
Cadet 1st Year
- Registriert
- Okt. 2023
- Beiträge
- 9
Guten Tag,
ich muss bestimmte Nutzerdaten speichern, welche ich jedoch nicht im Klartext speichern darf. Deshalb wollte ich diese Daten hashen. Allerdings habe ich das Problem, dass es „nur“ 20.000.000 Möglichkeiten dieser Daten gibt. Wenn ich nun also via SHA256 hashe, könnte ich einfach eine Rainbow Table Attacke durchführen. Also für alle 20 Mio. Möglichkeiten den Hash generieren und dann mit der Datenbank abgleichen. 20 Mio. finde ich nicht wirklich viele Möglichkeiten und die entsprechende Rainbow Table sollte ja schnell erstellt sein.
Meine Frage ist nun, ob ihr eine Idee habt, wie ich die Rainbow Table Attacke verhindern könnten? Mir ist es wichtig, dass ich selber als Betreiber auch nicht die Möglichkeit habe auf irgendeinen Weg die gehashten Daten zu entschlüsseln.
Also wenn ich jetzt als Betreiber einen Salt berechne und diesen dann zusammen mit den Nutzerdaten hashen, dann weiß ich ja als Betreiber wie sich der Salt berechnet. Ergo könnte ich dann ja eine Rainbow Table Attacke gegen mich selber machen. Und ein Angreifer könnte ja auch an die Information kommen, wie sich der Salt berechnet.
Es ist halt auch wichtig, dass ich in der Zukunft die Nutzerdaten abgleichen kann. Also ein Nutzer gibt die Daten ein und dann werden diese gehasht. Wenn der Nutzer diese Daten nun 2 Monate später erneut eingibt, dann soll das natürlich mit dem Hash in der Datenbank verknüpft werden, welcher vor 2 Monaten erstellt wurde.
Edit: Etwas vereinfacht formuliert: Ich habe eine Webseite auf der man nach einer Telefonnummer suchen kann, um diese dann bewerten zu können. Allerdings will ich die Telefonnummer nicht im Klartext auf dem Server haben. Daher sind die Bewertungen nur mit dem Hash verknüpft. Und wenn der Nutzer die Telefonnummer im Klartext eingibt, dann wird diese gehasht und der Hash wird vom Server wiedererkannt und die Bewertungen dazu werden angezeigt. Allerdings kann es nur 20 Mio. Telefonnummern geben (Telefonnummern natürlich mehr, aber nehme das als Beispiel), weshalb ich schnell die gesamte Datenbank entschlüsseln kann via Rainbow Table. Ich als Betreiber sollte auch nicht die Möglichkeit haben mich selber mit einer Rainbow Attack anzugreifen. Denn wenn ich die Hashes einfach via Rainbow Attack entschlüsseln kann, dann kann ich die Telefonnummern auch direkt im Klartext speichern, was dann aber gegen den Datenschutz verstößt (zumindest in meinem Fall).
Vielleicht hat hier ja jemand eine Idee, wie man mit sowas umgeht.
Vielen Dank also schon mal im voraus!
ich muss bestimmte Nutzerdaten speichern, welche ich jedoch nicht im Klartext speichern darf. Deshalb wollte ich diese Daten hashen. Allerdings habe ich das Problem, dass es „nur“ 20.000.000 Möglichkeiten dieser Daten gibt. Wenn ich nun also via SHA256 hashe, könnte ich einfach eine Rainbow Table Attacke durchführen. Also für alle 20 Mio. Möglichkeiten den Hash generieren und dann mit der Datenbank abgleichen. 20 Mio. finde ich nicht wirklich viele Möglichkeiten und die entsprechende Rainbow Table sollte ja schnell erstellt sein.
Meine Frage ist nun, ob ihr eine Idee habt, wie ich die Rainbow Table Attacke verhindern könnten? Mir ist es wichtig, dass ich selber als Betreiber auch nicht die Möglichkeit habe auf irgendeinen Weg die gehashten Daten zu entschlüsseln.
Also wenn ich jetzt als Betreiber einen Salt berechne und diesen dann zusammen mit den Nutzerdaten hashen, dann weiß ich ja als Betreiber wie sich der Salt berechnet. Ergo könnte ich dann ja eine Rainbow Table Attacke gegen mich selber machen. Und ein Angreifer könnte ja auch an die Information kommen, wie sich der Salt berechnet.
Es ist halt auch wichtig, dass ich in der Zukunft die Nutzerdaten abgleichen kann. Also ein Nutzer gibt die Daten ein und dann werden diese gehasht. Wenn der Nutzer diese Daten nun 2 Monate später erneut eingibt, dann soll das natürlich mit dem Hash in der Datenbank verknüpft werden, welcher vor 2 Monaten erstellt wurde.
Edit: Etwas vereinfacht formuliert: Ich habe eine Webseite auf der man nach einer Telefonnummer suchen kann, um diese dann bewerten zu können. Allerdings will ich die Telefonnummer nicht im Klartext auf dem Server haben. Daher sind die Bewertungen nur mit dem Hash verknüpft. Und wenn der Nutzer die Telefonnummer im Klartext eingibt, dann wird diese gehasht und der Hash wird vom Server wiedererkannt und die Bewertungen dazu werden angezeigt. Allerdings kann es nur 20 Mio. Telefonnummern geben (Telefonnummern natürlich mehr, aber nehme das als Beispiel), weshalb ich schnell die gesamte Datenbank entschlüsseln kann via Rainbow Table. Ich als Betreiber sollte auch nicht die Möglichkeit haben mich selber mit einer Rainbow Attack anzugreifen. Denn wenn ich die Hashes einfach via Rainbow Attack entschlüsseln kann, dann kann ich die Telefonnummern auch direkt im Klartext speichern, was dann aber gegen den Datenschutz verstößt (zumindest in meinem Fall).
Vielleicht hat hier ja jemand eine Idee, wie man mit sowas umgeht.
Vielen Dank also schon mal im voraus!
Zuletzt bearbeitet: