Триангуляция местоположения мобильного телефона базовыми станциями
Существует распространенное заблуждение о том, что географическое местоположение любого GSM-телефона можно с достаточно большой точностью определить при помощи триангуляции по трем базовым станциям. Описывают это обычно так: допустим, если можно стандартными средствами определить расстояние от базовой станции до телефона, то по расстояниям от трех базовых станций можно получить точные координаты аппарата, а по расстоянию от двух базовых станций — две точки, в одной из которых и будет находиться искомый телефон. Как правило, народная молва наделяет криминальные элементы или правоохранительные органы способностью при помощи подобной технологии находить нужных им людей.
Часть этого утверждения — сущая правда. Стандартными средствами иногда можно определить расстояние от телефона до одной базовой станции. Именно этим, наверно, и объясняется живучесть убеждения в том, что триангуляция возможна. На самом деле это не так.
Прежде чем начинать детальный разбор дела о триангуляции, стоит сделать существенную оговорку. Необходимо провести четкую границу между заблуждением о том, что базовые станции любой GSM-сети всегда триангулируют местоположение указанного телефона (вариант — всех телефонов в зоне покрытия) и возможностью обнаружения местоположения телефона другими средствами в рамках отдельно взятой сети.
Услуги, привязанные к местоположению
Для предоставления услуг, привязанных к местоположению абонента (location-based services, LBS), существует множество способов, опирающихся на наличие дополнительного программного и аппаратного обеспечения на всех базовых станциях конкретной сети, а иногда еще и в SIM-карте/телефоне абонента. Пример таких услуг: показать абоненту карту города и его место на ней, сообщить адрес ближайшего ресторана или магазина, сообщить о местоположении другого абонента, проложить маршрут в заданную точку.
Для ряда применений достаточно приблизительно знать какую-то одну базовую станцию, в зоне покрытия которой находится абонент. Это можно сделать в любой сети GSM. Результат: круг радиусом до 32 км с центром в месте установки какой-то базовой станции. В городских условиях радиус можно сократить, так как зоны покрытия базовых станций обычно невелики. Стоит упомянуть, что информация о «текущей» базовой станции обновляется при каждом звонке/SMS или же где-то раз в час, поэтому для повышения точности обнаружения абоненту непосредственно перед «замером» присылают SMS или же побуждают самого абонента послать SMS с запросом вида «где я/где ближайший ресторан/гостиница/метро/...».
Этот результат можно улучшить при помощи метода, называемого «time of arrival». Требуется модернизация всех базовых станций сети. Результат: круг радиусом 100-500 метров с центром в месте установки базовой станции. Применение еще более совершенных методов (их описание может быть найдено в сети по ключевым словам «angle of arrival», «uplink time difference of arrival», «GPS», «assisted GPS») позволяет еще больше сократить радиус круга или перенести его центр в реальное местоположение абонента.
Наличие любой более-менее сложной системы обнаружения местоположения абонентов в сети оператора определить очень легко — оператор будет продавать соответствующие услуги, никто не будет инвестировать в создание необходимой инфраструктуры просто так. Нередко достаточно беглого просмотра рекламных материалов услуги, для того чтобы определить тип используемой оператором технологии, просто на основании данных о точности обнаружения.
На этом экскурс в технологии определения местоположения абонента можно считать завершенным и возвращаться к оригинальной теме:
Существует распространенное заблуждение о том, что географическое местоположение любого GSM-телефона можно с достаточно большой точностью определить при помощи триангуляции по трем базовым станциям. Описывают это обычно так: допустим, если можно стандартными средствами определить расстояние от базовой станции до телефона, то по расстояниям от трех базовых станций можно получить точные координаты аппарата, а по расстоянию от двух базовых станций — две точки, в одной из которых и будет находиться искомый телефон. Как правило, народная молва наделяет криминальные элементы или правоохранительные органы способностью при помощи подобной технологии находить нужных им людей.
Часть этого утверждения — сущая правда. Стандартными средствами иногда можно определить расстояние от телефона до одной базовой станции. Именно этим, наверно, и объясняется живучесть убеждения в том, что триангуляция возможна. На самом деле это не так.
Прежде чем начинать детальный разбор дела о триангуляции, стоит сделать существенную оговорку. Необходимо провести четкую границу между заблуждением о том, что базовые станции любой GSM-сети всегда триангулируют местоположение указанного телефона (вариант — всех телефонов в зоне покрытия) и возможностью обнаружения местоположения телефона другими средствами в рамках отдельно взятой сети.
Услуги, привязанные к местоположению
Для предоставления услуг, привязанных к местоположению абонента (location-based services, LBS), существует множество способов, опирающихся на наличие дополнительного программного и аппаратного обеспечения на всех базовых станциях конкретной сети, а иногда еще и в SIM-карте/телефоне абонента. Пример таких услуг: показать абоненту карту города и его место на ней, сообщить адрес ближайшего ресторана или магазина, сообщить о местоположении другого абонента, проложить маршрут в заданную точку.
Для ряда применений достаточно приблизительно знать какую-то одну базовую станцию, в зоне покрытия которой находится абонент. Это можно сделать в любой сети GSM. Результат: круг радиусом до 32 км с центром в месте установки какой-то базовой станции. В городских условиях радиус можно сократить, так как зоны покрытия базовых станций обычно невелики. Стоит упомянуть, что информация о «текущей» базовой станции обновляется при каждом звонке/SMS или же где-то раз в час, поэтому для повышения точности обнаружения абоненту непосредственно перед «замером» присылают SMS или же побуждают самого абонента послать SMS с запросом вида «где я/где ближайший ресторан/гостиница/метро/...».
Этот результат можно улучшить при помощи метода, называемого «time of arrival». Требуется модернизация всех базовых станций сети. Результат: круг радиусом 100-500 метров с центром в месте установки базовой станции. Применение еще более совершенных методов (их описание может быть найдено в сети по ключевым словам «angle of arrival», «uplink time difference of arrival», «GPS», «assisted GPS») позволяет еще больше сократить радиус круга или перенести его центр в реальное местоположение абонента.
Наличие любой более-менее сложной системы обнаружения местоположения абонентов в сети оператора определить очень легко — оператор будет продавать соответствующие услуги, никто не будет инвестировать в создание необходимой инфраструктуры просто так. Нередко достаточно беглого просмотра рекламных материалов услуги, для того чтобы определить тип используемой оператором технологии, просто на основании данных о точности обнаружения.
На этом экскурс в технологии определения местоположения абонента можно считать завершенным и возвращаться к оригинальной теме:
- Возможна ли триангуляция местоположения телефона в сети GSM по трем (четырем, ...) базовым станциям?
- Кто может осуществить эту триангуляцию: абонент, оператор или обе стороны?
Триангуляция
Начнем с аналогии. Рассмотрим такое утверждение: "при помощи утилиты ping можно определить время прохождения TCP-пакетов от одного компьютера до другого, а значит и оценить расстояние между ними. Тогда по расстояниям от трех компьютеров, зная их координаты, можно получить координаты искомого компьютера".
Выглядит неправдоподобно? А что, если мы возьмем четыре компьютера, соединим их сетевыми кабелями друг с другом непосредственно, без использования промежуточных сетей, причем провода проложим строго по прямой? Сможем ли мы в таком случае определить координаты центрального компьютера, зная координаты периферийных и пользуясь только ping-ом? Сможем. Означает ли это, что подобный способ можно будет использовать всегда? Безусловно, нет. Во-первых, провода редко соединяют два компьютера непосредственно и строго по прямой, во-вторых, мы, как правило, не знаем точных координат «опорных» компьютеров и т.п. Продолжить этот список будет несложно.
Теперь вернемся к исходному утверждению. Можно ли стандартными средствами сети GSM определить расстояние от базовой станции до телефона? Короткий и ничего не объясняющий ответ - "можно". Зададимся дополнительными вопросами:
Начнем с аналогии. Рассмотрим такое утверждение: "при помощи утилиты ping можно определить время прохождения TCP-пакетов от одного компьютера до другого, а значит и оценить расстояние между ними. Тогда по расстояниям от трех компьютеров, зная их координаты, можно получить координаты искомого компьютера".
Выглядит неправдоподобно? А что, если мы возьмем четыре компьютера, соединим их сетевыми кабелями друг с другом непосредственно, без использования промежуточных сетей, причем провода проложим строго по прямой? Сможем ли мы в таком случае определить координаты центрального компьютера, зная координаты периферийных и пользуясь только ping-ом? Сможем. Означает ли это, что подобный способ можно будет использовать всегда? Безусловно, нет. Во-первых, провода редко соединяют два компьютера непосредственно и строго по прямой, во-вторых, мы, как правило, не знаем точных координат «опорных» компьютеров и т.п. Продолжить этот список будет несложно.
Теперь вернемся к исходному утверждению. Можно ли стандартными средствами сети GSM определить расстояние от базовой станции до телефона? Короткий и ничего не объясняющий ответ - "можно". Зададимся дополнительными вопросами:
- Кто занимается измерениями – базовая станция или телефон?
- Всегда ли возможно такое измерение?
- Будет ли измерено кратчайшее расстояние между ними?
- С какой точностью будет произведено измерение?
Чтобы понять, кто может произвести такое измерение, надо разобраться, что же знают друг о друге телефон и базовая станция. Стоит разделить описание на два случая: телефон находится в режиме ожидания и телефон находится в активном режиме (по нему разговаривают, принимают SMS, ...).
Телефон в режиме ожидания
Базовые станции регулярно передают сигналы в эфир, чтобы телефоны могли понимать, находятся ли они в зоне покрытия. Телефоны же, напротив, большую часть времени ничего не передают, только принимают, с целью экономии заряда батарей. Это легко проверить на практике, положив телефон рядом с компьютерными аудиоколонками и наблюдая за наводимыми телефоном возмущениями либо купив простейший брелок-детектор GSM-сигналов. Отсюда следует, что определить местоположение обычного GSM-телефона в обычной GSM-сети в произвольный момент времени нельзя просто потому, что телефон молчит и никому "не сообщает", где он и куда его несут.
Да, периодически телефон уведомляет сеть о том, в каком месте он находится, чтобы упростить доставку входящих звонков. Происходит это:
Телефон в режиме ожидания
Базовые станции регулярно передают сигналы в эфир, чтобы телефоны могли понимать, находятся ли они в зоне покрытия. Телефоны же, напротив, большую часть времени ничего не передают, только принимают, с целью экономии заряда батарей. Это легко проверить на практике, положив телефон рядом с компьютерными аудиоколонками и наблюдая за наводимыми телефоном возмущениями либо купив простейший брелок-детектор GSM-сигналов. Отсюда следует, что определить местоположение обычного GSM-телефона в обычной GSM-сети в произвольный момент времени нельзя просто потому, что телефон молчит и никому "не сообщает", где он и куда его несут.
Да, периодически телефон уведомляет сеть о том, в каком месте он находится, чтобы упростить доставку входящих звонков. Происходит это:
- при регистрации в сети;
- при переходе абонента из зоны покрытия одной группы базовых станций в другую (в группу может входить несколько сотен базовых станций, на миллионный город может быть всего дюжина подобных групп);
- периодически — раз в полчаса-час, в зависимости от настроек сети.
При этом телефон сообщает сети только о том, какую базовую станцию он «слышит» лучше всего, без всяких подробностей вроде уровня сигнала и т.п. Базовые станции не следят за тем, какие телефоны находятся в зоне их покрытия, это бессмысленно и технически неосуществимо. Соответственно, у мобильной сети большую часть времени есть лишь весьма приблизительные сведения о том, где сейчас обитает телефон. Может ли при этом стандартная мобильная сеть заниматься измерением расстояния до телефона, не выводя его из режима ожидания?
Во-первых, непонятно, от какой базовой станции измерять — со времени последнего обновления информации о местоположении телефон могли унести на значительное расстояние. Во-вторых, непонятно, что и как измерять. Базовая станция — не радиолокатор, и если телефон «молчит», то для нее он не существует.
Итак, в режиме ожидания стандартный телефон в стандартной сети GSM полностью невидим для мобильной сети и не может быть ею «триангулирован».
Сам телефон при этом находится в более выигрышном положении. Дело в том, что каждая базовая станция транслирует в эфир информацию о своих «соседях», указывая частоты, на которых работают ближайшие базовые станции той же сети. Телефон в режиме ожидания постоянно измеряет уровень сигнала (но не затухание) от каждой из «соседних» базовых и при необходимости выбирает в качестве дежурной базовой станции ту, сигнал от которой «лучше слышно». Если телефон обладает какими-то сведениями о том, где (по каким координатам) расположены базовые станции, то он может попытаться вычислить зону, в которой области гипотетического покрытия всех «соседних» базовых пересекаются. Где-то в пределах этой области и будет находиться телефон. Чем точнее телефон знает (или оценивает) границы зон покрытия, тем точнее будет работать такой метод. По имеющейся информации, именно так работает приложение Google Latitude. Если же данных о местонахождении базовых станций нет, то и у телефона не будет никакой возможности «триангулировать» свое положение.
Во-первых, непонятно, от какой базовой станции измерять — со времени последнего обновления информации о местоположении телефон могли унести на значительное расстояние. Во-вторых, непонятно, что и как измерять. Базовая станция — не радиолокатор, и если телефон «молчит», то для нее он не существует.
Итак, в режиме ожидания стандартный телефон в стандартной сети GSM полностью невидим для мобильной сети и не может быть ею «триангулирован».
Сам телефон при этом находится в более выигрышном положении. Дело в том, что каждая базовая станция транслирует в эфир информацию о своих «соседях», указывая частоты, на которых работают ближайшие базовые станции той же сети. Телефон в режиме ожидания постоянно измеряет уровень сигнала (но не затухание) от каждой из «соседних» базовых и при необходимости выбирает в качестве дежурной базовой станции ту, сигнал от которой «лучше слышно». Если телефон обладает какими-то сведениями о том, где (по каким координатам) расположены базовые станции, то он может попытаться вычислить зону, в которой области гипотетического покрытия всех «соседних» базовых пересекаются. Где-то в пределах этой области и будет находиться телефон. Чем точнее телефон знает (или оценивает) границы зон покрытия, тем точнее будет работать такой метод. По имеющейся информации, именно так работает приложение Google Latitude. Если же данных о местонахождении базовых станций нет, то и у телефона не будет никакой возможности «триангулировать» свое положение.