DO_NOT_TRACK - Ein Standard für den Schutz der Privatsphäre
(donottrack.sh)- DO_NOT_TRACK ist ein Vorschlag, die unterschiedlichen Methoden zum Deaktivieren von Telemetrie in CLI-Tools, SDKs und Frameworks in einer einzigen Umgebungsvariable zu vereinheitlichen
.NET,AWS SAM CLI,Azure CLI,Gatsby,Go,Google Cloud SDK,Homebrew,Netlify CLIundSyncthingdeaktivieren Telemetrie jeweils über unterschiedliche Einstellungen oder BefehleDO_NOT_TRACK=1bedeutet, dass Werbetracking, Nutzungsberichte, Telemetrie, Crash-Reporting sowie Anfragen an Hersteller oder Dritte abgelehnt werden, sofern sie nicht für die Funktion zwingend erforderlich sind- Nutzer können
export DO_NOT_TRACK=1setzen und dies zu den Shell-Einstellungen von Bash, Zsh, Fish, PowerShell oder Windows CMD hinzufügen, um es auf alle Terminal-Sitzungen anzuwenden - Softwarehersteller sollen bei
DO_NOT_TRACK=1jegliches Tracking deaktivieren und diese Variable zusätzlich zu bestehenden Deaktivierungsmethoden respektieren
Problem und Vorschlag
- Viele CLI-Tools, SDKs und Frameworks sammeln standardmäßig Telemetriedaten, und jedes Tool hat eine andere Methode zur Deaktivierung
- Zum Beispiel verwendet
.NETDOTNET_CLI_TELEMETRY_OPTOUT=1,AWS SAM CLISAM_CLI_TELEMETRY=0,Azure CLIAZURE_CORE_COLLECT_TELEMETRY=0,GatsbyGATSBY_TELEMETRY_DISABLED=1,Gogo telemetry off,Google Cloud SDKgcloud config set disable_usage_reporting true,HomebrewHOMEBREW_NO_ANALYTICS=1,Netlify CLInetlify --telemetry-disableundSyncthingSTNOUPGRADE=1 - DO_NOT_TRACK wird als einheitliche Standard-Umgebungsvariable vorgeschlagen, die klar ausdrückt, dass Nutzer Folgendes ablehnen
- Werbetracking
- Nutzungsberichte, unabhängig davon, ob sie anonym sind oder nicht
- Telemetrie
- Crash-Reporting
- Anfragen an Softwarehersteller oder Dritte, die nicht für die Funktion zwingend erforderlich sind
- Nutzer können ihren Wunsch nach rein lokaler Software mit
export DO_NOT_TRACK=1ausdrücken - Wird dies in die Shell-Konfigurationsdatei aufgenommen, gilt es für alle Terminal-Sitzungen
- Bash:
export DO_NOT_TRACK=1in~/.bashrc - Zsh:
export DO_NOT_TRACK=1in~/.zshrc - Fish:
set -x DO_NOT_TRACK 1in~/.config/fish/config.fish - PowerShell:
$env:DO_NOT_TRACK = "1"in$PROFILE - Windows CMD:
setx DO_NOT_TRACK 1als System-Umgebungsvariable
- Bash:
Softwarehersteller und verwandte Standards
- Tools, die Telemetrie, Analytics oder Netzwerk-Anfragen ausführen, die nicht für die Funktion zwingend erforderlich sind, sollten die Variable
DO_NOT_TRACKprüfen - Wenn
DO_NOT_TRACKauf1gesetzt ist, sollte jegliches Tracking deaktiviert werden - Diese Variable sollte zusätzlich zu bestehenden Deaktivierungsmethoden respektiert werden
- Statt Telemetrie standardmäßig zu aktivieren und anschließend eine Opt-out-Möglichkeit anzubieten, sollte auch ein Opt-in-Ansatz erwogen werden
- no-color.org —
NO_COLOR, ein Standard zum Deaktivieren farbiger Ausgabe - force-color.org —
FORCE_COLOR, ein Standard zum Erzwingen farbiger Ausgabe
1 Kommentare
Hacker-News-Kommentare
Es ist interessant, dass an diesem Punkt wohl niemand mehr überrascht wäre, wenn die Einwilligung zum Tracking der Standardzustand wäre
Ein Flag wie
DO_NOT_TRACKwirkt zwar sinnvoll, fühlt sich aber gleichzeitig so an, als würde es bedeuten, dass der StandardwertCONSENT_TO_TRACK=1ist — ziemlich gruseligDas Internet ist groß geworden, weil Werbung und Geschäftsmodelle, bei denen Server abgeleitete Informationen aus Nutzern herausziehen, zum Mainstream wurden
Das ist weder angenehm noch privat noch sicher, aber in den meisten Rechtsräumen und Branchen auch nicht illegal
Dieses Flag ist keine märchenhafte Utopie, sondern eine Reaktion auf eine faktisch und rechtlich verfestigte Realität
Ich will überhaupt keine Informationen nach außen geben und selbstverständlich auch nicht getrackt werden, daher ist schon die Kennzeichnung über nur eine Umgebungsvariable unsinnig
Ich kann nur schwer verstehen, warum jemand, der nicht getrackt werden will, gern genau diese Information preisgibt — in dem Moment, in dem man sie preisgibt, ist man bereits markiert
Ich benenne Variablen grundsätzlich positiv, daher wäre es in diesem Fall
ALLOW_TRACKING=0Das schafft Konsistenz und vermeidet doppelte Verneinungen, wodurch sich leichter darüber nachdenken lässt
Allerdings könnte „DO NOT TRACK“ bereits ein einigermaßen etablierter Begriff sein
ALLOW_TRACKINGauch als kommaseparierte Liste umsetzen, sodass nur bestimmte Anwendungen erlaubt sindWenn man zum Beispiel Telemetrie mit
goundbrewteilen möchte, aber nicht mitawsund allem anderen, könnte manALLOW_TRACKING=go,brewsetzenWahrscheinlich wird das dasselbe Schicksal erleiden wie
DNTim BrowserAllerdings scheint es keine schlechte Idee zu sein, alle Umgebungsvariablen für „nicht tracken“ in einer einzigen Datei
do_not_track.envzu sammelnWenn man sich an die Spezifikation auf dieser Seite halten und das mit nur einer simplen Umgebungsvariable lösen möchte, gibt es auch https://github.com/alloydwhitlock/do-not-track-cli
DNTmit dem Argument, Microsoft habe es standardmäßig aktiviert und den Nutzern damit die Wahl genommenIn Wirklichkeit hatten sie es vermutlich ohnehin nie vor zu respektieren
Statt zu verlangen, dass alle ein universelles Ding verwenden, liegt die tatsächliche Lösung wahrscheinlich eher in so einem Ansatz
Ich überlege, als Ausgangspunkt etwas in diese Richtung zu bauen
Zur Einordnung: Go-Telemetrie wird standardmäßig nur lokal gespeichert und nicht hochgeladen: https://go.dev/doc/telemetry
Ich war überrascht, wie schwierig es ist, die Python-Bibliothek
transformersdaran zu hindern, Hugging Face zu kontaktierenIch habe
HF_HUB_DISABLE_TELEMETRY=1gesetzt und beim Aufruf vonWav2Vec2CTCTokenizer.from_pretrainedauch ausdrücklichlocal_files_only=Trueangegeben, bekam aber trotzdem noch eine Warnung, dass kein gültigesHF_TOKENvorhanden seiErst als ich zufällig
HF_HUB_OFFLINE=1fand, war ich einigermaßen sicher, dass beim Laden eineswav2vec2-Modells von der Festplatte nicht doch jedes Mal eine Verbindung zu HF aufgebaut wirdOhne diese nervige
HF_TOKEN-Warnung hätte ich womöglich nie bemerkt, dass das überhaupt passiertSelbst wenn alles Nötige lokal vorhanden ist, ändert sich ständig, wie man verhindert, dass durch Verbindungsversuche Zeit verschwendet wird
Früher gab es auch Dinge wie
TRANSFORMERS_OFFLINEundHF_DATASETS_OFFLINEDas wirkt wie ein nützlicher Honigtopf
Wenn ein Tool öffentlich bekanntgibt, dass es diese Spezifikation unterstützt, könnte man es als ein Tool ansehen, das ohnehin ohne ausdrückliche Einwilligung Telemetrie sammelt — und das man besser meidet
DO_NOT_TRACKbedeutet nicht automatisch, dass Tracking nicht auf ausdrücklicher Einwilligung basiertZum Beispiel kann Software abstürzen, und der Crash-Handler fragt dann, ob ein Dump gesendet werden soll
Wenn
DO_NOT_TRACKgesetzt ist, wird der Crash-Handler selbst deaktiviert — also keine Frage und kein DumpFalls sich das einigermaßen durchsetzt, wird es vermutlich eher so funktionieren
Wer wie die Werbebranche finanziell von Tracking profitiert, wird solche Optionen eher nicht unterstützen
Sonst kann man viele moderne Tools nicht mehr verwenden
Während wir darauf warten, dass Unternehmen diesen Vorschlag sehr langsam umsetzen: Gibt es irgendwo eine zentrale Sammlung der Opt-out-Methoden für gängige Tools?
Vorstellbar wäre sogar ein Shell-Modul, das sie direkt setzt und die Liste regelmäßig aktualisiert
Wahrscheinlich ist es einfacher, einen eigenen DNS zu betreiben und problematische Domains in eine Sperrliste aufzunehmen
Es gibt gute Sperrlisten mit Millionen von Telemetrie-Domains. Zum Beispiel: https://github.com/hagezi/dns-blocklists
Die Leute, die nach einem „Standard“ rufen, fügen nur noch einen weiteren Eintrag zu der langen Liste inoffizieller Alternativen hinzu
Ein globales Tracking-Verbot im Browser betrifft alle besuchten Websites und Tracking zu Werbezwecken, deshalb funktioniert es im Großen und Ganzen
Aber Telemetrie ist ein völlig anderes Problem; eine Standardsperre kann zwar eine Option sein, aber eine einzige Standardvariable zu verwenden, um die Absicht für alle Tools auszudrücken, ist in der Praxis schwierig
Schon vor ein paar Jahren gab es denselben Vorschlag, aber daraus wurde nichts
https://web.archive.org/web/20200613155957/https://consoledo...