Думаю, многие когда-либо задумывались над тем, как работают сотовые сети. Ведь мы пользуемся мобильными телефонами почти каждый день. Количество абонентов увеличивается с каждым днем, так же как и площади сетевого покрытия… На смену старым стандартам приходят новые, растут и «аппетиты» пользователей мобильного интернета. Если Вас интересует, как все это работает, добро пожаловать под кат! Поскольку инфраструктура сотовых сетей довольно велика, а ее описание может занять целую книгу, в данной статье мы остановимся на Um-интерфейсе, с помощью которого наши телефоны взаимодействуют с оборудованием оператора, а также другими абонентами.
Осторожно,
Предисловие
Сотовая связь появилась довольно давно. Еще в 40-х годах двадцатого века начались исследования с целью создания сети подвижной связи. В 1956 году в нескольких городах Швеции запускают автомобильную телефонную сеть Mobile System A (MTA). В 1957 году наш соотечественник Л.И. Куприянович публично демонстрирует разработанный им мобильный телефон и базовую станцию для него. Затем в СССР начнется разработка гражданской системы сотовой связи «Алтай», которая через несколько лет покроет более 30, а затем и вовсе 114 советских городов. Кстати, в некоторых городах постсоветского пространства «Алтай» работает и по сей день, например, в Новосибирске (нумерация +7 (383) 349-8XXX)! В 80-х компания Motorola выпускает свой знаменитый DynaTAC 8000X стоимостью $3995. И только в 1992 году следом за NMT-450, AMPS, ETACS, D-AMPS и NMT-900 в Германии запускается сотовая связь на базе стандарта GSM.
Сегодня, спустя двадцать с лишним лет, мы пользуемся сетями нового поколения, вроде 3G и 4G, однако сети GSM никуда не исчезли — они все-еще используются банкоматами, терминалами, сигнализациями и даже современными телефонами для экономии электроэнергии и сохранения обратной совместимости. К тому же новинки, вроде UMTS (или W-CDMA) и LTE, имеют много общего с GSM. В отличие, например, от TCP/IP, сотовые сети менее доступны для изучения и исследований. Причин много: начиная от довольно высоких цен на оборудование, заканчивая запретом законодательств большинства стран на использования частот GSM-диапазонов без лицензии. На мой взгляд, понимание принципов работы сотовых сетей очень важно для специалистов в области информационной безопасности, да и не только. Именно поэтому я решил написать данную публикацию.
Содержание:
- Введение в сотовые сети
1.1 Провайдеры услуг сотовой связи
1.2 Принципы обеспечения сетевого покрытия
1.3 Инфраструктура сотовых сетей
1.4 Межоператорное взаимодействие
- Um-интерфейс (GSM Air Interface)
2.1 Частотные диапазоны
2.2 Физические каналы, разделение множественного доступа
2.3 Логические каналы
2.4 Что такое burst?
2.5 Виды burst
2.6 Frequency Hopping
2.7 Основные принципы взаимодействия MS и BTS
2.8 Handover
2.9 Кодирование речи
- Безопасность и конфиденциальность
3.1 Основные векторы атак
3.2 Идентификация абонентов
3.3 Аутентификация
3.4 Шифрование трафика
1. Введение в сотовые сети
1.1 Провайдеры услуг сотовой связи
По аналогии с интернет-провайдерами, услуги сотовой связи предоставляют определенные компании, чаще всего называемые «операторами». Каждый из них предлагает свой спектр услуг, а также устанавливает свои тарифные планы. Чаще всего операторы используют собственное оборудование для построения основной инфраструктуры сети; некоторые же используют уже имеющуюся, например, в России оператор Yota работает на базе оборудования оператора Megafon.
С точки зрения рядового абонента мобильных сетей, индивидуальность оператора заключается в качестве предоставляемых услуг связи, определенном диапазоне номеров, собственных брендовых SIM-картах, а также тарифных планах. Со стороны самих операторов, а также других телекоммуникационных областей, идентификация каждого из них осуществляется по коду страны (MCC — Mobile Country Code) и уникальному коду сети внутри страны (MNC — Mobile Network Code). Кроме этого, идентификация абонентов осуществляется не по привычному для нас телефонному номеру, а по международному идентификатору абонента — IMSI (International Mobile Subscriber Identity), который записан в SIM-карте абонента, а также в базе данных оператора. Телефонные номера просто-напросто «привязываются» к определенному IMSI, благодаря чему абонент может сменить оператора, сохранив свой номер телефона.
1.2 Принципы обеспечения сетевого покрытия
Покрытие определенной местности сотовой связью обеспечивается за счет распределения приемопередающих устройств по ее площади. Уверен, многие видели их на рекламных шитах, различных зданиях, и даже на отдельных мачтах. Чаще всего они представляют из себя несколько направленных антенн белого цвета, а также небольшое здание, куда тянутся провода. Так вот, в терминологии GSM такие комплексы называются базовыми станциями (BTS) и могут состоять из нескольких приемопередающих устройств — трансиверов (TRX — Transmitter/Receiver).
Ключевая особенность сотовой связи заключается в том, что общая зона покрытия делится на ячейки (соты), определяющиеся зонами покрытия отдельных базовых станций (БС). Кстати, отсюда как раз и возникло название «сотовая связь». Каждая базовая станция покрывает один или несколько секторов, а также имеет один или несколько приемопередатчиков в каждом секторе, каждый из которых излучает сигнал на своей частоте. Проще говоря, сота — это одна из ячеек покрытия, имеющая свой уникальный идентификатор, называемый CI (Cell ID). Соты можно классифицировать по масштабу покрываемой территории: макросота (до 35 км, иногда до 70 км), обычная сота (до 5 км), микросота (до 1 км), пикосота (до 300 метров) и фемтосота (чаще встречаются внутри помещений, покрывают десятки метров).
Базовые станции, расположенные поблизости, работают в различных частотных диапазонах, благодаря чему соты различных операторов могут частично или почти полностью накладываться друг на друга. Совокупность базовых станций, работающих совместно, называется зоной местоположения — LAC (Location Area Code). Все базовые станции обязательно передают в эфир свои идентификационные данные, такие как MCC, MNC, Cell ID, а также LAC, благодаря чему, мобильные телефоны подключается только к BTS своего оператора. Кроме этого, мобильные телефоны с определенным интервалом уведомляют сеть о своем текущем местоположении, т.е. LAC. Данная процедура называется Location Update, но об этом позже.
1.3 Инфраструктура сотовых сетей
Базовые станции не могут существовать сами по себе, поэтому, находясь в определенном LAC, они подключаются к контроллеру базовых станций — BSC (Base Station Controller). Контроллеры, в свою очередь, выполняют балансировку нагрузки, а также активно участвуют в процессе обмена трафика между сетью и своими «подчиненными». Взаимодействие BTS и BSC осуществляется посредством интерфейса A-bis. В пределах сети у большинства операторов, чаще всего, несколько контроллеров базовых станций, которые посредством A-интерфейса и Gb-интерфейса к коммутационным узлам сети (MSC — Mobile Switching Center, SGSN — Serving GPRS Support Node).
MSC образует ядро сетевой инфраструктуры (Core Network), в которое входят следующие основные элементы:
- HLR (Home Location Register) — база данных, содержащая персональные данные каждого абонента, включая телефонный номер, тарифный план, список подключенных услуг, а также информацию об используемой абонентом SIM-карте.
- VLR (Visitor Location Register) — временная база данных абонентов, которые находятся в зоне действия определённого центра мобильной коммутации. Каждая базовая станция в сети приписана к определённому VLR, так что абонент не может присутствовать в нескольких VLR одновременно.
- AuC (Authentication Center) — центр аутентификации абонентов, выполняющий проверку подлинности каждой SIM-карты, подключающейся к сети.
- SMSC (SMS Center) — центр обмена короткими текстовыми сообщениями, занимающийся их хранением и маршрутизацией.
- GMSC (Gateway MSC) — шлюз, предоставляющий доступ к сетям проводных городских телефонов. Именно благодаря данному элементу возможны звонки между абонентами сотовых и городских телефонных сетей.
- SGSN (Serving GPRS Support Node) — узел обслуживания абонентов GPRS, выступающий точкой соединения между системой базовых станций (BSS) и базовой сетью (Core Network). SGSN можно назвать аналогом коммутатора MSC сети GSM. SGSN выполняет контроль доставки пакетов данных, мониторинг находящихся в режиме online пользователей, преобразование кадров GSM в форматы, используемые протоколами TCP/IP глобальной компьютерной сети Internet, регистрацию или «прикрепление» (attachment) абонентов, вновь «появившихся» в зоне действия сети, шифрование данных, обработку поступающей биллинговой информации, а также обеспечивает взаимодействие с реестром собственных абонентов сети HLR. В отличии от вышеперечисленных элементов, SGSN соединяется напрямую с BSC.
Кроме этого, внутри инфраструктуры сети существует биллинговая система, где хранится наш «баланс», списывается плата за пользование услугами, а также обрабатываются различные платежные операции. Оператор может присоединять и другие подсистемы к ядру сети на свое усмотрение.
1.4 Межоператорное взаимодействие
Сети различных операторов взаимодействуют между собой, благодаря чему, например, Алиса, являясь абонентом оператора A, может позвонить Бобу, который является абонентом оператора B. Называется эта сеть ОКС-7 или SS7, работает либо на базе специальных проводных/беспроводных коммуникационных сетей, либо поверх Интернета (да, да, сеть поверх сети). SS7 предоставляет набор протоколов для взаимодействия различных операторов. Роуминг тоже работает благодаря данной сети.
2. Um-интерфейс (GSM Air Interface)
2.1 Частотные диапазоны
Любое оборудование в сотовых сетях взаимодействует посредством определенных интерфейсов. Как уже говорилось, обмен данными между базовой станцией и абонентом осуществляется через Um-интерфейс, который в первую очередь является радиоинтерфейсом, следовательно обмен данными происходит в процессе приема/передачи радиоволн. Радиоволны являются таким же электромагнитным излучением, как тепло или свет. Ультрафиолетовое, рентгеновское и ионизирующее излучения так же являются видами электромагнитного излучения с определенными диапазонами частот и определенными длинами волн. Помните такую картинку?
Так вот, диапазон радиоволн тоже разделен на дочерние диапазоны частот, например, диапазоны LF (30—300 кГц), MF (300—3000 кГц) и HF (3—30 МГц) чаще всего используются для радиосвязи и радиовещания; телевещание ведется в диапазонах VHF (30—300 МГц), UHF (300—3000 МГц) и SHF (3—30 ГГц); беспроводные сети, типа WiFi, а также спутниковое телевидение работают в том-же SHF. Больше всего нас интересует диапазон UHF, в котором работают сети GSM. Согласно стандарту 3GPP TS 45.005, в эфире им выделено целых 14 дочерних для UHF диапазонов, причем в различных странах используются различные диапазоны. Рассмотрим наиболее распространенные:
Характеристики | GSM-850 | P-GSM-900 | E-GSM-900 | DCS-1800 | PCS-1900 |
---|---|---|---|---|---|
Uplink, МГц | 824.2 — 849.2 | 890.0 — 915.0 | 880.0 — 915.0 | 1710.2 — 1784.8 | 1850.2 — 1909.8 |
Downlink, МГц | 869.2 — 893.8 | 935.0 — 960.0 | 925.0 — 960.0 | 1805.2 — 1879.8 | 1930.2 — 1989.8 |
ARFCN | 128 — 251 | 1 — 124 | 975 — 1023, 0 — 124 | 512 — 885 | 512 — 810 |
Любой выделенный под сотовую сеть диапазон делится на множество отрезков (обычно по 200 КГц), часть из которых называется Downlink — здесь данные в эфир передают только базовые станции (BTS), часть — Uplink, где вещают только телефоны (MS). Пары таких отрезков, где один принадлежит Downlink, а другой Uplink, образуют радиочастотные каналы, называемые ARFCN (Absolute radio-frequency channel number). Другими словами, телефон не может принимать и передавать данные на одной и той же частоте, вместо этого при передаче он переключается на частоты Uplink, а при приеме на Downlink, причем процесс переключения происходит очень быстро.
2.2 Физические каналы, разделение множественного доступа
С диапазонам разобрались. Теперь представьте небольшую закрытую комнату, в которой много людей. Если в определенный момент времени все начнут разговаривать, собеседникам будет трудно понимать друг друга. Некоторые начнут говорить громче, что только ухудшит ситуацию для остальных. Так вот, в физике это явление называется интерференцией. Иными словами интерференцию можно назвать наложением волн. Для сотовых сетей GSM это паразитное явление, поэтому на помощь приходят технологии разделения множественного доступа.
Потребность в разделении множественного доступа возникла давно и применяется как в проводных коммуникациях (I2C, USB, Ethernet), так и в беспроводных. В сотовых сетях чаще всего используются технологии FDMA (Frequency Division Multiple Access), TDMA (Time Division Multiple Access) и CDMA (Code Division Multiple Access). Первые две в совокупности используются в сетях второго поколения — GSM. CDMA является основой современных сотовых сетей, которые превосходят GSM как в плане безопасности, так и максимальной скорости передачи данных. Что же это за магия?
Для радиосистем существует два основных ресурса — частота и время. Разделение множественного доступа по частотам, когда каждому приемнику и передатчику выделяется определенная частота, называется FDMA. Разделение по времени, когда каждой паре приёмник-передатчик выделяется весь спектр или большая его часть на выделенный отрезок времени, называют TDMA. В CDMA нет ограничений на частоту и время. Вместо этого каждый передатчик модулирует сигнал с применением присвоенного в данный момент каждому пользователю отдельного числового кода, а приемник вычисляет нужную часть сигнала, используя аналогичный код. Кроме того, существует еще несколько технологий: PAMA (Pulse-Address Multiple Access), PDMA (Polarization Division Multiple Access), SDMA (Space Division Multiple Access), однако, их описание выходит за рамки данной статьи.
FDMA
Принцип данного метода заключается в том, что доступный частотный спектр разделяется между приемниками и передатчиками на равные или неравные частотные полосы, часть из которых выделяется под Downlink (трафик от BTS к MS), часть под Uplink (трафик от MS к BTS). Об этом мы уже говорили.
TDMA
Вместе с разделением по частоте (FDMA), в GSM применяется метод разделения по времени — TDMA. Согласно TDMA, весь поток данных делится на фреймы, а фреймы в свою очередь делятся на несколько таймслотов, которые распределяются между приемопередающими устройствами. Следовательно, телефон может выполнять обмен информацией с сетью только в определенные, выделенные ему промежутки времени.
Фреймы объединяются в мультифреймы, которые бывают двух видов:
Control Multiframe (содержит 26 фреймов)
Traffic Multiframe (содержит 51 фрейм)
Мультифреймы образуют суперфреймы, а уже суперфреймы образуют гиперфреймы. Подробнее о структуре фреймов и их организации можно узнать тут (источник изображений) и здесь.
В результате, физический канал между приемником и передатчиком определяется частотой, выделенными фреймами и номерами таймслотов в них. Обычно базовые станции используют один или несколько каналов ARFCN, один из которых используется для идентификации присутствия BTS в эфире. Первый таймслот (индекс 0) фреймов этого канала используется в качестве базового служебного канала (base-control channel или beacon-канал). Оставшаяся часть ARFCN распределяется оператором для CCH и TCH каналов на свое усмотрение.
2.3 Логические каналы
На основе физических каналов формируются логические. Um-интерфейс подразумевает обмен как пользовательской информацией, так и служебной. Согласно спецификации GSM, каждому виду информации соответствует специальный вид логических каналов, реализуемых посредством физических:
- каналы трафика (TCH — Traffic Channel),
- каналы служебной информации (CCH — Control Channel).
Каналы трафика делятся на два основных вида: TCH/F — Full rate канал с максимальной скоростью до 22,8 Кбит/с и TCH/H — Half rate канал с максимальной скоростью до 11,4 Кбит/с. Данные виды каналов могут быть использованы для передачи речи (TCH/FS, TCH/HS) и пользовательских данных (TCH/F9.6, TCH/F4.8, TCH/H4.8, TCH/F2.4, TCH/H2.4), например, SMS.
Каналы служебной информации делятся на:
- Широковещательные (BCH — Broadcast Channels).
- FCCH — Frequency Correction Channel (канал коррекции частоты). Предоставляет информацию, необходимую мобильному телефону для коррекции частоты.
- SCH — Synchronization Channel (канал синхронизации). Предоставляет мобильному телефону информацию, необходимую для TDMA-синхронизации с базовой станцией (BTS), а также ее идентификационные данные BSIC.
- BCCH — Broadcast Control Channel (широковещательный канал служебной информации). Передает основную информацию о базовой станции, такую как способ организации служебных каналов, количество блоков, зарезервированных для сообщений предоставления доступа, а также количество мультифреймов (объемом по 51 TDMA-фрейму) между Paging-запросами.
- Каналы общего назначения (CCCH — Common Control Channels)
- PCH — Paging Channel. Забегая вперед, расскажу, что Paging — это своего рода ping мобильного телефона, позволяющий определить его доступность в определенной зоне покрытия. Данный канал предназначен именно для этого.
- RACH — Random Access Channel (канал произвольного доступа). Используется мобильными телефонами для запроса собственного служебного канала SDCCH. Исключительно Uplink-канал.
- AGCH — Access Grant Channel (канал уведомлений о предоставлении доступа). На этом канале базовые станции отвечают на RACH-запросы мобильных телефонов, выделяя SDCCH, либо сразу TCH.
- Собственные каналы (DCCH — Dedicated Control Channels)
Собственные каналы, так же как и TCH, выделяются определенным мобильным телефонам. Существует несколько подвидов:
- SDCCH — Stand-alone Dedicated Control Channel. Данный канал используется для аутентификации мобильного телефона, обмена ключами шифрования, процедуры обновления местоположения (location update), а также для осуществления голосовых вызовов и обмена SMS-сообщениями.
- SACCH — Slow Associated Control Channel. Используется во время разговора, либо когда уже задействован канал SDCCH. С его помощью BTS передает телефону периодические инструкции об изменении таймингов и мощности сигнала. В обратную сторону идут данные об уровне принимаемого сигнала (RSSI), качестве TCH, а также уровень сигнала ближайших базовый станций (BTS Measurements).
- FACCH — Fast Associated Control Channel. Данный канал предоставляется вместе с TCH и позволяет передавать срочные сообщения, например, во время перехода от одной базовой станции к другой (Handover).
2.4 Что такое burst?
Данные в эфире передаются в виде последовательностей битов, чаще всего называемых «burst», внутри таймслотов. Термин «burst», наиболее подходящим аналогом которому является слово «всплеск», должен быть знаком многим радиолюбителям, и появился, скорее всего, при составлении графических моделей для анализа радиоэфира, где любая активность похожа на водопады и всплески воды. Подробнее о них можно почитать в этой замечательной статье (источник изображений), мы остановимся на самом главном. Схематичное представление burst может выглядеть так:
Guard Period
Во избежание возникновения интерференции (т.е. наложения двух busrt друг на друга), продолжительность burst всегда меньше продолжительности таймслота на определенное значение (0,577 — 0,546 = 0,031 мс), называемое «Guard Period». Данный период представляет собой своего рода запас времени для компенсации возможных задержек по времени при передаче сигнала.
Tail Bits
Данные маркеры определяют начало и конец burst.
Info
Полезная нагрузка burst, например, данные абонентов, либо служебный трафик. Состоит из двух частей.
Stealing Flags
Эти два бита устанавливаются когда обе части данных burst канала TCH переданы по каналу FACCH. Один переданный бит вместо двух означает, что только одна часть burst передана по FACCH.
Training Sequence
Эта часть burst используется приемником для определения физических характеристик канала между телефоном и базовой станцией.
2.5 Виды burst
Каждому логическому каналу соответствуют определенные виды burst:
Normal Burst
Последовательности этого типа реализуют каналы трафика (TCH) между сетью и абонентами, а также все виды каналов управления (CCH): CCCH, BCCH и DCCH.
Frequency Correction Burst
Название говорит само за себя. Реализует односторонний downlink-канал FCCH, позволяющий мобильным телефонам более точно настраиваться на частоту BTS.
Synchronization Burst
Burst данного типа, так же как и Frequency Correction Burst, реализует downlink-канал, только уже SCH, который предназначен для идентификации присутствия базовых станций в эфире. По аналогии с beacon-пакетами в WiFi-сетях, каждый такой burst передается на полной мощности, а также содержит информацию о BTS, необходимую для синхронизации с ней: частота кадров, идентификационные данные (BSIC), и прочие.
Dummy Burst
Фиктивный burst, передаваемый базовой станцией для заполнения неиспользуемых таймслотов. Дело в том, что если на канале нет никакой активности, мощность сигнала текущего ARFCN будет значительно меньше. В этом случае мобильному телефону может показаться, что он далеко от базовой станции. Чтобы этого избежать, BTS заполняет неиспользуемые таймслоты бессмысленным трафиком.
Access Burst
При установлении соединения с BTS мобильный телефон посылает запрос выделенного канала SDCCH на канале RACH. Базовая станция, получив такой burst, назначает абоненту его тайминги системы FDMA и отвечает на канале AGCH, после чего мобильный телефон может получать и отправлять Normal Bursts. Стоит отметить увеличенную продолжительность Guard time, так как изначально ни телефону, ни базовой станции не известна информация о временных задержках. В случае, если RACH-запрос не попал в таймслот, мобильный телефон спустя псевдослучайный промежуток времени посылает его снова.
2.6 Frequency Hopping
Цитата из Википедии:
Псевдослучайная перестройка рабочей частоты (FHSS — англ. frequency-hopping spread spectrum) — метод передачи информации по радио, особенность которого заключается в частой смене несущей частоты. Частота меняется в соответствии с псевдослучайной последовательностью чисел, известной как отправителю, так и получателю. Метод повышает помехозащищённость канала связи.
Frequency Hopping (FHSS) является одним из методов расширения спектра. Кроме сетей GSM, разновидность данного метода применяется в Bluetooth. Зачем?
- Уменьшение влияния интерференции. Благодаря частой смене частоты, интерференция может влиять на сигнал лишь в течение короткого промежутка времени.
- Защита данных от несанкционированного доступа. Не зная алгоритма, по которому изменяется частота сигнала, невозможно выделить нужные данные из шумоподобного потока.
- Усложнение глушения сигнала. Frequency Hopping затрудняет «нацеленное» (т.е. глушение определенного устройства, либо совокупности устройств) глушение сигнала. В этом случае приходится глушить весь занимаемый диапазон частот, что требует использования более дорого и мощного оборудования.
2.7 Основные принципы взаимодействия MS и BTS
Начнем с того, что происходит при включении мобильного телефона. Чаще всего, даже если телефон выключен со вставленной батареей, он продолжает работать. В это время работает небольшая программа, называемая «загрузчиком». Загрузчик ожидает нажатия клавиши включения, запускает процесс зарядки при подключении зарядного устройства, а иногда и будильник. Все зависит от конкретной модели телефона. Как только нажимается клавиша включения, начинается процесс загрузки операционной системы, которая сначала проверяет наличие SIM-карты, а затем запускает сканирование эфира в поисках сети оператора. Даже если SIM-карты нет, телефон все-равно подключается к ближайшей базовой станции, предоставляя возможность экстренного вызова. Если SIM-карта на месте, выполняется запрос Location Update, уведомляющий сеть о текущем LAС абонента. Затем, базовая станция запрашивает IMEI телефона и IMSI SIM-карты, чтобы идентифицировать абонента (Identity Request). Если предоставленный IMEI отличается от того, с которым абонент подключался раньше, оператор может выслать настройки интернета. Кстати, так можно даже найти украденный телефон. Затем выполняется авторизация, после чего телефон может находиться в одном из двух состояний:
- IDLE — «режим простоя». Телефон не передает никаких данных сети, прослушивая CCCH.
- DEDICATED — между сетью и телефоном установлено активное соединение, в течение которого телефон периодически передает сети информацию о качестве сигнала, а также обменивается данными пользователя.
Теперь подробнее остановимся на процессе подключения к сети. Каждая базовая станция обязательно имеет широковещательный канал CCCH, который располагается на нулевом таймслоте определенного ARFCN. В процессе сканирования эфира телефон последовательно переключает частоту тюнера, измеряя мощность принимаемого сигнала. Как только BTS с наиболее сильным сигналом будет найдена, телефон переключается на ее канал синхронизации (SCH). Затем, получив первый Synchronization Burst, телефон определяет порядок следования таймслотов, а также идентификационные данные BSIC, которые состоят из NCC (Network Color Code) и BCC (Base station Color Code). Список разрешенных и запрещенных для подключения идентификаторов хранится на SIM-карте.
Как только телефон находит разрешенный BCCH, посылается RACH-запрос, базовая станция выделяет определенный физический канал, выполняет аутентификацию абонента, а также регистрирует его прибывание в VLR и HLR. После этого телефон находится в режиме IDLE. При входящем звонке или SMS-сообщении, все базовые станции текущего LAC начинают рассылать Paging Requests, чтобы уведомить абонента о каком-либо событии. Если телефон его «услышал», он отвечает, сеть высылает пакет Immediate Assignment, описывающий выделенные абоненту ресурсы (частота, номер таймслота и т.д.). Очень похоже на Ping в Интернете. С этого момента телефон находится в режиме DEDICATED до момента разрыва соединения.
В случае, если абонент сам выступает в роли инициатора соединения, ему необходимо сначала выслать запрос CM Service Request, а затем дождаться Immediate Assignment от сети.
2.8 Handover
Handover (американский вариант — handoff) — в сотовой связи процесс передачи абонента от одной базовой станции к другой во время телефонного разговора или сессии передачи данных. Данный процесс происходит, когда абонент покидает зону действия одной базовой станции и входит в зону действия другой. Также handover может выполняться в случае, если текущая базовая станция перегружена, либо ее физические каналы слишком зашумлены.
Handover бывает двух типов:
- Жесткий handover («break-before-make»). В этом случае соединение с текущей BTS прерывается, после чего создается соединение с новой. Из недостатков можно выделить вероятность кратковременного разрыва сессии данных, либо непредвиденного завершения вызова. В устаревших на сегодня аналоговых системах связи при жестком handover можно было услышать короткий щелчок или гудок. :)
- Мягкий handover («make-before-break»). В этом случае телефон, не разрывая соединения с текущей BTS, устанавливает соединение с одной или несколькими другими, после чего передает сессию новой BTS и разрывает соединение с предыдущей. Недостатком данного метода являются более высокая цена компонентов телефона, позволяющих поддерживать соединение сразу с несколькими базовыми станциями.
2.9 Кодирование речи
Как уже говорилось, речь абонентов передается на канале TCH, который бывает двух видов: Full Rate (FR) и Half Rate (HR). Для кодирования аудиопотока в сетях мобильной связи GSM (и не только) применяются следующие стандарты:
- GSM-FR (Full Rate, 13 Кбит/с) — первый цифровой стандарт кодирования речи, обеспечивающий довольно низкое качество звука по сравнению с современными стандартами. Не смотря на существование более современных кодеков, GSM-FR до сих пор имеет очень широкое применение.
- GSM-HR (Half Rate, 5,6 Кбит/с) — кодек, используемый телефонами в режиме энергосбережения. Занимает половину пропускной способности Full Rate канала. Экономия заряда аккумулятора может составлять до 30%.
- GSM-EFR (Enhanced Full Rate, 12,2 Кбит/с) — алгоритм сжатия, разработанный компанией Nokia и университетом Шербрук, являющийся продолжением развития алгоритма GSM-FR. Обеспечивает хорошее качество связи, однако потребление электроэнергии при его использовании увеличивается примерно на 5% относительно GSM-FR.
- AMR (Adaptive multi rate) — является алгоритмом адаптивного кодирования с переменной скоростью. Имеет широкое применение в сетях GSM и UMTS, обеспечивая высокую емкость сети одновременно с высоким качеством звука. Скорость кодирования/декодирования выбирается в зависимости от окружающих условий и загрузки сети.
3. Безопасность и конфиденциальность
Пришло время рассмотреть основные алгоритмы обеспечения конфиденциальности и безопасности данных абонентов. На фоне громких скандалов и разоблачений в области информационной безопасности, данная тема довольно актуальна. GSM, как и любая другая сложная система, имеет свои механизмы защиты, а также уязвимости, которые мы рассмотрим в данной главе. Я не стану вдаваться в дебри, описывая низкоуровневые процессы преобразования битов при шифровании и т.д., иначе статья превратится в огромную пузатую книгу. Кому интересно, можно почитать эти материалы:
Википедия, Безопасность GSM
Хабрахабр, Безопасность GSM сетей: шифрование данных
Куча презентаций и статей на данную тему в моем GitHub-репозитории
3.1 Основные векторы атак
Посколько Um-интерфейс является радиоинтерфейсом, весь его трафик «виден» любому желающему, находящемуся в радиусе действия BTS. Причем анализировать данные, передаваемые через радиоэфир, можно даже не выходя из дома, используя специальное оборудование (например, старый мобильный телефон, поддерживаемый проектом OsmocomBB, или небольшой донгл RTL-SDR) и
Выделяют два вида атаки: пассивная и активная. В первом случае атакующий никак не взаимодействует ни с сетью, ни с атакуемым абонентом — исключительно прием и обработка информации. Не трудно догадаться, что обнаружить такую атаку почти не возможно, но и перспектив у нее не так много, как у активной. Активная атака подразумевает взаимодействие атакующего с атакуемым абонентом и/или сотовой сетью.
Можно выделить наиболее опасные виды атак, которым подвержены абоненты сотовых сетей:
- Сниффинг
- Утечка персональных данных, СМС и голосовых звонков
- Утечка данных о местоположении
- Спуфинг (FakeBTS или IMSI Catcher)
- Удаленный захват SIM-карты, исполнение произвольного кода (RCE)
- Отказ в обслуживании (DoS)
3.2 Идентификация абонентов
Как уже упоминалось в начале статьи, идентификация абонентов выполняется по IMSI, который записан в SIM-карте абонента и HLR оператора. Идентификация мобильных телефонов выполняется по серийному номеру — IMEI. Однако, после аутентификации ни IMSI, ни IMEI в открытом виде по эфиру не летают. После процедуры Location Update абоненту присваивается временный идентификатор — TMSI (Temporary Mobile Subscriber Identity), и дальнейшее взаимодействие осуществляется именно с его помощью.
Способы атаки
В идеале, TMSI абонента известен только мобильному телефону и сотовой сети. Однако, существуют и способы обхода данной защиты. Если циклически звонить абоненту или отправлять SMS-сообщения (а лучше Silent SMS), наблюдая за каналом PCH и выполняя корреляцию, можно с определенной точностью выделить TMSI атакуемого абонента.
Кроме того, имея доступ к сети межоператорного взаимодействия SS7, по номеру телефона можно узнать IMSI и LAC его владельца. Проблема в том, что в сети SS7 все операторы «доверяют» друг другу, тем самым снижая уровень конфиденциальности данных своих абонентов.
3.3 Аутентификация
Для защиты от спуфинга, сеть выполняет аутентификацию абонента перед тем, как начать его обслуживание. Кроме IMSI, в SIM-карте хранится случайно сгенерированная последовательность, называемая Ki, которую она возвращает только в хэшированном виде. Также Ki хранится в HLR оператора и никогда не передается в открытом виде. Вцелом, процесс аутентификации основан на принципе четырехстороннего рукопожатия:
- Абонент выполняет Location Update Request, затем предоставляет IMSI.
- Сеть присылает псевдослучайное значение RAND.
- SIM-карта телефона хэширует Ki и RAND по алгоритму A3. A3(RAND, Ki) = SRAND.
- Сеть тоже хэширует Ki и RAND по алгоритму A3.
- Если значение SRAND со стороны абонента совпало с вычисленным на стороне сети, значит абонент прошел аутентификацию.
Способы атаки
Перебор Ki, имея значения RAND и SRAND, может занять довольно много времени. Кроме того, операторы могут использовать свои алгоритмы хэширования. В сети довольно мало информации о попытках перебора. Однако, не все SIM-карты идеально защищены. Некоторым исследователям удавалось получить прямой доступ к файловой системе SIM-карты, а затем извлечь Ki.
3.4 Шифрование трафика
Согласно спецификации, существует три алгоритма шифрования пользовательского трафика:
- A5/0 — формальное обозначение отсутствия шифрования, так же как OPEN в WiFi-сетях. Сам я ни разу не встречал сетей без шифрования, однако, согласно gsmmap.org, в Сирии и Южной Корее используется A5/0.
- A5/1 — самый распространенный алгоритм шифрования. Не смотря на то, что его взлом уже неоднократно демонстрировался на различных конференциях, используется везде и повсюду. Для расшифровки трафика достаточно иметь 2 Тб свободного места на диске, обычный персональный компьютер с Linux и программой Kraken на борту.
- A5/2 — алгоритм шифрования с умышленно ослабленной защитой. Если где и используется, то только для красоты.
- A5/3 — на данный момент самый стойкий алгоритм шифрования, разработанный еще в 2002 году. В интернете можно найти сведения о некоторых теоретически возможных уязвимостях, однако на практике его взлом еще никто не демонстрировал. Не знаю, почему наши операторы не хотят использовать его в своих 2G-сетях. Ведь для СОРМ это далеко не помеха, т.к. ключи шифрования известны оператору и трафик можно довольно легко расшифровывать на его стороне. Да и все современные телефоны прекрасно его поддерживают. К счастью, его используют современные 3GPP-сети.
Способы атаки
Как уже говорилось, имея оборудование для сниффинга и компьютер с 2 Тб памяти и программой Kraken, можно довольно быстро (несколько секунд) находить сессионные ключи шифрования A5/1, а затем расшифровывать чей-угодно трафик. Немецкий криптолог Карстен Нол (Karsten Nohl) в 2009 году продемонстрировал способ взлома A5/1. А через несколько лет Карстен и Сильвиан Мюно продемонстрировали перехват и способ дешифровки телефонного разговора с помошью нескольких старых телефонов Motorola (проект OsmocomBB).
Заключение
Мой длинный рассказ подошел к концу. Более подробно и с практической стороны с принципами работы сотовых сетей можно будет познакомиться в цикле статей Знакомство с OsmocomBB, как только я допишу оставшиеся части. Надеюсь, у меня получилось рассказать Вам что-нибудь новое и интересное. Жду Ваших отзывов и замечаний!
Комментарии (25)
BalinTomsk
02.10.2015 21:04+1Странно что до сих не выпустили сотовый телефоны, которые могли бы коннектится друг с другом внутри зоны или вне зоны покрытия.
И нагрузка на сотовые сети снизится и владельцы телефонов могут обшатся в труднодоступных местах. Я бы такой купил телефон.Sap_ru
03.10.2015 00:48Нет смысла — ограничение всё равно является ширина доступная полоса эфира. И БС всё получается проще и надёжнее. А если БС не слышно, то как согласовывать работу телефонов?
BalinTomsk
03.10.2015 04:42Наверное так же как и точки wifi видят друг-друга.
Sap_ru
05.10.2015 14:06Точек WiFi не бывает десятков и сотен в радиусе действия. Кроме того, им не нужно обмениваться между собой.
aml
03.10.2015 02:42Выпускают, но не для стандарта GSM. Я знаю, что TETRA может работать как в режиме с базовыми станциями, так и в режиме Direct Mode Operation, когда абоненты напрямую друг с другом могут соединяются в зоне прямой досягаемости.
bugabuga
03.10.2015 12:05Дык было-же? Напрямую между телефонами, когда станции нет — en.wikipedia.org/wiki/MOTO_Talk
iDEN телефоны от Nextel-а также по сокращённой модели вроде работали, когда станция напрямую двух абонентов могла обслуживать.
MaxxxZ
09.10.2015 15:48Непозволительная роскошь — сейчас производители оборудования и разработчики стандартов бьются за каждый дополнительный бит в секунду. А накладные расходы на прямой линку будут забирать слишком много эфира. А точки Wi-Fi виядт друг друга и плата за это менее экономно расходование частотного ресурса, чем в LTE
inwardik
02.10.2015 23:01Тоже всегда надеялся, что когда-нибудь телефоны научатся соединяться без базовых станций, но похоже тут как в wifi: без точки доступа — никак. Разве что если в телефоне появится функция «Эмулировать базовую станцию». А пока единственное движение в этом направлении — телефоны со встроенной рацией.
За статью спасибо. Читал с удовольствием.Foxcool
07.10.2015 20:24В wifi как раз все хорошо. Появидся стандарт 802.11s подразумевающий построение меш-сетей.
sahe
02.10.2015 23:08+1Извиняюсь за занудство, но картинка из пункта 1.3 немного неправильная. Интерфейсы Gi и Gp перепутаны местами. Сама статья крутая, спасибо.
musanki
03.10.2015 00:58Ну если уже есть замечание, то по SMSGW тоже сделаю. В основном SMS ходят посредством SS7 и не через SGSN, хотя стандарт предполагает использование GPRS.
DieSlogan
03.10.2015 13:14+1Спасибо за замечательную статью.
Такой, чисто утилитарный вопрос, существует такая проблема, как запаздывание смс. Для ликвидации «затора», необходимо либо послать смс самому или сделать звонок с/на телефон. Интересно, почему такое происходит, ведь на звонок телефон реагирует. Дело в SMSC?musanki
03.10.2015 14:53Обычно дело в телефонном аппарате, т.е. он не может корректно принять смс сообщение, но если номер телефона был заблокирован оператором и после разблокировки не приходит смс, тогда дело в SMSC (на нем установлены интервалы повтора отправки смс).
lybin
04.10.2015 12:28Интересно более развернуто как происходит выбор предпочтительной сети edge\3g.
Переехал в новое место, связь ужасна, но все антенны, на значке edge всегда, когда появляется h\h+ то все начинает работать хорошо.
Выставил использовать только wdcma — проблема ушла. Проблема у всего дома, по крайне мере у этого оператора.
Есть предположения почему так? Говорят оператор так может снижать нагрузки. Может ли оператор по запросу захардкорить для абонента предпочтительную сеть?
dtestyk
04.10.2015 13:14продолжительность burst всегда меньше продолжительности таймслота на определенное значение (0,577 — 0,546 = 0,031 мс), называемое «Guard Period»
т.е. шипение в нашниках, иногда слышимое при передаче смс — это гиперфрейм, паузы в нем приблительно раз в секунду — паузы между суперфреймами, а сам шум — чередование burst и Guard Period(0,577мс дают ~2kHz)?axilirator
04.10.2015 14:27+1Шипение и треск в наушниках — это результат резонанса передатчика мобильного телефона и динамиков. Возможно, Вы правы, возможно, нет. Я никогда не задумывался насчет связи продолжительности передачи данных на Uplink и продолжительности колебаний ближайшего динамика, но мне тоже давно интересна данная тема. Из своих наблюдений могу сказать, что в различных районах покрытия сотовой сети динамики по-разному реагируют на телефон: где-то трещат, находясь за несколько метров от телефона, где-то вообще не шумят. Это зависит как от частоты колебания мембраны самого динамика, так и от текущей частоты, на которой передает телефон. Кроме этого, я почти никогда не замечал шума динамиков, если телефон работает на частотах 3G или 4G, даже если лежит возле колонок вплотную.
А вообще, управляемым передатчиком (например, с помощью SDR) можно дистанционно (желательно направленно) облучать самые обычные колонки и наушники и воспроизводить на них что-нибудь (голос или музыка), при условии наличия питания на входе облучаемых динамиков.dtestyk
04.10.2015 15:15облучать самые обычные колонки и наушники и воспроизводить на них что-нибудь (голос или музыка)
думаю, более интересно было бы, наоборот, читать смс без телефона, а заодно и расшифровывать в уме, например, wi-fi трафик в качестве альтернативы мозговым имплантам, работающим по закрытым протоколам под управлением коммерческого(ну или с рекламой) ПО в будущем :)
greatvovan
07.10.2015 12:41CDMA является основой современных сотовых сетей, которые превосходят GSM как в плане безопасности, так и максимальной скорости передачи данных. Что же это за магия?
Хотя это выходит за рамки статьи, можно немного про CDMA? Я правильно понимаю, что магии там как таковой нет, а есть оптимизация распределения пространства «частота-время» между абонентами? В чём тогда преимущество данной технологии?
Рассмотрим пример высокой нагрузки на соту, при которой истощились все диапазоны FDMA и таймслоты TDMA, соответственно, новые пользователи получают отказ в обслуживании. Что даст переход к CDMA в данном случае? Только возможность работы абонентского устройства в принципе, хотя и с пониженным качеством связи, или же всё-таки мы как-то умудряемся проталкивать через те же частоту-время больше информации?axilirator
07.10.2015 13:28Если честно, я сам сейчас только знакомлюсь с принципами работы технологии CDMA, а также современных сетей. Но ответить на Ваши вопросы попробую.
Хотя это выходит за рамки статьи, можно немного про CDMA? Я правильно понимаю, что магии там как таковой нет, а есть оптимизация распределения пространства «частота-время» между абонентами? В чём тогда преимущество данной технологии?
Преимущество CDMA в том, что абоненты и базовые станции почти не ограничены ни по времени, ни по частоте. Каждый передатчик на определенное время получает от сети уникальный числовой код, с помощью которого модулирует передаваемый сигнал. Принять такой сигнал можно только в том случае, если Вам известен этот код. То есть, телефонам больше не нужно ждать выделенного таймслота, наоборот, сигналы передающих устройств могут накладываться друг на друга, а, благодаря различным кодам модуляции, их можно дифференцировать аппаратно-программными средствами приемника.
Рассмотрим пример высокой нагрузки на соту, при которой истощились все диапазоны FDMA и таймслоты TDMA, соответственно, новые пользователи получают отказ в обслуживании. Что даст переход к CDMA в данном случае? Только возможность работы абонентского устройства в принципе, хотя и с пониженным качеством связи, или же всё-таки мы как-то умудряемся проталкивать через те же частоту-время больше информации?
С учетом вышесказанного, мы получаем бОльшую пропускную способность радиоканала, чем в случае FDMA и TDMA. Базовую станцию, работающую по технологии CDMA, тоже можно перегрузить и получить отказ в обслуживании абонентов + кучу сбоев, но для этого потребуется гораздо больше активных абонентов, т.к. ее ресурс значительно больше.
greatvovan
07.10.2015 15:57Так откуда берётся бОльшая пропускная способность? Не вижу, как это вытекает из вышесказанного.
Я специально привёл пример полностью загруженной соты второго поколения, т.е. когда всё время заняты все частоты. Попробуем зайти с другого конца: если 3G даёт бОльшую пропускную способность, чем 2G, это значит, что в 2G что-то используется не рационально. Так вот — что именно?
- Выделяемый таймслот больше, чем реально требуется устройству, чтобы передать данные?
- Много времени уходит впустую на guard periods?
- Что-то ещё?
axilirator
07.10.2015 16:35Ответ прост: в случае FDMA + TDMA в определенный момент времени передавать может только один передатчик, в случае же CDMA в определенный момент времени передавать могут сразу несколько устройств. То есть, передатчик телефона не простаивает, дожидаясь разрешенного промежутка времени, а передает сигнал когда ему угодно.
greatvovan
08.10.2015 01:59У меня просто плохо получается задавать задавать терминологически корректные вопросы по теме, от которой очень далёк.
В Вики нашёл следующее:
In theory CDMA, TDMA and FDMA have exactly the same spectral efficiency but practically, each has its own challenges – power control in the case of CDMA, timing in the case of TDMA, and frequency generation/filtering in the case of FDMA.
TDMA systems must carefully synchronize the transmission times of all the users to ensure that they are received in the correct time slot and do not cause interference. Since this cannot be perfectly controlled in a mobile environment, each time slot must have a guard-time, which reduces the probability that users will interfere, but decreases the spectral efficiency. Similarly, FDMA systems must use a guard-band between adjacent channels, due to the unpredictable doppler shift of the signal spectrum because of user mobility. The guard-bands will reduce the probability that adjacent channels will interfere, but decrease the utilization of the spectrum.
Т.е. CDMA — это красивое математическое решение для оптимизации использования всего доступного ресурса радиосвязи, который в случае 2G сетей используется просто жутко не эффективно, судя по разнице скоростей. А если смотреть со стороны базовой станции, то в идеале можно добиться точно такой же её пропускной способности и в случае использования FDMA + TDMA, если бы можно было пренебречь защитными мерами, которые предотвращают помехи от совместно работающих абонентов.
spice_harj
Супер. Не осилил до конца, но обещаю, что дожму! Спасибо.