LinkedIn scanne les extensions de navigateur
(404privacy.com)- LinkedIn envoie, dans Chrome, des requêtes vers des URL
chrome-extension://afin de vérifier si certaines extensions sont installées ; pour celles qui ne le sont pas, l’échec de la requête apparaît comme une erreur dans la console des outils de développement - Comme LinkedIn possède déjà le nom, l’employeur, l’intitulé de poste, l’expérience et la localisation des utilisateurs, ce scan d’extensions n’ajoute pas une empreinte d’appareil anonyme, mais une liste de logiciels à une identité professionnelle vérifiée
- D’après les relevés de browsergate.eu et le dépôt de suivi sur GitHub, le scan est en place au moins depuis 2017, et la liste ciblée est passée de 38 à 6 278 éléments en avril 2026
- Le scan fait partie du système de collecte d’empreinte d’appareil APFC de LinkedIn, qui construit un profil à partir de 48 caractéristiques du navigateur et de l’appareil, dont l’empreinte canvas, WebGL, le comportement audio, les polices, les informations d’écran, la mémoire de l’appareil et l’IP locale via WebRTC
- Les résultats de détection sont empaquetés dans
AedEventetSpectroscopyEvent, chiffrés avec une clé publique RSA puis envoyés au point de terminaisonli/trackde LinkedIn ; browsergate.eu estime que cette méthode constitue une violation du Digital Markets Act de l’UE et indique qu’une enquête pénale a été ouverte
Une liste de logiciels rattachée à un profil nominatif
- La collecte d’empreinte classique est généralement présentée comme un moyen de reconnaître à nouveau le navigateur d’un visiteur anonyme sans cookies
- Dans ce cas, le profil peut être identifié au niveau de l’appareil, sans être nécessairement relié à une identité personnelle
- LinkedIn, lui, détient déjà le nom, l’employeur, l’intitulé du poste, l’expérience, la fourchette salariale, le réseau professionnel et la localisation de l’utilisateur
- Le scan d’extensions de LinkedIn ne sert donc pas à créer le profil d’un visiteur inconnu, mais à ajouter une liste détaillée de logiciels à une identité professionnelle déjà vérifiée
- La liste scannée par LinkedIn inclut des centaines d’extensions liées à la recherche d’emploi, ce qui peut permettre de savoir discrètement si un utilisateur cherche un nouveau poste avant qu’il n’en informe son employeur
- Des extensions liées aux contenus politiques, aux pratiques religieuses, à l’assistance au handicap ou à la neurodiversité figurent aussi dans la liste, ce qui signifie que les logiciels installés dans le navigateur peuvent servir de base pour déduire des éléments de la vie privée
- Comme LinkedIn connaît le lieu de travail de l’utilisateur, le résultat du scan d’un salarié peut contribuer à identifier non seulement cette personne, mais aussi les outils internes de l’organisation, ses produits de sécurité, ses abonnements concurrents et ses workflows
- La privacy policy de LinkedIn ne mentionne pas ce scan d’extensions, et les utilisateurs ne sont ni informés ni invités à donner leur consentement
Un problème qui dépasse LinkedIn
-
Application des règles et précédent
- LinkedIn utilise la liste d’extensions pour tirer des conclusions sur les utilisateurs ayant installé certaines extensions et prendre des mesures de modération ou d’application des règles
- Selon browsergate, Milinda Lakkam a confirmé sous serment : “LinkedIn took action against users who had specific extensions installed.”
- Les utilisateurs n’ont aucun moyen de savoir que leurs logiciels sont répertoriés, que cette liste est utilisée contre eux, ni que cela n’apparaît pas dans la politique de confidentialité de LinkedIn
-
L’écosystème de la collecte d’empreinte
- La collecte d’empreinte du navigateur est généralement décrite comme le fait qu’un site collecte des signaux, crée un profil et reconnaît un utilisateur d’une session à l’autre
- Le scan d’extensions de LinkedIn produit une liste détaillée de logiciels reliée à une identité vérifiée, et ce profil n’a pas besoin de rester à l’intérieur de LinkedIn
- Si LinkedIn achète des jeux de données comportementales à des tiers et que l’empreinte de l’utilisateur s’y trouve, LinkedIn peut l’ajouter aux informations utilisateur qu’il possède déjà
- Le comportement de navigation hors de LinkedIn, l’historique d’achats, les schémas de localisation et les centres d’intérêt peuvent ainsi devenir une partie du profil relié au compte LinkedIn
- À l’inverse, LinkedIn intègre aussi des scripts tiers, notamment Google reCAPTCHA Enterprise chargé sur toutes les pages visitées, ce qui fait circuler des données entre plateformes
- L’empreinte que LinkedIn relie à une identité vérifiée peut donc aussi avoir un impact sur les systèmes publicitaires et de suivi en dehors de linkedin.com
- Une seule connexion à LinkedIn peut suffire pour que l’empreinte créée lors de cette visite suive ensuite l’utilisateur sur l’ensemble du Web
-
Les profils d’utilisateurs réellement exposés
- Pour les journalistes, avocats, chercheurs et enquêteurs en droits humains, le profil LinkedIn peut constituer l’un des documents d’identité vérifiée les plus détaillés en ligne
- Un profil LinkedIn est construit délibérément, sous nom réel, à des fins professionnelles
- Le scan d’extensions y rattache, à l’insu de l’utilisateur, l’installation d’outils de confidentialité, d’extensions de sécurité, d’outils d’enquête et d’applications de productivité
- Si vous utilisez LinkedIn et Chrome, cette collecte a lieu actuellement
APFC et la collecte d’empreinte JavaScript avancée
- Le scan d’extensions n’est pas une fonction isolée, mais une partie d’un système plus large de collecte d’empreinte d’appareil que LinkedIn appelle en interne APFC
- APFC signifie Anti-fraud Platform Features Collection et est aussi appelé en interne DNA, pour Device Network Analysis
- LinkedIn est plus transparent sur ces méthodes de suivi que sur le scan d’extensions, mais ces techniques sont courantes sur les sites commerciaux
- Ce système collecte 48 caractéristiques du navigateur et de l’appareil à chaque visite
- Les éléments collectés incluent l’empreinte canvas, le renderer et les paramètres WebGL, le comportement du traitement audio, les polices installées, la résolution d’écran, le ratio de pixels, la concurrence matérielle, la mémoire de l’appareil, le niveau de batterie, l’adresse IP locale via WebRTC, le fuseau horaire et la langue
- Le scan d’extensions n’est qu’une des entrées utilisées pour constituer un profil plus large
Ce qui se passe techniquement
- Le code de LinkedIn envoie des requêtes
fetch()vers des URLchrome-extension://pour rechercher certains fichiers dans les extensions installées sur Chrome - Si l’extension n’est pas installée, Chrome bloque la requête et consigne l’échec
- Si l’extension est installée, la requête réussit silencieusement et LinkedIn l’enregistre
- Dans un environnement observé, le scan s’est exécuté pendant environ 15 minutes et a recherché plus de 6 000 extensions
- Les utilisateurs peuvent le constater eux-mêmes en ouvrant LinkedIn dans Chrome puis l’onglet Console des outils de développement
- Chaque erreur rouge dans la console correspond à une partie de l’empreinte de l’utilisateur
Structure du code et méthode de détection
- LinkedIn exécute du code JavaScript dans le navigateur de tous les visiteurs Chrome, et le système chargé du scan d’extensions s’y trouve
- Le fichier concerné est un fichier JavaScript minifié et partiellement obfusqué d’environ 1,6 Mo
- La minification consiste généralement à compresser le code pour des raisons de performance, tandis que l’obfuscation est une étape distincte visant à le rendre difficile à lire et à comprendre
- LinkedIn obfusque précisément le module contenant le système de scan d’extensions et le dissimule dans un fichier JavaScript de plusieurs milliers de lignes
- Le fichier contient un tableau codé en dur d’identifiants d’extensions de navigateur
- En février 2026, ce tableau comptait 6 278 entrées
- Chaque entrée comporte deux champs : l’identifiant de l’extension dans le Chrome Web Store et le chemin d’un fichier spécifique à l’intérieur du package de l’extension
- Le chemin du fichier n’est pas arbitraire : une extension Chrome peut exposer des fichiers internes à une page web via le champ
web_accessible_resources, ce qui le rend nécessaire - Si l’extension est installée et a déclaré ce fichier comme accessible, une requête
fetch()verschrome-extension://{id}/{file}réussit - Si elle n’est pas installée, Chrome bloque la requête
- LinkedIn identifie et détecte directement un fichier accessible spécifique pour chacune des 6 278 extensions de la liste
- La liste continue d’être maintenue et enrichie, et il semble qu’un outil ait existé pour crawler les packages d’extensions du Chrome Web Store et parser les ressources accessibles via le web dans chaque manifeste afin d’ajouter de nouvelles cibles de détection
Deux modes de scan et Spectroscopy
- Le scan d’extensions fonctionne selon deux modes
- Le premier mode utilise
Promise.allSettled()pour envoyer toutes les requêtes simultanément et détecter l’ensemble des extensions en parallèle - Le second envoie les requêtes de manière séquentielle avec un délai configurable entre chacune, répartissant l’activité réseau dans le temps pour qu’elle soit moins visible par les outils de monitoring
- LinkedIn peut basculer entre ces deux modes via des feature flags internes
- Le scan peut aussi être différé avec
requestIdleCallback, de manière à s’exécuter lorsque le navigateur est inactif, afin que l’utilisateur ne perçoive pas d’impact sur les performances - Un second système de détection appelé Spectroscopy fonctionne indépendamment de la liste d’extensions
- Spectroscopy parcourt l’ensemble de l’arbre DOM et inspecte tous les nœuds de texte ainsi que les attributs des éléments à la recherche de références à des URL
chrome-extension:// - Cette méthode permet de repérer des extensions qui modifient la page, même si elles ne figurent pas dans la liste codée en dur de LinkedIn
- Ensemble, ces deux systèmes couvrent à la fois les extensions installées et celles qui interagissent réellement avec la page
Envoi de la télémétrie
- Les deux systèmes de détection envoient leurs résultats dans la même pipeline de télémétrie
- Les identifiants d’extensions détectés sont empaquetés dans des objets
AedEventetSpectroscopyEvent - Ces objets sont chiffrés avec une clé publique RSA puis envoyés au point de terminaison
li/trackde LinkedIn - L’empreinte chiffrée est ensuite injectée dans les en-têtes HTTP de toutes les requêtes API émises au cours de la session
- LinkedIn reçoit ainsi cette valeur en même temps que chaque action effectuée par l’utilisateur pendant la visite
Contexte juridique
- browsergate.eu détaille longuement le raisonnement juridique associé
- En 2024, Microsoft a été désigné comme gatekeeper au titre du Digital Markets Act de l’UE, et LinkedIn fait partie des produits concernés par cette régulation
- Le DMA impose aux gatekeepers d’autoriser l’accès des outils tiers aux données des utilisateurs et interdit de prendre des mesures à l’encontre des utilisateurs de ces outils
- browsergate.eu estime que le fait pour LinkedIn de cibler systématiquement les utilisateurs d’outils tiers et d’utiliser pour cela un scan d’extensions clandestin constitue une violation de ces règles
- La recevabilité juridique de cette thèse relève toutefois de l’appréciation des autorités et des tribunaux
- La Cybercrime Unit du Bavarian Central Cybercrime Prosecution Office in Bamberg a confirmé qu’une enquête pénale avait été ouverte
- Cette autorité traite les affaires graves de cybercriminalité impliquant plusieurs juridictions
- browsergate.eu indique avoir confirmé l’existence de l’enquête pénale, fourni le numéro de dossier et préparer la publication complète des documents judiciaires
1 commentaires
Réactions sur Hacker News
« Il ne fait aucun doute qu’une enquête pénale a commencé. » Bien. Ces entreprises méritent d’être lapidées, et même pire
Toute équipe qui ne veut pas dégrader son site au point de le rendre médiocre devrait pouvoir filtrer les candidats à partir d’une liste connue de promoteurs de l’enshittification
Il est peut-être déjà trop tard pour couper le mal à la racine, mais il n’y a aucune raison de laisser ces personnes continuer sans la moindre contrainte et prendre encore plus d’ampleur
« Puis j’ai vu l’affaire browsergate exploser sur mastodon et je me suis dit “impossible”, mais en fait une procédure était bien en préparation. » - un-nf
Farrell v LinkedIn Corporation 4:26-cv-02953-KAW (N.D. Cal. Apr. 6, 2026)
https://ia601503.us.archive.org/33/items/gov.uscourts.cand.4...
Pourquoi est-ce que Chrome révèle à n’importe quel site la liste des extensions que j’ai installées ?
S’il n’y a pas d’erreur, cela permet de savoir que l’extension est installée. C’est astucieux et laborieux, mais cela contourne des protections de sécurité censées empêcher précisément ce genre de chose
D’après ce que j’ai lu, ils font ça pour bloquer les utilisateurs d’extensions de scraping connues qui permettent de contourner leurs conditions d’utilisation, mais je ne trouve pas ça totalement convaincant
« Les extensions Chrome peuvent exposer des fichiers internes aux pages web via le champ
web_accessible_resourcesdumanifest.json. Si l’extension est installée et expose la ressource, une requêtefetch()verschrome-extension://{id}/{file}réussit. Si elle n’est pas installée, Chrome bloque la requête et la promise est rejetée.LinkedIn teste ainsi toutes les extensions de sa liste. »
Mais faire ça pour 6 300 extensions représenterait énormément de travail. Est-ce qu’il existe des services qui proposent ça ?
Sérieusement, si on vous demandait d’implémenter ça au travail, vous feriez quoi : vous opposer et risquer de perdre votre poste, ou obéir et le garder ?
En tant que praticiens, où faut-il tracer la ligne entre télémétrie et surveillance ?
Cela dit, si vous en êtes à ce genre de jeu, il est peut-être temps de chercher un autre poste ;)
Cela dit, si seules trois personnes environ sont au courant, on vous identifiera tout de suite
Il est aussi possible qu’ils reçoivent ces consignes de managers dans une situation similaire, eux-mêmes sous des supérieurs qui ne regardent que la hausse du chiffre d’affaires sans se soucier des moyens. Malgré tout, on a l’impression qu’à un moment quelqu’un devrait dire : « qu’est-ce qu’on est en train de faire, au juste ? », c’est étrange
Pour répondre à la question, bien sûr que je m’y opposerais. J’ai simplement la chance, en ce moment, de pouvoir faire ce choix sans conséquences graves. Mais qui viendrait sur HN dire : « oui, je n’ai aucun sens moral ! » ? Même avec un compte jetable, on ne saurait pas si c’est sincère
Le passage le plus pertinent que j’ai trouvé dans l’original est celui-ci :
« Les extensions Chrome peuvent exposer des fichiers internes aux pages web via le champ
web_accessible_resourcesdumanifest.json. Si l’extension est installée et expose la ressource, une requêtefetch()verschrome-extension://{id}/{file}réussit. Si elle n’est pas installée, Chrome bloque la requête et la promise est rejetée.LinkedIn teste ainsi toutes les extensions de sa liste. »
Il serait aussi intéressant de voir quels autres sites testent les mêmes fichiers ; est-ce que quelqu’un s’est déjà penché là-dessus ?
C’est une pratique assez standard dans le fingerprinting d’appareil. LinkedIn s’en sert probablement pour protéger la plateforme contre le scraping, entre autres, et la liste des extensions possède suffisamment d’entropie pour identifier un utilisateur et constituer un élément utile de son empreinte
J’ai vu des gens créer et installer en quelques jours des extensions Chrome locales, puis injecter une IA dans les outils de développement pour pouvoir scraper à peu près n’importe quel site. C’était déjà le cas il y a quelques mois
Je ne pense pas qu’il existe désormais un moyen simple de se défendre contre ça. Ce type de mesures de programmation défensive ne sera utile que pendant un temps limité
Est-ce que c’est une hallucination ? Je ne retrouve cette citation nulle part ailleurs
« Selon browsergate, Milinda Lakkam a confirmé sous serment que “LinkedIn a pris des mesures à l’encontre d’utilisateurs ayant certaines extensions installées”. »
https://browsergate.eu/the-evidence-pack/
Le système de LinkedIn « a pu prendre des mesures contre des utilisateurs de LinkedIn chez qui [XXXXXX] était installé ».
Édition : sympa ! Je viens de voir que le texte en retrait revient désormais à la ligne aussi sur navigateur mobile, du moins sur ffm. Je me demande quand cela a été corrigé
Pour être juste, la politique de confidentialité de LinkedIn indique bien qu’ils collectent cette information. Voir https://www.linkedin.com/legal/privacy-policy?ref=cms.hondas...
« 1.5 Appareil et localisation
Lorsque vous visitez ou quittez nos services (y compris certains plugins et nos cookies ou technologies similaires sur des sites tiers), nous recevons l’URL du site d’où vous venez ainsi que celle du site vers lequel vous allez, ainsi que l’heure de votre visite. Nous recevons aussi des informations sur votre réseau et votre appareil (par exemple votre adresse IP, serveur proxy, système d’exploitation, navigateur web et modules complémentaires, identifiants et fonctionnalités de l’appareil, identifiants de cookies et/ou votre FAI ou opérateur mobile). Si vous utilisez nos services depuis un appareil mobile, cet appareil nous envoie des données de localisation selon les réglages de votre téléphone. Nous vous demandons votre consentement avant d’utiliser le GPS ou d’autres outils pour identifier votre position précise. »
La partie pertinente ici, c’est « y compris certains plugins »
J’ai supprimé mon compte LinkedIn, et ma vie va mieux depuis