Como o Tinder (ligeiramente) oculta sua localização

Este ano, você e seu amigo Steve Stevington começaram uma startup de rastreamento de usuários. A empresa é baseada no vazamento de metadados do WhatsApp que você descobriu . Vocês ainda devem aprender administração, mas ainda assim a empresa se tornou uma empresa poderosa, embora instável, com 65 estagiários e estudantes diversos, freelancers e trabalhadores não remunerados em liberdade condicional. Você recentemente se mudou para o novo escritório do Departamento de Literatura do século XIX da Biblioteca Pública de São Francisco e tem uma reputação invejável no campo do marketing na Internet.

Mas sob essa aparência brilhante e duvidosa esconde podridão. Você suspeita que seu bom amigo, co-fundador e diretor executivo Steve Stevington, esteja tramando contra você. Ele sai da biblioteca o tempo todo em momentos estranhos e em algum lugar desaparece por horas a fio. Quando você pergunta para onde ele está indo, ele cria uma careta estranha, que ele provavelmente considera um sorriso malévolo - e diz para você não se preocupar. Você instruiu os bibliotecários a segui-lo várias vezes, mas todos são terríveis no trabalho de campo.

Você mora no Vale do Silício há algum tempo - e sabe quais atrocidades cruéis acontecem quando uma grande quantia de dinheiro e dados de usuários estão em jogo. Steve Stevington provavelmente está tentando convencer os investidores a tirá-lo do negócio. Você acha que Peter Thiel irá apoiá-lo, mas é difícil dizer sobre tia Martha. Então, você precisa descobrir para onde Steve vai.

Felizmente, ele é um ávido usuário do Tinder. O aplicativo Tinder rastreia a localização de seus usuários para permitir que casais em potencial saibam a que distância estão um do outro. Isso permite que os usuários tomem decisões inteligentes: vale a pena dirigir 13 quilômetros para encontrar um casal com 6 ou 6,5 pontos quando tomam banho, toma sorvete na geladeira e trabalha de manhã. Em outras palavras, Tinder sabe exatamente para onde Steve está indo. E se você escolher a exploração certa, também descobrirá em breve.

Para determinar a direção de suas pesquisas, você examinou relatórios de vazamentos anteriores de dados de localização para usuários do Tinder. Havia vários deles. Em 2013, foi descoberto que os servidores do Tinder enviam as coordenadas exatas de possíveis correspondências para um aplicativo móvel . Com base neles, o aplicativo calculou a distância entre os usuários, mas não exibiu as coordenadas na interface. No entanto, um invasor pode facilmente interceptar o tráfego de rede do Tinder, verificar dados brutos e determinar a localização exata do alvo.


Resposta da API do Tinder, incluindo localização exata

Tinder tentou corrigir silenciosamente a vulnerabilidade, deslocando o cálculo da distância para os servidores, em vez do aplicativo. Depois disso, as mensagens de rede enviadas do servidor para o aplicativo continham apenas essas distâncias pré-calculadas sem locais reais. No entanto, o Tinder enviou casualmente distâncias na forma de números não arredondados com 15 casas decimais.


Resposta da API do Tinder, incluindo distância precisa

Essa negligência permitiu que pesquisadores astutos determinassem novamente a localização exata dos alvos usando uma exploração para trilateração. Os pesquisadores enviaram três coordenadas falsas para o Tinder com diferentes locais de usuários. Em cada novo local, eles perguntavam a Tinder a que distância estava o alvo. Em seguida, três círculos foram desenhados no mapa com centros em coordenadas falsas e raios iguais às distâncias obtidas. O ponto de interseção - as coordenadas do alvo com uma precisão de 30 metros.


Exemplo de trilateração do Tinder

A equipe de segurança do Tinder olhou para essas pessoas que constantemente as faz trabalhar, suspiram e corrigem silenciosamente a vulnerabilidade. Agora, o Tinder envia distâncias arredondadas para quilômetros para o aplicativo. Você ainda pode usar o procedimento de trilateração indicado para determinar as coordenadas do alvo em um quilômetro ou mais. Mas na cidade densamente povoada de São Francisco, isso não dará uma resposta, para onde vai o sorrateiro Steve Stevington.

Na tarde de sexta-feira, uma careta de roubo reapareceu no rosto de Steve Stevington, indicando a disposição de tomar várias ações em lugares desconhecidos. Você deve descobrir para onde ele está indo antes que seja tarde demais. Você se trancou em sua conta - na sala de leitura da biblioteca no 4º andar. Após quinze minutos de respiração profunda e reflexão ainda mais profunda, você tem um plano de como reanimar a exploração da trilateração Tinder e descobrir para onde o Stevenator está indo.

Suponha que o Tinder agora calcule as distâncias exatas nos servidores, arredonde-as para o número inteiro mais próximo e envie os números arredondados para o seu telefone. Você pode iniciar um novo ataque da mesma maneira que na trilateração. Enviamos locais falsos do Tinder e perguntamos a que distância o alvo está. O Tinder pode responder "8 quilômetros", o que em si é de pouca utilidade. Mas então você pode mover um pixel para o norte, perguntando a distância a cada passo. O servidor responderá "8 quilômetros, 8 quilômetros, 8 quilômetros, 8 quilômetros, 7 quilômetros". Se sua suposição sobre o processo de arredondamento estiver correta, o ponto em que a resposta muda corresponde à distância exata até a meta de 7,5 quilômetros. Se você repetir esse procedimento três vezes e desenhar três círculos, usaremos novamente a exploração de trilateração.

