Программа от Navizon позволяет искать находящиеся поблизости смартфоны с Wi-Fi
Если вы когда-либо пытались найти телефон с Bluetooth на вокзале или в аэропорту, то вы легко можете представить принцип работы новой программы от Navizon. Эта компания создала ПО, позволяющее отследить любой смартфон с Wi-Fi, находящийся поблизости. Новая разработка получила название Navizon I.T.S. (Indoor Triangulation System). Эта технология была разработана еще в прошлом году, но готовый продукт был значительно доработан, и сейчас компания показала работу усовершенствованного ПО.
Разработчики утверждает, что новая разработка направлена на отслеживание смартфонов с Wi-Fi внутри здания или на какой-то определенной территории. Кроме того, что ПО сможет показать расположение найденных смартфонов с Wi-Fi, программка сможет еще и «подписать» любой найденный объект, поскольку Wi-Fi модуль имеет собственную «подпись», которая и позволяет отличить один модуль от другого. Таким образом, технологию можно использовать, например, в больнице или этаже какой-либо компании, отслеживая, где какой сотрудник находится.
Разработчики утверждают, что их программа способна определить мобильное устройство с Wi-Fi любого типа, будь то планшет, Android-смартфон, BlackBerry смартфон или телефон на основе Symbian. Правда, никаких данных при этом получить не удастся, понятное дело, да это и не задумывалось при создании данного ПО. Программа выполняет лишь две функции — определяет местоположение устройств с Wi-Fi вокруг вас и позволяет идентифицировать устройства в случае необходимости.
Как найти потерянный Android-смартфон
Содержание
Содержание
Смартфон — это часть жизни и расставаться с ним неприятно. Но вещь есть вещь, будьте готовы её потерять. Что делать, если не хочется расставаться со смартфоном без боя?
Ваш смартфон нашли, дозвониться на него не получилось. От подобного сценария можно обезопасить себя ещё на этапе оформления SIM-карты.
Что такое SIM-карта и почему от кусочка пластика можно отказаться?
За физической SIM-картой стоит всего один важный идентификатор — ICCID (Integrated Circuit Card Identifier), который в момент покупки привязывается к IMSI (International Mobile Subscriber Identity) и MSISDN (11-значный номер абонента).
Когда вы приходите в офис мобильного оператора за новым номером, вам дают стопку SIM-карт на выбор. Это SIM-карты с заранее подготовленной связкой ICCID-IMSI-MSISDN. При восстановлении SIM-карты (например, в случае утери) сотрудник мобильного оператора выбирает любую SIM-карту из этой стопки, привязывает ICCID к действующему IMSI и на выходе получает ваш старый номер на новой SIM-карте.
ICCID универсален, что дало развитие технологии eSIM. Это интегрированная в смартфон плата, программируемая по аналогии с физической SIM-картой. Изъять её из смартфона невозможно, это «часть корабля». Значит, передача данных будет работать, что даёт некоторое пространство для манёвра. Появляется возможность стереть данные, заблокировать смартфон или определить его геолокацию.
eSIM не панацея от утери смартфона, она лишь даёт пользователю время на его поиск.
Поиск через аккаунт Google с компьютера и другого смартфона
Здесь всё просто и, скорее всего, вы уже об этом знаете.
Через любой веб-браузер заходим на Google Find My Device. Вводим пару «Google ID/пароль» и находим смартфон (точность геолокации до 20 метров).
Google Find My Device отправит на смартфон уведомление о запросе геолокации.
Функции поиска на Android
Определение местоположения смартфона работает, если:
Передача данных необходима для получения GPS (Global Positioning System) координат вашего устройства. Геолокация включается через панель быстрого доступа либо настройки смартфона. Там же включается «История местоположений» и «Определение местоположения».
Дополнительный способ поиска смартфона Samsung
Здесь нужно использовать Samsung Accounts. Пароль от Google Accounts не равен паролю Samsung Accounts.
Заходим на Samsung Find My Mobile. Вводим пару «Samsung ID/пароль» и находим смартфон.
Samsung Find My Mobile сообщит пользователю смартфона о запросе геолокации.
Сторонние средства для поиска
Сторонние сервисы обеспечат дополнительную функциональность: отслеживание через камеру, уведомление о смене SIM-карты, просмотр входящих/исходящих вызовов, подключение к публичным Wi-Fi сетям. Сервисы работают в фоновом режиме: потребляют трафик и расходуют заряд батареи.
Топ приложений для защиты вашего смартфона остаётся неизменным:
Очевидный плюс стороннего приложения — в случае смены Google ID оно не прекращает работу, у вас остаётся доступ к геолокации устройства.
На самом деле, для поиска смартфона подойдёт любая технология передачи данных (3GPP, Wi-Fi).
Если вы пользовались подобными услугами, то наверняка знаете, что точность определения местоположения оставляет желать лучшего. Связано это со способом определения локации, не имеющим ничего общего с GPS (Global Positioning System). Поиск осуществляется по базовым станциям.
Базовая станция представляет скопление антенн с ограниченными диаграммами направленности. Чем выше уровень сигнала на устройстве, тем ближе к базовой станции оно находится. Это даёт условный радиус поиска. При пересечении двух диаграмм направленности с разных базовых станций определение местоположения смартфона становится точнее.
Протокол Wi-Fi использует для доступа в сеть 2 параметра — IP и MAC. IP-адрес выдаётся на узле связи, тогда как MAC устройства регистрируется в коммутационном оборудовании интернет-провайдера последней мили.
При помощи TeamViewer QuickSupport можно удалённо подключиться к вашему смартфону и проверить в настройках текущие IP и MAC. Устройство заранее должно быть привязано к аккаунту TeamViewer.
В предыдущих версиях MAC определялся в панели инструментов, сейчас эта функция недоступна. Придется заходить в настройки устройства.
Разблокировать смартфон можно удалённо через тот же Samsung Find My Mobile.
Для этого необходимо заранее активировать функцию удаленной разблокировки в настройках устройства.
Полученный IP-адрес принадлежит роутеру Wi-Fi, к которому подключен смартфон. Для получения глобального IP потребуется зайти на сторонний сервис, например, myip. По IP определяется имя хоста, провайдер и его DNS. Информация о принадлежности DNS к определённому лицу является публичной. Интернет-провайдеру доступен точный адрес местоположения пары «IP+MAC». Это непубличная информация, запросить её возможно только через МВД.
Что делать, если смартфон выключен
Только в фильмах Нолана можно позвонить на выключенный смартфон. Но если он выключен, это не значит, что устройство не оставило следов в прошлом. На смартфонах Android предусмотрена трекинговая функция, её необходимо включить.
Здесь обозначены все места в которых побывал смартфон. Определяются даже посещаемые заведения с точностью до номера дома и скорости передвижения. Доступен трек по дням.
Как найти смартфон по IMEI
Сети 3GPP устроены так, что любая активность SIM-карты тесно пересекается с IMEI. При активности с MSISDN оборудование пишет специальный файл CDR (Call Detail Record). Его используют для тарификации вызова или сверок. Файл содержит идентификаторы MSISDN-START TIME (время совершения активности)-IMEI. Это лишь малая часть того, что пишется в файл. Активность необязательно должна быть успешной. Даже неудачные попытки вызова записываются, но не отображаются в детализации.
Подача заявления оператору (блокировка IMEI)
При себе необходимо иметь документы, подтверждающие право собственности на устройство. После обработки заявления IMEI блокируется и пользоваться мобильной сетью со смартфона уже не получится (Wi-Fi и приложения будут доступны). Единой базы по блокировке IMEI не существует, поэтому придётся подать заявление всем операторам мобильной связи. Снять блокировку можно в любой момент. Не торопитесь блокировать IMEI, поиск через СОРМ может увенчаться успехом.
Пользователь может добавить свой номер IMEI в базы утерянных смартфонов и оставить заявку о возврате. Есть шанс, что устройство вернётся за вознаграждение.
В случае, если вы не подключали платную услугу определения местоположения у мобильного оператора, он может самостоятельно поискать SIM-карту по своим базовым станциям, но только по уже совершённым активностям (вызовы/СМС/выходы в интернет). ITC (передача данных между операторами) не предполагает передачу геолокации. Локация имеет значительный радиус даже в условиях города, поскольку из известной информации остаётся лишь адрес базовой станции с которой совершалась активность (не входит в СОРМ, но может быть запрошен органами власти). Данные быстро устаревают и будут эффективны лишь при использовании вышек с малым радиусом обслуживания.
Заявление в полицию (поиск устройства)
Здесь ждёт развилка:
Для подачи заявления потребуется тот же набор документов. Если ваш смартфон выпал, был оставлен без присмотра или исчез при загадочных обстоятельствах, остаётся только ждать, пока ответственный гражданин не принесёт его в отделение полиции. Активных разыскных мер не будет.
Во втором случае будет задействована система СОРМ. Останется ждать активности с вашего IMEI. Новый MSISDN, зарегистрированный в паре с IMEI вашего устройства, вам никто не сообщит. Это персональные данные, а вы — третье лицо, но с действующим собственником вашего смартфона свяжутся. Он будет вынужден вернуть телефон законному владельцу.
Как мы разработали технологию обнаружения устройств поблизости
Эта история началась с функции “Рядом” в одном из наших мобильных приложений. Мы хотели, чтобы пользователи могли быстро создать групповой чат или добавить находящихся рядом пользователей в друзья. Мы попробовали решить эту задачу при помощи геолокации, Bluetooth, Wi-Fi и ультразвука, но у каждого из способов мы обнаружили критичные в нашем случае недостатки.
В итоге мы придумали новый способ. Он основан на поиске совпадения окружающего шума: если устройства слышат одно и то же, то, скорее всего, они находятся рядом.
В статье мы расскажем о принципе его работы, а также рассмотрим достоинства и недостатки других распространенных способов обнаружения устройств.
Взаимодействие между устройствами поблизости
Люди, находясь рядом друг с другом, часто хотят обменяться файлами, добавить нового знакомого в друзья, сыграть вместе в игру, перевести деньги, поделить счет или выполнить другие совместные действия. Такие приложения станут удобнее, если позволят пользователю легко взаимодействовать с окружающими людьми или устройствами.
Например, Петров только что познакомился с Ивановым и они пытаются “подружиться” на Facebook. Спустя несколько безуспешных попыток найти друг-друга, они, скорее всего, закроют Facebook, обменяются номерами телефонов и будут общаться через WhatsApp.
Кстати, Вконтакте предусмотрели это: в их мобильном приложении для iOS и Android есть функция “Люди Рядом”, которая позволяет найти других пользователей при помощи геолокации. О минусах этого способа я расскажу чуть позже.
Поиск нового знакомого в FB | Поиск нового знакомого в Vk |
Чтобы функция действительно была удобна пользователю, она должна работать:
Окружающий шум
Где бы вы не находились (в офисе, транспорте, кафе, на улице, встрече или концерте) — везде есть окружающий шум: голоса людей, музыка, работа двигателя, шум колес, стук клавиш и так далее.
Короткий сэмпл естественного окружающего шума вместе с точным временем его записи, в большинстве случаев, уникален для любого места на Земле. Совпадение окружающего шума и времени означает, что записывающие устройства находятся рядом. Именно на этом основан принцип работы технологии.
Схема работы
Каждое устройство в реальном времени захватывает звук с микрофона и преобразовывает его в специальный отпечаток при помощи перцептивной хэш-функции. Особенность перцептивных хэш-функций в том, что небольшие отличия в исходных данных выражены небольшими отличиями в результирующем хэше.
Отпечаток звука с точной меткой времени отправляется на сервер. Сравнивая его с отпечатками других устройств, сделанных в тот же момент времени, сервер может определить, насколько похожи исходные звуки. Если показатель схожести выше определенного порога — устройства получают идентификаторы друг-друга для последующего взаимодействия.
Пример и сравнение отпечатков с двух разных устройств
Нужно было убедиться, что данный принцип работает и способен находить совпадения в звуке, записанном разными устройствами на расстоянии нескольких метров, а также, что заведомо разный звук не совпадает. Мы вручную собрали сотни часов звука, записанного одновременно на несколько устройств во множестве различных мест.
Используя эти данные, мы перебрали множество алгоритмов генерации и параметров сравнения отпечатков для достижения наилучшего результата. В итоге добились того, что 6-секундный отпечаток позволяет обнаружить устройство на расстоянии до 5 метров в 96% случаев, а ложноположительный результат возможен в 0.0039% случаев.
Мы разработали библиотеки для iOS и Android, которые скрывают от приложения всю реализацию через простой API и встроили их в свои приложения.
Недостаток данного подхода в том, что он не работает в абсолютной тишине. Тишина очень похожа на любую другую тишину и алгоритм намеренно игнорирует ее, чтобы исключить ложные срабатывания. Стоит отметить, что абсолютная тишина встречается в реальных условиях крайне редко. Достаточно стука клавиш клавиатуры или звука шагов, чтобы устройства обнаружили друг-друга.
Иногда это выглядит забавно: пользователи молча ждут обнаружения секунд 10, после чего один из них говорит что-то вроде “Это не работает!”. Эта фраза работает как заклинание и через секунду устройства обнаруживают друг-друга.
Одно преимуществ данного подхода — кроссплатформенность. JS-версия библиотеки, работает в Chrome, Safari, Firefox, Edge, в том числе, в их мобильных версиях.
Еще один способ….
В нашем приложении функция “Рядом” является одной из ключевых. Мы попробовали применить различные существующие способы для ее реализации, но столкнулись с критичными для нас ограничениями и проблемами.
Давайте подробно рассмотрим альтернативные способы.
Геолокация
Это наиболее очевидный способ решить задачу. В момент, когда пользователь открывает раздел “Рядом”, мы получаем его текущее местоположение и выполняем поиск ближайших пользователей на сервере.
Если представить местоположение как центр окружности, а погрешность координат в виде радиуса, то 2 пользователя могут быть изображены следующим образом:
Если расстояние между устройствами (d) меньше суммы погрешностей (r1 + r2), значит есть вероятность (P), что пользователи находятся рядом.
Радиус поиска должен быть не меньше погрешности координат. Как оказалось, реальные координаты смартфона могут находиться и за пределами погрешности, например, в Android это происходит в 32% случаев. Значит, даже находясь рядом, пользователи все равно могут не “увидеть” друг-друга.
Координаты, полученные при помощи GPS и ГЛОНАСС точны, но этот способ зачастую не работает внутри помещений, кроме того, может потребоваться до минуты на поиск спутников. При этом, модуль GPS/ГЛОНАСС присутствует не во всех устройствах (Привет, iPad Wi-Fi!) или может быть отключён на уровне ОС (Привет, Android!).
На самом деле, даже вне здания, на улице с плотной застройкой GPS/ГЛОНАСС часто ошибается из-за отражения сигнала от зданий и может выдавать точность ниже 100 метров:
Поэтому в большинстве случаев приходится использовать координаты, полученные при помощи триангуляции по сигналу окружающих Wi-Fi сетей и сотовых вышек, этот способ работает быстро и энергоэффективно, но точность на порядок ниже: 100 — 1500 метров. На практике, устройство нередко определяет неверное местоположение в городе, а иногда может “телепортироваться” в другой город.
Мы реализовали этот способ и протестировали его в Москве, примерно в 15% случаев устройства не находят друг-друга из-за неверных координат. Особенно часто ошибки происходят внутри высоток Москва-Сити, в метро и наземном транспорте. Также из-за низкой точности часто будут попадаться “лишние” пользователи (не находящиеся рядом).
+ простой в реализации способ
− низкая точность
− плохо работает в транспорте (в движении)
Команда Bump придумала оригинальный способ увеличить точность поиска по геолокации. Пользователям нужно стукнуться своими смартфонами, при этом, акселерометр фиксирует точное время соприкосновения и отправляет его вместе с координатами на сервер, алгоритм ищет пару только среди устройств с одинаковым временем соприкосновения. Эта простая идея на порядки уменьшает вероятность ложноположительного результата, что дает возможность значительно увеличить радиус поиска.
Но в 2013 их поглотил Google, а уже в 2014 проект закрыли, несмотря на то, что Bump SDK был встроен во множество сторонних приложений, а приложение Bump для обмена файлами получило сотни миллионов скачиваний. Дальнейшая судьба технологии неизвестна.
Главный недостаток технологии заключается в том, что за один ”Бамп” связывается только пара устройств. Чтобы объединить группу пользователей, потребуется сделать множество “Бампов”.
+ высокая точность
− необходимо сталкивать друг о друга устройства
− попарное обнаружение устройств
− проект закрыт
Bluetooth, BLE и Wi-Fi
iOS и Android категорически не дружат по Bluetooth. Передача данных между этими платформами — нетривиальная задача: Apple позволяет приложению подключиться только к сертифицированным (Made For iPhone) Bluetooth-устройствам.
Чтобы устройства могли обнаружить друг-друга, используется следующий способ: iOS имитирует какую-либо Bluetooth Low Energy-периферию, устанавливая свой токен в качестве имени BLE-устройства. Android временно меняет Bluetooth-имя смартфона на свой токен и включает режим обнаружения. Теперь, чтобы обнаружить устройства вокруг, Android сканирует Bluetooth для обнаружения Android и BLE для обнаружения iOS-устройств. iOS сканирует только BLE для обнаружения iOS, т.к. сканирование Bluetooth-устройств невозможно с помощью публичного API. Для того, чтобы обнаружить Android, iOS через облако получает идентификаторы окружающих Android-устройств, которые обнаружили его BLE-токен.
Окружающие Wi-Fi-сети в некоторых случаях помогают обнаружить, что устройства рядом: iOS-приложение может получить BSSID Wi-Fi точки доступа, к которой в данный момент подключен пользователь, а Android BSSID всех видимых точек. Если найдено совпадение, значит, пользователи рядом.
Грамотно реализовать этот способ самостоятельно не так уж просто, в том числе из-за множества особенностей BLE-стека разных версий Android и iOS. Существуют библиотеки, которые скрывают сложную реализацию “под капот”.
Мы попробовали Google Nearby. Обнаружение пары iOS — Android происходит медленно, в среднем поиск занимает 20 секунд, а в некоторых случаях длится до 40 секунд, это оказалось главным останавливающим фактором.
Другой нюанс заключается в том, что Bluetooth выключен на большинстве смартфонов, поэтому пользователям iOS каждый раз при использовании функции нужно будет правильно ответить на вопрос “Разрешить приложению использовать Bluetooth?”.
Также, стоит помнить, что использование Bluetooth (на Android) сильно влияет на потребление заряда. Google предупреждает, что Google Nearby увеличивает потребление энергии в 2.5 — 3.5 раза.
+ proof of proximity (гарантия того, что устройства находятся рядом)
− медленное обнаружение
− высокое потребление энергии
Обмен информацией через звук
У всех смартфонов есть динамик и микрофон. Можно закодировать какой-либо идентификатор в звук на одном устройстве, воспроизвести его при помощи динамика, декодировать на устройствах в радиусе слышимости и таким образом объединить устройства в группу.
Пример спектрограммы сигнала Chirp.io
В слышимом диапазоне сигнал смешивается с голосом, музыкой и окружающим шумом, чтобы увеличить вероятность корректного декодирования приходится воспроизводить звук с максимальной громкостью. Чаще всего используется FSK и PSK-модуляция, генерирующая похожий на свист или шум (в зависимости от плотности данных) звук, что раздражает многих людей (пример звука). Этот способ реализован в проекте Chirp.io.
− плохо работает в шумных местах
− раздражает окружающих
Можно использовать диапазон 18-20 кГЦ, он обычно не зашумлен, а большинство взрослых людей не услышат раздражающий звук. К сожалению, некоторые смартфоны тоже воспринимают его плохо, становится актуальна проблема отражения и интерференции, дальность устойчивой связи уменьшается до 0.5 — 3 метров. Этот способ реализован в Google Nearby и Chirp.io, но включается отдельно.
− работает на слишком малых расстояниях
Вместо заключения
Мы тестируем технологию в собственном приложении уже более 2-х лет. За это время мы убедились в ее работоспособности и удобстве в “боевых” условиях. В очень скором времени мы хотим дать возможность любому разработчику быстро встроить и использовать ее в своем приложении.
Надеюсь, статья оказалась познавательной и полезной. Если тема окажется интересной, в следующих статьях я планирую более подробно рассказать об алгоритмах создания и сравнения “отпечатков” окружающего звука, а также о трудностях, с которыми нам пришлось столкнуться.
С удовольствием отвечу на ваши вопросы в комментариях!