Identifizierung durch Analyse externer Protokollhandler im Browser

Die Entwickler der Fingerprintjs-Bibliothek, die es ermöglicht, Browser-Identifikatoren im passiven Modus basierend auf indirekten Merkmalen wie Bildschirmauflösung, WebGL-Funktionen, Listen installierter Plugins und Schriftarten zu generieren, stellten eine neue Identifizierungsmethode vor, die auf einer Bewertung der typischen installierten Anwendungen basiert auf den Benutzer und die Überprüfung der Unterstützung zusätzlicher Protokollhandler im Browser. Der Skriptcode mit der Implementierung der Methode wird unter der MIT-Lizenz veröffentlicht.

Die Prüfung erfolgt auf Basis einer Analyse der Bindung von Handlern an 32 beliebte Anwendungen. Wenn Sie beispielsweise das Vorhandensein der URL-Schema-Handler telegram://, slack:// und skype:// im Browser feststellen, können Sie daraus schließen, dass das System über Telegram-, Slack- und Skype-Anwendungen verfügt, und diese Informationen als Zeichen verwenden beim Generieren einer Systemkennung. Da die Liste der Handler für alle Browser im System gleich ist, ändert sich die Kennung beim Browserwechsel nicht und kann in Chrome, Firefox, Safari, Brave, Yandex Browser, Edge und sogar Tor Browser verwendet werden.

Mit der Methode können Sie 32-Bit-Identifikatoren generieren, d. h. einzeln lässt sich keine große Genauigkeit erreichen, ist aber als Zusatzfunktion in Kombination mit anderen Parametern sinnvoll. Ein spürbarer Nachteil der Methode ist die Sichtbarkeit des Identifizierungsversuchs für den Benutzer – beim Generieren einer Identifizierung auf der vorgeschlagenen Demoseite öffnet sich in der unteren rechten Ecke ein kleines, aber deutlich sichtbares Fenster, in dem die Handler recht lange scrollen. Dieser Nachteil tritt im Tor-Browser nicht auf, in dem die Kennung unbemerkt berechnet werden kann.

Um das Vorhandensein einer Anwendung festzustellen, versucht das Skript, einen mit einem externen Handler verknüpften Link in einem Popup-Fenster zu öffnen. Anschließend zeigt der Browser ein Dialogfeld an, in dem Sie aufgefordert werden, den Inhalt in der zugehörigen Anwendung zu öffnen, sofern die überprüfte Anwendung vorhanden ist vorhanden ist, oder zeigt eine Fehlerseite an, wenn die Anwendung nicht auf dem System ist. Durch eine sequentielle Suche nach typischen externen Handlern und eine Analyse der Fehlerrückgaben kann man schlussfolgern, dass das System die getesteten Programme enthält.

In Chrome 90 für Linux funktionierte die Methode nicht und der Browser zeigte bei allen Versuchen, den Handler zu überprüfen, ein Standarddialogfeld zur Bestätigung des Vorgangs an (in Chrome für Windows und macOS funktioniert die Methode). In Firefox 88 für Linux erkannte das Skript sowohl im Normalmodus als auch im Inkognitomodus das Vorhandensein installierter zusätzlicher Anwendungen aus der Liste, und die Identifizierungsgenauigkeit wurde auf 99.87 % geschätzt (35 ähnliche Übereinstimmungen bei 26 durchgeführten Tests). Im Tor-Browser, der auf demselben System ausgeführt wurde, wurde eine Kennung generiert, die mit dem Test in Firefox übereinstimmte.

Interessanterweise spielte der zusätzliche Schutz im Tor-Browser einen grausamen Scherz und verwandelte sich in eine Möglichkeit, unbemerkt für den Benutzer eine Identifizierung durchzuführen. Aufgrund der Deaktivierung von Bestätigungsdialogen für die Verwendung externer Handler im Tor-Browser stellte sich heraus, dass Verifizierungsanfragen in einem Iframe und nicht in einem Popup-Fenster geöffnet werden können (um das Vorhandensein und Fehlen von Handlern zu trennen, gelten die Same-Origin-Regeln). Blockieren Sie den Zugriff auf Seiten mit Fehlern und erlauben Sie den Zugriff auf about:blank-Seiten. Aufgrund des Flood-Schutzes dauert das Einchecken im Tor-Browser deutlich länger (10 Sekunden pro Anwendung).

Source: opennet.ru

Kommentar hinzufügen