DO_NOT_TRACK - um padrão para proteção de privacidade
(donottrack.sh)- DO_NOT_TRACK é uma proposta para unificar em uma única variável de ambiente as diferentes formas de desativar telemetria usadas por cada ferramenta CLI, SDK e framework
.NET,AWS SAM CLI,Azure CLI,Gatsby,Go,Google Cloud SDK,Homebrew,Netlify CLIeSyncthingdesativam a telemetria usando configurações ou comandos diferentesDO_NOT_TRACK=1significa recusar rastreamento publicitário, relatórios de uso, telemetria, relatórios de falha e requisições ao criador do software ou a terceiros que não sejam essenciais para o funcionamento- O usuário pode definir
export DO_NOT_TRACK=1e adicionar isso às configurações de shell no Bash, Zsh, Fish, PowerShell e Windows CMD para aplicar a todas as sessões de terminal - Criadores de software devem respeitar
DO_NOT_TRACKe, se ele estiver definido como1, desativar todo o rastreamento junto com os métodos de desativação já existentes
Problema e proposta
- Muitas ferramentas CLI, SDKs e frameworks coletam dados de telemetria por padrão, e cada ferramenta tem um método diferente para desativar isso
- Por exemplo,
.NETusaDOTNET_CLI_TELEMETRY_OPTOUT=1,AWS SAM CLIusaSAM_CLI_TELEMETRY=0,Azure CLIusaAZURE_CORE_COLLECT_TELEMETRY=0,GatsbyusaGATSBY_TELEMETRY_DISABLED=1,Gousago telemetry off,Google Cloud SDKusagcloud config set disable_usage_reporting true,HomebrewusaHOMEBREW_NO_ANALYTICS=1,Netlify CLIusanetlify --telemetry-disableeSyncthingusaSTNOUPGRADE=1 - DO_NOT_TRACK é proposto como uma única variável de ambiente padrão para expressar claramente que o usuário recusa os seguintes itens
- rastreamento publicitário
- relatórios de uso, anônimos ou não
- telemetria
- relatórios de falha
- requisições ao criador do software ou a terceiros que não sejam essenciais para o funcionamento
- O usuário pode expressar que deseja apenas software local definindo
export DO_NOT_TRACK=1 - Ao adicionar isso ao arquivo de configuração do shell, é possível aplicar a todas as sessões de terminal
- Bash: adicionar
export DO_NOT_TRACK=1a~/.bashrc - Zsh: adicionar
export DO_NOT_TRACK=1a~/.zshrc - Fish: adicionar
set -x DO_NOT_TRACK 1a~/.config/fish/config.fish - PowerShell: adicionar
$env:DO_NOT_TRACK = "1"a$PROFILE - Windows CMD: usar
setx DO_NOT_TRACK 1na variável de ambiente do sistema
- Bash: adicionar
Criadores de software e padrões relacionados
- Ferramentas que executam telemetria, analytics ou requisições de rede não essenciais para o funcionamento devem verificar a variável
DO_NOT_TRACK - Se
DO_NOT_TRACKestiver definido como1, todo o rastreamento deve ser desativado - Essa variável deve ser respeitada junto com os métodos de desativação já existentes
- Também vale considerar mudar do modelo de ativação por padrão com opção de recusa para um modelo de opt-in
- no-color.org —
NO_COLOR, padrão para desativar saída colorida - force-color.org —
FORCE_COLOR, padrão para forçar saída colorida
1 comentários
Comentários do Hacker News
A esta altura, é curioso que ninguém mais se surpreenderia se o padrão fosse consentir com rastreamento
Um sinalizador como
DO_NOT_TRACKparece bom, mas ao mesmo tempo dá arrepios, porque soa como se o padrão fosseCONSENT_TO_TRACK=1A internet cresceu porque o modelo de negócios dominante era publicidade e servidores extraindo informações derivadas dos usuários
Não é divertido, nem privado, nem seguro, mas na maioria das jurisdições e setores também não é ilegal
Esse sinalizador não é um ideal de conto de fadas, e sim uma resposta a uma realidade consolidada na prática e na lei
Não quero enviar informação nenhuma e, obviamente, também não quero ser rastreado, então não faz sentido indicar isso com uma variável de ambiente
É difícil entender quem diz não querer ser rastreado, mas gosta de fornecer esse tipo de informação; no instante em que você a fornece, já ficou marcado
Eu sempre prefiro nomes de variáveis em forma afirmativa, então nesse caso seria
ALLOW_TRACKING=0Isso traz consistência e evita dupla negação, o que facilita o raciocínio
Dito isso, “DO NOT TRACK” talvez já seja um termo relativamente estabelecido
ALLOW_TRACKINGcomo uma lista separada por vírgulas, permitindo especificar só os aplicativos autorizadosPor exemplo, se eu quiser compartilhar telemetria com
goebrew, mas não comawsnem com o resto, poderia usarALLOW_TRACKING=go,brewÉ bem provável que tenha o mesmo destino do
DNTdos navegadoresAinda assim, não parece má ideia reunir todas as variáveis de ambiente de “não rastrear” em um único arquivo
do_not_track.envSe você quiser seguir a especificação dessa página e tratar isso com uma única variável de ambiente simples, também existe https://github.com/alloydwhitlock/do-not-track-cli
DNTalegando que a Microsoft o ativou por padrão e, com isso, tirou a liberdade de escolha dos usuáriosNa prática, provavelmente eles nunca tiveram intenção de respeitá-lo de qualquer forma
Em vez de exigir que se use uma única solução universal, o caminho real talvez seja algo desse tipo
Estou pensando em criar alguma coisa como ponto de partida
Só para constar, a telemetria do Go por padrão é armazenada apenas localmente e não é enviada: https://go.dev/doc/telemetry
Fiquei surpreso com como é mais difícil do que parece impedir que a biblioteca Python
transformersse comunique com o Hugging FaceConfigurei
HF_HUB_DISABLE_TELEMETRY=1e também especifiqueilocal_files_only=Trueao chamarWav2Vec2CTCTokenizer.from_pretrained, mas mesmo assim aparecia um aviso dizendo que não havia umHF_TOKENválidoSó depois de encontrar por acaso
HF_HUB_OFFLINE=1é que passei a ter alguma confiança de que não haveria conexão com a HF toda vez que eu carregasse um modelowav2vec2do discoSe não fosse por aquele aviso irritante sobre
HF_TOKEN, eu talvez nem soubesse que isso estava acontecendoMesmo algo tão básico quanto evitar perda de tempo tentando se conectar quando tudo de que você precisa já está localmente muda o tempo todo na forma de ser tratado
Antes também existiam coisas como
TRANSFORMERS_OFFLINEeHF_DATASETS_OFFLINEParece um honeypot útil
Se uma ferramenta anuncia publicamente que oferece suporte a essa especificação, isso pode ser visto como sinal de que ela coleta telemetria sem consentimento explícito para começo de conversa, então talvez seja uma ferramenta a evitar
DO_NOT_TRACKnão significa necessariamente que o rastreamento não funcione por consentimento explícitoPor exemplo, às vezes um software trava e o manipulador de falhas pergunta se deve enviar um dump
Se
DO_NOT_TRACKestiver presente, o próprio manipulador de falhas pode ser desativado, sem pergunta e sem dumpSe houver alguma adoção, provavelmente funcionará mais ou menos assim
Quem ganha dinheiro com rastreamento, como no caso da publicidade, provavelmente não vai oferecer suporte a esse tipo de opção
Senão você não vai conseguir usar muitas ferramentas modernas
Enquanto esperamos as empresas implementarem essa proposta bem devagar, existe algum lugar que reúna em um só ponto as formas de opt-out das ferramentas mais comuns?
Parece até possível fazer um módulo de shell que configure tudo isso e atualize a lista periodicamente
Provavelmente é mais fácil manter seu próprio DNS e colocar os domínios problemáticos numa blocklist
Há boas listas de bloqueio com milhões de domínios de telemetria. Ex.: https://github.com/hagezi/dns-blocklists
Quem fica falando em “padrão” só está acrescentando mais um item a uma longa lista de alternativas informais
O bloqueio global de rastreamento no navegador geralmente funciona porque se aplica a todos os sites visitados e ao rastreamento para fins publicitários
Mas telemetria é um problema completamente diferente, então o bloqueio por padrão pode até ser uma opção, porém é difícil, na prática, usar uma única variável padrão para expressar a intenção em todas as ferramentas
Houve a mesma proposta alguns anos atrás, mas não levou a lugar nenhum
https://web.archive.org/web/20200613155957/https://consoledo...