it-swarm-eu.dev

Wie kann ich die Verfolgung durch ETAGs verhindern?

Eine ETAG ist ein HTTP-Header, der hinter den Kulissen zwischen einem Webbrowser und einem Webserver gesendet wird. Dieser Wert soll steuern, wie lange eine bestimmte Datei auf der Clientseite zwischengespeichert wird.

Diese Technologie hat einen interessanten Nebeneffekt. ETAGs werden auf einem Computer gespeichert, auch wenn Cookies gelöscht werden. Einige Leute/Software haben diese Tatsache ausgenutzt, um eine ETAG dazu zu bringen, sich wie ein Cookie zu "verhalten".

Dies bedeutet, dass das Löschen von Cookies nicht ausreicht. Man muss auch den gesamten Webcache löschen. Das ist ein schmerzhafter Prozess, den ich jedes Mal durchlaufen muss, wenn ich auf meiner Testmaschine im Internet surfe.

Frage

Was ist der zuverlässigste Weg, um die Verfolgung durch ETAG-Header zu verhindern?

31

Ich kenne keine großartigen Lösungen. Ich kann drei mögliche Verteidigungen vorschlagen, obwohl alle Einschränkungen haben:

  • Privoxy. Privoxy kann ETag-Header blockieren.

    Insbesondere können Sie in Ihrer Privoxy-Konfiguration crunch-server-header oder server-header-filter verwenden, um ETag: - Header vom Server zu blockieren. Sie können auch crunch-client-header oder client-header-filter in Ihrer Privoxy-Konfiguration verwenden, um If-None-Match: Und If-Modified-Since: Header vom Client. Ich kenne jedoch keine Standardformel, die Sie einfach herunterladen und verwenden können: Sie müssten Ihre eigene Privoxy-Konfiguration selbst erstellen.

  • Ihr Browser. Wenn Sie Firefox verwenden, können Sie Firefox so konfigurieren, dass Ihr Cache bei jedem Verlassen des Browsers geleert wird. Dies kann die Leistung beeinträchtigen. Mit diesem Ansatz können ETags weiterhin verwendet werden, um Sie innerhalb einer Browsersitzung zu verfolgen. Dies ist also nicht perfekt, sollte jedoch alle ETag-Cookies löschen, wenn Sie Ihren Browser beenden.

  • RequestPolicy. Wenn Sie Firefox verwenden, können Sie die Erweiterung RequestPolicy verwenden. Ein Autor hat darauf hingewiesen, dass RequestPolicy kann helfen, sich gegen ETag-Tracking zu verteidigen . Auf Websites werden Sie häufig nachverfolgt, indem Ressourcen von Drittanbietern oder Analyseanbietern einbezogen werden. Mit RequestPolicy können Sie steuern, welche Ressourcen von Drittanbietern Ihr Browser beim Besuch einer Webseite anfordert, und sich so vor dieser Art von Tracking schützen: Wenn Ihr Browser niemals die Ressourcen von Drittanbietern lädt, dann die Ressourcen von Drittanbietern Der Werbetreibende hat keine Möglichkeit, Sie zu verfolgen (mithilfe eines ETags oder eines anderen Mechanismus). Diese Verteidigung ist nicht ideal, da Sie Ihre Richtlinien mühsam zusammenstellen müssen und Websites Sie weiterhin direkt verfolgen können, wenn sie nicht auf Ressourcen von Drittanbietern angewiesen sind.

Wenn Sie über einen transparenten Proxy auf das Web zugreifen, kann das Vorhandensein des Proxys leider Ihre Versuche, eine Nachverfolgung zu vermeiden, erschweren .

9
D.W.

Zusätzlich zu den von @DW vorgeschlagenen umfassenderen Lösungen können Sie die Verwendung des privaten Browsermodus Ihres - Browsers , ua InPrivate (IE), PrivateBrowsing (FF), Incognito (Chrome), in Betracht ziehen. usw.
Hauptsache hier ist, dass der Browser-Cache nicht verwendet wird (oder zumindest nicht über die Länge der privaten Sitzung hinaus verwendet wird). Daher wird der Etag nicht von Ihrem Browser gespeichert.

Dieser Ansatz weist noch einige Nachteile auf, z. B. die Verfolgung innerhalb der Sitzung und Proxys wie @ D.W. erwähnt. Das heißt, es ist ziemlich einfach zu bedienen.

5
AviD

Wenn Sie Firefox verwenden, könnte Sie eine (optionale) Funktion meines SecretAgent-Add-Ons interessieren, die gefälschte ETag-Header erstellt, um das Tracking zu unterdrücken.

Der Nachteil ist, dass das Spoofing von ETags offensichtlich das Caching auf Websites beeinträchtigt, die ETags zur Optimierung des Datenverkehrs verwenden (obwohl dies nur sehr geringe Auswirkungen auf die Leistung zu haben scheint).

Siehe www.secretagent.org.uk .

(Haftungsausschluss: Ich bin der Autor von SecretAgent).

2
pete

Update: hat die Antwort anders und klarer geschrieben

Ich habe eine Lösung, die funktioniert, ohne das aktuelle HTTP-Protokoll zu ändern. Ich würde gerne eine Implementierung davon sehen.

Anstatt dem Server unser Etag mitzuteilen, fragen wir den Server nach seinem Etag und vergleichen es mit dem bereits vorhandenen.

Pseudocode:

If (file_not_in_cache)
{
    page=http_get_request();     
    page.display();
    page.put_in_cache();
}
else
{
    page=load_from_cache();
    client_etag=page.extract_etag();
    server_etag=http_HEAD_request().extract_etag();

    //Instead of saying "my etag is xyz",
    //the client says: what is YOUR etag, server?"

    if (server_etag==client_etag)
    {
        page.display();
    }
    else
    {
        page.remove_from_cache();
        page=http_get_request();     
        page.display();
        page.put_in_cache();
    }
}

Beispiel für eine HTTP-Konversation mit Lösung 1:

Klient:

HEAD /posts/46328
Host: security.stackexchange.com

Server:

HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
ETag: "ABCDE"
Content-Type: text/html
Content-Length: 131

Fall 1: Der Kunde hat ein identisches Etikett:

Connection closes, client loads page from cache.

Fall 2, Client hat ein nicht übereinstimmendes Etag:

GET...... //and a normal http conversation begins.

Bearbeiten: Es ist zu beachten, dass der Server einen geringen Overhead hat und den HTTP-Header zweimal senden muss: Einmal als Antwort auf den HEAD und einmal als Antwort auf das GET. Eine theoretische Problemumgehung besteht darin, das HTTP-Protokoll zu ändern und eine neue Methode hinzuzufügen, die Inhalte ohne Header anfordert. Dann würde der Client das HEAD und dann nur den Inhalt anfordern, wenn die etags nicht übereinstimmen.

Edit 2: Ich habe den Rat von makerofthings7 befolgt und dies als Frage zum Stackoverflow gepostet.

1
Hello World

Eine zukünftige Lösung könnte eine Browsereinstellung sein, die Etags deaktiviert.

Für Mozilla wird das Problem in folgenden Abschnitten behandelt: ETag: Filtern, um dem Web-Tracking entgegenzuwirken .

0
Changaco