QCSuper: захват трафика 2G / 3G / 4G на телефонах на базе Qualcomm

$talk3r

RAID-массив
Пользователь
Регистрация
25.06.2019
Сообщения
65
Оценка реакций
73
Баллы
24
Переведено специально для xss.is by Stalker
Оригинальная статья


Предисловие
Обратите внимание, что эта статья написана для упрощения и абстрагирования многих сложных технических аспектов. Это помогает более широкой аудитории понять эти базовые технологии и экспериментировать из первых рук с этими сетями.

В последнее время я играю с 3G-адаптером - небольшим USB-устройством, позволяющим подключаться к мобильному Интернету. Я обнаружил, что большинство USB-ключей с процессором Qualcomm предоставляют специальный диагностический протокол, называемый Diag (или DM, или QCDM - для диагностического монитора Qualcomm). Но я также обнаружил, что этот собственный протокол также присутствовал в телефонах Android (через устройство названное / dev / diag) и позволяло сделать несколько полезных вещей, таких как получение необработанных снимков сетевого трафика или, в более старых моделях, чтение / запись с произвольным смещением памяти радиочипа (!)

Сегодня мы с гордостью представляем QCSuper, инструмент с открытым исходным кодом, который позволит вам пассивно захватывать необработанные кадры 2G / 3G / 4G, произведенные вашим рутированным телефоном или адаптером на базе Qualcomm Android, и создавать анализируемый PCAP с помощью Wireshark (в дополнении пары других форматов ввода / вывода).

4398



Как это использовать?

Допустим, у вас есть рутированный телефон Android (это необходимо для чтения / dev / diag в системе), подключенный USB к компьютеру, и что вы загрузили QCSuper (и установили зависимости, все объясняется здесь). Просто сделай:


sudo ./qcsuper.py --adb --wireshark-live



Это... все. Окно Wireshark выскакивает. Вы можете видеть, как на вашем экране разворачиваются радиокадры, и вы похожи на Нео.

Вы можете просто запустить инструмент и попытаться разобраться в отображаемой информации, но ради педагогики давайте сначала проанализируем некоторый трафик вместе!

4399Загрузить пример анализатора 2G/3G/4G (.pcap)


Этот захват был реализован на Sony Xperia Z, переключаясь вручную между 2G, 3G и 4G, генерируя SMS, звонки и некоторый трафик данных.

QCSuper предоставляет вам пакеты уровня 3 и выше. Подводем итоги:

-Уровень 1 (физический уровень) - это способ, которым ваш телефон программирует радиоволны передающиеся по воздуху (и это сложный танец, поскольку для оптимизации использования радиочастотного спектра требуются некоторые хитрые приемы).
-Уровень 2 (канальный уровень, похожий на заголовок Ethernet) - это сетевой протокол, который обрабатывает в 3G / 4G:
-- фрагментацию (т. е. «этот кусок радиоволн недостаточно велик для байтов, в которые я хочу вставить, я буду использовать другой позже»),
-- подтверждения («Вы получили мои важные данные? Да, я имею»)
-- говорит, зашифровано ли то, что следует
-- говорит, про слой 3.

В 3G / 4G уровень 2 разделен на два заголовка, называемых RLC и MAC (которые обычно <10 байтов).


-Уровень 3 (сетевой уровень) - это место, где есть все интересное.
--Ваш телефон говорит: «Что случилось, я получил эту SIM-карту, и она может выполнять криптографию (да!), Я также получил этот серийный номер телефона (IMEI), позвольте мне отправлять / получать SMS / звонки / Интернет и распределять биты радиочастот» ,
--И сеть говорит: «Конечно, давайте сначала пройдем аутентификацию с помощью аккуратного шифрования, поддерживаемого вашей SIM-картой». В 3G / 4G протоколом уровня 3 является RRC (протокол конфигурации радиоресурсов), за исключением самих пользовательских данных.

