Методы определения местоположения абонента сети GSM

Вопросы:

Короткий ответ

На самом деле, вопрос об определении местоположения абонента сети GSM -- это четыре отдельных вопроса:

  1. Может ли телефон (или его пользователь) определить свое текущее положение?
  2. Может ли телефон (или его пользователь) определить свое прошлое положение - в момент совершения вот этого звонка из списка полученных, например?
  3. Может ли оператор (или правоохранительные органы) определить текущее положение телефона?
  4. Может ли оператор (или правоохранительные органы) определить прошлое положение телефона - например, в момент совершения какого-то важного звонка?

Короткие ответы будут такими:

  1. Телефон может определить свою текущее положение с точностью до нескольких десятков метров только если доступны сведения о координатах базовых станций, или если в телефоне есть приемник GPS. Иначе - никак.
  2. Телефон может определить свое прошлое положение только если это какой-то нестандартный телефон - например, смартфон со специальным программным обеспечением, который может определить свое текущее положение и записывает эту информацию совместно с информацией о совершенных/принятых звонках. Иначе - никак.
  3. Оператор, в принципе, всегда может определить примерное положение абонента. Если нельзя посылать какие-то запросы на определяемый телефон - то точность может быть до 32 км или даже хуже. Если можно посылать какие-то запросы на телефон - и тем самым потенциально дать понять его владельцу, что им "интересуются", то можно повысить точность до 100-1000 метров в городских условиях. Применение специального оборудования в сети оператора позволяет повысить точность до 10-100 метров. Существует расхожее заблуждение о простой "триангуляции положения любого телефона с трех базовых станций" является именно заблуждением и подробно рассмотрено в другой статье на этом сайте.
  4. Оператор может определить прошлое местоположение произвольного телефона в момент совершения звонка или приема SMS с большой погрешностью -- будут известны координаты базовой станции, которая начала обслуживать звонок. Где был телефон в промежутках между звонками -- оператору неизвестно.

Читайте длинный ответ - там написано, какие из этих утверждений бывают исключения и какие условия требуются для их реализации.

Длинный ответ

Как телефон может узнать, где он сам находится сейчас?

Каждая базовая станция транслирует в эфир информацию о своих "соседях", указывая частоты, на которых работают ближайшие базовые станции той же сети. Телефон в режиме ожидания постоянно измеряет уровень сигнала от каждой из "соседних" базовых и при необходимости выбирает в качестве дежурной базовой станции ту, сигнал от которой "лучше слышно". Подробнее о том, зачем это делается написано в другой статье на этом сайте.

Если телефон обладает какими-то сведениями о том, где (по каким координатам) расположены базовые станции, то он может попытаться вычислить зону, в которой области гипотетического покрытия всех "соседних" базовых пересекаются. Где-то в пределах этой области и будет находится телефон. Чем точнее телефон знает (или оценивает) границы зон покрытия, тем точнее будет работать такой метод. Именно так работает приложение Google Maps Mobile (Google Latitude). Если же данных о местонахождении базовых нет, то и у телефона не будет никакой возможности вычислить свое местоположение.

Как оператор может узнать, где телефон находится сейчас?

С целью экономии заряда батарей, телефон большую часть времени ничего не передает, только принимает. Из этого простого факта, справедливость которого любой желающий может самостоятельно проверить на практике -- положив телефон на ближайший динамик или купик брелок-детектор GSM-сигналов -- есть несколько интересных следствий:

  1. Утверждение о том, что Страшные Спецслужбы могут удаленно включить динамик вашего телефона и вас прослушивать (и более того - они этим регулярно занимаются) - параноидальный бред. Никому не интересно слушать шуршание от трения вашего телефона о карман ваших штанов :) Гораздно проще подключиться к коммутатору, и прослушивать там ваши звонки (чем Страшные Спецслужбы и заниманются, не особо делая из этого тайну).

  2. Точно определить местоположение обычного GSM-телефона в обычной GSM-сети в произвольный момент времени нельзя просто потому, что телефон в промежутках между звонками молчит и "не говорит", куда его несут. С другой стороны -- телефон при включении и периодически в процессе работы делает location update-ы, в результате чего у оператора есть примерная информация -- в виде номера соты -- о том, где телефон был какое-то время тому назад. Чем чаще телефон совершает звонки -- тем более точной будет эта информация. Но, в любом случае, это всего лишь номер соты -- который дает на карте круг с радиусом до 32 км вокруг места ее установки.

