Identification grâce à l'analyse des gestionnaires de protocoles externes dans le navigateur

Les développeurs de la bibliothèque FingerprintJS, qui permet de générer des identifiants de navigateur en mode passif basés sur des fonctionnalités indirectes telles que la résolution d'écran, les fonctionnalités WebGL, les listes de plugins et de polices installés, ont présenté une nouvelle méthode d'identification basée sur une évaluation des applications typiques installées. sur l'utilisateur et en vérifiant la prise en charge dans les gestionnaires de protocoles supplémentaires du navigateur. Le code du script avec l'implémentation de la méthode est publié sous licence MIT.

Le contrôle est effectué sur la base d'une analyse de la liaison des gestionnaires à 32 applications populaires. Par exemple, en déterminant la présence des gestionnaires de schéma d'URL telegram://, slack:// et skype:// dans le navigateur, vous pouvez conclure que le système dispose d'applications télégramme, slack et skype, et utiliser ces informations comme signe lors de la génération d'un identifiant système. Étant donné que la liste des gestionnaires est la même pour tous les navigateurs du système, l'identifiant ne change pas lors du changement de navigateur et peut être utilisé dans Chrome, Firefox, Safari, Brave, Yandex Browser, Edge et même Tor Browser.

La méthode permet de générer des identifiants 32 bits, c'est-à-dire individuellement ne permet pas d'obtenir une grande précision, mais cela a du sens en tant que fonctionnalité supplémentaire en combinaison avec d'autres paramètres. Un inconvénient notable de la méthode est la visibilité de la tentative d'identification pour l'utilisateur - lors de la génération d'un identifiant sur la page de démonstration proposée, une fenêtre petite mais clairement visible s'ouvre dans le coin inférieur droit dans laquelle les gestionnaires font défiler assez longtemps. Cet inconvénient n'apparaît pas dans le navigateur Tor, dans lequel l'identifiant peut être calculé inaperçu.

Pour déterminer la présence d'une application, le script tente d'ouvrir un lien associé à un gestionnaire externe dans une fenêtre contextuelle, après quoi le navigateur affiche une boîte de dialogue vous demandant d'ouvrir le contenu de l'application associée si l'application en cours de vérification est présente ou affiche une page d'erreur si l'application n'est pas présente sur le système. Grâce à une recherche séquentielle de gestionnaires externes typiques et à une analyse des retours d'erreurs, on peut conclure que le système contient les programmes testés.

Dans Chrome 90 pour Linux, la méthode n'a pas fonctionné et le navigateur a affiché une boîte de dialogue de confirmation d'opération standard pour toutes les tentatives de vérification du gestionnaire (dans Chrome pour Windows et macOS, la méthode fonctionne). Dans Firefox 88 pour Linux, tant en mode normal qu'en mode navigation privée, le script a détecté la présence d'applications supplémentaires installées dans la liste et la précision de l'identification a été estimée à 99.87 % (35 correspondances similaires sur 26 XNUMX tests effectués). Dans le navigateur Tor exécuté sur le même système, un identifiant a été généré qui correspondait au test dans Firefox.

Fait intéressant, la protection supplémentaire du navigateur Tor a joué une blague cruelle et s'est transformée en une opportunité de procéder à une identification inaperçue pour l'utilisateur. En raison de la désactivation des boîtes de dialogue de confirmation pour l'utilisation de gestionnaires externes dans le navigateur Tor, il s'est avéré que les demandes de vérification peuvent être ouvertes dans une iframe et non dans une fenêtre contextuelle (pour séparer la présence et l'absence de gestionnaires, les règles de même origine bloquer l'accès aux pages contenant des erreurs et autoriser l'accès à about:pages vierges). En raison de la protection contre les inondations, l'enregistrement dans le navigateur Tor prend sensiblement plus de temps (10 secondes par application).

Source: opennet.ru

Ajouter un commentaire