Чтобы иметь возможность предоставить PCAP, который вы можете открыть в Wireshark, эти кадры помещаются после заголовка GSMTAP, стандартного заголовка, который может содержать трафик 2G / 3G / 4G (уровень 2, 3 или выше, в дополнение к нескольким другим возможные вещи, такие как связь с SIM-картой).

Анализ некоторых пакетов в Wireshark

В начале захвата примера первое, что делает наш телефон, это переключение с 4G на 3G (когда в столбце «Протокол» Wireshark начинает отображаться «RRC»).
4400

Хорошо, что означает материал, показанный здесь?

Во-первых, вы должны знать, что передаваемые здесь данные кодируются с использованием ASN.1. ASN.1 - это очень старый формат (разработанный в 80-х годах), который позволяет вам определять структуры данных и поля, используя специальный текстовый язык, и отдельно писать код, который будет генерировать двоичные данные, которые вы можете отправлять в сети.

Если вы знаете о Protobuf, это всего лишь один из менее сложных потомков ASN.1. ASN.1 используется для многих целей: кодирование SSL-сертификатов, кодирование данных на вашей кредитной карте, связь между самолетами, но самое главное везде в телекоммуникационных сетях.



Уровни, пакеты и каналы

Давайте посмотрим на первое выделенное поле в пакете. В нем говорится, что этот пакет был передан по каналу управления вещанием (BCCH). Что такое канал в этом контексте?

4401

В телекоммуникационных протоколах мы обычно разбиваем трафик на два вида: трафик данных (ваши мобильные данные при просмотре Интернета или ваши голосовые вызовы) и сигнальный трафик (все остальное: обмен информацией, необходимой для аутентификации вашей SIM-карты, настройка канала для данные и т. д. и ваши смс).

В 3G и 4G пакеты сигналов и данных могут быть разбиты по крайней мере на 5 логических каналов (есть несколько видов каналов, но логические - это высший уровень, и те, которые отображаются на отдельные пакеты):

- Два канала, которые несут сигнализацию, которая передается на каждое мобильное устройство в этой области (отправляется только нисходящая линия связи, то есть от радио антенны к мобильным телефонам):

-- BCCH (Broadcast Control):используется антенной для вещания ее общих характеристик (какому оператору она принадлежит, какие частоты она поддерживает, в какой области она находится и т. Д.) В предварительно определенных блоках, называемых SIB (блоки системной информации)
-- PCCH (Paging Control): используется антенной для сообщения незанятого мобильного телефона, чтобы он проснулся и установил новый канал (например, потому что он принимает SMS или вызов)

- Два канала, которые несут сигнализацию, обмениваются между одной мобильной и одной антенной:

-- CCCH (Common Control): используется для запроса выделенных радиоресурсов для обмена дополнительной сигнализацией (незашифрованной)
-- DCCH (выделенный контроль): все сигналы после этого (незашифрованные, затем зашифрованные)
-Один канал, который несет трафик данных
-- DTCH (выделенный канал трафика): все ваши данные + телефония (обычно они зашифрованы - кроме экстренных вызовов)

Несколько других каналов могут использоваться только в определенных случаях (а именно, когда ваш оператор передает сообщения о бедствиях, обеспечивает многоадресную передачу ТВ или использует определенные дополнительные частоты).
4403

Вы заметите, что, появляется логический канал BCCH / PCCH / CCCH…, это не информация, содержащаяся в пакете уровня 3. Это поле от уровня 2, которое будет определять, как декодируется уровень 3 (здесь получено через собственную структуру Qualcomm и преобразовано в GSMTAP).

Но способ декодирования уровня 2 также зависит от уровня 1: точный временной / частотный интервал, в который принимается пакет, будет приписывать ему физический канал и транспортный канал (здесь «BCH»). В соответствии с этим заголовок уровня 2 будет декодирован по-разному (поэтому существует не только один возможный заголовок RLC / MAC, но их много).


Обнаружение информации о сети: блоки информации о системе

