F
Funkener
Gast
Hallo zusammen,
ich stehe aktuell vor zwei schwierigen Aufgaben. Ich möchte Nutzerdaten verarbeiten, dessen Zustimmung ich nicht habe. Rechtlich gesehen dürfte ich es vielleicht, doch ich möchte mein Projekt so datenschutzfreundlich wie möglich gestalten, weshalb ich eine Lösung brauche, bei welcher ich keine Nutzerdaten im Klartext auf meinem Server abspeichere.
Ich bin kein Kryptographie-Experte, doch habe die Hoffnung, dass man es damit irgendwie lösen könnte. Falls sich jemand in dem Bereich gut auskennt, so wäre ich dankbar, wenn sich diese Person bei mir meldet. Würde auch dafür zahlen, wenn diese Person mich erfolgreich bei der Umsetzung unterstützt. Umso dankbarer bin ich natürlich, wenn mir hier im Forum einer kostenlos helfen könnte oder eine Idee hat. Vielen lieben Dank im voraus!
ich stehe aktuell vor zwei schwierigen Aufgaben. Ich möchte Nutzerdaten verarbeiten, dessen Zustimmung ich nicht habe. Rechtlich gesehen dürfte ich es vielleicht, doch ich möchte mein Projekt so datenschutzfreundlich wie möglich gestalten, weshalb ich eine Lösung brauche, bei welcher ich keine Nutzerdaten im Klartext auf meinem Server abspeichere.
Szanario: Ein Nutzer öffnet meine App und speichert sich die Telefonnummer "0175 1234567" als Lesezeichen ab. Ich möchte die Nummer aber nicht als Klartext auf meinem Server abspeichern, da ich nicht die Zustimmung des Besitzers habe. Der Nutzer soll aber auch bei einer Neuinstallation seiner App dieses Lesezeichen wieder abrufen können, weshalb ich das Lesezeichen zwingend auf meinem Server abspeichern muss.
Meine Idee: Kryptographie! Ich hatte daran gedacht, dass der Server jedem Account einen Key zuweist. Aus diesem Key wird dann lokal auf dem Endgerät ein lokaler Key erzeugt. Wenn nun ein Lesezeichen gesetzt wird, wird die Telefonnummer mit dem lokalen Key verschlüsselt und auf dem Server abgespeichert. So verarbeite ich dann keine Telefonnummer auf meinem Server.
Problem: Auf meinem Server befindet sich der Key für den Account und die verschlüsselte Telefonnummer. Ich könnte also auch ohne Probleme erneut selber einen lokalen Key aus dem Account Key generieren und damit die verschlüsselte Telefonnummer entschlüsseln. Natürlich kann ich das, da der Nutzer bei Gerätewechsel natürlich wieder seine Lesezeichen sehen will.
Frage: Habe ich damit irgendwas gewonnne? Theoretisch verarbeite ich ja weiterhin die Telefonnummer, da ich sie ganz einfach über die 2 Werten vom Server entschlüsseln kann? Habt ihr Ideen, wie ich das lösen könnte?
Meine Idee: Kryptographie! Ich hatte daran gedacht, dass der Server jedem Account einen Key zuweist. Aus diesem Key wird dann lokal auf dem Endgerät ein lokaler Key erzeugt. Wenn nun ein Lesezeichen gesetzt wird, wird die Telefonnummer mit dem lokalen Key verschlüsselt und auf dem Server abgespeichert. So verarbeite ich dann keine Telefonnummer auf meinem Server.
Problem: Auf meinem Server befindet sich der Key für den Account und die verschlüsselte Telefonnummer. Ich könnte also auch ohne Probleme erneut selber einen lokalen Key aus dem Account Key generieren und damit die verschlüsselte Telefonnummer entschlüsseln. Natürlich kann ich das, da der Nutzer bei Gerätewechsel natürlich wieder seine Lesezeichen sehen will.
Frage: Habe ich damit irgendwas gewonnne? Theoretisch verarbeite ich ja weiterhin die Telefonnummer, da ich sie ganz einfach über die 2 Werten vom Server entschlüsseln kann? Habt ihr Ideen, wie ich das lösen könnte?
Szenario: Ein Nutzer gibt eine Bewertung zu einer Telefonnummer ab. Kein Problem, da die Telefonnummer gehasht auf dem Server mit der Bewertung abgespeichert wird. Und wenn ein anderer Nutzer das Profil der Telefonnummer aufruft, wird die Telefonnummer erneut gehasht und der Hash wird mit samt Bewertung beim Server abgefragt. Nur möchte der Nutzer nun auch sehen, welche Bewertungen dieser zuletzt abgegeben hat.
Problem: Es erfolgt eine Abfrage dafür, welche Bewertungen dem Nutzer zugehörig sind. Auf dem Server wurde die Bewertung aber nur mit einer gehashten Telefonnummer abgespeichert. Daher könnte auch nur dieser Hashwert angezeigt werden. Das macht natürlich keinen Sinn.
Meine Idee: Beim Abgeben einer Bewertung wird die Bewertung wie oben beschrieben abgesendet. Zusätzlich wird dieser Bewertung noch ein Wert angehangen. Außerdem wird in einer zweiten Datenbank ein Eintrag erstellt, welcher abspeichert, dass Nutzer X die Telefonnummer "0175 1234567" bewertet hat. Auch diesem Eintrag wird ein Wert angehangen. Dann findet Kryptographie statt. Über den Wert von dem Eintrag aus der zweiten Datenbank gelangt man rechnerisch zu dem Wert aus dem Eintrag der Bewertung. Wenn nun also abgefragt wird welche Bewertungen der Nutzer zuletzt abgegeben hat, schaut man in der zweiten Datenbank und sieht, dass zu "0175 1234567" eine Bewertung abgegeben wurde. Das kann man schonmal in der App anzeigen. Und zusätzlich ruft man dann noch die Bewertungsdetails ab. Dies passiert dadurch, indem man den einen Wert wieder umrechnet und den Wert aus dem Eintrag mit der Bewertung erhält. Dadurch wurde eine Verknüpfung herstellt und die Nummer und die Bewertungsdetails können angezeigt werden.
Problem: Theoretisch verarbeite ich ja auch hier die Telefonnummer. Denn diese steht einmal im Klartext in der Datenbank, um sich zu merken, dass Nutzer X dieses Kennzeichen bewertet hat. Und von diesem Eintrag kann man dann ja direkt zu den Bewertungsdetails springen. Allerdings kann von der Bewertung nicht auf das Kennzeichen geschlossen werden.
Frage: Würdet ihr denken, dass das in Ordnung ist? Habt ihr eine bessere Idee? Ist mein Vorhaben überhaupt irgendwie möglich?
Problem: Es erfolgt eine Abfrage dafür, welche Bewertungen dem Nutzer zugehörig sind. Auf dem Server wurde die Bewertung aber nur mit einer gehashten Telefonnummer abgespeichert. Daher könnte auch nur dieser Hashwert angezeigt werden. Das macht natürlich keinen Sinn.
Meine Idee: Beim Abgeben einer Bewertung wird die Bewertung wie oben beschrieben abgesendet. Zusätzlich wird dieser Bewertung noch ein Wert angehangen. Außerdem wird in einer zweiten Datenbank ein Eintrag erstellt, welcher abspeichert, dass Nutzer X die Telefonnummer "0175 1234567" bewertet hat. Auch diesem Eintrag wird ein Wert angehangen. Dann findet Kryptographie statt. Über den Wert von dem Eintrag aus der zweiten Datenbank gelangt man rechnerisch zu dem Wert aus dem Eintrag der Bewertung. Wenn nun also abgefragt wird welche Bewertungen der Nutzer zuletzt abgegeben hat, schaut man in der zweiten Datenbank und sieht, dass zu "0175 1234567" eine Bewertung abgegeben wurde. Das kann man schonmal in der App anzeigen. Und zusätzlich ruft man dann noch die Bewertungsdetails ab. Dies passiert dadurch, indem man den einen Wert wieder umrechnet und den Wert aus dem Eintrag mit der Bewertung erhält. Dadurch wurde eine Verknüpfung herstellt und die Nummer und die Bewertungsdetails können angezeigt werden.
Problem: Theoretisch verarbeite ich ja auch hier die Telefonnummer. Denn diese steht einmal im Klartext in der Datenbank, um sich zu merken, dass Nutzer X dieses Kennzeichen bewertet hat. Und von diesem Eintrag kann man dann ja direkt zu den Bewertungsdetails springen. Allerdings kann von der Bewertung nicht auf das Kennzeichen geschlossen werden.
Frage: Würdet ihr denken, dass das in Ordnung ist? Habt ihr eine bessere Idee? Ist mein Vorhaben überhaupt irgendwie möglich?
Ich bin kein Kryptographie-Experte, doch habe die Hoffnung, dass man es damit irgendwie lösen könnte. Falls sich jemand in dem Bereich gut auskennt, so wäre ich dankbar, wenn sich diese Person bei mir meldet. Würde auch dafür zahlen, wenn diese Person mich erfolgreich bei der Umsetzung unterstützt. Umso dankbarer bin ich natürlich, wenn mir hier im Forum einer kostenlos helfen könnte oder eine Idee hat. Vielen lieben Dank im voraus!