2 điểm bởi GN⁺ 2024-07-08 | 1 bình luận | Chia sẻ qua WhatsApp
  • BeaconDB là một dịch vụ định vị trực tuyến nhằm thay thế Mozilla Location Services, xây dựng vùng phủ dựa trên dữ liệu Wi-Fi và trạm gốc do người dùng tự gửi lên
  • Việc thu thập dữ liệu theo cơ chế opt-in; dữ liệu được gửi sẽ được tổng hợp rồi cung cấp cho các client của beaconDB API, và dự kiến sẽ công khai các bản dump dữ liệu đã làm rối trong tương lai
  • Hiện vẫn là dịch vụ thử nghiệm, nên vùng phủ Wi-Fi theo khu vực có thể còn thiếu; khi thất bại, dịch vụ sẽ fallback sang vị trí trạm gốc dựa trên bản dump dữ liệu cuối cùng của MLS hoặc ước lượng dựa trên IP
  • Trên Android, có thể gửi dữ liệu bằng NeoStumbler, Tower Collector, Network Survey, và có thể dùng BeaconDB làm dịch vụ định vị thông qua cấu hình microG, geoclue, Firefox
  • Nhà phát triển có thể dùng endpoint tương thích với MLS/Ichnaea API, đồng thời cần thiết lập User-Agent để nhận diện client

Nguyên tắc thu thập dữ liệu vị trí

  • BeaconDB vận hành cơ sở dữ liệu vị trí dựa trên việc thu thập opt-in
  • Dữ liệu công khai được làm rối để bảo vệ người gửi và người đóng góp
  • Để cập nhật dữ liệu hiện có, cần có thông tin chỉ có thể thu được trong phạm vi vật lý của beacon, nhờ đó cấu trúc có khả năng chống lạm dụng cao hơn
  • Dữ liệu được gửi sẽ được tổng hợp rồi trở nên khả dụng cho các client của beaconDB API
  • Trong tương lai, các bản dump dữ liệu đã làm rối sẽ được công khai theo giấy phép public domain
  • Có thể xem cách xử lý dữ liệu được gửi trong privacy notice

Ứng dụng đóng góp vùng phủ

  • NeoStumbler

    • NeoStumbler là ứng dụng Android giúp dễ dàng gửi vùng phủ mới
    • Có thể tải từ Accrescent, F-Droid, Google Play, GitHub
    • Từ v1.5.1, nếu bấm “yes” trong lời nhắc thì endpoint sẽ được đặt thành beaconDB
    • Với các phiên bản cũ hơn, chọn beaconDB trong Settings → Endpoint → Suggested services thì cấu hình đúng sẽ tự động được áp dụng
  • Tower Collector

    • Tower Collector là ứng dụng đã được dùng lâu năm để thu thập dữ liệu trạm gốc
    • Có thể tải từ F-Droid hoặc Google Play
    • Phiên bản mới nhất mặc định tải dữ liệu lên beaconDB
  • Network Survey

    • Network Survey là công cụ dành cho việc thu thập dữ liệu cục bộ toàn diện
    • Có thể tải từ F-Droid hoặc Google Play
    • Bật gửi dữ liệu lên beaconDB trong Upload Settings, bên dưới Upload to Database trên màn hình chính

Giới hạn hiện tại và hành vi fallback

  • BeaconDB hiện vẫn mang tính thử nghiệm, nên ước lượng vị trí có thể không chính xác hoặc dịch vụ có thể không ổn định
  • Vì đây là cơ sở dữ liệu được xây dựng lại từ đầu, nhiều khả năng khu vực bạn sử dụng chưa có vùng phủ Wi-Fi
    • Nếu không thể ước lượng vị trí bằng Wi-Fi, dịch vụ sẽ fallback sang vị trí trạm gốc xấp xỉ dựa trên bản dump dữ liệu cuối cùng của MLS
    • Biện pháp cuối cùng là dùng ước lượng dựa trên IP
    • Dữ liệu được gửi mất tối thiểu 5 phút để trở nên khả dụng trong beaconDB API
  • Hiện chưa cung cấp bản dump dữ liệu; công việc làm rối dữ liệu nhằm bảo vệ quyền riêng tư của người đóng góp và chủ sở hữu AP đang được tiến hành

Cách cấu hình client

  • microG

    • Nếu Android ROM hỗ trợ microG, có thể đặt beaconDB làm dịch vụ định vị trực tuyến bằng engine định vị mới của microG
    • Engine định vị này ổn định từ v0.3.6
    • Chọn beaconDB trong microG Settings → Location → More options → Select online location service
    • Cần bật ‘Request from online service’ cho cả ‘Wi-Fi location’ và ‘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

    • Có thể cấu hình Firefox để gửi yêu cầu trực tiếp đến beaconDB hoặc lấy vị trí thông qua geoclue trên Linux
    • Để dùng trực tiếp, trong about:config, đặt geo.provider.network.url thành https://api.beacondb.net/v1/geolocate
    • Để dùng geoclue, bật geo.provider.use_geoclue

API và tài nguyên dành cho nhà phát triển

