Как работает радиоинтерфейс в GSM-сетях

e9946cf9ec504fd7a8625d2bde2f4eff.jpg

Думаю, многие когда-либо задумывались над тем, как работают сотовые сети. Ведь мы пользуемся мобильными телефонами почти каждый день. Количество абонентов увеличивается с каждым днем, так же как и площади сетевого покрытия… На смену старым стандартам приходят новые, растут и «аппетиты» пользователей мобильного интернета. Если Вас интересует, как все это работает, добро пожаловать под кат! Поскольку инфраструктура сотовых сетей довольно велика, а ее описание может занять целую книгу, в данной статье мы остановимся на 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-450 в Германии запускается сотовая связь на базе стандарта GSM.

Сегодня, спустя двадцать с лишним лет, мы пользуемся сетями нового поколения, вроде 3G и 4G, однако сети GSM никуда не исчезли — они все-еще используются банкоматами, терминалами, сигнализациями и даже современными телефонами для экономии электроэнергии и сохранения обратной совместимости. К тому же новинки, вроде UMTS (или W-CDMA) и LTE, имеют много общего с GSM. В отличие, например, от TCP/IP, сотовые сети менее доступны для изучения и исследований. Причин много: начиная от довольно высоких цен на оборудование, заканчивая запретом законодательств большинства стран на использования частот GSM-диапазонов без лицензии. На мой взгляд, понимание принципов работы сотовых сетей очень важно для специалистов в области информационной безопасности, да и не только. Именно поэтому я решил написать данную публикацию.

Содержание:

  1. Введение в сотовые сети
    1.1 Провайдеры услуг сотовой связи
    1.2 Принципы обеспечения сетевого покрытия
    1.3 Инфраструктура сотовых сетей
    1.4 Межоператорное взаимодействие
  2. 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. Безопасность и конфиденциальность
    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).

32e52c248cd04d4a801f9d3ec47c5ca0.jpg

Ключевая особенность сотовой связи заключается в том, что общая зона покрытия делится на ячейки (соты), определяющиеся зонами покрытия отдельных базовых станций (БС). Кстати, отсюда как раз и возникло название «сотовая связь». Каждая базовая станция покрывает один или несколько секторов, а также имеет один или несколько приемопередатчиков в каждом секторе, каждый из которых излучает сигнал на своей частоте. Проще говоря, сота — это одна из ячеек покрытия, имеющая свой уникальный идентификатор, называемый CI (Cell ID). Соты можно классифицировать по масштабу покрываемой территории: макросота (до 35 км, иногда до 70 км), обычная сота (до 5 км), микросота (до 1 км), пикосота (до 300 метров) и фемтосота (чаще встречаются внутри помещений, покрывают десятки метров).

0ed7caf98a654272be96d5132aa85c20.png

Базовые станции, расположенные поблизости, работают в различных частотных диапазонах, благодаря чему соты различных операторов могут частично или почти полностью накладываться друг на друга. Совокупность базовых станций, работающих совместно, называется зоной местоположения — LAC (Location Area Code). Все базовые станции обязательно передают в эфир свои идентификационные данные, такие как MCC, MNC, Cell ID, а также LAC, благодаря чему, мобильные телефоны подключается только к BTS своего оператора. Кроме этого, мобильные телефоны с определенным интервалом уведомляют сеть о своем текущем местоположении, т.е. LAC. Данная процедура называется Location Update, но об этом позже.

1.3 Инфраструктура сотовых сетей


0bbe9a36073f417089a523d2971482df.png

Базовые станции не могут существовать сами по себе, поэтому, находясь в определенном 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-интерфейс, который в первую очередь является радиоинтерфейсом, следовательно обмен данными происходит в процессе приема/передачи радиоволн. Радиоволны являются таким же электромагнитным излучением, как тепло или свет. Ультрафиолетовое, рентгеновское и ионизирующее излучения так же являются видами электромагнитного излучения с определенными диапазонами частот и определенными длинами волн. Помните такую картинку?

850b98719cd1491f91af7958733dc7da.jpg

Так вот, диапазон радиоволн тоже разделен на дочерние диапазоны частот, например, диапазоны 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

P-GSM-900, E-GSM-900 и DCS-1800 используются преимущественно в странах Европы и Азии. Диапазоны GSM-850 и PCS-1900 используется в США, Канаде, отдельных странах Латинской Америки и Африки.

Любой выделенный под сотовую сеть диапазон делится на множество отрезков (обычно по 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, весь поток данных делится на фреймы, а фреймы в свою очередь делятся на несколько таймслотов, которые распределяются между приемопередающими устройствами. Следовательно, телефон может выполнять обмен информацией с сетью только в определенные, выделенные ему промежутки времени.

e23682173ab54263b2344225c37885e7.PNG

Фреймы объединяются в мультифреймы, которые бывают двух видов:

Control Multiframe (содержит 26 фреймов)

09afd6b0503844e497ae258d660700c2.PNG

Traffic Multiframe (содержит 51 фрейм)

339c070165344ebdbf2bbe9f2886e99f.PNG

Мультифреймы образуют суперфреймы, а уже суперфреймы образуют гиперфреймы. Подробнее о структуре фреймов и их организации можно узнать тут (источник изображений) и здесь.

В результате, физический канал между приемником и передатчиком определяется частотой, выделенными фреймами и номерами таймслотов в них. Обычно базовые станции используют один или несколько каналов ARFCN, один из которых используется для идентификации присутствия BTS в эфире. Первый таймслот (индекс 0) фреймов этого канала используется в качестве базового служебного канала (base-control channel или beacon-канал). Оставшаяся часть ARFCN распределяется оператором для CCH и TCH каналов на свое усмотрение.

2.3 Логические каналы


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

51676bae05bb4119a1db04aa6d339608.jpg
  • каналы трафика (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 может выглядеть так:

a388e092aec74f36946f0c3b052690cf.jpg

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:

b1567e6bf6cd42d9a22d9b606ebb405d.jpg

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) — метод передачи информации по радио, особенность которого заключается в частой смене несущей частоты. Частота меняется в соответствии с псевдослучайной последовательностью чисел, известной как отправителю, так и получателю. Метод повышает помехозащищённость канала связи.


3f687e4a27d647d8895db88bd15e9855.jpg

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 (Network 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 оператора и никогда не передается в открытом виде. Вцелом, процесс аутентификации основан на принципе четырехстороннего рукопожатия:

8d868935249e4079b93d854120bc4566.gif
  1. Абонент выполняет Location Update Request, затем предоставляет IMSI.
  2. Сеть присылает псевдослучайное значение RAND.
  3. SIM-карта телефона хэширует Ki и RAND по алгоритму A3. A3(RAND, Ki) = SRAND.
  4. Сеть тоже хэширует Ki и RAND по алгоритму A3.
  5. Если значение SRAND со стороны абонента совпало с вычисленным на стороне сети, значит абонент прошел аутентификацию.


606229dc8c9a4c7c829e8d97c3643410.png

Способы атаки
Перебор 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).

© Habrahabr.ru