- A solicitação de permissão de localização no navegador não faz apenas uma estimativa baseada em IP, mas realiza uma medição precisa da localização usando informações de pontos de acesso Wi‑Fi
- Nesse processo, o navegador coleta dados como SSID, BSSID e intensidade do sinal (RSSI) e os compara com bases de dados de provedores de serviço, como o Google
- Essas bases de dados foram construídas ao longo do tempo por meio de wardriving e da transmissão contínua de dados por dispositivos dos usuários
- Já houve várias controvérsias sobre violação de privacidade, como o caso passado dos carros do Google Street View que coletaram dados não criptografados
- Hoje, a maioria dos dispositivos usa esse sistema por padrão, e é possível fazer opt-out registrando o BSSID ou adicionando '_nomap' ao SSID
Sistema de presença e verificação de localização
- A plataforma TopHat, usada em uma aula de algoritmos da Universidade de Wisconsin, verifica a localização real do aluno para confirmar presença
- Além de simplesmente inserir um código de presença, o recurso Secure Attendance usa informações de localização do dispositivo para determinar se o aluno está perto da sala de aula
- Como a estimativa de localização baseada em IP tem grande margem de erro, o TopHat usa a Geolocation API do navegador
- Essa API solicita permissão explícita ao usuário e identifica a localização com precisão de alguns metros
Como a Geolocation API funciona
- A Geolocation API utiliza várias fontes, como GPS, IP e Wi‑Fi, mas em dispositivos sem GPS, como notebooks, o principal recurso é o Wi‑Fi Positioning System (WPS)
- Ao chamar
getCurrentPosition(), o navegador coleta o SSID, BSSID e a intensidade do sinal dos APs Wi‑Fi próximos
- O BSSID é um identificador único baseado em endereço MAC, o que permite distinguir várias redes com o mesmo SSID
- As informações coletadas são enviadas a provedores de serviço de localização, como o Google, que calculam a posição exata comparando com dados já acumulados
História do posicionamento por Wi‑Fi e coleta de dados
- A origem está na técnica de wardriving comercializada pela Skyhook Wireless no início dos anos 2000
- Veículos equipados com receptores GPS registravam, enquanto se deslocavam, a localização e a intensidade do sinal das redes Wi‑Fi ao redor
- Depois, o Google coletou informações de Wi‑Fi com carros do Street View, e empresas como Apple e Microsoft também migraram para um modelo de coleta automática a partir de dispositivos de usuários
- Hoje, a maioria dos smartphones e notebooks, quando os serviços de localização estão ativados, envia informações de Wi‑Fi próximas aos servidores do fabricante, que então as utilizam para estimar a localização de outros dispositivos
Controvérsias sobre privacidade e segurança
- Em 2010, veio a público que o Google havia coletado cerca de 600 GB de dados HTTP não criptografados com carros do Street View, gerando polêmica
- Também foi relatado um caso em que era possível reconstruir o trajeto de um usuário devido a um bug na API de localização da Microsoft
- Em um estudo de 2024 da Universidade de Maryland, foi possível extrair a localização de cerca de 2 bilhões de BSSIDs explorando uma vulnerabilidade no serviço de localização da Apple
- Essas informações podem ser abusadas para rastreamento individual ou monitoramento de mobilidade populacional
- Desde então, as principais empresas reforçaram a segurança das APIs e passaram a oferecer recursos para excluir redes da base de dados registrando o BSSID ou adicionando '_nomap' ao SSID
Conclusão e bases de dados públicas
- Essa tecnologia é chamada de Wi‑Fi Positioning System (WPS) e continua sendo amplamente usada
- O wigle.net é uma base de dados pública colaborativa que reuniu cerca de 2 bilhões de redes ao longo de 25 anos, e permite verificar se a sua rede está registrada
- O beacondb.net é uma base de dados pública de localização sem fio em domínio público, oferecendo um conjunto de dados independente e diferente dos serviços comerciais
- A razão pela qual um notebook consegue determinar sua localização com precisão é que incontáveis usuários forneceram dados de Wi‑Fi sem perceber
- Até mesmo a confirmação de presença em aula funciona sobre esse resultado do acúmulo coletivo de dados
1 comentários
Opiniões do Hacker News
Eu fixei a localização em um ponto específico perto de casa nas configurações do Firefox
user_pref("geo.provider.network.url", 'data:application/json,{"location": {"lat": 45.0, "lng": -122.0}, "accuracy": 128.0}');Assim, acredito que os dados de Wi-Fi não vazam para fora
Por exemplo, é preciso definir
geo.provider.use_corelocation,geo.provider.use_geoclueegeo.enabledcomofalseTambém pode ser necessário definir
geo.provider.testingcomotrueLinks de referência: issue no Bugzilla, StackOverflow, Security StackExchange
Versão para Chrome, versão para Firefox
Quando eu trabalhava em uma concorrente do Zoom, nós testamos um recurso para detectar se os participantes estavam na mesma sala
Cada notebook emitia um som agudo único e escutava o sinal dos outros
Funcionava bem no laboratório, mas falhou no mundo real. Ainda assim, foi uma tentativa interessante
Ruído de fundo, microfonia, som saindo no alto-falante e outras coisas acabam com a reunião
Artigo relacionado: Science.org
Recentemente eu fiz uma pequena CLI chamada where-am-i
Link do GitHub
Como o GPS em ambientes internos é bem ruim, acho esse tipo de tecnologia de geolocalização realmente útil
/usr/libexec/geoclue-2.0/demos/where-am-iHoje em dia, os alunos espertos de ciência da computação provavelmente estão rodando no celular Android um app proxy que retransmite o ambiente Wi-Fi
E os amigos recebem esses dados com um plugin de navegador ou algum hack no Linux para falsificar a localização
Basta saber as coordenadas da sala de aula
Meu PC não tem conexão sem fio, então a Geolocation API sempre falha
Provavelmente eu teria sido marcado como ausente na chamada da aula
Imagino que também daria para hackear o navegador para retornar uma localização falsa
Depois descobri que dava para resolver isso pelas configurações do Firefox e fiquei até sem graça
Fiquei curioso se seria possível fazer spoofing de localização com privilégios de administrador
Por exemplo, eu gostaria de testar se dá para copiar a lista de SSID/BSSID da sala de aula onde um amigo está e fingir que estou lá
Só corrigiu direito depois de uns 30 segundos
Isso parece a versão moderna do sistema de clicker da época da faculdade
A estratégia “impossível de corrigir” de deixar com um amigo para marcar presença por você continua funcionando
Usei Symbian por muito tempo, e só recentemente descobri que esse tipo de prática de escaneamento de Wi-Fi existia
Não me importo com carros do Google Street View escaneando meu roteador, mas acho desagradável que meu celular me rastreie em segredo
Eu esperaria que forks do Android como o GrapheneOS bloqueassem isso
Quando estudei na Áustria, a universidade deixava os alunos quase totalmente por conta própria
Não entendo essa obrigação de presença. Eu pensava que bastava passar nas provas
Aulas de laboratório são exceção, mas se você não participa isso fica óbvio na hora
No fim, isso depende do nível da instituição e da autonomia dos alunos
Em compensação, os projetos de laboratório eram feitos em equipe, então quem não participava simplesmente não conseguia resultado
Porque precisamos de dados para bolsas, gráficos de correlação entre presença e nota etc.
Mas, no geral, o aluno é um adulto, então acho que aprender é responsabilidade dele
Essa tecnologia já é amplamente usada há mais de 20 anos
O GPS é preciso, mas lento, e é instável em ambientes internos ou urbanos
Já os dados de Wi-Fi são abundantes e permitem obter uma localização precisa em menos de 1 segundo