A Quem Aquele Servidor Realmente Serve?
por Richard StallmanNa internet, software privativo não é a única maneira de você perder a sua liberdade computacional. Serviço como Substituto de Software, Service as a Software Substitute ou SaaSS, é outra forma de dar a alguém poder sobre sua computação.
O ponto básico é que você pode ter controle sobre um programa que outra pessoa escreveu (se ele é livre), mas você nunca pode ter controle sobre um serviço executado por uma outra pessoa, então nunca use um serviço onde, em princípio, executar um programa faria.
SaaSS significa usar um serviço, implementado por outra pessoa, como um substituto da execução de sua própria cópia de um programa. O termo é nosso; artigos e anúncios publicitários não irão usá-lo, e eles não vão contar a você que um serviço é SaaSS. Ao invés disso, provavelmente usarão o termo vago e elusivo “nuvem”, ou sua versão em inglês “cloud”, o qual mistura SaaSS junto com várias outras práticas, algumas abusivas e algumas aceitáveis. Com a explanação e os exemplos desta página, você poderá determinar se um serviço é ou não SaaSS.
Plano de fundo: Como o Software Privativo Toma a Sua Liberdade
Tecnologia digital pode dar a você liberdade; ela também pode tomar a sua liberdade. A primeira ameaça ao nosso controle sobre a nossa computação veio do software privativo: softwares que os usuários não podem controlar porque o fabricante (uma empresa como a Apple ou a Microsoft) o controla. O dono com frequência tira vantagem desse poder injusto, inserindo funcionalidades maliciosas tais como spyware, back doors e Gestão Digital de Restrições (DRM) (referenciado como “Gestão de Direitos Digitais” [Digital Rights Management] nas suas propagandas).
Nossa solução para este problema é o desenvolvimento de software livre e a rejeição de software privativo. Software livre significa que você, como um usuário, tem quatro liberdades essenciais: (0) de executar o programa como você desejar, (1) de estudar e alterar o código-fonte para que ele faça o que você desejar, (2) de redistribuir cópias exatas e (3) de redistribuir cópias de suas versões modificadas. (Veja a definição de software livre.)
Com software livre, nós, os usuários, tomamos de volta o controle sobre nossa computação. Software privativo ainda existe, mas nós podemos excluí-lo de nossas vidas, e muitos de nós já o fizemos. Porém, agora a nós é oferecida uma outra forma tentadora de ceder o controle de nossa computação: Serviço como Substituto de Software (SaaSS). Para o bem de nossa liberdade, temos que rejeitar isso também.
Como Serviço como substituto de Software Tira Sua Liberdade
Serviço como Substituto de Software (SaaSS) significa usar um serviço como substituto de executar sua cópia de um programa. Concretamente, significa que alguém configura um servidor de rede para realizar determinadas atividades computacionais – por exemplo, modificar uma fotografia, traduzir um texto para outro idioma, etc – e, então, convida usuários a deixara o servidor fazer sua própria computação para eles. Como um usuário do servidor, você enviaria seus dados para o servidor aquela atividade computacional no dados fornecidos, e então envia os resultados de volta para você, ou age diretamente em seu nome.
O que significa dizer que uma determinada atividade computacional é sua própria? Isso significa que ninguém mais está intrinsecamente envolvido nisso. Para esclarecer o significado de “intrinsecamente envolvido”, apresentamos um experimento de pensamento. Suponha que qualquer software livre de que você possa precisar para o trabalho esteja disponível para você, e todos os dados de que você possa precisar, bem como computadores de qualquer velocidade, funcionalidade e capacidade que possam ser necessários. Você poderia fazer essa atividade de computação específica inteiramente nesses computadores, sem se comunicar com os computadores de outra pessoa?
Se você pudesse, a atividade é inteiramente sua própria. Para o bem da sua liberdade, você merece controlá-la. Se você fizer isso executando software livre, você a controla. No entanto, fazer isso por meio do serviço de outra pessoa daria a essa outra pessoa o controle sobre sua atividade computacional. Chamamos esse cenário de SaaSS e dizemos que é injusto.
Por outro lado, se por razões fundamentais você não puder fazer essa atividade em seus próprios computadores, então a atividade não é inteiramente sua, então a questão do SaaSS não se aplica a essa atividade. Em geral, essas atividades envolvem comunicação com outras pessoas.
Servidores SaaSS tiram o controle dos usuários de forma ainda mais inexorável do que os softwares privativos. Com software privativo, os usuários normalmente têm um arquivo executável, mas não o código-fonte. Isso torna difícil estudar o código que está sendo executado e, portanto, é difícil determinar o que o programa realmente faz, e é difícil alterá-lo.
Com SaaSS, os usuários não têm nem mesmo o arquivo executável que realiza sua computação: ele está no servidor de outra pessoa, onde os usuários não podem vê-lo nem tocá-lo. Portanto, é impossível para eles ter certeza do que o programa realmente faz, e é impossível modificá-lo.
Além do mais, SaaSS automaticamente leva a consequências equivalentes aos recursos maliciosos de certos programas privativos.
Por exemplo, alguns programas privativos são “spyware”: o programa envia dados sobre as atividades computacionais dos usuários. Microsoft Windows envia informações das atividades do usuário para a Microsoft. Windows Media Player relata o que cada usuário assiste ou ouve. O Amazon Kindle relata quais páginas de quais livros o usuário vê, e quando. Angry Birds relata o histórico de localização geográfica do usuário.
Diferentemente do software privativo, SaaSS não requer código oculto para obter dados do usuário. Ao invés disso, os usuários devem enviar seus dados para o servidor, para poderem usá-lo. Isso tem o mesmo efeito que o spyware: o operador do servidor obtém os dados — sem nenhum esforço em especial, pela própria natureza do SaaSS. Amy Webb, que nunca teve a intenção de postar nenhuma foto de sua filha, cometeu o erro de usar SaaSS (Instagram) para editar fotos dela. Eventualmente, as fotos vazaram de lá.
Teoricamente, criptografia homomórfica pode, em algum dia, avançar até o ponto em que futuros serviços de SaaSS poderem ser construídos com a capacidade de entender alguns dados que usuários lhes enviam. Tais serviços poderiam ser configurados para não bisbilhotar os usuários; isso não significa que eles não vão bisbilhotar. Além disso, bisbilhotar é apenas um entre as injustiças secundárias de SaaSS.
Alguns sistemas operacionais privativos têm uma porta dos fundos [back door] universal, permitindo que alguém possa, remotamente, instalar alterações nos programas. Por exemplo, Windows tem uma porta dos fundos universal com a qual a Microsoft pode alterar à força qualquer software naquela máquina. Praticamente todos os telefones portáteis as têm, também. Algumas aplicações privativas também têm portas dos fundos universais: por exemplo, o cliente Steam para GNU/Linux permite ao desenvolvedor instalar versões modificadas à distância.
Com SaaSS, o operador do servidor pode modificar o software usado no servidor. Ele tem que ser capaz de fazer isso, já que o computador é dele; mas o resultado [para o usuário] é o mesmo que usar programa aplicativo privativo com uma porta dos fundos universal: alguém tem o poder de, silenciosamente, impor mudanças no modo com que a computação do usuário é feita.
Portanto, SaaSS é equivalente a executar software privativo com spyware e uma porta dos fundos [back door] universal. Ele concede ao operador do servidor um poder injusto sobre o usuário, e esse poder é algo a que devemos resistir.
SaaSS e SaaS
Originalmente, nós nos referíamos a essa prática problemática como “SaaS”, que significa Software como Serviço [“Software as a Service”]. Trata-se de um termo comumente usado para a configuração de software em um servidor, ao invés da oferta de cópias dele aos usuários, e nós pensávamos que esse termo descrevia com precisão os casos em que esse problema ocorre.
Subsequentemente, tomamos consciência de que o termo SaaS algumas vezes é usado para serviços de comunicação — atividades em que essa questão não se aplica. Adicionalmente, o termo “Software como Serviço” não explica por que a prática é ruim. Então, nós cunhamos o termo “Serviço como Substituto de Software” [“Service as a Software Substitute”], que define a má prática mais claramente e diz o que é ruim nela.
Separando a Questão do SaaSS da Questão do Software Privativo
SaaSS e software privativo levam a resultados similarmente danosos, mas os mecanismos são diferentes. Com o software privativo, o mecanismo é que você tem e usa uma cópia que é difícil ou ilegal alterar. Com o SaaSS, o mecanismo é que você não tem a cópia que executa sua computação.
Essas duas questões são frequentemente confundidas, e não apenas por acidente. Desenvolvedores web usam o termo vago “aplicação web” para amontoar os softwares de servidor juntos com programas que executam no navegador web da sua máquina. Algumas páginas web instalam programas JavaScript não-triviais, ou por vezes grandes, em seu navegador, sem lhe informar. Quando esses programas JavaScripts são não-livres, eles podem ser tão ruins quanto qualquer outro software não-livre. Aqui, porém, estamos tratando do problema do software do servidor em si mesmo.
Muitos apoiadores de software livre presumem que o problema do SaaSS vai ser resolvido pelo desenvolvimento de software livre para servidores. Para o bem dos operadores de servidor, é melhor que os programas no servidor sejam livres; quando eles são privativos, seus donos têm o poder sobre o servidor. Isso é injusto com o operador e não ajuda os usuários em nada. Mas se os programas no servidor são livres, isso não protege você como usuário do servidor dos efeitos do SaaSS. Eles dão liberdade ao operador, mas não aos usuários do servidor.
Liberar o código-fonte de software para servidor beneficia a comunidade: isso permite que usuários com as habilidades adequadas configurem servidores similares, possivelmente alterando o software. Recomendamos o uso da GNU Affero GPL como licença para os programas frequentemente usados em servidores.
Mas nenhum daqueles servidores daria a você o controle sobre a computação que você faz nele, a não ser que seja o seu servidor (um daqueles cuja carga de software você controla, independentemente da máquina ser de sua propriedade). Pode ser aceitável confiar algumas tarefas a servidores de amigos seus, assim como você poderia deixar um amigo seu configurar os programas de seu próprio computador. Fora isso, todos aqueles servidores serão SaaSS para você. SaaSS sempre lhe sujeita ao poder do operador do servidor, e o único remédio é: Não use SaaSS! Não use um servidor alheio para fazer suas próprias atividades computacionais sobre dados fornecidos por você.
Essa questão demonstra a profundidade da diferença entre “aberto” e “livre”. Código-fonte que é um código aberto é (quase sempre) livre. Porém, a ideia de um serviço “software aberto”, referindo-se a um software de servidor ser código aberto e/ou livre, falha em resolver a questão do SaaSS.
Serviços são fundamentalmente diferentes de programas, e as questões éticas que serviços levantam são fundamentalmente diferentes das questões que programas levantam. Para evitar confusão, evitamos descrever algum serviço como “livre” ou “privativo”.
Diferenciando SaaSS de Outros Serviços de Rede
Quais serviços são SaaSS? O exemplo mais claro é um serviço de tradução, que traduz (digamos) um texto de inglês para espanhol. A tradução de um texto para você é uma tarefa computacional que é puramente sua. Você poderia realizá-la executando um programa em seu próprio computador, se você simplesmente tivesse o programa certo. (Para ser ético, esse programa deve ser livre.) O serviço de tradução substitui esse programa, então trata-se de Serviço como Substituto de Software, ou SaaSS. Por lhe negar o controle de sua própria computação, ele é ruim para você.
Outro exemplo claro é o uso de um serviço como Flickr ou Instagram para modificar uma foto. Modificar fotos é uma atividade que as pessoas têm feito em seus próprios computadores ao longo de décadas; fazê-la em um servidor, ao invés de em seu próprio computador é SaaSS.
Rejeitar SaaSS não significa se recusar a usar quaisquer servidores de rede mantidos por qualquer pessoa além de você. A maioria dos servidores não são SaaSS porque os trabalhos que eles fazem não são a computação do próprio usuário.
O propósito original de servidores web não era realizar atividades computacionais por você, e sim publicar informações para você acessar. Mesmo hoje em dia, é isso o que faz a maioria dos sites, sem que haja o problema do SaaSS, pois acessar uma informação publicada por outra pessoa não é fazer sua própria computação. Nem a publicação de seu próprio material através de um site de blog ou serviço de microblog, como Twitter ou StatusNet. (Esses serviços podem ter outros problemas, é claro.) O mesmo vale para outras comunicações que não têm a intenção de ser privadas, como grupos de bate-papo.
Na sua essência, as redes sociais digitais são uma forma de comunicação e publicação, não SaaSS. Entretanto, um serviço cuja principal função é a de rede social pode ter recursos e extensões que são SaaSS.
Se um serviço não é SaaSS, isso não significa que ele não apresente algum problema. Há outras questões éticas sobre serviços. Por exemplo, o Facebook requer a execução de código JavaScript não livre; e ele dá aos usuários uma impressão enganosa de privacidade, enquanto os induz a desnudar suas vidas para o Facebook. Essas são questões importantes, diversas da questão do SaaSS.
Serviços como mecanismos de pesquisa coletam dados de toda a web e permitem que você os examine. Observar a coleção de dados deles não é fazer sua própria atividade computacional, no sentido comum — você não forneceu aquela coleção de dados —, então o uso de um tal serviço para pesquisar a web não é SaaSS. Porém, usar o mecanismo de pesquisa alheio para implementar um recurso de pesquisa em seu próprio site definitivamente é SaaSS.
Compras pela internet não é SaaSS, pois a computação não é sua própria atividade; pelo contrário, ela é feita conjuntamente por você e pela loja. O problema real nas compras pela internet é se você confia seu dinheiro e outras informações pessoais (a começar pelo seu nome) à outra parte.
Sites de repositórios tais como Savannah e SourceForge não são inerentemente SaaSS porque a tarefa de um repositório é publicar os dados a ele fornecidos.
Usar servidores de projeto conjunto não é SaaSS porque a atividade computacional que você faz desta forma não é sua própria. Por exemplo, ao editar páginas na Wikipédia, você não está fazendo sua própria computação; ao invés disso, você está colaborando para a atividade computacional da Wikipédia. A Wikipédia controla seus próprios servidores, mas organizações, assim como indivíduos, encontram o problema do SaaSS quando fazem sua própria computação em um servidor alheio.
Alguns sites oferecem múltiplos serviços, e se um não é SaaSS, outro pode ser SaaSS. Por exemplo, o serviço principal do Facebook é o de rede social, e isso não é SaaSS; porém, ele possui suporte a aplicativos de terceiros, alguns dos quais são SaaSS. O serviço principal do Flickr é a distribuição de fotos, que não é SaaSS, mas ele também possui recursos para a edição de fotos, que é SaaSS. Da mesma maneira, usar Instagram para postar uma foto não é SaaSS, mas usá-lo para transformar uma foto é SaaSS.
Google Docs mostra o quão complexa pode se tornar a avaliação de um único serviço. Ele convida pessoas a editarem um documento através da execução de um enorme programa JavaScript não-livre, claramente mau. Contudo, oferece uma API para upload e download de documentos em formatos padrão. Um software editor livre pode fazer isso usando essa API. Esse cenário de uso não é SaaSS porque usa Google Docs como um mero repositório. Mostrar todos os seus dados para uma companhia é ruim, mas isso é um problema de privacidade, não de SaaSS; depender de um serviço para acessar seus próprios dados é mau, porém é um problema de risco, não de SaaSS. Por outro lado, usar o serviço para converter documentos de um formato a outro é SaaSS, porque é algo que poderia ser feito rodando um programa adequado (livre, espera-se) em seu próprio computador.
Usar Google Docs através de um editor livre é raro, é claro. Mais frequentemente, as pessoas o usam através do programa JavaScript não-livre, que é tão ruim quanto qualquer programa não-livre. Esse cenário poderia envolver SaaSS, também; isso vai depender de que parte da edição é feita no programa JavaScript e que parte é feita no servidor. Não sabemos como isso é feito, mas, desde que SaaSS e software privativo causam males parecidos ao usuário, não é crucial saber como.
A publicação através do repositório de outra pessoa não levanta problemas de privacidade, mas publicar através do Google Docs tem um problema especial: é impossível até mesmo ver o texto de um documento no Google Docs em um navegador, sem executar o código JavaScript não-livre. Então, você não deve usar Google Docs para publicar nada — mas a razão não é um assunto de SaaSS.
A indústria de TI desencoraja os usuários a considerarem essas diferenças. É para isso que serve a expressão do momento “computação em nuvem” [“cloud computing”]. Esse termo é tão nebuloso que pode referir-se a quase qualquer uso da internet. Ele inclui SaaSS assim como muitas outras práticas de uso de rede. Em qualquer dado contexto, um autor que escreve “nuvem” (se ele é uma pessoa técnica) provavelmente tem um significado específico em mente, mas usualmente não explica que em outros artigos o termo tem outros significados específicos. O termo induz as pessoas a generalizarem sobre práticas que elas deveriam considerar separadamente.
Se “computação em nuvem” tem algum significado, não se trata de um jeito de efetuar uma computação, mas de um jeito de pensar sobre computação. Uma abordagem irresponsável, que diz: “Não façam perguntas. Não se preocupem com quem controla sua computação ou quem detém seus dados. Não verifiquem se há algum anzol escondido em nosso serviço antes de engoli-lo. Confiem em companhias sem hesitar”. Em outras palavras, “Seja um otário”. Uma nuvem na mente é um obstáculo ao pensamento claro. Em prol do pensamento claro, evitemos o termo “nuvem”.
Alugando um Servidor Diferente de SaaSS
Se você alugar um servidor (real ou virtual), cujo carregamento de software você tem controle, isso não é SaaSS. No SaaSS, outra pessoa decide qual software é usado no servidor e, portanto, controla a computador que ele faz por você. No caso em que você instala o software no servidor, você controla qual computação ele faz por você. Então, o servidor alugado é, virtualmente, seu computador. Neste quesito, ele conta como seu próprio.
Os dados no servidor remoto alugado são menos seguros do que se você tivesse o servidor em casa, mas essa é uma questão separada do SaaSS.
Esse tipo de aluguel de servidor às vezes é chamado de "IaaS", mas esse termo se encaixa em uma estrutura conceitual que minimiza as questões que consideramos importantes.
Lidando com o Problema do SaaSS
Somente uma pequena fração de todos os sítios web fazem SaaSS; a maioria não apresenta esse problema. Mas o que nós devemos fazer quanto àqueles que o apresentam?
Para o simples caso em que você está fazendo sua própria atividade computacional sobre dados que estão em suas próprias mãos, a solução é simples: use sua própria cópia de um software livre. Faça sua edição de texto com sua própria cópia de um editor de textos livre, como o GNU Emacs, ou um processador de textos livre. Faça sua edição de fotos com sua cópia de um software livre, como o GIMP. Mas, e se não houver nenhum programa livre à disposição? Um programa privativo ou um SaaSS tiraria sua liberdade, portanto você não deve usá-los. Você pode contribuir com tempo ou dinheiro para o desenvolvimento de um substituto livre.
Mas, e sobre a colaboração com outras pessoas como um grupo? Isso pode ser difícil de se fazer no momento sem usar um servidor, e seu grupo pode não saber como rodar um servidor próprio. Se você usar um servidor alheio, pelo menos não confie em um servidor mantido por uma empresa. Um mero contrato como um cliente não é proteção, a não ser que você possa detectar falhas e possa realmente processar a empresa, e provavelmente a empresa escreve seus contratos de forma a permitir uma vasta gama de abusos. O Estado pode apreender seus dados na empresa, junto com os dados de todos os demais, como o Obama fez com companhias telefônicas que ilegalmente grampeavam seus clientes para o Bush. Se você precisar usar um servidor, use um servidor cujos operadores deem a você uma base para confiar além de um mero relacionamento comercial.
Porém, em uma escala a longo prazo, nós podemos criar alternativas ao uso de servidores. Por exemplo, nós podemos criar um programa ponto-a-ponto [peer-to-peer] através do qual colaboradores possam compartilhar dados criptografados. A comunidade de software livre deve desenvolver substitutos ponto-a-ponto distribuídos para “aplicações web” importantes. Pode ser sábio disponibilizá-los sob a GNU AGPL, pois eles são prováveis candidatos a se converterem em programas baseados em servidor por outra pessoa. O Projeto GNU está procurando voluntários para trabalhar em tais substitutos. Nós também convidamos outros projetos de software livre a considerarem essa questão em seu design.
Enquanto isso, se uma empresa convidar você a usar o servidor dela para fazer suas próprias tarefas computacionais, não se submeta. Não use SaaSS. Não compre ou instale “thin clients”, que são apenas computadores tão fracos que obrigam-lhe a fazer o trabalho real em um servidor, a não ser que você vá usá-los em seu próprio servidor. Use um computador real e mantenha seus dados nele. Faça sua própria computação com sua própria cópia de programa livre, em prol da sua liberdade.
A primeira versão deste artigo foi publicada no Boston Review.
Veja também: O Erro que Ninguém Tem Permissão para Entender.