2 pontos por GN⁺ 2024-07-08 | 1 comentários | Compartilhar no WhatsApp
  • BeaconDB é um serviço de localização online que busca substituir o Mozilla Location Services, construindo sua cobertura com base em dados de Wi‑Fi e torres de celular enviados diretamente pelos usuários
  • A coleta de dados é feita no modelo opt-in; os dados enviados são agregados e disponibilizados a clientes da API beaconDB, e há previsão de publicar no futuro dumps de dados ofuscados
  • Ainda é um serviço experimental, portanto a cobertura Wi‑Fi pode ser insuficiente em algumas regiões; em caso de falha, faz fallback para localizações de torres de celular baseadas no dump final do MLS ou para estimativa por IP
  • No Android, é possível enviar dados com NeoStumbler, Tower Collector e Network Survey, e usá-lo como serviço de localização por meio das configurações do microG, geoclue e Firefox
  • Desenvolvedores podem usar o endpoint compatível com a API MLS/Ichnaea, e é necessário configurar um User-Agent para identificação do cliente

Princípios de coleta de dados de localização

  • O BeaconDB opera seu banco de dados de localização com base em coleta opt-in
  • Os dados públicos são ofuscados para proteger remetentes e colaboradores
  • Para atualizar dados existentes, são necessárias informações que só podem ser obtidas dentro do alcance físico do beacon, uma estrutura que aumenta a resistência a abusos
  • Os dados enviados são agregados e então disponibilizados para uso por clientes da API beaconDB
  • No futuro, dumps de dados ofuscados serão publicados sob uma licença de domínio público
  • A forma como os dados enviados são processados pode ser consultada no privacy notice

Apps para contribuir com cobertura

  • NeoStumbler

    • NeoStumbler é um app Android para enviar facilmente nova cobertura
    • Está disponível em Accrescent, F-Droid, Google Play e GitHub
    • A partir da v1.5.1, ao tocar em “yes” no prompt, o endpoint é configurado para o beaconDB
    • Em versões anteriores, selecionar beaconDB em Settings → Endpoint → Suggested services aplica automaticamente a configuração correta
  • Tower Collector

    • Tower Collector é um app usado há bastante tempo para coleta de torres de celular
    • Pode ser baixado pelo F-Droid ou pelo Google Play
    • A versão mais recente faz upload para o beaconDB por padrão
  • Network Survey

    • Network Survey é uma ferramenta para coleta abrangente de dados locais
    • Está disponível no F-Droid ou no Google Play
    • Na tela principal, em Upload Settings abaixo de Upload to Database, ative o envio ao beaconDB

Limitações atuais e comportamento de fallback

  • O BeaconDB ainda é experimental, portanto a estimativa de localização pode ser imprecisa ou o serviço pode ficar instável
  • Como é um banco de dados construído do zero, é bem possível que não haja cobertura Wi‑Fi na região de uso
    • Se não for possível estimar a localização por Wi‑Fi, ele faz fallback para uma localização aproximada de torres de celular baseada no dump final do MLS
    • Como último recurso, usa estimativa baseada em IP
    • Leva pelo menos 5 minutos para que os dados enviados fiquem disponíveis na API beaconDB
  • Os dumps de dados ainda não estão disponíveis, e está em andamento o trabalho de ofuscação dos dados para proteger a privacidade de colaboradores e proprietários de APs

Como configurar clientes

  • microG

    • Se a ROM Android oferecer suporte ao microG, é possível configurar o beaconDB como serviço de localização online no novo mecanismo de localização do microG
    • Esse mecanismo de localização é stable desde a v0.3.6
    • Selecione beaconDB em microG Settings → Location → More options → Select online location service
    • É preciso ativar ‘Request from online service’ tanto em ‘Wi‑Fi location’ quanto em ‘Mobile network location’
  • geoclue

[wifi]
enable=true
url=https://api.beacondb.net/v1/geolocate

submit-data=true
submission-url=https://api.beacondb.net/v2/geosubmit
submission-nick=geoclue
  • Firefox

    • O Firefox pode ser configurado para fazer solicitações diretamente ao beaconDB ou, no Linux, para obter a localização por meio do geoclue
    • Para uso direto, defina geo.provider.network.url como https://api.beacondb.net/v1/geolocate em about:config
    • Para usar o geoclue, ative geo.provider.use_geoclue

API e recursos para desenvolvedores

