Random User-Agent - Version Zwei

    Прошло два года с того момента, как вышла первая версия этого расширения для Chromium-based браузеров (работает в Google Chrome, Yandex.Browser и т.д.), задача которого проста и понятна — скрывать настоящий User-Agent. На данный момент это расширение работает у +6.000 пользователей (что очень скромно), и несколько дней назад получил на почту письмо с просьбой его немного доработать. Оценив состояние кода, к которому два года никто не притрагивался, было решено — переписывать его с нуля. Четыре дня работы, и вуаля — встречаем свежую мажорную версию, значительно улучшенную и с новым функционалом.


    Bild


    Es wird einige Gedanken geben, sowohl was das anonyme Surfen im Internet als auch das Einrichten des Google Chrome-Browsers angeht und warum diese Erweiterung nützlich sein kann. Ein wenig erfahrener Anonymus findet in dem Beitrag nichts Interessantes, also für ihn ebenso wie für den traditionell ungeduldigsten - den Quellcode auf GitHub und die Erweiterung im Google Webstore .


    Über Anonymität


    Ich werde nicht sagen, dass es sinnvoll ist, den gesamten externen Netzwerkverkehr über VPN / OpenVPN / Tor und andere verschlüsselte Tunnel zuzulassen. Ich werde nicht sagen, dass, wenn kompetente Personen mit ausreichenden Ressourcen Sie am Arsch packen müssen, sie am wahrscheinlichsten greifen werden (Sie nutzen nicht nur das mobile Internet in Ländern der Dritten Welt, die anonyme SIM-Karten verwenden, ständig in Bewegung sind und nachsehen) Netzwerk nur über Telnet über Tor?) .


    Die Anonymität und der Komfort des Surfens im Internet schließen sich zunehmend aus. Cookies von Drittanbietern - Dies ist sehr praktisch (Sie müssen sich nicht mit einer einzigen Autorisierung bei Ressourcen anmelden) , sondern ermöglichen es Ihnen auch, Ihre Bewegungen über andere Ressourcen hinweg erfolgreich zu verfolgen. Die Verwendung von Proxy / Socks bietet zusätzliche Möglichkeiten zum Verbergen der realen IP-Adresse. Manchmal werden sie jedoch von vielen Ressourcen (z. B. Avito, Pikabu) erfolgreich ermittelt. Aufgrund ihrer Verwendung ist der Zugriff auf die Ressource für Sie gesperrt. Die Verwendung von aggressiven AD-Blockern wird von den Sites festgelegt und sie werden sorgfältig gebeten, diese zu deaktivieren. Daher ist es notwendig, am Rande der Bequemlichkeit oder Sicherheit auszugleichen.


    Ja, Sicherheit ist für mich gleichbedeutend mit Anonymität. "Nein, ich habe nichts zu verbergen, aber es geht Sie nichts an" (c) den Vormund.


    Ich benutze verschiedene Browser. Gleichzeitig werden häufig Firefox, TorBrowser und Google Chrome gestartet (ich verwende es am häufigsten) . In verschiedenen Browsern unterschiedliche Sätze von Plugins / Proxys und dementsprechend unterschiedliche Einstellungen. Jeder von ihnen verdient eine separate Diskussion, aber jetzt möchte ich noch einmal über Google Chrome sprechen. Im Folgenden werden die Standardeinstellungen dieses Browsers aufgeführt, die möglicherweise geändert werden müssen:


    • Die Synchronisierungseinstellungen sind redundant.
      • "Einstellungen"> "Erweiterte Synchronisationseinstellungen"> Wir markieren nur "Dienste", "Erweiterungen", "Einstellungen" und "Lesezeichen" (diese Liste kann auf "Erweiterungen", "Einstellungen" reduziert werden) ;
      • Wir aktivieren auch die Verschlüsselung mit einer Passphrase.
      • Wir folgen dem Link und schalten alles aus;
    • Beliebte Suchmaschinen verfolgen Ihre Aktionen.
      • Wir setzen als Suchmaschine (so ähnlich wie anonym)https://duckduckgo.com?q=%s ;
    • Cookies sind für alle erlaubt;
      • "Einstellungen"> "Inhaltseinstellungen"> "Cookies"> "Keine Speicherung von Daten durch Websites zulassen" + "Daten und Cookies von Websites Dritter blockieren";
      • Wenn Sie Ressourcen besuchen, für deren Funktion die Unterstützung von Cookies erforderlich ist, klicken Sie in der Browserleiste auf "Cookie"> "Cookies und andere Daten anzeigen ..."> "Gesperrt"> Diejenigen, die nach dem Schließen des Browsers gespeichert werden müssen - markieren Sie sie als "Zulassen". ansonsten - "Löschen beim Beenden";
      • Überprüfen Sie von Zeit zu Zeit die Ausnahmelisten, und entfernen Sie alle nicht benötigten von den zulässigen.
    • Die maximale Speicherdauer für Cookies kann nicht begrenzt werden.
      • Legen Sie ein Limit für die Cookie-Lebensdauer fest . Legen Sie beispielsweise ein Limit von 7 Tagen fest. Ja, einmal pro Woche müssen Sie zu Ihren Ressourcen wechseln, aber die Tracks sind nicht länger als eine Woche relevant (es sei denn, der Track Analyzer verfügt über eine fundierte Logik) .
    • Das Starten von Inhalts-Plugins (und eines davon ist ein Flash-Sieb) ist standardmäßig aktiviert.
      • "Einstellungen"> "Inhaltseinstellungen"> "Plugins"> "Berechtigung zum Starten von Plugin-Inhalten auffüllen";
      • Wir öffnen diesen Link und schalten den "Adobe Flash Player" aus (wenn Sie Online-Filme ansehen möchten, müssen Sie ihn vorübergehend mit Stiften wieder einschalten, aber HTML5-Player werden sofort verstehen, dass es keinen Flash gibt und er wird korrekt gestartet) .
    • Der Zugriff auf Kamera, Mikrofon usw. ist standardmäßig besser zu unterbinden.
      • Immerhin "Einstellungen"> "Inhaltseinstellungen" - wir untersagen den Zugriff auf alles, was momentan nicht kritisch ist.
      • Stellen Sie sicher, dass "Zugriff auf Plugins außerhalb der Testumgebung" und der Speicherort nicht zulässig sind.
    • Das Senden von "Do Not Track" ist deaktiviert.
      • Ich bezweifle wirklich, dass jemand die Regel befolgt, diejenigen, die diesen Header senden, nicht zu verfolgen. Entscheiden Sie selbst, ob Sie ihn unter "Einstellungen"> "Persönliche Daten" speichern oder nicht.
    • Passwörter und Formulare werden gespeichert;
      • "Einstellungen"> "Passwörter und Formulare" - stellen Sie sicher, dass beide Kontrollkästchen deaktiviert sind. Erklären Sie den Grund, ich denke, es macht keinen Sinn;
    • Der Browser neigt dazu, IP-Adressen mithilfe von WebRTC zu verlieren.
      • Wir installieren das WebRTC Leak Prevent- Plugin , lassen es im "Incognito" -Modus arbeiten und geben in den Einstellungen "Disable non-proxied UDP" an.
      • Wir überprüfen zum Beispiel auf dieser Seite ;
    • Der Referer wird deaktiviert gesendet, sodass alle Ressourcen bestimmen können, woher Sie gekommen sind.
      • Wir legen die Referer-Kontrolle fest , in den Einstellungen geben wir "Referer-Kontrollstatus" - "Aktiv" und "Standard-Referer für alle anderen Sites" - "Blockieren" an.
      • Einige Websites (z. B. Habrastorage) verwenden den Referrer-Checker, sodass das Plug-In möglicherweise ein wenig "funktioniert". Sie müssen ihn jedoch überwältigen und lernen, wie Sie reguläre Ausnahmen schreiben.
    • Es gibt keine Kontrolle über den Start von JS-Skripten, die sich mit Verfolgung und Analyse befassen.
    • Bevorzugte Plugins zum Blockieren von Anzeigen werden von besuchten Ressourcen erkannt und blockieren den Zugriff auf Inhalte.
      • Versuchen Sie, weniger beliebt, aber nicht weniger effektiv zu verwenden. Bis vor kurzem war uBlock auf dieser Liste, aber ich habe Adguard AdBlocker als letzten Ausweg verwendet , da es immer noch sehr wenig erkannt wird und weniger Speicher verbraucht als seine Gegenstücke.

    Über welche Erweiterung Sie für das Proxying verwenden und wo Sie Proxy-Listen erhalten - Sie müssen selbst antworten. Ich kann nur sagen, dass es am besten ist, Proxy-Ketten zu verwenden, aber in 9 von 10 Fällen stirbt die Surfgeschwindigkeit einfach ab. Öffentliche Proxy-Listen sind überhaupt nicht hartnäckig. Diejenigen, die für schwer Verdiente gekauft wurden, sind etwas zäher, aber nicht wesentlich. Es gibt hier überhaupt nicht viele Werbegeschenke, und aus Gründen des Komforts ist es am besten, einen eigenen Proxy-Server zu kaufen (ja, solche Dienste werden bereitgestellt und es gibt eine ganze Menge Leute; verwenden Sie beim Bezahlen natürlich keine echten Karten, Namen oder IP-Adressen). Dass bisher der gesamte Außenverkehr durch die Tunnel zugelassen werden sollte - daran erinnere ich Sie nicht, dass Sie schon alles wissen.


    Grundlegende Identifikationsmethoden


    Ich entschuldige mich im Voraus für die unten verwendete Terminologie. Es ist nicht ganz richtig, aber, wie es mir scheint, leichter zu verstehen.

    Benutzeridentifikation, die Feststellung, dass diese N Anforderungen genau von ihm und nicht von jemand anderem erfüllt wurden, ist der Hauptfeind der Anonymisierung. Identifikationsmethoden werden in mindestens zwei große Klassen unterteilt - jeweils auf Client- und Serverseite. Auf der Clientseite könnte es im klassischen Ansatz so aussehen:


    • Die Ressourcenseite enthält in ihrem Hauptteil einen Link zu einem JS-Skript, z. B. google.analytics.
    • Der Browser sendet eine GET-Anforderung an den Server, auf dem dasselbe JS-Skript gespeichert ist.
    • Der Server antwortet mit Skriptinhalten.
    • Der Browser führt das empfangene Skript aus (lädt bei Bedarf zusätzliche „Module“) und erhält vom Browser Informationen zu Version, Betriebssystem, installierten Plugins, installierten Schriftarten, Bildschirmauflösung, Gebietsschemata, Systemzeit und anderen nützlichen Informationen.
    • Das Skript sucht nach einem eindeutigen Knoten oder installiert ihn, um Ihre weiteren Bewegungen im Netzwerk zu verfolgen.
    • Das Skript sendet die gesammelten Daten + den Namen des Brötchens zur Speicherung an sich selbst.

    "Na und?" - Sie fragen, und Sie werden verdammt richtig sein. "Lassen Sie sie diese Daten sammeln - das macht mir nichts aus!" - Ja, ja, mein Freund! Denken Sie in der Zwischenzeit daran, lassen Sie uns eine Analyse durchführen. Um die Sites zu besuchen, die Sie mit Google Chrome, Version 52.0.2743.116 (die Version ist aktuell - Sie haben die automatische Aktualisierung aktiviert), unter Windows 10 (die Nebenversion gibt an, dass Sie wahrscheinlich nicht die neuesten Aktualisierungen installiert haben und daher Windows Update deaktiviert wurde), während Sie sich in Russland befinden und vermutlich in der Stadt Moskau (und den Zeitzonenspielen) des IP-Anbieters "MTC", bei dem dieser Pool an den Bezirk Lublin gebunden ist, höchstwahrscheinlich mit einem Laptop (gemessen an der Bildschirmauflösung) und wahrscheinlich daran interessiert, ein neues Auto zu kaufen(weil du vorher auf der drom-website nach gebrauchtem mazda gesucht hast und es in moskau war; auf der drom-website gibt es zum beispiel die gleiche analyse) . Gemessen an der Zeit der Besuche haben Sie dies vom Arbeitsplatz aus getan, und wahrscheinlich arbeiten Sie in dieser oder der angrenzenden Region. Wenn dein soziales. Das Netzwerk verwendet dann einen ähnlichen Analysedienst. Sie verstehen (das Beispiel ist fiktiv, aber nicht ohne gesunden Menschenverstand) .


    Verstehen Sie, warum es sehr wichtig ist, die Skripte zu verfolgen, die Ihr Browser startet? "Ja, ich schalte JS im Allgemeinen standardmäßig aus!" Jemand wird in den Kommentaren ausrufen, und er wird Recht haben - das ist richtiger. Es ist korrekter, aber nicht bequemer. Hier müssen Sie noch entscheiden, was für Sie wichtiger ist - Sicherheit oder Komfort. Jetzt funktionieren 7 von 10 Sites ohne JS nicht mehr wie erwartet, und es liegt an Ihnen, zu entscheiden, wann Sie zu Telnet wechseln und in ein Land der Dritten Welt umziehen und gleichzeitig anonyme SIM-Karten kaufen. Ghostery ist gut, aber selbst wenn es eine 99-prozentige Garantie für die Blockierung aller Analysen geben würde, muss 1% noch vorhanden sein. Es kann keine allgemeingültige Regel geben, Sie müssen nur wachsam sein und ein wenig mit Ihrem eigenen Kopf nachdenken.


    Wie funktioniert die serverseitige Authentifizierung? Erinnern wir uns, wie die Zugriffsprotokolle von http-Daemons aussehen:


    [meow@hosting /var/log]$ cat somesite.org.access_log | tail -3
    10.12.11.254 - - [25/Jul/2016:15:51:16 +0700] "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)"
    10.12.11.254 - - [25/Jul/2016:15:57:38 +0700] "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
    10.12.11.254 - - [25/Jul/2016:19:19:25 +0700] "GET / HTTP/1.0" 200 5768 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"

    Primitive. Standardmäßig speichert der Server 4 Dinge über Sie:


    • IP-Adresse, von der die Anfrage kam;
    • Die Zeit, als er kam;
    • Welche Seite haben Sie angefordert?
    • Was ist Ihr User Agent?

    Nachdem wir die Protokolle nach IP ausgepeitscht haben, erhalten wir alle, die von Ihrer IP stammen könnten (wenn es sich um eine IP handelt, auf der sich NAT befindet - wir werden herausfinden, welcher Ihrer Nachbarn-Abonnenten noch war). Wenn wir in den User-Agent beißen, bekommen wir mit ziemlicher Sicherheit einen bestimmten Benutzer. Außerdem können wir sehen, auf welche Seiten er zu welcher Zeit und in welcher Reihenfolge zugegriffen hat, und wenn es ein Debug-Protokoll gibt, ist es möglich und welche Daten er in die Site-Formulare eingegeben hat und welche Art von Brötchen er im Browser hat.


    Chef was tun?


    Es ist zu 99,8% möglich, Informationslecks zu vermeiden - dies ist jedoch in Bezug auf die Benutzerfreundlichkeit sehr unpraktisch. Zusammenfassend kann gesagt werden, dass die wichtigsten Informationen Ihre IP-Adresse (Anbieter und Standort) und den User-Agent (verwendete Software, Betriebssystem und deren Versionen) umfassen können, da diese Informationen am aussagekräftigsten und eindeutigsten sind. Wie man die reale IP versteckt - haben wir schon gesagt. Wie verstecke ich User-Agent? Es gibt verschiedene Möglichkeiten, und die unten beschriebene ist nur eine von vielen. Vielleicht kommt es Ihnen etwas bequemer vor.


    Mit Ihrer Erlaubnis werden die wichtigsten "Chips" in Form einer einfachen Liste dargestellt:


    • Open Source auf GitHub verfügbar (Ich akzeptiere Pull Requests und Issues sind enthalten) ;
    • Ersetzt das Feld User-Agent in den HTTP-Headern aller Anforderungen.
    • Kompakt (zum Zeitpunkt des Schreibens dieses Beitrags - nur 45 KB im ZIP-Archiv) ;
    • Der verwendete User-Agent wird nach dem Zufallsprinzip generiert, ähnlich wie bei bestimmten Browsertypen und Betriebssystemen (es ist konfiguriert; einer könnte als ein bestimmter Ansatz verwendet werden). Dieser Ansatz würde jedoch nur funktionieren, wenn viele Benutzer diese Erweiterung verwenden - der Benutzer wäre also im Heap "verloren" ) ;
    • Ersetzt den User-Agent nach einer festgelegten Zeit automatisch durch einen zufälligen, indem Sie eine Taste drücken oder wenn der Browser gestartet wird.
    • Kann den durch Handles angegebenen User-Agent verwenden und nicht den generierten.
    • Einstellungen werden zwischen Browsern synchronisiert (konfigurierbar) ;
    • Enthält Unterstützung für den Schutz vor der Erkennung von Benutzeragenten mithilfe von JavaScript (experimentell) - etwas, das so lange angefragt wurde (Mock startet asynchron, sodass es nicht in allen Fällen erfolgreich ausgeblendet wird; meines Wissens kann dies keine einzelne Erweiterung tun - richtig ich, wenn nicht richtig) ;
    • Unterstützt eine Liste von Ausnahmen (es ist möglich, Masken in Adressen zu verwenden) ;
    • Derzeit russische, englische und ukrainische Lokalisierung;
    • Kostenlos und ohne Werbung;
    • WTFPL Lizenz;)

    Wie sieht es aus?



    Screenshot der Einstellungsseite

    Wenn Sie eine Frage, einen Vorschlag oder einen Fehlerbericht haben, aber weder im WebStore noch in Kommentaren zum Habré darüber schreiben können, finden Sie hier einen magischen Link . Ich möchte auch darüber schreiben, wie die Erweiterung selbst geschrieben hat. Wie erstelle ich ein Objekt, das onGet- und onSet-Ereignisse von beliebigen Eigenschaften unterstützt und dessen Daten im Repository selbst speichert? Wie ich zu der Entscheidung kam, die Arbeit aller Erweiterungskomponenten mit meiner eigenen, internen API zu implementieren - aber das ist eine ganz andere Geschichte, und die Quellen erzählen es vielleicht besser. Ich nutze diese Gelegenheit, um zu sagen, dass ich verdammt dankbar wäre, wenn ich helfen könnte, die Erweiterung in andere Sprachen als Russisch und Englisch zu übersetzen. Wenn es einen solchen Wunsch gibt, erstellen Sie einfach ein Problem im Repository mit dem Thema "Ich helfe bei der Übersetzung in% local_name%" oder drehen Sie die Pull-Anfrage um.


    Zu testen , wie die Plugin Arbeit und Ihre Anonymität können Sie zum Beispiel hier auf diesen Links . Nehmen Sie die Ergebnisse dieser Tests jedoch nicht zu ernst.


    Und mit Ihrer Erlaubnis, doppelte Link zu der Erweiterung des Zufalls User-Agent an den WebStore .


    Danke an nazarpc für die sehr schnelle Übersetzung ins Ukrainische und Pull-Anfrage. Richtig cool!

    Wenn Sie im Text auf Sprüche, Grammatik- oder Interpunktionsfehler stoßen, schreiben Sie diese bitte in der PM.

    Jetzt auch beliebt: