Privacidade na Web Sérgio Donizetti Zorzo Robson Eduardo De Grande Mecanismos de Privacidade Conceitos Anonimato Anonymizer; Crowds; Onion Routing. Pseudo-Anonimato (Pseudônimos) LPWA ou JPWA Conceitos São mecanismos que visam: Aumento do controle da privacidade na navegação Web. Diminuindo a quantidade de informações do usuário que são divulgadas; Filtrando a comunicação de navegação do usuário; Informando sobre práticas com as informações pessoais que são coletadas; Mascarando o perfil do usuário. Conceitos Há duas formas de abordagens para mecanismos de privacidade Uma delas visa a introdução de uma arquitetura para manter o anonimato do usuário ou dificultar a sua identificação. Essa linha segue a terceira camada da taxonomia apresentada. Outra forma visa policiar os sites ou informar o usuário sobre as políticas de privacidades que são adotadas por eles. É atribuído a esse linha a quarta camada da taxonomia. Conceitos Dentre os mecanismos da primeira abordagem: Uns permitem coleta implícita de informações, outros não. E esses mecanismos utilizam: Anonimato; Pseudo-anonimato ou pseudônimos; Máscaras de anonimato; Contratos de privacidade. Conceitos Anonimato Anonimato é o estado de não ser identificável entre um conjunto de sujeitos. Muitos usuários imaginam que sua navegação pela Web é inerentemente anônima; Há muitas razões para uma pessoa esconder a sua real identidade quando usa a Internet. Proteção de governos opressivos; Publicação de mensagens sem a identificação como autor; Deixar de estar a todo momento sendo vigiado por alguém. Aumento da procura por serviços de anonimato Anonimato O computador necessita de identificações para comunicação na Web; Podem ser atribuídos perfis de usuários a essas identificações virtuais. Em uma navegação se pode conhecer: A localização geográfica de um computador; O sistema operacional utilizado pelo usuário; A última página requisitada pelo usuário. Anonimato Pode ser definido: o anonimato do transmissor, a não identificação de uma mensagem do mesmo; o anonimato do receptor, a não identificação do recebimento da mensagem; e a não ligação entre o transmissor e o receptor, a não identificação da existência da mensagem por si própria. Anonimato É necessário considerar também dois conceitos: o agressor contra quem quer manter o anonimato; e o grau de anonimato. Entretanto essas práticas de anonimato falham quando o usuário divulga explicitamente suas informações. Identificação real do usuário; Perda de confidencialidade. Anonimato Suas ferramentas podem ser divido em três linhas mais conhecidas: Proxies de único nó; Proxies de vários nós; Anonymizer; The-cloak; Anonymouse; e outros. Onion Routing. Multidões. Crowds. Proxies de Anonimato de único nó (Anonymizer) São a maioria dos serviços de anonimato disponíveis para o público em geral. É um servidor entre o computador do usuário e o servidor da página. Esse servidor modifica os pacotes IP provenientes do usuário e do site. Todas as requisições do usuário aparentam para o site serem do proxy. Para o usuário é como se ele estivesse acessando as páginas sem a presença de uma entidade intermediária. Anonymizer Um exemplo de requisição: Uma requisição normal http://slashdot.org se torna: http://anon.free.anonymizer.com/http://slashdot.org o usuário envia a URL da página que deseja requisitar para o proxy que imediatamente emite uma requisição HTTP para o servidor respectivo à URL recebida. Assim que o servidor do site responde o proxy recebe e envia para o usuário o documento HTML com todos os links reescritos para eles apontarem de volta para o proxy e não para os sites que eles originalmente apontavam. Anonymizer Anonymizer Esses servidores podem fornecer os seguintes serviços: Ocultação do IP do usuário; Encriptação da conexão do usuário com o proxy; filtragem ou manipulação de cookies; filtragem ou reedição de códigos JavaScript, Java, ou outros códigos de conteúdo ativo; filtragem de anúncios e banners; bloqueio de pacotes HTTP; falsificação do campo http_user_agent e http_referer do cabeçalho HTTP. Havendo alguns deles que fornecem gratuitamente alguns desses serviços. Anonymizer Anonymizer Prestadores de serviço de anonimato. Anonymizer The Cloak Proxies de Anonimato de vários nós (Onion Routing) Opera por conexões anônimas construídas dinamicamente com uma rede de Mixes de tempo real. Exemplos de Mixnets: Onion Routing; Zero Knowledge Systems’ Freedom Network; Web MIXes; Tarzan. Proxies de Anonimato de vários nós (Onion Routing) Onion Routing Cada Mix é um dispositivo (servidor ou proxy) que armazena e passa adiante. A dificuldade de se determinar a comunicação entre dois hosts na rede é proporcional à quantidade de nós de Mix executando roteamento de mensagens. Rede de roteadores onion (Mix) é distribuída: Conseqüentemente tolerante a falhas; Sob o controle de domínios de administração múltipla; Apresenta as mesmas dificuldades de qualquer rede distribuída. Onion Routing Não é necessário modificar a arquitetura cliente-servidor para o seu uso. Atualmente os protocolos suportados pela arquitetura são: HTTP, FTP, SMTP, rlogin, telnet, NNTP, finger,whois, e sockets raw. Proxies estão em desenvolvimento para: Socks5, NS, NFS, IRC, HTTPS, SSH, e Virtual Private Networks (VPNs) Onion Routing Um Proxy, uma mix net, tem três camadas lógicas: um filtro de privacidade específica de aplicação que limpa os fluxos de dados, um proxy específico de aplicação que traduz os fluxos de dados em um formato independente de aplicação aceito pela rede Onion Routing, e um proxy onion que constrói e gerencia as conexões anônimas Onion Routing Conexões anônimas de Onion Routing possuem protocolos independentes incorporados em três fases: configuração de conexão; movimento de dados; e destruição da conexão. Onion Routing Fase de configuração da rede: Iniciador cria um Onion (estrutura de dados em camadas) especificando: Cada roteador recebe o onion, extraindo: propriedades de conexão a cada ponto da rota; informação de controle de criptografia usada durante a fase de movimentação de dados. informação de controle de criptografia; identidade do próximo roteador de onion; e o próprio onion embutido. Estabelecendo o caminho de dados no final do processo. Onion Routing Fase de movimentação de dado: Dados são pré-encriptados repetidamente com chaves pré-estabelecidas; Cada roteador remove uma camada do onion; Chega no destino em forma de texto; Mesmo processo para volta; Dados são enviados em células de tamanho uniforme. Onion Routing Crowds Coleção de usuários que trabalharam de forma cooperativa para auxiliar cada membro dessa coleção a se manter anônimo. O usuário é representado no sistema por um “Jondo” (John Doe) A compôe: Vários Jondos; e um Blender. Crowds O usuário deve ter uma conta em um blender para efetuar autenticação dos jondos. Um jondo iniciado pelo usuário dever contatar o blender para requisitar a admissão a uma crowd. Se admitido: o blender reporta para esse jondo a atual sociedade da crowd; e a informação que habilite esse jondo a participar na crowd. Crowds Blender adiciona novo Jondo a sua lista: endereço IP; número de porta; e nome de conta. O blender gera e reporta de volta uma lista de chaves comuns. O jondo inicia comunicação a partir da mensagem de aceitação do blender. Crowds Lista de membros: Cada jondo possui a sua; É iniciada quando esse jondo se junta a crowd; É atualizada quando o jondo recebe avisos do blender de membros novos ou excluídos; Jondo remove outro de sua lista se detectar que ele está falho; Cada lista de jondo pode diferer de outras. Crowds Blender: entidade centralizadora; necessita ser confiável para troca de chaves e relatório de lista de jondos. Pode ser replicado como medida de segurança. Não participa da rede Crowd de comunicação. Seu comprometimento não leva ao colapso da rede. Crowds Funcionamento: o usuário seleciona um jondo como seu proxy Web: o nome do host; e número de porta. Toda a requisição passa por ele. O jondo estabelece um caminho randômico de jondos; ele escolhe radomicamente um jondo de sua lista para encaminhar (pode ser ele mesmo). Crowds Ao receber uma requisição, é sorteado um número aleatório para determinar o encaminhamento ou não da requisição para outro jondo; esse valor indica a probabilidade do envio Cada caminho criado possui um identificador que muda para cada jondo, sendo único no sistema. Toda a comunicação entre quaisquer 2 jondos é encriptada. Um mesmo caminho é utilizado para requisições subseqüentes para o mesmo servidor. Crowds Exemplo de uma Crowd: cada requisição viaja partindo do navegador do usuário, passando por um número aleatório de jondos para finalmente chegar ao destino. Exemplos de possíveis caminhos: 1 -> 5 -> server; 2 -> 6 -> 2 -> server; 3 -> 1 -> 6 -> server; 4 -> 4 -> server; 5 -> 4 -> 6 -> server; e 6 -> 3 -> server. Crowds Pseudo-Anonimato ou Pseudônimos (JPWA) Anonimato na navegação Web se apresenta como dois aspectos importantes: anonimato de conteúdo de dados; e anonimato de conexão. Esse mecanismo consiste basicamente em criar para os usuários nomes fictícios que poderiam disfarçar a identificação do usuário. Acesso do usuário a sites de maneira fácil, segura, anônima e pessoal. LPWA ou JPWA Janus Personalized Web Anonymizer É um proxy que gera automaticamente apelidos ou pseudônimos. Eles permitem o usuário fazer login sem ser identificado. Normalmente o apelido é um nome de usuário, uma senha e um endereço de e-mail. Retira do usuário todo o trabalho de invenção e memorização de nomes de usuário e senhas. LPWA ou JPWA Ele insere apropriadamente nomes de usuário e senhas a toda vez que o usuário retorna a algum site Web. Para iniciar uma sessão o sistema necessita do usuário: uma única identificação de endereço de e-mail; e um segredo. O segredo pode ser considerado como uma senha universal. LPWA ou JPWA O sistema não mantém nenhuma informação dos usuários. Pelos mecanismos que Janus fornece é realizada a inserção automática de apelidos. Proxy Janus filtra o fluxo de dados do navegador do usuário. Um site pode não conhecer a existência do sistema Janus. LPWA ou JPWA A tradução de nomes é o centro do sistema. traduz o endereço de e-mail do usuário e o seu segredo para um apelido que possa cumprir um número de propriedades: Anonimato, consistência, discrição, exclusividade de apelido, e proteção da criação de dossiês. A função Janus realiza a interação personalizada, e uma função criptográfica mantém o anonimato. LPWA ou JPWA O proxy Janus pode se localizar em cada máquina de usuário. Esse proxy realiza a função de Janus. Filtra fluxo de dados do usuário Filtra mensagens HTTP; Cookies. O navegador se conecta ao proxy Janus para passar todas suas mensagens por ele. LPWA ou JPWA Situação inicial: Primeiro acesso a uma página de login; Sistema Janus reconhece login; Autenticação do usuário no sistema, pede: Nome de usuário e segredo. Ou criação de conta no sistema. Primeiro login em uma página: usuário somente insere strings de fuga compreensíveis a Janus: “\U” para nome de usuário; “\P” para senha; “\@” para endereço de e-mail. LPWA ou JPWA Processos de login subseqüentes: usuário somente insere strings de fuga. Apelidos distintos são computados para usuário para cada site Web que ele acessa. Apelidos são distintos de qualquer outro gerado para outros usuários. O sistema Janus é voltado a fornecer anonimato de conteúdo de dados na navegação Web. LPWA ou JPWA LPWA ou JPWA O proxy Janus pode se localizar em um computador externo. Um conjunto de usuários pode estar utilizando um mesmo proxy. Todas as requisições Web passam por ele. Um número grande usuários acarreta o proxy a ser um alvo potencial de ataques maliciosos. Exemplo: Esse proxy externo pode se localizar em um gateway de uma Intranet com firewall. LPWA ou JPWA