Identifizierung durch Analyse externer Protokollhandler im Browser

Die Entwickler der Bibliothek fingerprintjs, die passive Browser-Identifikatoren basierend auf indirekten Merkmalen wie Bildschirmauflösung, WebGL-Eigenschaften und Listen installierter Plugins und Schriftarten erzeugt, haben eine neue Identifizierungsmethode vorgestellt. Diese basiert auf der Bewertung der auf dem Nutzer installierten Standardanwendungen und funktioniert durch die Überprüfung der Unterstützung zusätzlicher Protokollhandler im Browser. Der Script-Code zur Implementierung der Methode wurde unter der MIT-Lizenz veröffentlicht.

Die Überprüfung erfolgt durch die Analyse der Bindungen von Handlern an 32 gängige Anwendungen. So lässt sich beispielsweise durch die Feststellung der Handler für die URL-Schemata telegram://, slack:// und skype:// darauf schließen, dass die Anwendungen Telegram, Slack und Skype auf dem System vorhanden sind. Diese Information kann dann als Merkmal zur Generierung der System-ID verwendet werden. Da die Handler-Listen in allen Browsern gleich sind, bleibt die ID beim Wechsel des Browsers unverändert und kann in Chrome, Firefox, Safari, Brave, Yandex Browser, Edge und sogar im Tor Browser verwendet werden.

Die Methode ermöglicht die Generierung von 32-Bit-Identifikatoren. Das bedeutet, dass sie alleine keine hohe Genauigkeit erzielt, jedoch als zusätzliches Merkmal in Kombination mit anderen Parametern sinnvoll ist. Ein deutliches Manko dieser Methode ist die Auffälligkeit der Identifikationsversuche für den Benutzer – bei der Generierung des Identifikators öffnet sich auf der vorgeschlagenen Demoseite in der rechten unteren Ecke ein kleines, jedoch deutlich sichtbares Fenster, in dem relativ lange verschiedene Handler durchgegangen werden. Dieser Nachteil zeigt sich nicht im Tor-Browser, wo der Identifikator unauffällig berechnet werden kann.

Um das Vorhandensein einer Anwendung festzustellen, versucht das Skript, in einem Pop-up-Fenster einen Link zu einem externen Handler zu öffnen. Daraufhin zeigt der Browser ein Dialogfeld an, das vorschlägt, den Inhalt im zugehörigen Programm zu öffnen, wenn die überprüfte Anwendung vorhanden ist, oder gibt eine Fehlerseite aus, wenn die Anwendung im System nicht vorhanden ist. Durch eine schrittweise Durchmusterung typischer externer Handler und die Analyse des zurückgegebenen Fehlers kann auf das Vorhandensein der überprüften Programme im System geschlossen werden.

In Chrome 90 für Linux funktionierte die Methode nicht, und der Browser brachte bei allen Versuchen zur Überprüfung des Handlers einen Standarddialog zur Bestätigung der Operation auf (in Chrome für Windows und macOS funktioniert die Methode). In Firefox 88 für Linux erkannte das Skript sowohl im normalen als auch im Inkognito-Modus die installierten Zusatzanwendungen aus der Liste; die Genauigkeit der Identifizierung wurde auf 99,87 % geschätzt (35 Übereinstimmungen aus 26.000 durchgeführten Tests). Im Tor-Browser, der auf demselben System ausgeführt wurde, wurde eine ID generiert, die mit dem Test in Firefox übereinstimmte.

Es ist interessant, dass der zusätzliche Schutz im Tor-Browser einen unerwarteten Nachteil brachte, indem er die Möglichkeit eröffnete, die Identifizierung unauffällig für den Nutzer durchzuführen. Aufgrund der Deaktivierung der Bestätigungsdialoge zur Verwendung externer Handler im Tor-Browser konnten Überprüfungsanfragen in einem iframe anstelle eines Popup-Fensters geöffnet werden (zur Unterscheidung zwischen Vorhandensein und Fehlen von Handlern wird genutzt, dass die Same-Origin-Regeln den Zugriff auf Seiten mit Fehlern blockieren und auf Seiten about:blank erlauben). Wegen des Schutzes gegen Flooding dauert die Überprüfung im Tor-Browser deutlich länger (10 Sekunden pro Anwendung).

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster