segunda-feira, 21 de junho de 2010

A Complexidade da Privacidade Online

O artigo de hoje é de autoria do colega Daniel Balparda, que é um entusiasta dos temas de segurança e privacidade em sistemas. Vamos a ele!

-----------------------------------------------
Trabalho diariamente com dados sensíveis de usuários e já trabalhei com segurança de dados, então um fato curioso ocorrido comigo me chamou a atenção e me despertou a vontade de compartilhá-lo.

Wardriving é uma atividade usada normalmente para mapear dados de redes sem fio, mas está mais associada à quebra de privacidade (se tanto!) de quem possui tais redes sem fio abertas, mas não de quem coleta os dados. Consiste em dirigir (ou pedalar ou andar) portando um dispositivo que consiga ler dados de GPS e dados de redes sem fio para que seja feito um mapa associando redes sem fio à sua posição geográfica. Encontrei um exemplo interessante de como uma atividade como esta pode vazar dados privados de forma subliminar.

Os "smartphones" Android, da Google, têm um programinha (Wardrive) que coleta dados de redes e depois faz o upload para um mapa online, onde os dados coletados por usuários no mundo todo são anonimizados e coletados para consulta. Resolvi olhar o mapa na minha região e me deparo com uma linha de pontos de rede, que como os farelos de pão de João e Maria, levam diretamente à minha casa.


A explicação foi trivial depois que eu forcei a memória e me lembrei o que aconteceu. Uma vez, quase um ano atrás, um colega de trabalho foi à minha casa, e resolveu testar seu programa de wardriving no caminho. Como são pouquíssimos dispositivos Android na minha cidade, e pelo visto menos pessoas ainda usando o programa em questão, ficou o rastro deste dia no mapa como os únicos dados da região até hoje. Um ano depois, ainda constavam como os únicos e mostram o caminho exato entre o centro da cidade e a porta da minha casa.

Claro, minha privacidade não está grandemente ameaçada (os dados não são muito precisos e meu endereço pode ser descoberto de 1001 outras formas), mas achei o exemplo bem curioso. Um mapa silenciosamente aponta para a minha casa, em um site obscuro, que eu desconhecia, por mais de ano, e por nenhuma ação ou culpa minha.

Comecei a coletar e fazer upload de algumas outras rotas de "wardrive" na minha região para mascarar este efeito, então em breve o mapa vai mudar. Nada como mascarar dados com mais dados...  ;-)

Estão aparecendo diversas pesquisas indicando que anonimizar verdadeiramente qualquer coisa online é um problema muito maior do que se cria inicialmente. Basta pensar que somos hoje em torno de 6 bilhões de pessoas no mundo. Se considerarmos 2 bilhões de usuários únicos online hoje, isto significa que quaisquer 31 bits significativos de informação seriam suficientes para identificar um usuário hoje. Não é muito! Dois exemplos recentes de pesquisas na área que me vem à cabeça são:

  1. O conjunto de todos os dados disponibilizados por um browser ao navegar (meu sistema operacional, browser, versão, resolução, fuso-horário, quais fontes estão instaladas no meu sistema, quais plugins eu instalei, etc) pode ser suficiente para identificar um browser unicamente ou quase unicamente no mundo. Pense um pouco: se você já baixou plugins para seu browser e já configurou fontes extras além das que vêm instaladas no seu sistema operacional, sua configuração provavelmente já é única! Estes dados podem ser coletados e trocados de site em site para rastrear sua presença online. Basta um site ligar sua identidade de browser à sua identidade real que é fim de jogo: eles sabem quando você aparece e sabem quem você é.

  2. Através de links visitados para suas comunidades em redes virtuais é possível triangular e encontrar a identidade de um usuário em redes sociais fazendo apenas perguntas para o browser. O usuário não vê nada. Explicando rapidamente, o browser normalmente troca a cor de links visitados (o mais usual é azul para links não visitados e roxo para links visitados nos últimos meses). Um site maldoso não teria usualmente acesso aos cookies de redes sociais, mas ele pode gerar de forma escondida uma lista de links para, digamos, as 1000 comunidades mais populares do Orkut. Ao servir esta lista (mesmo que escondida) para o usuário o browser irá muito prestativamente colorir os links já visitados com a cor diferente. Ora, a cor exibida de facto pode ser consultada pelo programa e reportada de volta ao site malicioso. Mais uma vez, o conjunto de comunidades populares escolhidas por um usuário dentre 1000 pode muito facilmente ser único. Game over. Você foi identificado.

Para quem não viu, os links acima valem 10 min do seu tempo, creio.