Passamos para ações ativas. Enquanto Wilson foi ao banheiro, pegue seu telefone emprestado para testes - você sabe que ele usa o Tinder, e o código de desbloqueio é visível na impressão digital na tela. Converse com seus estagiários não remunerados em um período de teste para que eles não liguem para você nem digam nada para Wilson - e corra para o canto isolado e desabitado de seu escritório no departamento de ficção para a idade do ensino médio. Lá você abre o Tinder nos dois telefones. Continue passando o dedo até conseguir uma correspondência e, em seguida, escreva um script Python curto usando o pynder para falsificar as chamadas da API do Tinder. Coloque Wilson no meio da Baía de São Francisco e tente determinar suas coordenadas, alterando sua localização pixel por pixel para encontrar o ponto em que a distância entre você muda de um número arredondado para outro.

Mas algo está errado. A noite chegou, o jantar passou e você ainda não encontrou Wilson. Você meio que se aproxima, mas não o suficiente. Às vezes, os círculos estão dolorosamente perto do cruzamento, mas geralmente não dão uma resposta significativa para onde Wilson está. Você começa a se desesperar. Neste exato momento, Steve Stevington pode assinar um novo contrato com Peter Thiel e tia Marta. Ele já pode ter atualizado a página do LinkedIn da sua empresa, renomeado para você "Conselheiro", "Assistente" ou "Ex-CEO". A biblioteca fecha - e você se muda para a despensa. Wilson continua ligando, mas os estagiários de estágio não desistem. Até um pensamento fugaz pula para dar-lhes um emprego.



Frustrado, você dá um passo para trás e bate a cabeça na prateleira inferior. Quando você sai de uma pilha de produtos de limpeza, está considerando a possibilidade de que as suposições possam estar erradas. Talvez o Tinder não complete apenas as distâncias exatas. Você toma um lanche na geladeira de um funcionário da biblioteca para ajudar no processo de pensamento. Pare de desenhar círculos e comece a andar pelas linhas em torno da verdadeira localização de Wilson, marcando cada alteração na distância.

Na segunda hora da noite, tudo fica claro.


Colocando marcas em um mapa com base nas distâncias do Tinder

Agora, o Tinder é tão zeloso pela privacidade dos usuários que quebra os clipes chatos da geometria convencional. Ele abandonou Euclides. Ele não precisa da fórmula haversinus . Em vez disso, o Tinder usa duas inovações no cálculo da distância entre as correspondências.

Primeiro, e mais importante, ela divide a cidade em quadrados de aproximadamente 1 milha. Ao calcular a distância, o local de destino é ajustado ao centro do quadrado atual da grade. Em seguida, calcula e retorna a distância aproximada entre você e este local anexado .


O Tinder encaixa os locais dos usuários em uma grade

Em segundo lugar, calcula as distâncias como se por sua fórmula única. Para fazer isso, é tirado um mapa de distâncias aproximadas e predefinidas - e sobrepostas no centro do quadrado do alvo. Tinder procura a localização do atacante nessa sobreposição e retorna a distância correspondente. No cálculo normal da distância euclidiana, isso seria um conjunto de círculos concêntricos.



Mas Tinder parece estar usando uma sobreposição concêntrica com curvas estranhas nos cantos enquanto se afasta do alvo.



Entre outras coisas, isso significa que o Tinder geralmente retorna distâncias ligeiramente incorretas. Você suspeita que o arredondamento de cantos seja necessário para corrigir distâncias muito incorretas a nordeste uma da outra.

O encaixe de malha é uma inovação fundamental na abordagem do Tinder. Isso significa que o Tinder sempre retornará a mesma distância se o alvo estiver em qualquer lugar dentro do quadrado da grade especificado. Sua exploração trilateracional não funcionará. E se o Tinder implementou corretamente a ligação de malha, nenhuma exploração puramente remota funcionará. Não há como encontrar a localização de um alvo com maior precisão do que as bordas de um dos quadrados da grade (aproximadamente) 1 × 1 milha. Mesmo essa vigilância grosseira pode fazer com que os usuários do Tinder se perguntem. Mas, na verdade, esse é um comportamento bastante razoável para o aplicativo, cuja principal função é dizer a estranhos onde você está.

Você realmente não sabe por que o Tinder usa uma camada tão estranha de quadrados com cantos arredondados. Enquanto os locais dos usuários estiverem ligados a uma grade, o Tinder poderá usar a distância euclidiana normal sem arriscar a privacidade. Talvez apenas uma nova métrica seja calculada mais rapidamente e, apesar dos preceitos de Gordon Moore, os computadores ainda são limitados. No entanto, tudo isso leva à conclusão de que o Tinder está seguro - nesse aspecto muito restrito - e você estragou tudo.

A biblioteca está na escuridão total, sem contar o brilho verde da Xerox. Você está triste, mas diligentemente varre faixas. Coloque no armário e jogue o telefone de Wilson no triturador industrial da biblioteca. Saia pela entrada principal, roube uma bicicleta mal presa e volte para casa tristemente.

Na manhã seguinte, Steve Stevington oferece um dos co-diretores em que ele trabalhou em sua aula secreta de cerâmica à tarde. Isso é completamente nojento. Seria melhor se ele lhe desse uma das duas notas de dez dólares e permanecesse no escritório. Ele trabalhou pouco e mal, e você teve que realizar muitas reuniões e mentir muito - geralmente esse é o trabalho dele. Mas pelo menos ele não roubou sua empresa. Você coloca o café de Wilson em sua caneca ridícula e deseja boa saúde ao seu bom amigo.

Quando você adormece à noite, surgem pensamentos sobre o que está acontecendo com a grade do Tinder no Pólo Norte ...

Seu código deste artigo foi publicado no Github . Informe- se se tiver alguma dúvida ou encontrar erros.

Source: https://habr.com/ru/post/pt417877/


All Articles