gnl AT framalistes.org
Assunto: GNU // Linux // Software Livre // Privacidade // Segurança // Linha de comandos
Arquivo da lista
- From: hrcerq <hrcerq AT disroot.org>
- To: gnl AT framalistes.org
- Subject: Re: Navegação Web, uma saga
- Date: Wed, 10 Aug 2022 22:01:15 -0300
Olá pessoal.
No relato desta saga eu comentei anteriormente os critérios que
considero inegociáveis para uma boa experiência com a Web. Agora vou
detalhar um deles, a liberdade (palavra que muitas vezes confunde e
pode ser usada para sentidos completamente distorcidos).
Pois bem, o que significa liberdade então (ao menos nesse contexto)? A
primeira coisa que as pessoas costumam pensar ao falar em software
livre é na licença de uso. É evidente que a licença tem uma forte
influência em quão livre um programa é. Mas não podemos olhar pra esse
fator acriticamente. É preciso compreender o que uma licença significa
na prática.
A primeira coisa a se ter em mente é que um programa não livre não é
automaticamente danoso ou ruim, apenas por não ser livre, mas passa a
sê-lo quando você precisa modificar o programa, e não pode fazê-lo por
restrições legais. Além disso, se o código não estiver disponível,
haverá algum trabalho para fazer engenharia reversa do programa, o que
é importante para que o programa possa ser auditado e dado como seguro
para uso. Algumas licenças proprietárias são tão abusivas que impõem
restrições até mesmo a isso.
Pois bem, uma licença considerada livre (como a GPL) garante então que
o programa seja livre, certo? Errado. A licença é um instrumento legal
importante, mas não absoluto. Infelizmente existem subterfúgios legais
que podem, na prática, tornar um programa não livre. A primeira coisa a
se compreender é que uma licença é um contrato, e em algumas
jurisdições, um contrato pode sim ser revogado.
Outros pontos frágeis são questões não ligadas a direitos autorais, mas
a marca registrada e patentes. Muito bem, patentes de software são uma
aberração e felizmente não são reconhecidas no Brasil, mas seria
ingenuidade pensar que patentes de software não possuem influência
alguma por aqui. Elas podem ser usadas para dificultar que um algoritmo
seja tornado público, a depender do seu país de origem, atrasando a sua
chegada ao Brasil.
Quanto a marca registrada, eu diria que esse talvez seja o elemento
mais usado para violar a liberdade sem violar o contrato: quando o
programa está infestado de referências a uma marca registrada, cuja
reprodução não é autorizada a terceiros, isso significa que você teria
um trabalho significativo em remover todas essas referências antes de
alterar e redistribuir o programa. É o caso, por exemplo, do navegador
Firefox, que possui inúmeras referências à Mozilla.
Agora, saindo (um pouco) do escopo legal, e entrando mais no escopo
técnico, existem ainda outros fatores que afetam a liberdade. Começarei
falando de infraestrutura. Um programa pode ser livre, mas encarcerado
em uma infraestrutura fechada. Na prática, portanto, será não livre.
Explico: para viabilizar que um programa seja desenvolvido e
redistribuído, há um conjunto de estruturas que devem interoperar,
serviços de:
- hospedagem do código;
- registro de problemas e sugestões;
- canais de suporte e resolução de dúvidas;
- notificações de mudanças e novas versões;
- construção (tornar o código fonte em executável, e empacotamento);
- repositórios, com auditoria e assinatura dos pacotes.
Tudo isso é necessário para fazer com que um programa possa ser
construído colaborativamente até chegar à sua máquina. Esses serviços
podem ser fornecidos por diferentes pessoas/grupos, porém todos eles
devem interoperar, e é importante que não imponham barreiras à
colaboração.
Um serviço que possui cláusulas abusivas (como um serviço de hospedagem
de código, que pode, sem aviso prévio, remover repositórios sem dar
satisfação sobre isto) talvez não receba aqueles que mais poderiam
contribuir para a evolução de um projeto.
Deste modo, algumas medidas que dão mais robustez à infraestrutura de
um programa são:
- plataformas abertas para hospedagem de código, ou auto-hospedagem;
- plataformas abertas para o reporte de problemas (e-mails sendo uma
opção, por exemplo);
- utilização de listas de e-mail para discussões abertas sobre o
projeto;
- utilização de serviço como canais em serviço IRC para sanar dúvidas
ou propor sugestões;
- notificações de mudanças via RSS ou Atom;
- redistribuição do programa em repositórios de sistemas operacionais,
cada qual com suas equipes de mantenedores (pessoas que empacotam e
assinam os programas antes de adicioná-los aos seus repositórios).
Ainda, outro elemento importante para garantir a liberdade de um
programa é um fator social, isto é, a comunidade que participa em todo
o processo, desde o desenvolvimento, teste, auditoria e uso do
programa. Uma comunidade vigilante a qualquer tentativa de sabotagem
fortalecerá o projeto, sempre propondo melhorias e protegendo o bom
funcionamento do mesmo.
Bem, até agora eu falei em termos mais genéricos sobre o que é a
liberdade no contexto computacional. Agora, serei mais específico sobre
o que espero de um navegador, no quesito liberdade.
Configurações
=============
- possibilidade de configurar o máximo possível;
- configurações serem persistidas, salvo quando uma mudança no
programa inviabiliza isso, neste caso os desenvolvedores deverão
alertar previamente a mudança e explicar por que ela é importante para
o usuário (como corrigir uma brecha de segurança, por exemplo).
Bloqueio de conteúdo
====================
- escolher o que você quer ver nas páginas;
- quando você acessa um domínio, não sabe quais outros domínios pode
ser induzido a acessar, e isto é problemático pois pode acessar
domínios conhecidos por propagandas, rastreadores, malware e chatices
de modo geral, portanto o controle sobre os domínios permitidos é
fundamental.
Embutir estilos
===============
- também tem a ver com escolher o que você quer ver nas páginas
Embutir scripts
===============
- apesar de ser contrário à execução de scripts nas páginas, algumas
delas infelizmente são mal projetadas, de modo que não funcionam sem
scripts. Nesses casos pode ser útil embutir seus próprios scripts, para
fazê-las funcionar, sem recorrer a scripts externos.
Não suporte a DRM
==================
- um programa verdadeiramente livre, por definição, é incapaz de
suportar DRM.
Sem atualizações forçadas ou automáticas
========================================
- o usuário deve ser capaz de escolher se/quando quer atualizar os
programas;
- mesmo as consultas sobre disponibilidade de atualizações devem ser
feitas apenas sob requisição do usuário;
- preferível atualizar por repositório de sistema operacional, quando
a distribuição de sistema operacional ofereça um procedimento seguro de
auditoria e assinatura dos pacotes envolvidos.
Bem, por hora é isso que tenho de cabeça... se lembrar de outros
aspectos relevantes eu vou complementando posteriormente.
Numa próxima oportunidade, falarei mais sobre o que espero de um
navegador Web no quesito privacidade.
--
Atenciosamente,
Hugo R. Cerqueira
"A única maneira de lidar com um mundo sem liberdade é tornar-se tão
absolutamente livre que a sua própria existência seja um ato de
rebelião."
(Albert Camus)
- Re: Navegação Web, uma saga, hrcerq, 11/08/2022
Arquivo provido por MHonArc 2.6.19+.