Давайте взглянем на текст сообщения.



Как сказано выше, BCCH «используется антенной для передачи своих общих характеристик (какому оператору он принадлежит, какие частоты он поддерживает, в какой области он расположен и т. Д.) В порциях, называемых SIB (блоки системной информации)»

Во-первых, вы должны знать одну важную вещь: по соображениям оптимизации дизайнеры 3G решили сделать фрагментацию во фрагментации. SIB (фрагменты стандартной информации, передаваемой антеннами) фрагментированы в сообщениях RRC (протокол базового уровня 3), которые фрагментированы в пакеты уровня 2.

Это связано с тем, что сообщения уровня 3 планируются с фиксированным интервалом, а SIB могут отправляться с другим интервалом в зависимости от операторов, и они хотели оптимизировать использование уровня 3.

Давайте посмотрим на поля Wireshark сверху вниз:

- «Sfn» - системный номер кадра, порядковый номер для SIB.

- «CompleteSIBshort» означает, что существует только один полный SIB, а не фрагментированный.

- «SystemInformationBlockType3» означает, что это SIB № 3. SIB № 3 рассказывает, как телефон должен переключаться с антенны на другую, точно так же, как SIB № 18 определяет список соседних антенн и т. Д.

Но ... после этих полей, почему мы не видим сами содержимое SIB, а вместо этого причудливую шестнадцатеричную строку в Wireshark?


Это потому, что Wireshark еще не знает, как собирать SIB (даже когда нет фрагментации, а есть только один фрагмент SIB). К счастью, я написал опцию для QCSuper (–reassemble-sibs), которая выполняет повторную сборку и помещает SIB в дополнительные пакеты GSMTAP, которые содержат только SIB. Вы можете найти тот же PCAP, заново сгенерированный с этой опцией здесь.
4404

Хорошо, это фактическое содержимое SIB. Мы видим, что есть, например, идентификатор RNC (контроллер радиосети - оборудование, которое собрало этот пакет; это отлично подходит для сетевой картографии), а затем много информации, относящейся к уровню 1 ... Мы не будем разбирать эти поля один за другим

Важно отметить, что SIB, который появляется сразу после захвата (называемый MIB, главный информационный блок), содержит идентификатор оператора антенны (его MNC - код мобильной сети), что заставляет телефон хотеть или не желать прикрепить к нему.



SIB существуют как в 3G, так и в 4G и 2G (где они содержат различно различную информацию, в 2G они называются «сообщениями SI»).


Как телефон подключается к сети

Мы включили наш телефон, и он сделал этот хороший звук вибрации. Теперь, что это делает? Телефон слушает трансляции сотовой вышки и смотрит на SIB.

Чтобы выбрать антенну, ваш телефон спросит вашу SIM-карту об операторах, к которым вы имеете право подключаться, и сравните ее с информацией SIB. Он также сравнивает уровень сигнала с другими антеннами.

Как только этот критерий был рассмотрен, соединение может быть инициировано.

Первым шагом является создание рукопожатия только уровня 1, посылая крошечный поток битов, который не виден на нашем снимке (но, к счастью, не содержит много информации). Эта отправленная преамбула называется преамбулой RACH (канал произвольного доступа - физический канал). Он существует в 2G, 3G и 4G.

Когда преамбула успешно принята антенной, она отвечает наоборот. Если телефон не отвечает, он повторяется определенное количество раз.

Если телефон получает ответ на свою преамбулу RACH, он отправляет свой первый RRC-пакет восходящей линии связи: RRCConnectionRequest.



Этот пакет отправляется по CCCH ((Common Control channel) каналу общего управления), который, как мы сказали выше, «используется для запроса выделенных радиоресурсов для обмена дополнительной сигнализацией».

