2P by GN⁺ | ★ favorite | 댓글 1개
  • BeaconDB는 Mozilla Location Services를 대체하려는 온라인 위치 서비스로, 사용자가 직접 제출한 Wi-Fi·기지국 데이터를 기반으로 커버리지를 쌓아감
  • 데이터 수집은 opt-in 방식이며, 제출 데이터는 집계되어 beaconDB API 클라이언트에 제공되고 향후 난독화된 데이터 덤프 공개가 예정돼 있음
  • 아직 실험적 서비스라 지역별 Wi-Fi 커버리지가 부족할 수 있으며, 실패 시 MLS 최종 데이터 덤프 기반 기지국 위치나 IP 기반 추정으로 폴백함
  • Android에서는 NeoStumbler, Tower Collector, Network Survey로 데이터를 제출할 수 있고, microG·geoclue·Firefox 설정을 통해 위치 서비스로 사용할 수 있음
  • 개발자는 MLS/Ichnaea API와 호환되는 ` 엔드포인트를 쓸 수 있으며, 클라이언트 식별용 User-Agent 설정이 필요함

위치 데이터 수집 원칙

  • BeaconDB는 위치 데이터베이스를 opt-in 수집 기반으로 운영함
  • 공개 데이터는 송신자와 기여자를 보호하기 위해 난독화
  • 기존 데이터를 업데이트하려면 비콘의 물리적 범위 안에서만 얻을 수 있는 정보가 필요해 남용 저항성을 높이는 구조임
  • 제출된 데이터는 집계된 뒤 beaconDB API 클라이언트가 사용할 수 있게 됨
  • 향후 난독화된 데이터 덤프가 퍼블릭 도메인 라이선스로 공개될 예정임
  • 제출 데이터 처리 방식은 privacy notice에서 확인할 수 있음

커버리지 기여 앱

  • NeoStumbler

    • NeoStumbler는 새 커버리지를 쉽게 제출하는 Android 앱임
    • Accrescent, F-Droid, Google Play, GitHub에서 받을 수 있음
    • v1.5.1부터는 프롬프트에서 “yes”를 누르면 엔드포인트가 beaconDB로 설정됨
    • 이전 버전은 Settings → Endpoint → Suggested services에서 beaconDB를 선택하면 올바른 설정이 자동 적용됨
  • Tower Collector

    • Tower Collector는 기지국 수집용으로 오래 사용된 앱임
    • F-Droid 또는 Google Play에서 다운로드 가능함
    • 최신 버전은 기본적으로 beaconDB에 업로드함
  • Network Survey

    • Network Survey는 포괄적인 로컬 데이터 수집을 위한 도구임
    • F-Droid 또는 Google Play에서 받을 수 있음
    • 메인 화면의 Upload to Database 아래 Upload Settings에서 beaconDB 제출을 활성화함

현재 한계와 폴백 동작

  • BeaconDB는 아직 실험적이라 위치 추정이 부정확하거나 서비스가 불안정할 수 있음
  • 처음부터 새로 구축되는 데이터베이스라 사용 지역에 Wi-Fi 커버리지가 없을 가능성이 큼
    • Wi-Fi로 위치를 추정할 수 없으면 MLS 최종 데이터 덤프 기반의 대략적인 기지국 위치로 폴백함
    • 마지막 수단으로 IP 기반 추정을 사용함
    • 제출 데이터가 beaconDB API에서 사용 가능해지려면 최소 5분이 걸림
  • 데이터 덤프는 아직 제공되지 않으며, 기여자와 AP 소유자의 프라이버시 보호를 위한 데이터 난독화 작업이 진행 중임

클라이언트 설정 방법

  • microG

    • Android ROM이 microG를 지원하면 microG의 새 위치 엔진으로 beaconDB를 온라인 위치 서비스로 설정할 수 있음
    • 이 위치 엔진은 v0.3.6부터 stable임
    • microG Settings → Location → More options → Select online location service에서 beaconDB를 선택함
    • ‘Wi-Fi location’과 ‘Mobile network location’ 양쪽에서 ‘Request from online service’를 활성화해야 함
  • 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

    • Firefox는 beaconDB에 직접 요청하거나 Linux에서 geoclue를 통해 위치를 가져오도록 설정할 수 있음
    • 직접 사용하려면 about:config에서 geo.provider.network.urlhttps://api.beacondb.net/v1/geolocate로 설정함
    • geoclue를 사용하려면 geo.provider.use_geoclue를 활성화함

개발자용 API와 리소스

댓글과 토론

Hacker News 의견들
  • 윤리적으로 수집된 데이터가 옵트인 방식이라고 하지만, 실제로 어떻게 동작하는지 궁금함
    이웃이 내 WiFi 네트워크를 스캔해서 BeaconDB에 올리면 내가 동의한 건 아니지 않나 싶음. 개인정보 처리방침에는 WiFi 이름에 _optout을 붙이면 된다고 되어 있어, 옵트인보다는 옵트아웃에 가까워 보임

    • 여기서 말하는 옵트인은 데이터 수집에 자기 기기를 쓰는 것에 동의한다는 뜻임. Apple과 Google은 전 세계 사용자 기반을 이용해, 동의 없이 사용자 기기로 이런 데이터를 수집하고 있음
      WiFi 네트워크는 초당 10번씩 사방으로 존재를 방송함. 주변 누구나 잡을 수 있으니 네트워크 SSID에 민감한 정보를 넣으면 안 된다는 건 잘 알려져 있음. 그래서 이 경우에는 옵트아웃이 가능하다는 쪽에 가까움
    • 데이터를 수집하는 사람이 수집에 옵트인한 것임. 데이터 수집자 입장에서는 당신의 WiFi 신호가 공개 공간에 있는 셈임
    • 명확히 하자면, 위치 확인을 하는 모든 휴대폰은 이미 당신의 AP MAC 주소를 원격 위치 서비스에 업로드하고 있지만, BeaconDB는 이 정보를 평문으로 공개하지 않음
      어떤 데이터 덤프도 되돌릴 수 없는 암호학적 해시 데이터나 집계 데이터만 포함하게 됨
    • SSID를 숨기고 5GHz WiFi를 쓰면 됨. 도달 거리가 짧고 벽을 통과하면서 많이 약해져서 위치 추정용 비콘으로는 거의 쓸모가 없어짐
  • 예전에 GrapheneOS용으로 비슷한 걸 찾아봤을 때는 사용자 지정 위치 서비스를 제공하는 게 불가능했음
    GrapheneOS에서 이걸 쓸 수 있으면 정말 좋겠음. microG 없이 하는 방법을 아는 사람이 있으면 반가울 듯함. 나는 샌드박스 처리된 GMS를 쓰고 있음

  • 작성자가 기기에서 직접 데이터를 수집할 수 있게 해주는 오픈소스 모바일 앱 같은 건 없는 듯함. 특히 수집 기기 기준으로 옵트인이라면, 데이터가 어디서 모였는지 궁금함

    • 아직 beaconDB에 기여할 앱은 만들지 않았음. 웹사이트에는 이 데이터를 수집하는 데 쓸 수 있는 Android 앱인 NeoStumblerTowerCollector가 링크되어 있음
  • MLS의 핵심 문제는 Skyhook에게 특허 괴롭힘/소송을 당한 것 아니었나? 어떤 특허가 관련됐고 beaconDB는 그 문제를 어떻게 피하는지 아는 사람이 있는지 궁금함

  • MLS 종료 이슈[1]를 읽어보면 /e/ foundation, Graphene 같은 여러 기존 조직도 대체 서비스 제공에 관심이 있어 보임. 지금 여러 오픈소스 위치 서비스 제공자가 경쟁하는 상황인지, 아니면 현재 공개적으로 접근 가능한 프로젝트는 이게 유일한지 궁금함
    프로젝트 자체는 멋지지만 GitHub[2]에서 참여가 많지 않은 1인 프로젝트처럼 보임. 비슷한 목표를 가진 다른 사람들과 프로젝트 확장 및 협업을 논의 중인지 궁금함. 기존 개발자 커뮤니티의 지원을 받으면 한 단계 더 올라갈 수 있을 듯함

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

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

    수정: 실제 프로젝트는 Codeberg[3]에 있는 듯하고, 거기서는 주 개발자 외 다른 참여가 GitHub보다 조금 더 있음

    1. https://codeberg.org/beacondb
    • beaconDB는 현재 공개적으로 접근 가능한 유일한 프로젝트지만, 여러 다른 프로젝트와 조직과 협업을 논의 중임
      프로젝트는 원래 GitHub에 있었지만 이제 Codeberg로 옮겨졌음
    • 참고로 /e/ OS는 이제 자체 위치 서비스를 쓰고 있음. 다만 접근을 제한하는 게 있는지는 모르겠음
  • API가 접근 지점의 위치를 반환해서 클라이언트가 스스로 위치를 계산하게 하지 않는 이유가 있는지 궁금함

    • 클라이언트가 데이터를 로컬에 캐시할 수 있게 하려고 계획 중이며, 그러면 클라이언트 개인정보 보호가 좋아지고 서버 부하도 줄어듦. 며칠 안에 구현하고 싶음
      아직 그런 데이터를 활용하도록 구현된 클라이언트를 찾지는 못했음. 그런 걸 발견했거나 개발 중이라면 알려주면 좋겠음
  • GrapheneOS가 곧 이걸 지원하면 좋겠음. 현재 비Google GPS 제공자는 실외가 아니면 사실상 가망이 없음

  • 정말 멋진 프로젝트임. MLS가 남긴 빈자리를 문제 해결형 사람들이 채우는 걸 보면 늘 반가움. 별개로 디자인도 훌륭함

  • MLS의 마지막 데이터 덤프를 아직 어디서 받을 수 있는지 궁금함. 온라인에서 찾지 못했음
    mcc, mnc, cid 등을 기반으로 연결된 기지국을 찾는 프로젝트를 하고 있음. 현재는 opencellid와 combain에서만 데이터를 가져오고 있는데, 이 데이터가 추가되면 아주 좋겠음

  • geoclue2와 협력하면 좋겠음. MLS가 종료되면서 geoclue2는 이제 WiFi 기반 위치 추정을 비활성화했음

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