Frage:
Wird die Privatsphäre beim Teilen von SHA-1-Hash-URLs beeinträchtigt?
Jibran
2016-11-08 14:02:28 UTC
view on stackexchange narkive permalink

Ich arbeite an einem kleinen Nebenprojekt, das ein Browser-Add-On und einen Backend-Service umfasst. Der Service ist ziemlich einfach. Geben Sie eine URL ein und es wird geprüft, ob die URL in einer Datenbank vorhanden ist. Wenn die URL gefunden wird, werden auch einige zusätzliche Informationen zurückgegeben.

Das Browser-Add-On leitet alle vom Benutzer geöffneten URLs an den Dienst weiter und überprüft die Antwort. Das Teilen jeder URL, die Sie durchsuchen, ist natürlich ein großes Nein-Nein. Also habe ich stattdessen darüber nachgedacht, SHA1 (oder eine ähnliche Hashing-Funktion) zu verwenden, um einen Hash der URL zu erstellen, und diesen nur an den Backend-Service zu senden, um die Mitgliedschaft in der Datenbank zu überprüfen.

Meine Frage ist, ob Dieses Schema ist besser für die Privatsphäre der Benutzer. Ich denke, dass ich jetzt keine URLs mehr teile und der Benutzer nur dann weiß, wenn er bereits in der Datenbank vorhanden ist.