Что такое радиоресурсы? Чтобы позволить множеству телефонов разговаривать одновременно, 3G использует кодовое мультиплексирование: телефоны будут отправлять радиоволны одновременно, но отдельные биты («0» или «1») заменяются последовательностями, характерными для пользователя (например, « 00101 "или" 11010 "), последовательности которых не слишком сильно перекрывают друг друга.

Эти последовательности называются кодами скремблирования и предоставляются антенной. (На самом деле, выполняется еще некоторая математическая обработка с другим кодом, называемым кодом расширения.)

В приведенном выше пакете мобильный телефон дает несколько основных сведений:

1. Если он ранее не регистрировался в сети, он может отправить свой IMSI (в основном номер, идентифицирующий вашу SIM-карту). Когда это уже сделано (это имеет место здесь), он может отправить TMSI (Временная идентификация мобильного абонента), анонимный IMSI, предоставленный ранее сетью, по зашифрованному каналу.
2. Идентификатор области, в которой расположена антенна, состоит из MNC (код мобильной сети, который мы видели выше) и LAC (код зоны расположения, также полученный из SIB).
3. Причина открытия этого соединения: здесь это «регистрация», но может также случиться так, что телефон отправляет вызов, SMS, данные или был уведомлен о подключении по сети (на PCCH - Paging Control Channel), потому что это нужно что-то получить!

Часть «NonCriticalExtension» в основном представляет собой большое информационное дерево, рассказывающее о версии протокола, поддерживаемой мобильным телефоном, и она не очень интересна для нас здесь (но все же может использоваться для снятия отпечатков пальцев).

Если антенна может принять этот запрос, антенна отправляет пакет «RRCConnectionSetup», и он в основном содержит те же поля по большей части. Кроме того, он имеет часть под названием «CricitalExtensions», которая содержит набор информации о связи уровня 1, которая будет использоваться, включая два важных идентификатора:

- RNTI (временная идентификация радиосети), которая является основным идентификатором для вновь установленного соединения,
- «Код скремблирования», который представляет собой число, используемое для одновременного разговора нескольких телефонов на одинаковых частотах, как описано выше.


Используя это, мы настроили соединение для отправки последующих пакетов по DCCH (выделенному каналу управления). Соединения в DCCH должны быть недолговечными, поэтому, когда в области много мобильных устройств, антенна может попросить вас подождать несколько долей секунды, прежде чем станут доступны ресурсы для нового DCCH (когда это случится, вы получите «RRCConnectionReject» вместо «RRCConnectionSetup»).

Подводя итог, вот что мы видели до сих пор:4405
Жизнь на DCCH

Сейчас мы находимся на нашей специальной связи с антенной. Рукопожатие RRC завершается телефоном с третьим пакетом, «RRCConnectionSetupComplete», который отправляется по DCCH вместо CCCH и содержит различную информацию о телефоне (поддерживаемая полоса, его возможности 2G / 3G / 4G, шифрование алгоритмы, которые он поддерживает, и т. д.).


Теперь телефон установит связь с оборудованием, расположенным дальше в сети оператора.

Ранее мы говорили о «мобильной» связи с «антенной». На самом деле, это выглядит так: вот небольшая схема радиосети в 2G / 3G / 4G, оборудование 3G, с которым мы говорили до сих пор, выделено красным:4406

Мы обменялись кадрами RRC с RNC, на котором мы установили канал с помощью квитирования RRCConnectionRequest / RRCConnectionSetup / RRCConnectionSetupComplete.

По сути, мы видим, что мобильная сеть делится на две части:

- Сеть радиодоступа (RAN), где расположен RNC. Например, это часть сети в вашем городе, где обрабатывается трафик RRC.
- , которая является всем, что идет после RAN. Это часть сети, расположенная дальше в вашем регионе или стране. Думайте, как маршрутизаторы после завершения вашей широкополосной линии.
Теперь мы отправим полезные данные на оборудование, расположенное в базовой сети.

Вот схема того, как это выглядит (я выделил оборудование, о котором мы поговорим далее, красным):


Теперь это похоже на карту Мордора. Посмотрите на эту схему на некоторое время, она будет важной ссылкой.

Как видите, в 3G часть RAN полностью меняется, но использует ту же базовую сеть, что и в 2G.

В 4G радиоинтерфейс оптимизирован на физическом уровне, а базовая сеть подвергнута капитальному ремонту (мы не видим, что это схема, но сеть 4G во многом зависит от IP-маршрутизации, в то время как сеть 2G / 3G использует ее собственный тип коммутации - оба полагаются на различные протоколы, специфичные для телекоммуникаций).

Обе части сильно изменятся в 5G, так как в 5G используется не только IP, но также HTTP / 2 и JSON вместо телекоммуникационных протоколов. Мы поговорим об этом в другом эпизоде.

Давайте вернемся к нашим пакетам. Сразу после RRCConnectionSetupComplete телефон отправляет другой пакет: InitialDirectTransfer. «Прямой» означает, что он содержит полезную нагрузку, которая идет прямо с телефона в базовую сеть. Эта полезная нагрузка называется полезной нагрузкой NAS (Non-Access Stratum).

На самом деле, в 3G он не будет отправлять один InitialDirectTransfer, но два InitialDirectTransfer: один будет отправлен в домен CS (с коммутацией каналов), который является базовой сетью для голосового трафика, и один в домен PS (с коммутацией пакетов) , которая является .

Правильно: в 2G у нас сначала была базовая сеть для голосовых вызовов, а позже была добавлена базовая сеть для доступа в Интернет; так что, как телефон, мы должны аутентифицировать оба. 3G использует эту часть из 2G, и здесь то же самое. Только 4G не наследует эту странность (так как больше нет понятия каналов, только пакеты).

Что касается SMS, они будут проходить через домен CS или домен PS - это зависит от вашего оператора.




Здесь мы выделяем первый InitialDirectTransfer, который идет в «CS (с коммутацией каналов) домен», то есть к части, обрабатывающей голосовые вызовы.

Первое сообщение NAS в домене CS или PS является восходящей линией связи и инкапсулируется в «initialDirectTransfer», последующие сообщения инкапсулируются либо в «uplinkDirectTransfer», либо «downlinkDirectTransfer».

Все, что ниже упоминания «nas-Message», - это полезная нагрузка NAS. Он начинается с общего заголовка под названием «DTAP».

- В 2G такие сообщения NAS отправляются непосредственно по определенным каналам, без RRC вокруг него.

- Сообщения NAS также используются в 4G, даже если большинство из них имеют различное содержимое (у них есть особенность иметь собственный дополнительный уровень шифрования, так что подделка данных перед базовой сетью становится более жесткой, что обеспечивает повышенную устойчивость к скомпрометированному радиооборудованию в RAN).


Хороший диалог

По сути, теперь мы собираемся обмениваться набором сообщений NAS, чтобы сообщить, что мы будем регистрироваться в сети. Вы можете прокрутить вниз в PCAP, мы просто дадим краткое описание каждого:



В домене с коммутацией каналов (контекст для голосового трафика) диалог выглядит так:

- (Телефон отправляет) Запрос на обновление местоположения
- «Эй, я хотел бы подключиться к базовой сети, не так ли? Вот немного информации:
- Идентификатор для SIM-карты (IMSI) (или временный идентификатор для SIM-карты, если она уже аутентифицирована (TMSI))
- Характеристики мобильного телефона (называемые «возможностями» или «классами»)
- Код области, в которой расположена антенна (LAI: идентификация зоны расположения, выполненная из MCC + MNC + LAC)

- (Антенна отправляет) Запрос аутентификации
- "Конечно. Просто авторизуйтесь на вашей SIM-карте. Ваша SIM-карта на самом деле представляет собой крошечный компьютер, который может выполнять секретную криптографию. Вот крипто-вызовы ».
- Вот крипто-вызов («nonce»), который вы должны подписать, чтобы доказать, что это вы (RAND)
- И вот моя сеть подписывает его своими секретами, но использует мой собственный алгоритм, чтобы доказать, что я не мошенническая антенна. (AUTN)

Примечание: это не присутствует в 2G, где отсутствие взаимной аутентификации облегчает злоумышленнику олицетворение антенны. Эти атаки называются «поддельными BTS» или «ловцами IMSI».

- (Телефон отправляет) Ответ аутентификации
- «Хорошо, я проверил вашу подпись (AUTN) и подписал ваши крипто-вызовы (SRES). Вы можете проверить, что я правильный подписчик, как этот. Кроме того, мы знаем об общих секретах, которые мы будем использовать для подписи и последующего шифрования нашего трафика! »
- (Антенна отправляет) SecurityModeCommand
- "О, круто! Давайте начнем шифровать и подписывать наш трафик немедленно! Я поддерживаю эти алгоритмы»
- (Телефон отправляет) SecurityModeComplete
- «Аккуратно, я тоже. Мы вошли в зашифрованную и подписанную зону ».

Примечание: в 3G подписывание пакетов является обязательным, но шифрование необязательно.


- (Антенна отправляет) Идентификационный запрос (IMEISV)
-
«Кстати, могу я спросить вас, какой у вас IMEI? IMEI - это своего рода стандартизированный серийный номер для вашего телефона. Мой оператор имеет большую базу данных с IMEI всех украденных телефонов - я хотел бы проверить ваши, если вы не возражаете ».
- (Телефон отправляет) Идентификационный ответ (IMEISV)
- «О, нет проблем, вот мой IMEI! Убедитесь сами, что я не украденный телефон (и не плохой вид 3G-ключа, на который я не заключил контракт);) «
- (Антенна отправляет)Принятие Обновления местоположения
- «Абсолютно аккуратно, вы прошли аутентификацию и сможете отправлять звонки и смс. Вот TMSI, если у вас его еще не было, это анонимная версия вашего IMSI (номера SIM-карты), которую вы будете использовать позже, так что, когда вы будете бездействовать, я смогу рассылать всем, кого вы собираетесь получать SMS или звонок, без других телефонов, зная, что это вы!