В городских условиях больше помех для распостранения радиосигнала, поэтому радиус зоны покрытия будет меньше -- порядка одного-двух километров, или даже меньше. В таких условиях сведений даже об одной соте будет достаточно для предоставления простейших услуг, привязаных к местоположению телефона, которым не нужна особенная точность. Т.к. большинство подобных услуг требуют от абонента отправки SMS-а с запросом, информация о местоположении телефона будет обновлена в момент отправки этого SMS-а. Кроме того, оператор может "стимулировать" телефон обновлять информацию о своем местоположении, посылая ему специальные SMS-ы (zero sms, null sms), получение которых пройдет незаметно для владельца телефона (если только он не держит рядом пресловутый детектор GSM-сигналов).

Еще оператор может раскошелиться и внедрить у себя в сети "продвинутые" технологии позиционирования (их описание может быть найдено в сети по ключевым словам "angle of arrival", "uplink time difference of arrival", "assisted GPS"). В этом случае у оператора могут быть сведения, более точные, чем LAC/CellID последнего location update.

Внимательный читатель может спросить: "все эти CellID и EOTD - это хорошо, но как из этого получить конкретный адрес, улицу Пушкина, дом Колотушкина?". Как минимум, оператор имеет базу географических координат всех базовых станций и привязки этих координат к адресам (чтобы обслуживающий персонал знал, куда ехать для устранения аварий). Кроме того, оператор может воспользоваться услугами многочисленных картографических компаний, которые могут продать ему карты, он-лайн сервисы про преобразованию координать в адреса/маршруты/списки кабаков и так далее. Как правило, так и происходит - конкретные сервисы предоставляются третьими лицами, а оператор предлагает свои услуги по вычислению координат, и не более того.

Как оператор может узнать, где телефон находился раньше?

Тут ответ совсем простой. Информация о том, где телефон был, должна браться из какого-то архива. Поскольку оператор обязан несколько лет хранить записи, на основании которых делается биллинг и выставляются счета, именно этот архив напрашивается в качестве очевидного источника сведений о прошлом местоположении телефона. Как правило, так и происходит - информация об истории "перемещений" телефона берется из так называемых "записей учета стоимости", которые формируются по факту совершения/получения звонка или SMS.

Эти записи содержат, помимо всего прочего, информацию о IMSI (номере SIM-карты), IMEI (серийном номере мобильника), LAC (группы базовых станций) и CellID (номер базовой станции в пределах LAC). Следовательно, местоположение телефона в прошлом можно определить как по его серийному номеру (IMEI), так и по номеру сим-карты с точностью до соты, но только в случае, если телефон использовался для звонков/SMS-ов.

Версию о том, что оператор сохраняет всю-всю-всю сигнальную информацию, связанную с обеспечением mobility абонента (сведения о location update-ах, handoff-ах и handover-ах), мы отметаем, как фантастическую. Во-первых, слишком много данных, и из-за этого их сложно обрабатывать и коррелировать с приемлимой скоростью. Во-вторых, от этого нет никакой пользы для самого оператора. В лучшем случае, оператор сохраняет всю "сигнализацию" о звонках и SMS-а, начиная с интерфейса BSC<->MSC и выше, и использует ее для анализа/улучшения качества связи, но там нет никаких дополнительных сведений о местоположении телефона.

Кто и когда может получить эту информацию? Можно ли таким образом найти украденый/утеряный телефон? Оператор не предоставляет таких сведений абонентам, зато может предоставить их, например, прокуратуре в ответ на соответствующий официальный запрос. Соответственно, при краже телефона надо писать заявление и понуждать милицию выполнять свои прямые обязанности - если их замотивировать, то они таки будут искать телефон (были преценденты).

Без обращения со стороны милиции/прокуратуры оператор может максимум заблокировать использование в своей сети определенной SIM-карты (это возможно всегда, например - путем выноса записи о карте из AuC) и/или использование в сети телефона с определенным IMEI (это возможно только при наличии в сети оператора EIR. Как правило, многие экономят и EIR не покупают).

Литература:

Комментировать в LiveJournal

blog comments powered by Disqus