Device Fingerprinter
Por: YdecRupolo • 18/10/2018 • 2.712 Palavras (11 Páginas) • 265 Visualizações
...
Também é possível fazer fingerprinting apenas do navegador, obtendo informações estritamente relacionadas ao mesmo (versão, família, etc) [9] e assim ajustar os conteudos da página que serão exibidos, a fim de proporcionar uma boa experiência de navegação.
De acordo com a RFC 6973 [10], fingerprinting é o processo no qual o observador ou atacante, com uma alta probabilidade, identifica unicamente um dispositivo ou aplicação, baseado na comunicação que ocorre entre os elementos que estão sendo observados. Alguns autores na literatura consideram Website Fingerprinting como o método usado para descobrir o navegador, sua família e versão [9]. Já outros consideram o termo como técnicas e tecnologias utilizadas para identificar um usuário [4][5].
Neste projeto, Website Fingerprinting é considerado como um conjunto de técnicas e tecnologias que são capazes de extrair informações de um navegador e usar essas informações para identificar tanto o dispositivo quanto o usuário para trabalhar em conjunto com outros protocolos.
- Classificação
A RFC 6973 [10] preconiza a existencia de três tipos de fingerprinting: passivo, ativo e cookie-like.
O passivo é baseado nas características observáveis das solicitaçõees Web (cabeçalhos HTTP, endereço IP e outras informações do nível de rede), sem utilização de qualquer código executando no lado do cliente.
O ativo utiliza códigos dinâmicos (JavaScript, ActionScript ou por qualquer outro tipo de código) no lado do cliente para observar características sobre o navegador. Dentre as características observaveis podem-se destacar a lista de fontes disponíveis no navegador, o tamanho da tela, lista de plugins, padroes de renderizaçãoo de gráficos, dentre outros.
O terceiro e último tipo é o cookie-like, onde um codigo ou aplicativo é instalado no dispositivo do usuário, permitindo sua (re)identificação e a geração de inferências sobre o mesmo.
- Tecnologias
Para criar um mecanismo ou algoritmo de Website Fingerprinting é necessário utilizar alguma tecnologia Web disponível. Dentre as comumente empregadas estão:
- JavaScript, que tem acesso fácil e direto a diferentes APIs que fornecem informações relevantes sobre navegador e dispositivo em que o navegador está sendo executado (por exemplo, lista de plugins e sistema operacional) [4];
- Canvas, que é empregado para desenhar elementos 2D, mas que também permite a recuperação do conteúdo desenhado e a consequente identificação do navegador e do sistema operacional [4];
- Flash, que assim como JavaScript, possui métodos que permitem o acesso a várias informações que estão estritamente relacionadas ao sistema em que o navegador está sendo executado. Por exemplo, pode ser obtido o nome do sistema operacional, arquitetura da CPU, numero de DPI ( Dots Per Inch) da tela, dentre outras características [4];
- CSS, que se vale das diferentes versões e implementações dos navegadores para avaliar diferenças na engine de layout a fim de identificar o navegador [8];
- Cabeçalho HTTP, uma vez que existem uma série de informações que caracterizam um navegador e são suficientes para sua identificacão [8].
- Protocolos de Segurança
Ross Anderson lembra que protocolos de segurança podem ser simples ou complexos [11]. Em protocolos simples, poucas mensagens sao trocadas entre um número reduzido de agentes. Um protocolo é formado pela troca, de no mínimo, duas mensagens. O ato de passar um cartão num leitor para obter acesso ao escritório é um exemplo de protocolo simples.
Por outro lado, protocolos complexos demandam a troca de mensagens complexas entre diversos agentes. As mensagens trocadas contém grande quantidade de material criptografico (dados cifrados, dados assinados, hashes) que devem ser corretamente validados para avançar ao passo seguinte.
O uso de cartões de crédito é um exemplo bastante ilustrativo de protocolo complexo. Possuem, no mínimo quatro participantes (o banco, a bandeira do cartão, o consumidor e o comerciante), trocando informações e validando os dados uns dos outros (limite total disponível, limite parcelado disponível, valor da compra, etc) [12]. Outro ponto é a existência de protocolos públicos e privativos. Um protocolo é considerado público quando possuir especificação aberta, isto é, disponível para qualquer interessado em descobrir como o protocolo funciona. Protocolos privativos, por definição, impedem o acesso à sua especificação, disponibilizando somente as interfaces de comunicação com o usuário final. No caso de protocolos de especificação pública, podemos citar como exemplos os protocolos SSL/TLS [13] que provem sigilo as comunicações realizadas na Internet, além de protocolos de autenticação como o Kerberos [14], amplamente utilizado em sistemas operacionais Windows.
A presença de protocolos privativos se faz notar nos produtos de hardware e software comercializados. O setor bancario também possui um grande número de protocolos internos restritos aos seus proprios funcionários [11].
- Propriedades de Segurança
As propriedades dos protocolos de segurança sao as garantias que o protocolo busca fornecer aos seus participantes durante sua execução. O alcance destas propriedades é feito através do uso de técnicas criptográficas sobre a mensagem, como a cifragem e decifragem, cálculo da função de resumo criptográfico e aplicação de assinaturas digitais.
Para que estas técnicas realmente venham a contribuir para o atendimento das propriedades esperadas para o protocolo, é necessário que sejam utilizadas de maneira racional. Seu uso indiscriminado e sem planejamento pode ter um efeito inocuo no protocolo, não contribuindo para o efetivo aprimoramento da segurança.
Na literatura, as expressões “princípios de segurança” e “objetivos de segurança” são comumente utilizadas como sinônimos a “propriedades de segurança”, não havendo prejuízo de seu significado.
- Confidencialidade refere-se ao provimento de sigilo às mensagens trocadas entre participantes legítimos do protocolo. Isto é, mesmo que as mensagens venham a ser interceptadas, seu conteudo permanecerá inacessível a terceiros não autorizados. Essa propriedade é obtida através da criptografia (operações de cifragem e decifragem de dados);
- Integridade provê mecanismos
...