Примечание: когда это работает хорошо, иногда эта идентичность не будет использоваться повторно очень долго.

- (Телефон отправляет) TMSI Reallocation Complete
- «Понял. Я добился того, чего изначально хотел, то есть обновил свое местоположение до антенны и больше не буду вас беспокоить ».
- (Антенна посылает)SignallingConnectionRelease
- «Хорошо, давайте закроем выделенный канал DCCH. Мы раздадим некоторые радиоресурсы другим телефонам, которые в них нуждаются ».

Как только все эти сообщения были обменены, мы закончили: мы зарегистрированы в сети.

Сообщения NAS, которые вы видели выше, были обменены с оборудованием, которое называется VLR (Visited Location Register), региональная база данных для подписчиков.

VLR также связывался с HLR (Home Location Register), национальной базой данных, которая является единственной базой данных, которая знает о крипто-секретах вашей SIM-карты!

VLR и HLR называются так, потому что когда вы пользуетесь роумингом, VLR находится в стране, где вы находитесь (посещенная страна), а HLR находится в сети оператора, которому вы оплачиваете подписку (ваша домашняя сеть).

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


Как ваш телефон подключается к Интернету

Теперь ваш телефон должен создать подключение к Интернету. В жаргоне 3G интернет-соединение называется «контекстом протокола PDP (Packet Data Protocol)», и вы можете создать до 11 - хотя вам, вероятно, понадобится только один