1 comentários

 
GN⁺ 2024-07-08
Opiniões no Hacker News
  • Dizem que os dados coletados eticamente seguem um modelo opt-in, mas fico curioso para saber como isso funciona na prática.
    Se um vizinho escanear minha rede WiFi e enviar para o BeaconDB, isso não significa que eu tenha consentido. A política de privacidade diz que basta acrescentar _optout ao nome do WiFi, então parece mais opt-out do que opt-in

    • O opt-in mencionado aqui significa consentir em usar o próprio dispositivo para coletar dados. Apple e Google usam suas bases globais de usuários para coletar esses dados com os dispositivos dos usuários, sem consentimento
      Redes WiFi transmitem sua presença em todas as direções 10 vezes por segundo. Como qualquer pessoa por perto pode captá-las, é bem sabido que você não deve colocar informações sensíveis no SSID da rede. Então, neste caso, está mais para algo em que o opt-out é possível
    • Quem coleta os dados é que fez opt-in para a coleta. Do ponto de vista do coletor de dados, o seu sinal WiFi está em espaço público
    • Para deixar claro, todos os celulares que fazem localização já enviam o seu endereço MAC do AP para serviços remotos de localização, mas o BeaconDB não torna essas informações públicas em texto puro
      Qualquer dump de dados incluirá apenas dados com hashes criptográficos irreversíveis ou dados agregados
    • Basta ocultar o SSID e usar WiFi 5GHz. O alcance é curto e o sinal enfraquece muito ao atravessar paredes, então fica praticamente inútil como beacon para estimativa de localização
  • Quando procurei algo parecido para o GrapheneOS no passado, era impossível oferecer um serviço de localização personalizado
    Seria ótimo poder usar isso no GrapheneOS. Se alguém souber uma forma de fazer isso sem microG, seria bem-vindo. Eu uso GMS em sandbox

  • Não parece haver algo como um app móvel open source que permita ao autor coletar dados diretamente no dispositivo. Especialmente se o opt-in for pelo dispositivo coletor, fico curioso de onde os dados foram reunidos

    • Ainda não foi criado um app para contribuir com o beaconDB. O site tem links para o NeoStumbler e o TowerCollector, apps Android que podem ser usados para coletar esses dados
  • O principal problema do MLS não foi ter sofrido assédio/processos de patente da Skyhook? Fico curioso se alguém sabe quais patentes estavam envolvidas e como o beaconDB evita esse problema

  • Lendo a issue sobre o encerramento do MLS[1], várias organizações existentes, como a /e/ foundation e a Graphene, parecem interessadas em oferecer serviços alternativos. Fico curioso se estamos numa situação em que vários provedores open source de localização estão competindo, ou se este é o único projeto publicamente acessível no momento
    O projeto em si é legal, mas no GitHub[2] parece um projeto de uma pessoa só, sem muita participação. Fico curioso se há conversas em andamento com outras pessoas que tenham objetivos semelhantes para ampliar o projeto e colaborar. Com apoio da comunidade de desenvolvedores existente, ele poderia subir de nível

    1. https://github.com/mozilla/ichnaea/issues/2065

    2. https://github.com/beacondb/beacondb

    Correção: o projeto real parece estar no Codeberg[3], e lá há um pouco mais de participação de pessoas além do desenvolvedor principal do que no GitHub

    1. https://codeberg.org/beacondb
    • beaconDB é atualmente o único projeto publicamente acessível, mas há conversas em andamento sobre colaboração com vários outros projetos e organizações
      O projeto originalmente ficava no GitHub, mas agora foi transferido para o Codeberg
    • Para referência, o /e/ OS agora usa seu próprio serviço de localização. Mas não sei se há alguma restrição de acesso
  • Fico curioso se há algum motivo para a API não retornar a localização dos pontos de acesso e deixar o cliente calcular sua própria localização

    • Há planos para permitir que o cliente armazene os dados em cache localmente, o que melhoraria a privacidade do cliente e também reduziria a carga do servidor. Quero implementar isso nos próximos dias
      Ainda não encontrei um cliente implementado para usar esse tipo de dado. Se você descobriu ou está desenvolvendo algo assim, seria bom avisar
  • Espero que o GrapheneOS passe a oferecer suporte a isso em breve. Atualmente, provedores de GPS não Google praticamente não têm chance fora de ambientes externos

  • Projeto realmente muito legal. É sempre bom ver pessoas orientadas a resolver problemas preenchendo o vazio deixado pelo MLS. Separadamente, o design também é excelente

  • Fico curioso se ainda há algum lugar para baixar o último dump de dados do MLS. Não consegui encontrá-lo online
    Estou trabalhando em um projeto que encontra torres de celular conectadas com base em mcc, mnc, cid etc. Atualmente só trago dados do opencellid e do combain, então seria muito bom acrescentar esses dados

  • Seria bom colaborar com o geoclue2. Com o encerramento do MLS, o geoclue2 agora desativou a estimativa de localização baseada em WiFi

    https://gitlab.freedesktop.org/geoclue/geoclue