Ich verstehe möglicherweise nicht richtig, aber "Informationen über einen Host in einer Datenbank nachschlagen" ist nicht genau das, was z.DNS-Abfragen tun?Die Leute machen den ganzen Tag Klartext-DNS-Abfragen.Wie ist dies ein Problem, es sei denn, Ihre Benutzer sind in Ihrem Dienst identifizierbar?Jemand von einer IP-Adresse hat "findcheapsex.com" nachgeschlagen, na und.Man beachte, dass z.B.Google verfolgt auch Klicks _und_ bemüht sich sehr, Nutzer tatsächlich zu identifizieren (was für Hunderte von Millionen Menschen vollkommen akzeptabel erscheint).
Sie können sich [homomorphe Verschlüsselung] (https://en.wikipedia.org/wiki/Homomorphic_encryption) ansehen, um Berechnungen für verschlüsselte Daten durchzuführen.[Einer der Top-Forscher] (https://www.google.ch/search?q=raluca+ada+popa+app) schlug auf diesem Gebiet einige Apps dafür vor
Schauen Sie sich Private Information Retrieval an: https://en.wikipedia.org/wiki/Private_information_retrieval.Homomorphe Verschlüsselung könnte übertrieben sein.
@Damon - Es gibt einen großen Unterschied zwischen der Protokollierung einer DNS-Abfrage für "webmd.com" und der Protokollierung der vollständigen URL für "webmd.com/syphilis/treatment".
Ich gehe einfach davon aus, dass Sie bereits wissen, dass Sie diese salzen sollten.Es wird nicht viel bei den Problemen helfen, die andere Leute erwähnt haben, aber es macht einige der Exploits etwas schwieriger.
Sechs antworten:
Josef says Reinstate Monica
2016-11-08 14:10:53 UTC
view on stackexchange narkive permalink

Es ist besser, aber nicht perfekt.

Während es (derzeit) unmöglich ist, die URL für einen bestimmten Hash abzurufen, hat natürlich jede URL den gleichen Hash.

Also Es ist nicht möglich, alle URLs anzuzeigen, die ein Benutzer durchsucht, aber es ist sehr wahrscheinlich, dass die meisten von ihnen abgerufen werden.

Während es nicht möglich ist, Benutzer A zu sehen, besucht er HASH1 und kommt zu dem Schluss, dass HASH1 bedeutet FancyDomainBelongingToUserA-NoOneElseVisits.com ist es beispielsweise möglich, nur den Hash für CheatOnMyWife.fancytld zu berechnen und dann zu sehen, welche Benutzer diese Site besuchen.

Ich würde nicht ' Ich denke nicht, dass dies zum Schutz der Privatsphäre des Benutzers gilt.

Auch das Übereinstimmen von Benutzern, die viele ähnliche Domains besuchen, kann ziemlich aufschlussreich sein.

Sind Dienste wie Web of Trust oder die Google Toolbar (als es noch vorhanden war) oder ähnliche Dienste, die URLs bewerten / bewerten, mit denselben Problemen konfrontiert?Wie umgehen sie diese Datenschutzbedenken?
Angesichts der Art des Projekts ist dieser Schritt möglicherweise unvermeidlich und etwas, das Benutzer nur für den Wert akzeptieren, den sie daraus ziehen, da ich dem Benutzer im Wesentlichen einige Informationen basierend auf der von ihm besuchten URL zur Verfügung stelle.Oder gibt es einen anderen Weg?
@Jibran tun sie nicht: [Web of Trust verkauft Ihren Browserverlauf, deinstallieren Sie ihn jetzt] (https://lifehacker.com/web-of-trust-sells-your-browsing-history-uninstall-it-1788667989), [Web of Trust (WOT) Add-on von Chrome & Firefox entfernt] (http://news.thewindowsclub.com/web-of-trust-wot-add-on-taken-down-86981/), ..Ich weiß nicht, was Sie tun, aber wenn Sie alle Benutzer-URLs sammeln müssen, ist wahrscheinlich alles falsch.Sie können sehen, wie das sichere Surfen in Google funktioniert und funktioniert.Sie verwendeten einen Bloom-Filter und speichern jetzt das ** Präfix ** von Hashes fehlerhafter Domains.
Wenn ich meine URL hashe, bin ich schon einen Schritt voraus?:) Da es nicht möglich ist, das Senden der URL oder eines Hash-AFAIK zu vermeiden, müssen die Benutzer dem Dienst vertrauen, um dies zu nutzen?Oder gibt es einen Weg, dies zu umgehen?
@Jibran Ich weiß nicht genau, was Sie erreichen wollen.Schauen Sie sich zum Beispiel die Methoden an, die Google Safe Browsing verwendet, und prüfen Sie, ob dies zu Ihnen passt.Sie sind voraus, aber nicht weit würde ich sagen.Überlegen Sie, wie Sie sich über die Schlagzeilen fühlen würden ** Jibrans Addon zerstört Ihre Privatsphäre, Deinstallieren Sie es jetzt ** oder ** Jibrans Addon, das von Chrome & Firefox entfernt wurde ** ...
Vielen Dank.Das sichere Durchsuchen von Google mithilfe der Update-API https://developers.google.com/safe-browsing/v4/update-api scheint ein interessanter Ansatz zu sein.Ich kann das wahrscheinlich nicht verwenden, da meine Datenbank alle paar Minuten aktualisiert wird, aber es ist immer noch interessant zu sehen, wie sich Googles nähert.Dies sagt mir jedoch, dass Sie immer einen Vergleich durchführen müssen, egal ob Sie dies auf dem lokalen Computer oder auf dem Remote-Server tun.Vielen Dank für all die Infos und Hilfe.
@Jibran, aber vielleicht können Sie nur ein Hash-Präfix und nicht den vollständigen Hash vergleichen?https://developers.google.com/safe-browsing/v4/urls-hashing#hash-prefix-computations Hängt natürlich von Ihrer genauen Anwendung ab.
Das klingt besser.Ich gehe jedoch davon aus, dass dies die Privatsphäre nur verbessert, wenn das Hash-Präfix eine größere Wahrscheinlichkeit einer Kollision mit anderen URL-Präfixen aufweist.Denn sonst ist es genauso identifizierbar wie der vollständige Hash, wenn ich mich nicht irre.
Ich denke auch, dass Google Präfixe verwendet, um Platz zu sparen und den Datenschutz nicht zu verbessern, da Sie sich nicht mehr mit URLs befassen, die Ihr lokales System verlassen, sobald Sie die vollständige Liste der fehlerhaften URLs haben.
Als [Arminius] (https://security.stackexchange.com/a/142122/37864) verwenden sie auch teilweise Hashes für den Webservice, bei denen dies eindeutig eine Datenschutzfunktion ist.(Sie ermöglichen es Ihnen auch, die vollständige URL an einen Webservice zu senden, und ich bezweifle, dass ihnen der Unterschied von wenigen Bytes im Datenverkehr wichtig ist.)
@Josef Wie würde die Übertragung nur des Hash-Präfixes die Privatsphäre verbessern?Haben Sie es nicht einfach so gemacht, dass Ihre Hash-Funktion jetzt "truncate_to_x_length (Hash ())" anstelle von "Hash ()" lautet?Das leidet immer noch unter den gleichen Problemen, die in dieser Antwort aufgeführt sind, nicht wahr?
@Ajedi32: Wenn Sie genug von dem Hash abschneiden, ist es kein guter Hash mehr, da es nicht mehr kollisionssicher ist.Falsche Übereinstimmungen sind schlecht für die Genauigkeit, aber gut für die "plausible Verleugnung" der Eingabe.Kombinieren Sie diese mit der kleineren Größe, und tatsächlich ist dies der gleiche Kompromiss, den ein Bloom-Filter bietet. Daher ist die Kombination des Bloom-Filters mit abgeschnittenen Hashes möglicherweise eine natürliche Wahl.
Alternativ (und ich glaube nicht, dass Google dies anhand der Beschreibungen hier tut) könnten Sie einen Teil-Hash verwenden, um Ihre badURL-Datenbank in verwaltbare Blöcke zu zerlegen.Wenn der Client einen Teil-Hash berechnet und eine Handvoll übereinstimmender fehlerhafter URLs zurückerhält, kann er diese mit der vollständigen URL vergleichen, um die Fehlerhaftigkeit in angemessener Zeit festzustellen.Der Server weiß nicht genau, welche (falls vorhanden) aller URLs, die mit diesem Teil-Hash übereinstimmen, diejenige war, die ich tatsächlich besucht habe.
Ich denke, die einzige datenschutzsichere Option besteht darin, die gesamte Datenbank mit URLs an den Benutzer zu senden und die Überprüfung clientseitig durchführen zu lassen
Out of Band
2016-11-08 16:54:30 UTC
view on stackexchange narkive permalink

Ich finde es gut, dass Sie die Privatsphäre eines Benutzers schützen möchten, aber was Sie erstellen, scheint dem Schutz der Privatsphäre zu widersprechen. Daher denke ich nicht, dass dies mit einer einfachen Einrichtung möglich ist (z. B. Client-Sende-URL, in welcher Form auch immer, direkt an Ihren Backend-Service).

Wie andere angemerkt haben, ist das Hashing mit sha1 ein guter erster Schritt, erreicht jedoch nur die Privatsphäre gegenüber Menschen und riskiert einen schnellen Blick in die Datenbank. Es bietet Ihnen nicht viel Privatsphäre gegenüber Algorithmen zur Analyse des Datenbankinhalts.

Sie verlieren auch mehr als die besuchte URL: Der Benutzer teilt Ihnen auch mit, zu welcher Zeit er online war und sich umgesehen hat Die angegebene URL, wenn Sie in Echtzeit prüfen.

Einige andere haben Lösungen vorgeschlagen, um die Datenschutzprobleme zu verringern. Obwohl sie alle besser sind als nichts zu tun, lösen sie das Problem nicht. Zum Beispiel sieht Googles Lösung, nur 32 Bit des Hashs zu senden, gut aus, ordnet aber immer noch nur alle vorhandenen URLs einer Hash-Tabelle mit 4 Milliarden Slots zu. Einige dieser Slots enthalten möglicherweise eine große Anzahl von Einträgen. Da jedoch nicht alle URLs gleich häufig besucht werden (z. B. werden Facebook-URLs viel häufiger besucht als die Homepage einer Grundschule), werden auch die URLs einer einzelnen Domain verwendet höchstwahrscheinlich ziemlich gleichmäßig über die 4 Milliarden verfügbaren Slots gehasht werden, wird es immer noch ziemlich leicht zu erraten sein, wenn man eine Reihe vollständiger URLs verwendet, die auf dasselbe 32-Bit-Präfix hashen, das tatsächlich besucht wurde (insbesondere für Google, das Pagerank hat Daten zu einer großen Anzahl von URLs da draußen ...)

Bei einem solchen Angriff erstellt jemand eine Regenbogentabelle mit URLs, an denen er interessiert ist. Sie könnten es schwieriger machen, indem Sie

  1. Verwenden einer Passwort-Hash-Funktion anstelle von sha1, was lange dauert, um den Hash zu berechnen. Dies bedeutet jedoch, dass Ihr Browser-Plugin nicht mehr reagiert.
  2. Salzen Sie Ihre Hashes. Natürlich können Sie nicht jedem Benutzer sein eigenes Salz geben, oder alle Hashes für dieselbe URL, die von verschiedenen Benutzern bereitgestellt werden, sind eindeutig, was Ihre Anwendung höchstwahrscheinlich sinnlos macht. Aber je größer Ihre Nutzerbasis wird, desto weniger Benutzer benötigen dieselben Salzwerte. Sie schützen die Privatsphäre der Benutzer immer noch nicht, aber Sie erschweren die Berechnung von Regenbogentabellen, um herauszufinden, welche URLs genau besucht wurden. Wenn jemand dies für das Salz eines bestimmten Benutzers tut, gilt dies nur für die Privatsphäre aller anderen Benutzer, die sein Salz teilen Ist kompromittiert.
  3. ol>

    Dies hilft jedoch immer noch nichts, wenn ein Angreifer nicht an allen gehashten URLs interessiert ist, sondern nur sehr spezifische Fragen beantworten möchte (z. B. welche Benutzer haben URLs besucht, die zu den Domains in einer bestimmten "Blacklist" gehören?) Da solche Abfragen nur eine kurze Liste beinhalten (möglicherweise ein paar Dutzend bis zu ein paar hunderttausend URLs, abhängig von der Größe der Blacklist), ist es trivial, Hash zu verwenden jeder von ihnen in kurzer Zeit, egal welche Gegenmaßnahmen Sie verwenden, um es zu verlangsamen.

    Es ist schlimmer als das, da viele Websites nur wenige gemeinsame Einstiegspunkte haben, wobei der wahrscheinlichste nur die Domain ist, der ein leerer Pfad folgt. Andere häufig besuchte Pfade sind Anmeldeseiten, Profilseiten usw. Daher ist die Anzahl der URLs, die Sie hashen müssen, um festzustellen, ob jemand eine bestimmte Domain besucht hat, höchstwahrscheinlich sehr gering. Wenn ein Angreifer dies tut, verpasst er Benutzer, die einen Deep Link zu einer Website verwendet haben, aber er fängt die meisten von ihnen ab.

    Und es wird noch schlimmer: Wenn ein Angreifer es schafft, zu finden Eine vollständige URL aus einem Hash, den ein Benutzer bereitgestellt hat, kann sehr leicht alle URLs für einen großen Teil der Browsersitzung dieses Benutzers abrufen. Wie? Nun, da er eine URL hat, kann er sie mit seiner eigenen benutzerdefinierten Spinne dereferenzieren, alle Links im Dokument anzeigen, sie hashen und in Ihrer Datenbank suchen. Dann macht er dasselbe mit diesen Links und so weiter.

    Sie können also ein paar Dinge tun, um es schwieriger zu machen, aber ich glaube nicht, dass es einen Weg gibt, wie der Benutzer Ihnen im Grunde seinen Browserverlauf anvertrauen muss. Die einzige Möglichkeit, das zu umgehen, was ich sehen kann, besteht darin, ein verteiltes System aufzubauen, das nicht vollständig unter Ihrer Kontrolle steht, und damit URLs zu sammeln, beispielsweise eine Art Mischernetzwerk. Ein anderer Ort könnte darin bestehen, dass die Clients große Teile Ihres Datenbankinhalts herunterladen und so verbergen, an welchen URLs sie tatsächlich interessiert waren, und neuen Inhalt für Ihre Datenbank nur in großen Paketen bereitstellen, wodurch zumindest die Zeitkomponente des Browsings des Benutzers verborgen würde .

Giacomo1968
2016-11-08 18:15:19 UTC
view on stackexchange narkive permalink

Kurze Antwort.

Während Sie angeben, dass Sie sich Sorgen um die Privatsphäre Ihres Endbenutzers machen, ist nicht klar, vor wem und aus welchem ​​Grund Sie ihn "schützen" möchten?

  • Wenn die Kernfunktionalität Ihrer Anwendung darin besteht, Benutzerdaten von einem Client zu bewirtschaften, an einen Server zu senden und ein Ergebnis zu liefern, werden Sie als Empfänger dieser Daten immer wissen, was diese Daten sind.
  • Wenn Ihr Ziel darin besteht, Daten bei der Übertragung vom Client zum Server vor neugierigen Dritten zu schützen, kann ein Verschlüsselungsschema zum Schutz der Übertragung entwickelt werden. Dies ist jedoch das absolut Beste , das Sie zum Schutz von Benutzerdaten tun können.

Lange Antwort.

Zuerst sagen Sie Folgendes:

Ich arbeite an einem kleinen Nebenprojekt, bei dem ein Browser hinzugefügt wird -on und ein Backend-Service. Der Dienst ist ziemlich einfach: Geben Sie ihm eine URL und es wird geprüft, ob die URL in einer Datenbank vorhanden ist. Wenn die URL gefunden wird, werden auch einige zusätzliche Informationen zurückgegeben.

Dann sagen Sie Folgendes:

Das Browser-Add-On leitet alle vom Benutzer geöffneten URLs weiter an den Dienst und überprüft die Antwort. Das Teilen jeder URL, die Sie durchsuchen, ist natürlich ein großes Nein-Nein.

Das Problem mit dem von Ihnen beschriebenen Schema und Ihren Bedenken hinsichtlich des Datenschutzes ist das folgende Das Kernverhalten Ihrer Anwendung besteht darin, Informationen auszutauschen, die traditionell als privat angesehen werden. Welches Maß an „Privatsphäre“ möchten Sie letztendlich für wen, vor was und aus welchem ​​Grund schützen?

Wenn jemand der Verwendung Ihrer Anwendung zustimmt und über grundlegende, rudimentäre Kenntnisse darüber verfügt, was die Anwendung tut und welche Informationen sie teilt, stehen die Chancen gut, dass Ihr Back-End-Server genau weiß, was er durchsucht. Natürlich können Sie jedes ausgefeilte, ausgeklügelte Hashing-Schema einrichten, mit dem Sie die URL „maskieren“ können, aber am Ende des Tages kennt Ihr Backend-Server die Daten des Endbenutzers. Und selbst wenn Sie davon überzeugt sind, dass diese Daten Ihnen irgendwie unbekannt sind, stoppt dies nicht die Wahrnehmung, dass Sie wissen würden, was die Daten sind. und ehrlich gesagt kann ich mir kein Schema vorstellen, in dem Sie diesen Dienst bereitstellen können, und Sie wissen nicht, welche URLs durchsucht werden.

Wenn Sie Bedenken haben, dass Benutzerdaten bei der Übertragung an potenzielle Dritte verloren gehen Dann können Sie vielleicht ein Verschlüsselungsschema entwickeln, das die übertragenen Daten schützt. Für mich ist das machbar.

Wenn Sie jedoch generell private Daten sammeln möchten, um sie zu analysieren und dann ein Endergebnis zu erzielen, ist das Gesamtkonzept von Ihnen - und Ihr System - irgendwie ist es fehlerhaft, die Einzelheiten dieser Daten nicht zu kennen. Sie steuern das Backend eines solchen Prozesses und haben vollständigen Zugriff auf die Daten, ob Sie möchten oder nicht.

Einverstanden.Ein kleiner Trottel: Nur weil jemand der Verwendung der Browser-Erweiterung zustimmt, versteht er nicht unbedingt die Konsequenzen für seine Privatsphäre.Viele Internetnutzer * wissen * nicht "ganz genau", was das Senden eines Teil-Hashs einer URL (oder sogar der vollständigen URL) für ihre Privatsphäre bedeutet, da viele Internetnutzer leider nichts darüber verstehen, wieDas Internet oder insbesondere HTTP funktioniert.Für sie sind Computer magisch, das Internet magisch und der Browser verfügt über diese magischen Browsererweiterungen, die mehr magische Dinge bewirken.Aber ... es könnte sie nicht interessieren, selbst wenn sie es wüssten.
Vielen Dank.Was Sie gesagt haben, macht vollkommen Sinn und ist so ziemlich die Schlussfolgerung, zu der ich auch gekommen bin.Aus meiner Sicht schützt Hashing die übertragenen Daten zwar vor Dritten, aber mit HTTPS wird das gleiche Ziel erreicht.Aus meiner Sicht bietet Hashing einen Vorteil gegenüber dem Senden von unformatierten URLs.Mit Hash-URLs kann mein Backend-Service die * vollständige * Benutzerhistorie nur verfolgen, indem er den Hash JEDER URL im Internet hat.Auf diese Weise kann ich im schlimmsten Fall nur die URLs verfolgen, die ich in meiner Datenbank habe. Dies ist besser, als mit jeder besuchten URL einen eindeutigen Browserverlauf zu haben.
@Jibran: Bedenken Sie, dass es nicht nur darauf ankommt, was Sie tun können, sondern auch darauf, was jemand tun kann, der Ihre Datenbank stiehlt.Sie wissen zufällig, dass Sie keine große Regenbogentabelle für den von Ihnen ausgewählten Hash haben, die alle URLs im Internet enthält.Aber wahrscheinlich ist es für andere (einschließlich Sie, wenn Sie böse werden) trivial, diese Tabelle für alle ihnen bekannten URLs zu berechnen. Dies sind sicherlich genug URLs, um die Privatsphäre der Benutzer in gewissem Maße zu gefährden.Aber wie Jake sagt, ist diese App von Natur aus * etwas * datenschutzschädigend. Finden Sie also eine Ebene, mit der Ihre Benutzer leben können.
@Pascal Fair genug.Der Wortlaut wurde angepasst, um den Wissensstand einiger Leute zu berücksichtigen.
Arminius
2016-11-08 16:01:00 UTC
view on stackexchange narkive permalink

Ihr Vorschlag, (teilweise) Hashes der URLs zu speichern, ist eine etablierte Methode, um die Auswirkungen auf den Datenschutz zu verringern. Dies erschwert die Antwort auf "Auf welchen Seiten waren Sie?" Es ist natürlich immer noch trivial, wenn Sie genau wissen, nach welchen Seiten Sie suchen, da die Hashes für jede URL praktisch eindeutig sind.

Was Sie beschreiben, ist genau das Problem, das beim Google Safe Browsing auftritt Service musste lösen. Dieser Dienst wird von Chrome und anderen Anwendungen verwendet, um verdächtige URLs beim Surfen anhand der Liste gefährlicher Websites von Google zu überprüfen. Dabei muss immer noch ein gewisses Maß an Datenschutz gewährleistet sein.

Google beschreibt ihre Methode in Google Chrome Privacy Whitepaper:

Wenn Safe Browsing in Chrome aktiviert ist, kontaktiert Chrome regelmäßig die Server von Google, um die neueste Liste sicherer Browsing-Websites mit unsicheren Websites herunterzuladen, einschließlich Phishing, Social Engineering und Malware-Sites sowie Sites, die zu unerwünschter Software führen. Die neueste Kopie dieser Liste wird lokal auf Ihrem System gespeichert. Chrome überprüft die URL jeder Website, die Sie besuchen oder die Sie herunterladen, anhand dieser lokalen Liste. Wenn Sie zu einer URL navigieren, die in der Liste angezeigt wird, sendet Chrome einen Teil-URL-Fingerabdruck (die ersten 32 Bits eines SHA-256-Hash der URL) an Google, um zu überprüfen, ob die URL tatsächlich gefährlich ist. Chrome sendet auch einen Teil-URL-Fingerabdruck, wenn eine Website eine potenziell gefährliche Berechtigung anfordert, damit Google Sie schützen kann, wenn die Website böswillig ist. Google kann die tatsächliche URL anhand dieser Informationen nicht ermitteln.

(Hervorhebung meiner eigenen)

Beachten Sie, dass einige Fehlalarme akzeptabel sind In Ihrem Dienst konnten Sie nur einen kleinen Teil des Hashs mit dem Vorteil einer schnelleren Suche und plausibler Verleugnung speichern.

Ich denke darüber nach, auch mit dem Hash-Ansatz zu arbeiten.Mein Verständnis ist jedoch, dass die Verwendung eines partiellen Hash keinen Datenschutzvorteil gegenüber der Verwendung des vollständigen Hash bietet, da die Hash-Präfixe meistens auch eindeutig sind.
@Jibran Kommt darauf an, wie kurz sie sind.Irgendwann kommt es zu Kollisionen.
Beachten Sie, dass ein "interessantes" Nebenprodukt dieses Protokolls das Folgende ist: Wenn Google benachrichtigt werden möchte, wenn ein Nutzer "www.somesite.com" besucht, reicht es aus, dass er es der unsicheren Liste hinzufügt.Da diese lokale Liste auch aus SHA-1-Hash-Präfixen besteht, ist dies von außen schwer zu erkennen.
Olle Kelderman
2016-11-08 17:46:47 UTC
view on stackexchange narkive permalink

Während sich alle anderen Antworten darauf konzentrieren, wie die URL "richtig" an Ihren Backend-Service übertragen wird, scheint die allgemeine Schlussfolgerung: Das ist nicht möglich.

Ich möchte einen anderen Ansatz vorschlagen , was in Ihrem Anwendungsfall möglicherweise nicht möglich ist, aber ich denke, es ist eine wertvolle Methode, um zumindest zu diskutieren.

Anstatt die URL an das Backend zu senden, warum nicht die Datenbank zum Addon und dort nachschlagen ?

Dies führt natürlich zu allen möglichen neuen Problemen. Die Datenbank ist wahrscheinlich sehr groß, enthält möglicherweise Informationen, die Sie nicht auf dem Computer Ihres Benutzers haben möchten usw. Für einfache / kleine Anwendungen ist dies jedoch möglicherweise eine gültige Lösung.

Dies löst das Problem nur, wenn die Datenbank nicht von den Browser-Addons selbst gefüllt wird, sondern von einer anderen Quelle.In diesem Fall müssten Sie jedoch nicht die gesamte Datenbank herunterladen.Sie können auch einfach alle URLs abfragen, deren Hash eines der Bytes Ihrer Hash-URL enthält.Wenn dies immer noch zu viele Ergebnisse liefert, fragen Sie nach URLs, die zwei der Bytes des URL-Hashs enthalten, an dem Sie interessiert waren. Auf diese Weise können Clients verbergen, wonach sie suchen, und sogar den Datenschutz gegen die Download-Geschwindigkeit eintauschen.Sie können dafür einen Schieberegler "Datenschutz" bereitstellen.
Aria
2016-11-08 14:10:50 UTC
view on stackexchange narkive permalink

Es ist nicht viel besser für die Privatsphäre der Benutzer. Zum Beispiel hätte https://www.google.com/ immer den gleichen Hash, sodass bekannt ist, wer ihn durchsucht hat.

Abhängig von Ihren Projektanforderungen müssen Sie möglicherweise Betrachten Sie andere Optionen, die zu Ihnen passen würden. Eine davon würde beispielsweise nicht jedes Mal jede URL übertragen. Sie können auch nur den vollqualifizierten Domänennamen und nicht die gesamte URL überprüfen, was aus Datenschutzgründen viel besser wäre.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...