Таким образом, телефон должен будет повторно подключиться к DCCH и отправить еще несколько сообщений.



- (Телефон отправляет) Запрос на обслуживание
- «Эй, я телефон с этим TMSI. Мне нужен доступ в Интернет, пожалуйста, дайте мне немного места и базовую конфигурацию для моих пакетов ».
- (Антенна отправляет) SecurityModeCommand
- «Хорошо, просто возобновите шифрование, которое мы настроили ранее».
- (Телефон отправляет) SecurityModeComplete
- "Конечно."
- (Телефон отправляет, теперь зашифрованный) Активация запроса контекста PDP
- «Теперь, пожалуйста, подключите меня к Интернету.
- Я хотел бы получить адрес IPv4 ».
- Пользователь ввел этот APN, и этот пользователь / пароль (возможно).
- У телефона есть эти возможности.
- (Антенна отправляет) Принятие активации контекста PDP
- "Нет проблем! Вот ваш IP-адрес, ваши DNS-серверы, выделенная пропускная способность. Не стесняйтесь сейчас! »

Теперь ваш телефон будет отправлять зашифрованные данные по каналу DTCH (канал трафика данных), который мы не видим в этом PCAP. Это всего лишь ваши IP-пакеты со слегка сжатыми заголовками (Robust Header Compression) в тонком слое 2, которые будут обрабатывать фрагментацию и тому подобное.

