8.4Kпросмотров
10 октября 2023 г.
questionScore: 9.2K
Я как-то сел читать, что такое WPS - "WiFi positioning system". Было интересно, как мой полудохлый ноутбук умудряется определять геолокацию? После прочтения некоторое время пребывал в шоке.⠀ Даже бегал за женой и кричал "Нет, ты дослушай!! Мы все под колпаком!!!" Но писать пост постеснялся. Решил, что все и так знают... ...Беглый опрос знакомых погромистов показал, что не знает примерно никто. Читайте и ужаснитесь. Телефон, планшет и прочие девайсы умеют определять ваше местоположение с точностью до 0.6 метра даже с отключенным GPS. И не только телефоны, но и безобидные ноутбуки, плейстейшены, VR-шлемы и смарт-ТВ, в которых GPS вообще отсутствует физически. Делается это по Wi-Fi сетям. Apple, Google, MS, Facebook и остальные техгиганты ведут огромные реестры точных координат wifi-рутеров. Это не какая-то там геолокация по IP-адресу (как я раньше думал), а прямо точная-преточная гео-координата Вашего. Домашнего. Роутера. Откуда их берут? Да от телефонов, которые подключаются к вашему WiFi и тут же стучат - где и к чему подключились (вы замечали, что при сканировании сетей в смартфонах загорается иконка GPS? Айфон заботливо уверяет что это для повышения эффективности поиска, ага). Даже если вы отключите GPS в телефонах всей семьи, к вам рано или поздно зайдут гости, спросят пароль от вайфая и засветят его на карте. Да что там гости. Соседи тоже не слепые и видят ваш SSID в эфире. И тоже репортят. Даже если вы живете в деревне, а соседи - в другом доме. Можно отобрать телефоны у всех гостей, соседей, гостей соседей и детей-гостей-соседей, и все равно останутся способы. Ну например, машины Google Street View. Они не только ездят по городу и фоткают улицы - они (доказанный факт) еще и сканируют, где какая сеть. И записывают в книжечку. Фингерпринт составляют по SSID, каналу, стандарту, мак-адресу и так далее. Итак, координаты сетей у нас есть. Дальше понятно? Ваш ноутбук всегда видит несколько сеток (даже если подключен только к одной). Если их три и более - зная их точные координаты и расстояние до них, можно с помощью триангуляции легко прикинуть, где вы. Вообще-то правильно говорить "трилатерация". Запомнить легко: трилатерация меряет расстояния, триангуляция - меряет УГЛЫ. Типа, если ты в открытом море видишь маяк - ты не знаешь расстояния, может 2 км, а может и 20. Но измерь угол (пеленг) и получишь свою точку. Это - триангуляция. А вот если ты "слышишь" радиомаяк с известными координатами - тогда все наоборот. Пеленг неизвестен, зато можем прикинуть расстояние. Ловим три маячка, рисуем три окружности, в области пересечения - мы. Это - трилатерция. Обязательно блесните где-нибудь. Расстояние до wifi-точки рассчитывается несколькими способами. Мощность сигнала, ToF (time of flight) по сетевым пакетам, в которых есть таймстэмп с точностью до наносекунды и тд. Все, как в gps. Такие дела. И не надо никаких доп.устройств, никаких "разрешить этому приложению доступ к геолокации". Просто спроси у сетевой карты парочку параметров. Кстати, есть неутвержденный стандарт, как из этого выпилиться. Надо добавить к названию домашней сети "_nomap". Гугл, Эппл и Мозилла уважают эту настройку и никуда вашу сеть не запишут. Обещают, по крайней мере. P.S. если вы уже начали придумывать стартап (в комментах уже упомянули один - навигация внутри торговых центров) и теперь ищете, где взять все эти данные - публичные АПИ легко гуглятся. Вот карта покрытия Мозиллы например. Найди свой роутер.