Как стать автором
Обновить
1810.02
Timeweb Cloud
То самое облако

Структура смартфона — иллюзия контроля

Время на прочтение5 мин
Количество просмотров13K
Автор оригинала: David Allen Burgess

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

  1. «Процессор приложений». Это устройство, на котором работает Android или iOS. С этой частью смартфона вы и взаимодействуете. Здесь запускаются и работают ваши приложения. Скорее всего, когда вы думаете о своём смартфоне, вы думаете о процессоре приложений.

  2. «Baseband-процессор». Это устройство управляет сотовой радиосвязью телефона. И под сотовой связью мы подразумеваем действительно сотовые технологии, такие как LTE, 5G и т.д., а не Wi-Fi. Baseband-процессор отвечает за подключение и сброс телефонных звонков, сеансов передачи данных, обрабатывает СМС и выполняет другие функции сотовой связи, порой невидимые для пользователя, такие как «Управление мобильностью».

  3. SIM-карта. СИМ-карта представляет собой полную компьютерную систему (с процессором, памятью и файловой системой), работающую под управлением набора приложений и собственной ОС. Когда вы устанавливаете СИМ-карту, она становится неотъемлемой и активной частью вашего смартфона. 

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

Как там получилось? Исторически мы начинали с «обычных телефонов», в которых был baseband-процессор, СИМ-карта и очень простой микропроцессор, управляющий экраном и клавиатурой. Затем, в виде отдельной ветви эволюции, появились КПК. Помните КПК? Смартфон представляет собой слияние этих двух устройств, и по-прежнему существует четкая грань между частью «телефона» (baseband-процессор + СИМ) и частью «КПК» (процессор приложений).

Процессор приложений

Как правило, этот процессор работает под управлением Google Android или Apple iOS. Это единственный процессор, с которым пользователь может взаимодействовать напрямую, например, устанавливать или обновлять ПО. Доступ к остальным процессорам полностью заблокирован, даже в режиме «root» или «jailbreak». С точки зрения безопасности, процессор приложений — это большая поверхность для атаки, и большая часть обсуждений мобильной безопасности ограничивается именно им. Однако этот блог посвящен исключительно телекоммуникациям, и, поскольку процессор приложений практически никак не связан с телекоммуникациями, мы будем двигаться дальше.

Baseband-процессор

Этот процессор осуществляет все телекоммуникационные функции телефона, связанные с телефонными звонками, сеансами передачи данных, СМС, а также на плечах этого устройства лежат функции управления мобильностью, которые позволяют сотовой сети не терять телефон при перемещении от одной сотовой вышки к другой. Baseband-процессор собой закрытую систему с проприетарной ОС без общедоступных средств разработки. В отличие от процессоров приложений, исследование вопроса безопасности baseband-процессоров требует более сложного оборудования и более глубоких знаний, в связи с чем информации об их недостатках в этой области существенно меньше. Но это не означает, что этих недостатков не существует. В частности, известны ошибки некоторых процессоров, которые могут быть использованы с помощью IMSI-перехватчиков или вредоносных клиентов IMS/VoLTE для удаленного выполнения кода или DoS-атак (В этом плане выделяется немецкий хакер Ralf-Philipp Weinmann, хотя у каждого производителя телефонов имеется своя команда безопасности baseband-процессоров).

Для передачи информации между процессором приложений и baseband-процессором существует набор команд «AT», названный так из-за того, что почти каждая команда этого набора начинается с «AT». Набор команд AT унаследован от старых коммутируемых модемов и формально определен для использования в сотовой связи спецификацией GSM 07.07. В протоколе AT процессор приложений является ведущим и отправляет команды и запросы baseband-процессору. Типичными командами являются такие вещи, как «сканировать доступные сети», «выбрать эту сеть», «отправить СМС», «начать телефонный звонок» или «начать сеанс передачи данных». Фактическое содержание данных не представляет интереса для baseband-процессора. Ему все равно что вы просматриваете или о чем вы общаетесь в чате.

Имеются некоторые основания для того, чтобы держать baseband-процессор «под замком». Концепция сотовой сети позволяет базовой станции надежно контролировать радиосреду, и для корректной работы этой концепции каждый процессор должен следовать строгим правилам. «Недобросовестный» телефон, не выполняющий полученные команды, может нарушить работу всей сети.

Я несколько раз отмечал закрытость baseband-процессора, но это не означает, что оператор сотовой связи или поставщик базовой полосы не могут удаленно обновлять ПО процессора. Такие обновления называются OTA(over-the-air, по воздуху), и обычно они доставляются в виде SMS с использованием криптографических методов, чтобы (предположительно) гарантировать надежность источника.

Стоит обратить внимание, что Wi-Fi соединения обычно обрабатываются не baseband-процессором, а гораздо более простым радиоприемником, непосредственно подключенным к процессору приложений. Wi-Fi и сотовая связь — это разные технологии, хотя они и могут казаться одинаковыми на прикладном уровне и иногда объединяются общим термином «беспроводная связь».

SIM

СИМ-карта представляет собой смарт-карту стандарта ISO/IEC с некоторыми расширениями ПО. Большинство «симок» производится голландской компанией Gemalto, на которую приходится около 50% рынка, или французской компанией Oberthur, занимающей около 25% рынка. Как и многие современные смарт-карты, СИМ-карту можно запрограммировать с помощью апплетов, написанных на Java. Обычно подобные апплеты попадают в телефон с помощью SMS. Baseband-процессор и СИМ-карта обмениваются данными по последовательному каналу, используя два уровня протокола: 

  1. общий протокол смарт-карт, определяемый стандартом ISO/IEC 7816;

  2. функции, специфичные для СИМ-карт, изначально определенные в GSM 11.11, но впоследствии многократно расширенные в 3GPP 51.011 и 3GPP 31.102. Этот интерфейс также называется «SIM Toolkit Application Programmer’s Interface» или «STK API».

В данном случае baseband-процессор является ведущим и инициирует любые коммуникации. Однако, одна из особенностей STK, также известная как «проактивная СИМ», позволяет СИМ-карте отправлять команды baseband-процессору, используя механизм «опроса». Каждые 30 секунд процессор отправляет запрос СИМ-карте с вопросом «Вам что-нибудь нужно?». В ответ на это СИМ-карта может ответить командой, и та власть, которой проактивная СИМ-карта может обладать над baseband-процессором, поражает: фактически, привилегии СИМ-карты в этот момент превосходят привилегии процессора приложений. В частности, СИМ-карта может отправлять СМС, запускать сеансы USSD и управлять дополнительными услугами, такими как «переадресация вызовов». И почти все современные сим-карты являются проактивными.

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

Заключение

Смартфон — это сложная система, которая порой обманывает ожидания. То, что вы видите на экране своего смартфона, подобно поверхности темного и глубокого бассейна. Если поведение смартфона является проблемой, то лучше всего найти опытного эксперта с необходимым оборудованием для изучения и анализа «подопытного» и правильной интерпретации ситуации.

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud - в нашем Telegram-канале

Жамкнуть

Теги:
Хабы:
Всего голосов 26: ↑17 и ↓9+12
Комментарии27

Публикации

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud

Истории