Кроме того, ваш телефон и антенна отправили несколько сообщений RRC для настройки DTCH: RadioSetupBearer / RadioSetupComplete, PhysicalChannelReconfiguration / PhysicalChannelReconfigurationComplete. Он содержит только информацию, относящуюся к уровню 1.

Сообщения, которые вы видели выше, были обменены с SGSN (Сервисный узел поддержки GPRS) - это похоже на VLR (оборудование, на котором зарегистрирован телефон), но для передачи данных вместо передачи голоса.

VLR и SGSN разделены только потому, что доступ в Интернет (GPRS) был добавлен в мобильные сети позже, чем голос. В 4G сигнализация идет на одно оборудование (MME).


Как ваш телефон отправляет смс

Наконец, что не менее важно, наши примеры захвата содержат несколько примеров того, как SMS отправляется соответственно через 3G, 2G, а затем 4G.


Полезная нагрузка, отправляемая в базовую сеть, действительно является общей для 2G / 3G / 4G. Вот некоторые важные сведения, которые мы можем увидеть здесь:

- Технология SMS реализует свой вид маршрутизации. В вышеприведенном пакете есть часть, которая сообщает, как маршрутизировать (RP - протокол ретрансляции) и маршрутизируемые данные (TP - протокол передачи).

- В поле «RP-Destination Address» SMS содержит адрес SMS-C (SMS-центр), оборудование, которое будет выполнять маршрутизацию следующим.

- В мобильных базовых сетях пакеты маршрутизируются в сети, отличной от Интернета, которая называется SS7. Все устройства (это также относится к VLR, HLR) обозначены псевдотелефонным номером (называемым GT или «Global Title») на SS7. Вот почему этот адрес выглядит как номер телефона

- В поле «Адрес получателя TP» указан номер телефона получателя SMS (здесь анонимно).

- В поле «TP-User Data» находится содержимое SMS! Это может быть текстовый, но также причудливый бинарный материал, такой как мелодии звонка (или обновление SIM-карты).

- Интересный факт: SMS исторически упакованы с использованием 7-битной кодировки символов, которая называется GSM 03.38. Вот почему исторический нечетный 140 байт = предел в 160 символов (который был улучшен благодаря реализации фрагментации).
- Unicode был введен позже с UTF-16 (отсюда и эмодзи).
Общее оформление SMS описано в двух аккуратных статьях Википедии: «GSM 03.40» и «Заголовок пользовательских данных».

Это все! Я надеюсь, что вы оценили это краткое введение в мобильные сети.

Инструмент, с помощью которого мы получили снимок, имеет открытый исходный код, и вы можете использовать его со своим рутированным телефоном Android, не забудьте попробовать его здесь

P.S. Поддержи переводы:
QIWI +380999543560
Yandex.Money 410018707581713
 

Вложения

  • 182.2 КБ Просмотры: 0
Верх