DO_NOT_TRACK - un standard pour protéger la vie privée
(donottrack.sh)- DO_NOT_TRACK est une proposition visant à unifier, via une seule variable d’environnement, les différentes façons de désactiver la télémétrie selon les outils CLI, SDK et frameworks
.NET,AWS SAM CLI,Azure CLI,Gatsby,Go,Google Cloud SDK,Homebrew,Netlify CLI,Syncthingdésactivent chacun la télémétrie avec des réglages ou des commandes différentsDO_NOT_TRACK=1signifie refuser le suivi publicitaire, les rapports d’usage, la télémétrie, les rapports de plantage, ainsi que les requêtes adressées aux éditeurs ou à des tiers qui ne sont pas indispensables au fonctionnement- Les utilisateurs peuvent définir
export DO_NOT_TRACK=1et l’ajouter à la configuration de leur shell dans Bash, Zsh, Fish, PowerShell ou Windows CMD afin de l’appliquer à toutes les sessions de terminal - Les éditeurs de logiciels doivent désactiver tout suivi si
DO_NOT_TRACKvaut1, et respecter cette variable en plus des méthodes de désactivation existantes
Problème et proposition
- De nombreux outils CLI, SDK et frameworks collectent par défaut des données de télémétrie, et chaque outil propose une méthode différente pour les désactiver
- Par exemple,
.NETutiliseDOTNET_CLI_TELEMETRY_OPTOUT=1,AWS SAM CLIutiliseSAM_CLI_TELEMETRY=0,Azure CLIutiliseAZURE_CORE_COLLECT_TELEMETRY=0,GatsbyutiliseGATSBY_TELEMETRY_DISABLED=1,Goutilisego telemetry off,Google Cloud SDKutilisegcloud config set disable_usage_reporting true,HomebrewutiliseHOMEBREW_NO_ANALYTICS=1,Netlify CLIutilisenetlify --telemetry-disable,SyncthingutiliseSTNOUPGRADE=1 - DO_NOT_TRACK est proposé comme une variable d’environnement standard unique qui exprime clairement que l’utilisateur refuse les éléments suivants
- le suivi publicitaire
- les rapports d’usage, qu’ils soient anonymes ou non
- la télémétrie
- les rapports de plantage
- les requêtes adressées à l’éditeur du logiciel ou à des tiers qui ne sont pas indispensables au fonctionnement
- Les utilisateurs peuvent indiquer qu’ils ne veulent qu’un logiciel local en définissant
export DO_NOT_TRACK=1 - En l’ajoutant au fichier de configuration du shell, cela peut s’appliquer à toutes les sessions de terminal
- Bash :
~/.bashrcavecexport DO_NOT_TRACK=1 - Zsh :
~/.zshrcavecexport DO_NOT_TRACK=1 - Fish :
~/.config/fish/config.fishavecset -x DO_NOT_TRACK 1 - PowerShell :
$PROFILEavec$env:DO_NOT_TRACK = "1" - Windows CMD :
setx DO_NOT_TRACK 1dans les variables d’environnement système
- Bash :
Éditeurs de logiciels et standards associés
- Les outils qui effectuent de la télémétrie, des analyses ou des requêtes réseau non indispensables au fonctionnement doivent vérifier la variable
DO_NOT_TRACK - Si
DO_NOT_TRACKest défini à1, tout suivi doit être désactivé - Cette variable doit être respectée en plus des méthodes de désactivation existantes
- Au lieu d’activer la télémétrie par défaut avec un mécanisme d’exclusion, il est aussi envisageable d’adopter un fonctionnement en opt-in
- no-color.org —
NO_COLOR, standard pour désactiver la sortie en couleur - force-color.org —
FORCE_COLOR, standard pour forcer la sortie en couleur
1 commentaires
Commentaires Hacker News
Il est intéressant qu’à ce stade, plus personne ne semble surpris même si l’état par défaut est le consentement au suivi
Un indicateur comme
DO_NOT_TRACKa l’air bien, mais en même temps ça donne l’impression que la valeur par défaut estCONSENT_TO_TRACK=1, ce qui fait froid dans le dosSi Internet a grandi ainsi, c’est parce que le modèle économique dominant reposait sur la publicité et sur des serveurs qui extraient des informations dérivées des utilisateurs
Ce n’est ni agréable, ni privé, ni sûr, mais dans la plupart des juridictions et des secteurs, ce n’est pas non plus illégal
Cet indicateur n’est pas un idéal de conte de fées, mais une réponse à une réalité déjà solidement installée, de fait comme en droit
Je ne veux transmettre aucune information, et bien sûr je ne veux pas être suivi, donc le simple fait d’exprimer cela via une variable d’environnement n’a déjà pas de sens
J’ai du mal à comprendre les gens qui disent ne pas vouloir être suivis tout en aimant fournir cette information, et au moment même où ils la donnent, c’est déjà signalé
J’essaie toujours de nommer les variables de manière positive, donc ici ce serait
ALLOW_TRACKING=0Cela apporte de la cohérence et évite la double négation, ce qui rend le raisonnement plus simple
Cela dit, le nom « DO NOT TRACK » est peut-être déjà un terme relativement établi
ALLOW_TRACKINGcomme une liste séparée par des virgules, afin de ne désigner que les applications autoriséesPar exemple, si je veux partager de la télémétrie avec
goetbrew, mais pas avecawsni le reste, je pourrais mettreALLOW_TRACKING=go,brewCela risque de connaître le même destin que le
DNTdu navigateurEn revanche, rassembler toutes les variables d’environnement de type « ne pas suivre » dans un seul fichier
do_not_track.envne semble pas être une mauvaise idéeSi l’on veut respecter la spécification de cette page tout en gérant cela avec une simple variable d’environnement, il y a aussi https://github.com/alloydwhitlock/do-not-track-cli
DNTde Microsoft en affirmant que l’activer par défaut privait les utilisateurs de leur liberté de choixEn réalité, il est très probable qu’ils n’avaient de toute façon aucune intention de le respecter
Plutôt que d’exiger l’usage d’une solution universelle, une vraie solution ressemblera probablement davantage à cela
Je pense essayer d’en faire quelque chose comme point de départ
À noter que la télémétrie de Go est stockée localement par défaut et n’est pas envoyée : https://go.dev/doc/telemetry
J’ai été surpris de voir à quel point il est difficile d’empêcher la bibliothèque Python
transformersde contacter Hugging FaceJ’ai défini
HF_HUB_DISABLE_TELEMETRY=1et j’ai aussi précisélocal_files_only=Truelors de l’appel àWav2Vec2CTCTokenizer.from_pretrained, mais j’avais quand même un avertissement disant qu’aucunHF_TOKENvalide n’était présentCe n’est qu’après être tombé par hasard sur
HF_HUB_OFFLINE=1que j’ai eu un minimum de certitude qu’aucune connexion vers HF n’était faite à chaque chargement du modèlewav2vec2depuis le disqueSans cet agaçant avertissement
HF_TOKEN, je n’aurais probablement même pas su que cela se produisaitMême le fait d’éviter de perdre du temps à essayer de se connecter alors que tout ce qu’il faut est déjà en local change constamment de mécanisme
Avant, il y avait aussi
TRANSFORMERS_OFFLINE,HF_DATASETS_OFFLINE, etc.Cela ressemble à un pot de miel utile
Si un outil annonce publiquement qu’il prend en charge cette spécification, on peut aussi y voir le signe qu’il collecte de la télémétrie sans consentement explicite au départ, donc qu’il vaut mieux l’éviter
DO_NOT_TRACKne signifie pas nécessairement que le suivi n’était pas déjà basé sur un consentement explicitePar exemple, il arrive qu’un logiciel plante et qu’un gestionnaire de crash demande s’il doit envoyer un dump
Si
DO_NOT_TRACKest présent, le gestionnaire de crash lui-même pourrait être désactivé, donc pas de question et pas de dumpSi cela est adopté dans une certaine mesure, c’est probablement ainsi que cela fonctionnerait
Les acteurs qui tirent un profit financier du suivi, comme la publicité, ne prendront probablement pas en charge ce type d’option
Sinon, on risque de ne plus pouvoir utiliser beaucoup d’outils modernes
En attendant que les entreprises implémentent cette proposition à un rythme très lent, existe-t-il un endroit qui centralise les méthodes de désinscription des outils courants ?
On pourrait même imaginer un module shell qui les configure et met régulièrement la liste à jour
Il est probablement plus simple d’exploiter son propre DNS et d’ajouter les domaines problématiques à une liste de blocage
Il existe aussi de bonnes listes de blocage contenant des millions de domaines de télémétrie. Par exemple : https://github.com/hagezi/dns-blocklists
Ceux qui crient au « standard » ne font qu’ajouter une option de plus à une longue liste d’alternatives non officielles
L’interdiction globale du suivi dans le navigateur vise le suivi publicitaire sur tous les sites visités, et cela fonctionne globalement
Mais la télémétrie est un problème totalement différent, donc un blocage par défaut peut être une option, alors qu’utiliser une seule variable standard pour exprimer l’intention sur tous les outils est difficilement réaliste
La même proposition existait déjà il y a quelques années, mais elle n’a abouti à rien
https://web.archive.org/web/20200613155957/https://consoledo...