Identifikation durch die Analyse externer Protokollhandler im Browser

Die Entwickler der Bibliothek fingerprintjs, die es ermöglicht, Browser-IDs im passiven Modus basierend auf indirekten Merkmalen wie Bildschirmauflösung, WebGL-Eigenschaften sowie Listen installierter Plugins und Schriftarten zu generieren, haben eine neue Identifikationsmethode vorgestellt. Diese basiert auf der Bewertung der auf dem Gerät des Benutzers installierten Standardanwendungen und arbeitet durch die Überprüfung der Unterstützung zusätzlicher Protokollhandler im Browser. Der Code für das Skript, das die Methode implementiert, ist unter der MIT-Lizenz veröffentlicht.

Die Überprüfung erfolgt durch Analyse der Bindung von Handlern an 32 populäre Anwendungen. Beispielsweise kann durch die Bestimmung des Vorhandenseins von URL-Schema-Handlern wie telegram://, slack:// und skype:// im Browser auf das Vorhandensein der Anwendungen Telegram, Slack und Skype im System geschlossen werden. Diese Information kann dann als Indiz bei der Generierung der System-ID verwendet werden. Da die Liste der Handler für alle Browser im System gleich ist, 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 erlaubt die Generierung von 32-Bit-IDs, das heißt, sie erzielt für sich genommen keine hohe Genauigkeit, ist jedoch als zusätzliches Merkmal in Kombination mit anderen Parametern sinnvoll. Ein spürbarer Nachteil der Methode ist die Sichtbarkeit des Identifikationsversuchs für den Benutzer: Bei der Generierung der ID öffnet sich auf der angebotenen Demoseite in der unteren rechten Ecke ein kleines, aber deutlich sichtbares Fenster, in dem die Handler relativ lange durchgegangen werden. Dieser Nachteil tritt im Tor Browser nicht auf, wo die ID unauffällig berechnet werden kann.

Um das Vorhandensein einer Anwendung festzustellen, versucht das Skript, in einem Popup-Fenster einen Link zu einem externen Handler zu öffnen. Danach zeigt der Browser einen Dialog an, der dazu auffordert, den Inhalt in der entsprechenden Anwendung zu öffnen, wenn das überprüfte Programm vorhanden ist, oder gibt eine Fehlermeldung aus, wenn die Anwendung im System fehlt. Durch die sequenzielle Überprüfung standardmäßiger externer Handler und die Analyse der zurückgegebenen Fehler kann auf das Vorhandensein der überprüften Programme im System geschlossen werden.

In Chrome 90 für Linux hat die Methode nicht funktioniert, und der Browser hat bei allen Versuchen zur Überprüfung des Handlers einen Standarddialog zur Bestätigung der Operation angezeigt (in Chrome für Windows und macOS funktioniert die Methode). In Firefox 88 für Linux hat das Skript sowohl im normalen als auch im Inkognito-Modus die Existenz von installierten Erweiterungen aus der Liste erkannt, und die Identifizierungsgenauigkeit wurde auf 99,87 % geschätzt (35 ähnliche Übereinstimmungen aus 26.000 durchgeführten Tests). Im auf demselben System gestarteten Tor Browser wurde eine Identifikationsnummer generiert, die mit dem Test in Firefox übereinstimmt.

Interessanterweise hat der zusätzliche Schutz im Tor Browser eine unerwartete Wendung genommen und sich als Möglichkeit herausgestellt, die Identifizierung unbemerkt durch den Benutzer durchzuführen. Aufgrund der Deaktivierung der Bestätigungsdialoge für die Verwendung externer Handler im Tor Browser konnten die Prüfungsanfragen in einem iframe und nicht in einem Popup-Fenster geöffnet werden (zur Trennung von Vorhandensein und Fehlen von Handlern wird verwendet, dass die Regeln für die gleiche Herkunft den Zugriff auf Seiten mit Fehlern blockieren und den Zugriff auf Seiten about:blank erlauben). Aufgrund des Schutzes vor Spam dauert die Überprüfung im Tor Browser erheblich länger (10 Sekunden pro Anwendung).

Quelle: opennet.ru

60GB SSD 8Gb DDR4