1 bình luận

 
GN⁺ 2024-07-08
Ý kiến trên Hacker News
  • Dù nói rằng dữ liệu được thu thập một cách có đạo đức là theo cơ chế opt-in, tôi vẫn tò mò thực tế nó hoạt động ra sao
    Nếu hàng xóm quét mạng WiFi của tôi rồi tải lên BeaconDB thì chẳng phải tôi đâu có đồng ý. Chính sách quyền riêng tư nói rằng chỉ cần thêm _optout vào tên WiFi, nên trông nó giống opt-out hơn là opt-in

    • Opt-in ở đây có nghĩa là đồng ý dùng thiết bị của chính mình để thu thập dữ liệu. Apple và Google đang dùng nền tảng người dùng toàn cầu của họ để thu thập loại dữ liệu này bằng thiết bị của người dùng mà không có sự đồng ý
      Mạng WiFi phát sóng sự hiện diện của nó ra mọi hướng 10 lần mỗi giây. Ai ở gần cũng có thể bắt được, nên việc không đưa thông tin nhạy cảm vào SSID mạng là điều đã được biết rộng rãi. Vì vậy trong trường hợp này, có thể nói là gần với việc có thể opt-out hơn
    • Người thu thập dữ liệu là người đã opt-in vào việc thu thập. Từ góc nhìn của người thu thập dữ liệu, tín hiệu WiFi của bạn giống như đang ở trong không gian công cộng
    • Nói rõ hơn, mọi điện thoại thực hiện định vị đều đã tải địa chỉ MAC của AP của bạn lên dịch vụ định vị từ xa, nhưng BeaconDB không công khai thông tin này dưới dạng văn bản thuần
      Bất kỳ bản dump dữ liệu nào cũng sẽ chỉ chứa dữ liệu băm mật mã không thể đảo ngược hoặc dữ liệu tổng hợp
    • Chỉ cần ẩn SSID và dùng WiFi 5GHz. Tầm phủ sóng ngắn, tín hiệu suy yếu nhiều khi xuyên tường, nên gần như vô dụng làm beacon cho việc ước tính vị trí
  • Trước đây khi tôi tìm thứ tương tự cho GrapheneOS thì việc cung cấp dịch vụ định vị tùy chỉnh là không thể
    Nếu có thể dùng cái này trên GrapheneOS thì thật tuyệt. Sẽ rất vui nếu có ai biết cách làm mà không cần microG. Tôi đang dùng GMS được sandbox

  • Có vẻ như tác giả không có thứ gì như ứng dụng di động mã nguồn mở cho phép thu thập dữ liệu trực tiếp từ thiết bị. Đặc biệt nếu opt-in là theo thiết bị thu thập, tôi tò mò dữ liệu đã được gom từ đâu

    • Chưa có ứng dụng nào được tạo để đóng góp cho beaconDB. Trang web có liên kết tới NeoStumblerTowerCollector, các ứng dụng Android có thể dùng để thu thập dữ liệu này
  • Chẳng phải vấn đề cốt lõi của MLS là bị Skyhook quấy rối/kiện tụng bằng bằng sáng chế sao? Tôi tò mò liệu có ai biết bằng sáng chế nào liên quan và beaconDB tránh vấn đề đó như thế nào không

  • Nếu đọc issue về việc MLS ngừng hoạt động[1], có vẻ như nhiều tổ chức hiện có như /e/ foundation, Graphene cũng quan tâm đến việc cung cấp dịch vụ thay thế. Tôi tò mò hiện có phải đang có nhiều nhà cung cấp dịch vụ định vị mã nguồn mở cạnh tranh nhau, hay đây là dự án duy nhất có thể truy cập công khai hiện nay
    Bản thân dự án rất hay, nhưng trên GitHub[2] trông giống một dự án một người làm với mức độ tham gia không nhiều. Tôi tò mò liệu họ có đang thảo luận với những người khác có mục tiêu tương tự về việc mở rộng dự án và hợp tác hay không. Nếu nhận được sự hỗ trợ từ cộng đồng lập trình viên hiện có, có vẻ dự án có thể tiến thêm một bậc

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

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

    Sửa: Có vẻ dự án thực sự nằm trên Codeberg[3], và ở đó có thêm một chút đóng góp từ những người khác ngoài lập trình viên chính so với GitHub

    1. https://codeberg.org/beacondb
    • beaconDB hiện là dự án duy nhất có thể truy cập công khai, nhưng họ đang thảo luận hợp tác với nhiều dự án và tổ chức khác
      Dự án ban đầu ở GitHub nhưng nay đã chuyển sang Codeberg
    • Nhân tiện, /e/ OS hiện dùng dịch vụ định vị riêng. Tuy nhiên tôi không biết liệu có hạn chế truy cập nào không
  • Tôi tò mò có lý do gì khiến API không trả về vị trí của các điểm truy cập để client tự tính toán vị trí hay không

    • Đang có kế hoạch cho phép client lưu cache dữ liệu cục bộ, nhờ đó quyền riêng tư của client sẽ tốt hơn và tải máy chủ cũng giảm. Tôi muốn triển khai trong vài ngày tới
      Hiện vẫn chưa tìm thấy client nào đã được triển khai để tận dụng loại dữ liệu đó. Nếu bạn đã thấy hoặc đang phát triển thứ như vậy thì rất mong được báo cho biết
  • Hy vọng GrapheneOS sẽ sớm hỗ trợ cái này. Hiện tại các nhà cung cấp GPS không phải Google gần như vô vọng nếu không ở ngoài trời

  • Dự án thật sự rất tuyệt. Luôn vui khi thấy những người thiên về giải quyết vấn đề lấp đầy khoảng trống mà MLS để lại. Ngoài ra thiết kế cũng xuất sắc

  • Tôi tò mò không biết hiện còn có thể tải bản dump dữ liệu cuối cùng của MLS ở đâu. Tôi không tìm thấy trên mạng
    Tôi đang làm một dự án tìm trạm gốc đang kết nối dựa trên mcc, mnc, cid, v.v. Hiện chỉ lấy dữ liệu từ opencellid và combain, nên nếu có thêm dữ liệu này thì sẽ rất tuyệt

  • Sẽ tốt nếu hợp tác với geoclue2. Khi MLS ngừng hoạt động, geoclue2 hiện đã vô hiệu hóa định vị dựa trên WiFi

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