L’activation dans les préférences avancées de Firefox (l’éditeur de configuration, la page about:config) des paramètres Resist Fingerprinting – ceux permettant de résister à la prise d’empreintes numériques – contribue à empêcher les sites web de vous identifier de façon unique en limitant les informations qu’ils collectent au sujet de votre appareil. Cette configuration peut paraître idéale aux personnes dont la priorité est la préservation de la vie privée, mais elle peut aussi provoquer le dysfonctionnement de quelques sites web. Pour la plupart, Mozilla recommande le mode de protection contre les détecteurs d’empreintes numériques des paramètres de Firefox de la protection renfoncée contre le pistage qui bloque les méthodes de pistage invasives tout en maintenant la compatibilité avec la plupart des sites web.
Des modules complémentaires peuvent activer Resist Fingerprinting dans les préférences avancées, ce qui signifie que cette activation peut se produire sans que vous l’ayez explicitement effectuée. Vous pouvez gérer les paramètres de privacy.resistFingerprinting dans la page about:config.
Savoir si Resist Fingerprinting est activé, et si oui, le désactiver
Ne poursuivez que si vous êtes à l’aise avec les paramètres avancés et en comprenez les effets potentiels.
- Saisissez about:config dans la barre d’adresse de Firefox, puis appuyez sur EntréeRetour
Une page d’avertissement peut apparaître. Cliquez sur pour accéder à la page about:config. - Dans la barre de recherche en haut, saisissez privacy.resistFingerprinting
- Un certain nombre de préférences apparaissent alors. Regardez si privacy.resistFingerprinting ou privacy.resistFingerprinting.pbMode ont la valeur true
- Pour savoir si une extension contrôle une de ces préférences, vous pouvez basculer sa valeur à false et redémarrer votre navigateur. Après le redémarrage, revenez à la page about:config et regardez si la valeur est redevenue true
Si c’est le cas, il vous reste à déterminer laquelle de vos extensions contrôle la préférence, la désactiver ou la supprimer. Une façon de parvenir à ce résultat consiste à désactiver les extensions installées une par une et redémarrer à chaque fois le navigateur, vérifier si la préférence a changé au redémarrage de Firefox. Ayez conscience que, dans de rare cas, plusieurs extensions peuvent modifier la préférence.
Comment Resist Fingerprinting peut-il casser des pages web ?
La fonctionnalité Resist Fingerprinting provoque nombre de comportements étranges qui sont couramment signalés comme des bugs. Bien qu’ils entraînent un fonctionnement du site web curieux ou incorrect, ces comportements montrent aussi que Resist Fingerprinting réagit comme prévu et c’est la raison pour laquelle nous ne recommandons pas cette fonctionnalité à l’utilisatrice ou l’utilisateur lambda de Firefox.
Il est également important de remarquer que si la préférence privacy.resistFingerprinting.pbMode est activée, mais que privacy.resistFingerprinting ne l’est pas, vous obtenez toujours certains effets de Resist Fingerprinting dans des fenêtres de navigation ordinaire, car il n’est pas possible de séparer ces comportements par fenêtre. Ils comprennent entre autres l’utilisation de couleurs fixées au lieu de celles du système.
Les comportements inattendus les plus courants sont les suivants :
- Les dates et heures s’affichent incorrectement ou, plus exactement, elles s’affichent dans un mauvais fuseau horaire.
- Des images, particulièrement celles créées en résultat d’un envoi et d’une édition dans le navigateur, peuvent afficher aléatoirement des lignes comme :
- Certaines animations ou jeux peuvent se lancer lentement.
- Des pages peuvent ne pas s’afficher dans la langue attendue, mais en anglais.
- Les personnes qui utilisent macOS ou Linux peuvent recevoir les informations ou les téléchargements prévus pour le système d’exploitation Windows.
- Des icônes, cartes ou images peuvent ne pas être rendues en haute fidélité et apparaître floues ou en basse résolution.
- Les manettes de jeux ne fonctionnent pas.
- Les tablettes graphiques, stylets ou écrans tactiles ne se comportent pas comme attendu.
- Les préférences d’affichage telles que le mode clair ou sombre, les animations réduites et la transparence diminuée ne sont pas respectées.
- Quand de nouvelles fenêtres sont ouvertes, elles ont une taille précise.
- Les couleurs natives du système sont remplacées et, à la place, des valeurs fixes sont utilisées.
Qu’est-ce que Resist Fingerprinting modifie ?
Resist Fingerprinting change de nombreux comportements du navigateur. La liste ci-dessous a pour but d’être à la fois de nature technique et aussi complète que possible, mais elle peut omettre des détails par accident.
- Le fuseau horaire est signalé comme UTC ou Icelandic.
- Les opérations mathématiques en JavaScript peuvent retourner des valeurs légèrement différentes des habituelles.
- La langue est signalée comme en-US.
- Les seules polices de caractères disponibles pour les sites web sont celles préinstallées dans le système d’exploitation. Les polices fournies dans les paquets linguistiques sont aussi exclues.
- Plusieurs propriétés de l’objet navigator sont fixées, notamment la valeur du nombre de processeurs du système (hardware concurrency value), la version de l’application et l’identifiant de compilation. La version de l’agent utilisateur (User Agent) est retournée comme étant la version majeure (par exemple, 119.0 au lieu de 119.1).
- Le système d’exploitation donné dans les en-têtes HTTP est Windows, celui retourné dans les propriétés de l’objet JavaScript navigator est correct.
- Sans accorder aucune permission, seuls une caméra et un microphone sont signalés comme appareils multimédias. Certaines erreurs peuvent signaler ces appareils comme non autorisés au lieu de non trouvés. Les évènements Device Change ne sont pas signalés.
- Les étiquettes des flux vidéo et audio sont fixées sur « Caméra interne » ou « Microphone interne ».
- Les capacités multimédias sont signalées comme prises en charge, fluides et peu économes en énergie.
- Le mode d’orientation vidéo a une valeur fixe.
- Le taux d’échantillonnage préféré pour l’audio est indiqué comme 44 100 et le taux d’échantillonnage est indiqué comme 48 000.
- La latence du contexte audio est fixe et le nombre maximal de canaux est indiqué comme étant de 2.
- Aucune manette de jeu n’est jamais signalée présente.
- Le type de connexion réseau est signalé comme « Inconnu ».
- Sous macOS, la préférence de lissage des polices du système d’exploitation n’est pas respectée.
- Tous les capteurs de l’appareil sont désactivés.
- La fréquence d’image est verrouillée à 60 ips.
- La précision de tous les horodatages, minuteries et horloges signalés est abaissée à 16,67 ms (pour correspondre à 60 ips).
- Les dimensions extérieures de la fenêtre sont signalées être les mêmes que les dimensions intérieures de la fenêtre.
- Les propriétés window.screenX et screenY, tout comme mozInnerScreenX et mozInnerScreenY et les coordonnées d’écran d’un événement sont toujours signalées comme 0,0.
- Les propriétés de l’écran top, left, width et height, et les homologues pour l’écran disponible sont toutes signalées les mêmes que les dimensions intérieures de la fenêtre.
- La profondeur de pixels de l’écran est signalée à 24.
- Le rapport de pixels de l’appareil est signalée à 2,0.
- La résolution CSS est indiquée comme le niveau de zoom, au lieu de prendre en compte le véritable rapport de pixels de l’appareil.
- L’orientation de l’écran est définie sur Paysage, car l’angle de l’écran est défini sur 0. Les événements OrientationChanged sont supprimés.
- Les attributs Radius, Rotation et Force des événements tactiles sont définis sur 0.
- La valeur de Max Touch Pointers pour les évènements Pointer est définie à 0.
- Plusieurs attributs de Pointer Event, comme Tilt et Pressure, ont leur valeur définie à une constante.
- Tous les événements de pointeur sont définis comme provenant d’un seul périphérique de pointage principal.
- Les capacités du pointeur sont décrites comme étant Coarse (pour Android) ou Fine et Hover (pour ordinateur).
- Les codes des touches pour les événements du clavier sont modifiés pour éviter toute fuite de la disposition du clavier.
- L’API WebSpeech ne renvoie aucune voix disponible.
- CSS retourne prefers-color-screen comme light.
- CSS retourne prefers-reduced-motion comme no-preference.
- CSS retourne prefers-contrast comme no-preference.