Продолжаем наше знакомство с пакетной передачей в сетях мобильных операторов, которое мы с Вами начали в
первой части о GPRS/EDGE технологиях. В этой статье речь пойдет о процессе аутентификации и авторизации, т.н. процедуре GPRS Attach, а также активирование услуги, запрошенной абонентом — поднятие PDP Context'а. Посмотрим какие данные хранятся на стороне SGSN'а, а какие на стороне абонента.
Ну, что ж поехали…
GPRS Attach
Я упущу некоторые процессы, непосредственно предшествующие и сопровождающие процедуру GPRS Attach, а конкретнее:
- выделение радиоресурсов
- обмен служебной информацией по логическим каналам между базовой станцией и терминалом абонента
- установление канала передачи данных
- изменение состояния терминала
Если кого-то заинтересуют подробности, прошу задавать вопросы. Начнем мы сразу с процедуры GPRS Attach, позволяющей идентифицировать абонента, определить какие сервисы доступны абоненту, проверить легальность использования мобильного терминала абонента в сети оператора (процедура
IMEI Check — опциональна) и собственно, предоставить абоненту возможность активировать услугу, которую он запрашивает.
Процесс аутентификации и авторизации, т.н. процедура GPRS Attach, изображен на схеме ниже (картинка кликабельна).
- Attach Request
Процедура GPRS Attach начинается с запроса абонента со своего мобильного терминала, GPRS/EDGE сервиса (либо когда абонент выбирает на аппарате постоянное подключение к пакетной сети: Меню -> Настройки -> Подключение устройств -> Пакетные данные -> Пакетное подключение -> По требованию/Постоянный доступ), т.е. открытие мобильного браузера/проверка почты/попытка отправить MMS/etc., что в свою очередь инициирует отправку запроса Attach Request, если абонент был до этого еще не подключен к пакетной сети оператора. В случае если абонент собирается подключиться к сети впервые, то в запросе будут присутствовать следующие основные данные:
- Attach type: GPRS Attach (подписка только на пакетную передачу данных), IMSI attach (подписка только на голосовые услуги, если абонент регистрируется для совершения/принятия голосовых услуг), Combined Attach (комбинированная подписка = голос + пакетные данные)
- P-TMSI (замена IMSI, в случае если абонент уже «известен» SGSN'у)
- RAI = MCC + MNC + LAC + RAC, т.е. координаты абонента в пределах подсети базовых станций
RAI — Routing Are Identity
MCC — Mobile Country Code (международный код страны)
MNC — Mobile Network Code (международный код оператора в пределах страны)
LAC — Location Area Code (совокупность базовых станций, объединенных одним кодом)
RAC — Routing Area Code (зона, меньшая, либо равная LAC)
- MS network capability — возможности терминала абонента в плане передачи данных
- MS radio access capability — возможности терминала абонента в плане радиопередачи
- Identification Request
Если абонент находился до этого в зоне обслуживания другого SGSN'а, то при переходе к обслуживанию в новый SGSN, абоненту нет необходимости заново предоставлять всю информацию для своей идентификации, т.к. она будет запрошена с предыдущего элемента. В случае если абонента в это время пользовался услугами GPRS/EDGE, т.е. у него был открыт PDP Context, новый SGSN «заберет» абонента вместе с его сессией, без прерывания предоставления сервиса.
- Identity Request(Req)/Response(Res)
Эта процедура проводиться, для новых абонентов, либо для абонентов, данные о которых не были переданы (либо переданы не корректно) со старого SGSN'а, тогда SGSN запрашивает заново все данные от абонента, которые мы рассмотрели в процедуре Attach Request (вместо P-TMSI [Packet-TMSI], TMSI [Temporary Mobile Station Identity] обязательно запрашивается IMSI [International Mobile Subscriber Identity]).
- Send Authentication Info Req/Res
В процессе этой процедуры, SGSN на основании IMSI абонента, производит запрос в HLR/AuC, который представляет собой базу данных об абонентах сети оператора. На стороне HLR/AuC, IMSI абонента соответствует определенная контрольная сумма/секретное число — Ki, также на стороне HLR/AuC есть рандомный генератор, который формирует случайное число для нашего запроса. Затем формируется, т.н. триплет [TRIPLETS = RAND + SRES (Signed Response) + Kс] данных, который состоит из:
- RAND — случайное число
- SRES — результат, «прогонки» случайного числа RAND через алгоритм А3
- Kс — результат, «прогонки» числа Ki через алгоритм А5
Затем триплет данных отправляется на SGSN.
- Authentication and Cyphering Req/Res
Значения полученные от HLR/AuC сохраняются на стороне SGSN'a, а к мобильному терминалу абонента передается значение числа RAND, на основании которого на стороне абонента «рассчитываются» значения — SRES и Kс, т.к. в SIM карте абонента «зашиты» алгоритмы шифрования А3/А5, а также секретное число Ki.
- Identity Check Request(Req)/Response(Res)
Эта процедура является опциональной и позволяет проверить легальность использования терминала абонента в сети оператора, т.е. производиться запрос IMEI кода терминала и его сравнение с базами Белых, Серых и Черных списков. Если абонент окажется в Черном списке, то ему уже на этом этапе будет отказано в обслуживании, но это все в теории. На практике выходит все наоборот, т.к. реально блокировка по черному списку все еще не работает (говорю за территорию Украины).
- Check IMEI Req/Res
Проверка IMEI на EIR, собственно на основании которой будет принято решение о легитимности использования терминала абонента в сети оператора.
- Location Update Procedures Req/Res
В процессе GPRS Attach процедуры происходит обновление информации о местоположении абонента, т.е. SGSN обновляет информацию в HLR, а затем HLR обновляет данные в MSC/VLR.
Если абонент совершает Combined Attach, то SGSN обновляет информацию об абоненте и в MSC/VLR
- Attach Accept
После успешного выполнения всех вышеуказанных операций, SGSN сообщает абоненту, что GPRS Attach принят и абонент теперь может воспользоваться услугами пакетной передачи данных в сети оператора.
- TMSI Realocation Complete
Окончательным этапов является обновление/уведомление MSC/VLR о новом значении TMSI, назначенного абоненту.
Вот собственно так происходит аутентификация и авторизация абонента, для предоставления передачи пакетных данных в сети оператора. После этой процедуры на терминале абонента появится буковка «G» (или «Е» :), сообщающая об успешном завершении подключения к пакетной сети, но это еще не позволит абоненту воспользоваться какой-либо услугой* в пакетной сети, т.к. необходимо еще активировать PDP Context по запрашиваемой услуге.
* — после успешной процедуры GPRS Attach, абоненту доступна только отправка коротких сообщений через сеть GPRS/EDGE, т.н. SMS over GPRS.
PDP Context Activation
После успешного прохождения процедуры GPRS Attach, пользователь может активировать PDP Context, что позволит ему воспользоваться услугами пакетной передачи данных.
Сама процедура активации контекста, чем-то напоминает процедуру активации коммуникации при Dial-Up соединении. Давайте посмотрим на эти две процедуры в сравнении.
Упрощенно, процедуру активации линка Dial-Up можно представить в качестве схемы:
Теперь давайте посмотрим на принципиальную схему активации PDP Context'a:
Как видим, похожесть между двумя этими процедурами, состоит в применении одинаковых протоколов, довольны похожи сами этапы и процедуры, которые используются на этапах установления соединения, а также схожи ключевые узлы, участвующие в процессе установления коммуникации.
Определив ключевые моменты, при активации PDP Context'a, рассмотрим полную процедуру и определим, какие же данные передаются во время этой процедуры.
Схема активации PDP Context'a представлена на рисунке ниже:
- Activate PDP Context Request
В этом запросе передается довольно много различных данных, нас же больше будут интересовать следующие:
- QoS requested — запрашиваемый профиль обслуживания абонента, качественные характеристики соединения, если же это поле будет пустым, то решение о назначенном профиле примет SGSN
- PDP type — определяет, какой тип протокола будет использован терминалом, для определенного сервиса IP/X.25/etc.
- Address — тип адреса, выдаваемый абоненту для коммуникации в сети [IPv4, IPv6, auto]
- APN* [Access Point Name] — имя точки доступа, определяющие адрес GGSN'а, который будет обслуживать сессию пользователя.
* — более детально про выбор и использование APN в процессе активации контекста, можно прочитать в статье: «Не важно кто ты… важно какая у тебя APN»
- DNS Query/Response
Получив от абонента в запросе конкретную APN, SGSN сформирует полный адрес, добавив к APN, т.н. GOI [GGSN Operator Identifier], полный адрес будет иметь примерно такой вид:
internet.mnc009.mcc255.gprs, где
internet — APN, прописанная в терминале абонента,
mnc009.mcc255.gprs — GOI некоторого виртуального оператора (Украина).
Затем, формируется запрос к локальному DNS серверу оператора, результатом которого будет IP адрес(а) GGSN'ов, которые предоставляют пользователю запрашиваемую услугу.
В случае если локальный DNS сервер не может «распознать» полный адрес (допустим, для роумингового абонента), то запрос перенаправляется в DNS серверу высшего уровня (здесь, все очень похоже на структуру IP сетей).
- Create PDP Context Req/Res
Все собранные данные от авторизированного пользователя, включая запросы на выдачу IP адреса, IMSI, MSISDN, APN (в случае доступа к внутренней сети, например) передаются специальным запросов [Create PDP Context Request] на GGSN. По этому событию открывается биллинговая запись на сессию абонента.
- Activate PDP Context Accept
В ответном сообщении, которое направляется терминалу абонента содержится все необходимая информация для завершения активации PDP Context'a. Этим сообщением пользователю назначается определенный IP адрес в сети оператора, согласовываются профили обслуживания, а также начинается предоставление запрошенной услуги.
После успешной процедуры активации PDP Context'a, на терминале пользователя буковка «G» (или «Е» :), обводиться квадратом и символизирует об использовании пакетной передачи данных.
Information stored before/after GPRS Attach
Давайте разберемся, какие данные хранятся на стороне абонента, а какие на стороне SGSN'а до и после процесса аутентификации и авторизации в пакетной сети оператора.
Сводная таблица представлена ниже:
|
MS |
SGSN |
HLR |
| Before GPRS Attach |
IMSI
MSISDN
RAI
Ki
QoS profile
|
|
IMSI
MSISDN
Ki
QoS profile
|
| After GPRS Attach |
PMM State
P-TMSI
|
PMM State
P-TMSI
MSISDN
RAI
Kc
QoS profile
|
SGSN address |
Небольшой помощник:
APN — Access Point Name
CHAP — Challenge Handshake Authentication Protocol
EIR — Equipment Identity Register
GGSN — Gateway GPRS Support Node
GOI – GGSN Operator Identifier
GPRS — General Packet Radio Service
HLR — Home Location Register
HPLMN — Home PLMN
IMSI – International Mobile Subscriber Identity
IPCP – Internet Protocol Control Protocol
MS – Mobile Station
MSC – Mobile Switching Centre
MSISDN – Mobile Station Integrated Services Digital Number
PAP — Password Authentication Protocol
PDN — Packet Data Networks
PDP — Packet Data Protocol
PLMN — Public Land Mobile Network
PPP – Point-to-Point Protocol
RAS — Registration, Admission and Status
RNC — Radio Network Controller
SGSN — Serving GPRS Support Node
VLR — Visitors Location Register
VPLMN — Visitor PLMN
Ссылки по теме (en):
комментарии (65)
Пожалуйста, сделайте все картинки кликабельными.
Если собрать с хабра все статьи такой тематики и систематизировать, получится небольшой учебник по различным беспроводным технологиям.
Ок, заявка принята :)
Хотя, насколько мне технических познаний хватает, то метод фейковой соты весьма несложно реализовать. Стоимость решения приближается к 4-5 тысячам американских убитых президентов.
Если стоит задача собрать компромат либо это ОРМ, то сомневаюсь, что Вы будете прослушивать слесаря Васю и его разговоры о том, где достать чекушку. А значит будут и средства, направленные против прослушки.
Например, неужели Вы думаете, что Ваш мощный источник высоко частотного сигнала останется не замеченным?
Ваша фемто-сота должна быть не тупой железкой, а устройство с набором логики, чтобы организовать связь между подставной сотой и контроллером.
Насколько долго Вам хватит источника питания, для запитывания подставной БТС?
Хранилище, куда Вы будете сливать весь кодированный поток в A5/1, для последующего его анализа?
Сигнал от фемтосоты не столь уж и большой, чтобы быть замеченным сразу да и время для реагирования частотных органов нужно.
фемтосоты, которые используются в таких штуках это не тупые железка, а устройства с ждовольно неплохой логикой.
касательно источника питания, то все опять таки зависит от условий (соту можно закамуфлировать, использовать соту в фургоне.
Со стораджем то же, что и с устройствами питания (винты нынче емкие, небольшие и недорогие)
Но все-таки он должен быть довольно мощным, чтобы в результате cell reselection зацепиться за нее, правильно?
>фемтосоты, которые используются в таких штуках это не тупые железка, а устройства с ждовольно неплохой логикой.
Да, но сомнительно, что они могут делать то, о чем идет в разговоре — т.е. для того, чтобы пропустить трафик через себя, она должна уметь:
1)Брать управляющую сигнализацию, дальше гнать ее на BSC — вы согласны, что если она этого делать не будет, то и никакого разговора не будет? :)
2)В момент выделения канала TRH писать весть трафик, проходящий через него.
1)Организация соединения микро-бтс с BSC.
2)Невозможность доставить входящий вызов абоненту, находящемуся в зоне действия данной БТС, по причине невозможности осуществить paging
3)Декодирование A5/1 на лету либо полное его отключение, что заметно на терминале
4)И самое простое — залочка терминала абонента, например с помощью FTA на правильный канал :)
2. Энто да… но есть возможность немножко поиграться (с помощью веб-интерфейса кабинета управления услугами для абонента) и установить переадресацию на номер карточки в GSM-gateway
3. это уже другой метод. Его тоже не так то им сложно реализовать.
1)вычленять из трафика, идущего по Um интерфейсу, CC Setup message, который содержит called party number.
2)Конвертить Circuit-switched в packed-switched, при этом конвертирую все это дело в SIP и гнать на шлюз, у которого есть выход на внешние сети.
Прошу заметить, что 1 пункт происходит при ciphering on (т.е. к этому времени радиотракт уже кодирован).
Вам не кажется это, по крайней мере, трудно выполнимой задачей :) А я скажу, что малореальной :) Особенно пукт 1 :)
Имхо, БРЕД! :)
Ну сам знаешь, СОРМ и все такое :)
Я такой идеалист…
Хотя даже если у оператора траффик абонента, которого Вы будете снифать, установлен более слабый механизм шифрования, Вы все равно не сможете в режиме реального времени декодировать и соответственно слушать звонки.
А почему цена прослушивающего устройства столь высока? Мы же нацеливаемся на определённого абонента, нельзя использовать стандартную антену моб. телефона или не слишком сложное устройство ручной сборки?
Типы возможных шифрований, которые Вы описали, действительно ничего секретного не являют.
Netmonitor Вам подтвердит :)
После года использования GPRS дома (максимальная зафиксированная скорость была 15 кб/сек, средняя 6 кб/сек), я купил CDMA модем. 250-300 кб/сек… Господа, вот оно, счастье! :)
За статью спасибо, достаточно информативно.
Здесь, кстати особенно важно, что в радиоэфире ключ Ki никогда не передаётся и именно за ним охотятся клонировщики SIM-карт.
1. Насколько реально в GPRS используется QoS, как он определяется на стороне телефона? Если используется, то насколько часто GGSN его удовлетворяет? Просто у меня такое ощущение, что QoS всегда один в GPRS.
Здесь, кстати, вопрос больше не к автору статьи, наверное, а к разработчикам ПО для мобильных телефонов — есть ли в тулкитах какие-то функции, которые при запросе активации соединения ещё могут отправить желаемый QoS?
2. Насколько часто случаются глюки с IntraSGSN cell reselect'ами? У меня на практике, когда ездишь по Москве часто случается так, что перестаёт работать GPRS, после закрытия всех приложений и нового открытия их всё возвращается на круги своя. Я это связываю с тем, что я перехожу из зоны действия одного SGSN в зону действия другого и между ними глючно PDP-context'ы передаются… Насколько оправданы мои догадки?
1. Профили довольно часто испльзуются при активировании сессий, значения передаются при GPRS Attach'e, но также могут быть заменены на другие на стороне SGSN'a. Выбором профиля можно частично «регулировать» качество предоставляемой услуги.
2. Здесь все зависит от того как работает локальный DNS сервер оператора, т.к. в GPRS/EDGE сетях, даже при смене соты происходит т.н. Routing Area Update [RAU], в том числе и при IntraSGSN Update, т.е. есть некое соответствие комбинации racxxx.lacyyy.mncaaa.mccbbb.gprs и юнита в SGSN'e, который в данный момент обслуживает пользовательскую сессию (обычно этот юнит имеет IP адрес в пределах IP Backbone оператора).
И при RAU, новый/старый SGSN, получая новое местоположение абонента (racxxx.lacyyy.mncaaa.mccbbb.gprs), делает DNS запрос на локальный сервер оператора, получая в ответ IP адрес нового юнита (в старом или новом SGSN'e) для перенаправления PDP Context'a абонента, и естественно если при запросе, SGSN не получит ответ от сервера, то ему «придется» заново проводить аутентификацию и авторизацию абонента и открывать новый контекст.
Так, что Ваше догадки не лишены смысла…
Есть еще такие понятия для KPI показателей по GPRS/EDGE архитектуре, как Intra SGSN RA Successful Rate/Inter SGSN RA Successful Rate, приемлемые значение которых порядка 95% и выше, вот собственно по этим показателям и судят об успешных RAU как внутри одного SGSN'a, так и между различными SGSN'ами.
Не могли бы прояснить про Network Operating Mod —
«GPRS network 130 can be designed to operate in three network operation modes (NOM1, NOM2 and NOM3). A network operation modes of a GPRS network is indicated by a parameter in system information messages transmitted within a cell. The system information messages dictates a MS where to listen for paging messages and how signal towards the network. The network operation mode represents the capabilities of the GPRS network. In a NOM1 network, a MS can receive pages from a circuit switched domain (voice call) when engaged in a data call. The MS can suspend the data call or take both simultaneously, depending on the ability of the MS, In a NOM2 network, a MS may not received pages from a circuit switched domain when engaged in a data call, since the MS is receiving data and is not listening to a paging channel In a NOM3 network, a MS can monitor pages for a circuit switched network while received data and vise versa. „
Очень интересует описание ввиду возникшей проблемы
Интересно, имеется ли возможность произвести такие настройки оборудования, чтобы во время непосредственно приема/передачи GPRS-данных удавалось принять входящий вызов или SMS (over GSM), прекратив (поставив «на паузу») прием/передачу в GPRS-сети (если телефон одновременно может работать только в одной сети — либо GSM, либо GPRS)?
Да, для этого имеется интерфейс между MSC/VLR и SGSN, в котором используется BSSAP+ протокол. Когда этот интерфейс создан, то есть возможность осуществлять paging во время активной GPRS-сессии