iOS: установка приложений из сторонних источников

16 декабря, 2021, Oleg Afonin
Рубрика: «Полезные советы», «Программное обеспечение»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Сейчас мы наблюдаем разгар баталий между компанией Apple и регуляторами нескольких государств, пытающихся заставить компанию открыть экосистему iOS для установки приложений из независимых от Apple источников. Аргументы Apple — целостность и безопасность системы. Антимонопольные органы, в свою очередь, ссылаются на свободу конкуренции и монополизацию рынка. В то же время у пользователей iOS существует ряд способов, позволяющих устанавливать приложения из сторонних источников. Некоторые из этих способов используются экспертами-криминалистами для того, чтобы устанавливать на iPhone агент-экстрактор, позволяющий добраться до файловой системы устройства.

Для чего эксперту-криминалисту может потребоваться установить на iPhone приложение в обход App Store? В первую очередь таким образом устанавливаются упомянутые приложения для извлечения данных; к ним относится, например, агент-экстрактор из состава iOS Forensic Toolkit. Кроме того, в обход App Store устанавливаются утилиты для взлома (джейлбрейка) iPhone. Ниже мы рассмотрим возможные варианты установки таких приложений.

Почему нельзя просто установить приложение на iPhone

С точки зрения Apple, проблемы установки приложений на iPhone не существует: для этого достаточно воспользоваться штатным магазином App Store. В то же время экосистему Apple недаром называют «огороженным садом»: компания жёстко контролирует, что именно пользователь может, а что – не может устанавливать на свои устройства. И если пользователей macOS компания предпочитает особо не притеснять, то у пользователей мобильных устройств, работающих на iOS или iPadOS, степень свободы значительно меньше.

Почему же нельзя просто установить на устройство пакет приложения и запустить его? На современных мобильных платформах (даже Android не является исключением) можно запускать только код, подписанный цифровой подписью. Но если в телефон на Android можно установить пакет приложения, подписанный цифровым сертификатом без вмешательства в процесс компании Google, то в iOS ситуация сложнее: в процессе установки в «ручном» режиме (то есть, не из магазина приложений Apple App Store) пакет подписывается компанией Apple в момент установки, а уникальная для каждого устройства цифровая подпись разрешает запускать его лишь на том устройстве, для которого она была создана. Из этого правила есть исключения — сертификаты разработчика и сертификаты корпоративной дистрибуции, — о которых мы поговорим ниже. Для нас же важен следующий момент: цифровые подписи выдаёт (а время от времени и отзывает) компания Apple и никто более. В результате никакой неподписанный (точнее – подписанный «неправильной» цифровой подписью) код на устройстве выполняться не может.

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

Решение первое: официальное

Самый простой и гарантированно работоспособный способ – одно из официальных решений. Приложения можно устанавливать, минуя App Store, но путь этот тернист, а для обычного пользователя – недоступен.

Корпоративная дистрибуция (enterprise-сертификат)

Один из официальных способов – различные варианты корпоративной и специальной дистрибуции. Так, в случае с корпоративной дистрибуцией клиент (образовательное учреждение или крупная компания – например, транспортная) регистрирует корпоративную учётную запись, получая возможность самостоятельно подписывать пакеты приложений и рассылать их на корпоративные устройства через MDM (Mobile Device Management).

Для подписи используется специальный enterprise-сертификат, срок действия которого, как правило, ограничен одним годом, зато отсутствуют ограничения на число подписываемых им приложений. При первом запуске подписанного таким сертификатом приложения пользователю (если его устройство не было заранее настроено компанией-владельцем) нужно будет открыть настройки и добавить сертификат в список доверенных. В этот момент устройство свяжется с сервером Apple, который и выдаст (или не выдаст; об этом — ниже) разрешение на это действие. Процедура подробно описана на сайте Apple.

В чём подвох? Их сразу несколько. Во-первых, в программе корпоративной дистрибуции могут участвовать организации, но не частные лица. Во-вторых, участие в программе – платное. Наконец, при использовании этого способа Apple сохраняет контроль над тем, разрешить ли запуск приложения на конкретном устройстве. Если Apple решит, что выданный организации enterprise-сертификат используется с нарушением лицензионного соглашения, этот сертификат будет моментально отозван, и подписать с его помощью вновь устанавливаемые приложения не удастся. Подобные сертификаты регулярно «утекают» и используются различными «альтернативными магазинами приложений» для подписи IPA, что и является частой причиной отзыва таких сертификатов. Это может произойти буквально в любой момент:

После проверки программы в первый раз устройство iPhone, iPad или iPod touch должно периодически перепроверять сертификат разработчика для поддержания доверия. Если перепроверить не удается, возможен вывод сообщения о том, что проверка скоро истечет. Для поддержания доверия подключите устройство к Интернету и нажмите кнопку «Проверить программу» или запустите саму программу.

Если сертификат был отозван, то на устройстве мгновенно перестанут работать все ранее установленные посредством отозванного сертификата приложения; нельзя будет установить и новые приложения, подписанные таким сертификатом.

Специальная дистрибуция для разработчиков (developer-сертификат)

Альтернативный вариант – специальная дистрибуция для участников программы Apple для разработчиков. Именно этот способ мы усиленно рекомендуем для установки агента-экстрактора на исследуемые устройства. Её основное предназначение – тестирование разработчиками программ собственного производства на своих же устройствах; соответственно, для её использования нужна учётная запись разработчика (Apple Developer Account). В рамках специальной дистрибуции возможно пакетирование: одну и ту же сборку можно подписать сразу для сотни устройств.

Рекомендованный способ установки приложений (например, агента-экстрактора из состава Elcomsoft iOS Forensic Toolkit) — регистрация в программе Apple для разработчиков.

У этого способа есть как несомненные преимущества, так и недостатки в сравнении с методом корпоративной дистрибуции.

В достоинства запишем в первую очередь тот факт, что приложение просто устанавливается и запускается; нет необходимости подтверждать сертификат, как нет и необходимости каждый раз для установки приложения связываться с сервером Apple. Отсюда следует возможность установить приложение на iPhone, у которого отсутствует подключение к сети – в полностью офлайновом режиме, что важно в процессе криминалистического анализа iPhone.

Второе достоинства метода – это его доступность для обычного пользователя. Участие в программе стоит 99 американских долларов в год, а учётная запись разработчика позволит устанавливать приложения на устройства числом до сотни ежегодно. Обратите внимание: удаление ранее зарегистрированного в программе устройства из учётной записи не высвобождает один из ста слотов; при достижении максимального числа устройств придётся или ждать, пока освободится один из слотов, или регистрировать ещё одну учётную запись за дополнительные деньги.

Недостаток метода – открыть учётную запись для разработчика частному лицу непросто из-за искусственных сложностей, установленных Apple. Об использовании одноразовых Apple ID можно забыть: Apple верифицирует данные и может отказать в регистрации без объяснения причин. Максимальные шансы получить регистрацию — при использовании ненового Apple ID, в котором указан реальный адрес (тот же, к которому привязана платёжная карта); наличие платёжной активности и истории покупок с учётной записи повышает шансы. Несмотря на это, гарантии того, что учётную запись в программе для разработчиков зарегистрируют – нет; Apple часто отказывает без указания причин.

На этом официальные способы заканчиваются, и начинаются полуофициальные.

Решение второе: полуофициальное

Полуофициальный способ – использование официальной учётной записи для разработчиков, но для подписи пакета вместо среды разработки Xcode (сложно, требуется компьютер Mac) используется приложение Cydia Impactor. Чем этот способ лучше Xcode? Во-первых, он проще. В Xcode нужно задавать массу полей, создавать профиль, экспортировать сертификат – всё это достаточно сложно даже для опытных разработчиков. Cydia Impactor радикально упрощает процесс, не требуя ничего, кроме логина и пароля от аккаунта разработчика. Во-вторых, в отличие от Xcode, Cydia Impactor доступен для множества платформ, включая macOS, Windows и Linux.

Недостаток один: обязательно нужна учётная запись Apple ID, зарегистрированная в программе Apple для разработчиков. Для подписи потребуется создать в учётной записи Apple ID так называемый «пароль приложения». Последовательность шагов такова:

  1. iPhone подключается к компьютеру, устанавливается доверенная связь (подтверждая запрос «Trust this computer?» на iPhone, после чего вводится код блокировки экрана).
  2. Запускается Cydia Impactor.
  3. На окно Cydia Impactor перетаскивается файл IPA устанавливаемого приложения.
  4. Вводятся логин и «пароль приложения» от Apple ID (обязательно – зарегистрированного в программе Apple для разработчиков).
  5. Если Apple ID зарегистрирован более, чем в одной программе для разработчиков, выбирается нужную.
  6. Подтверждается запрос, и Cydia Impactor подписывает IPA и передаст его на устройство.

После этого приложение сразу можно запускать. Обратите внимание: если вы пользовались Cydia Impactor несколько лет назад, то проделать эту процедуру можно было и с обычной учётной записью. В этом случае приходилось заходить в настройки устройства и подтверждать сертификат, для чего устройство выходило в интернет. Учётная запись для разработчика избавляет от лишнего шага: ничего дополнительно подтверждать в настройках не нужно.

Elcomsoft iOS Forensic Toolkit использует аналогичный механизм для установки на iPhone агента-экстрактора, посредством которого осуществляется связь с компьютером, извлечение файловой системы и расшифровка связки ключей. Установка осуществляется непосредственно; в использовании Cydia Impactor необходимости нет.

Способ корректный, но небесплатный. Существует ли возможность использовать для подписи IPA обычные Apple ID, не зарегистрированные в программе для разработчиков? Такая возможность существует, но такое использование обставлено рядом ограничений.

Подпись пакета обычным Apple ID

Как подписать пакет приложения обычным Apple ID, не зарегистрированным в программе Apple для разработчиков? До 2019 года существовала малоизвестная опция с некоторыми ограничениями: подписанное таким образом приложение работало только 7 дней, а установить на одно устройство можно было не более трёх подписанных персональными сертификатами приложений. Три года назад в Apple изменили соответствующие API, после чего существующие инструменты (в частности — Cydia Impactor) перестали работать с персональными сертификатами. Однако сама возможность — по крайней мере, на компьютерах с macOS, — сохранилась, хоть и обставлена рядом ограничений

Способ для экспертов-криминалистов

В iOS Forensic Toolkit в редакции для компьютеров Mac используется способ, позволяющий устанавливать приложение агента-экстрактора на устройства под управлением iOS без обязательной регистрации в программе для разработчиков. Новый способ работает только с компьютеров под управлением macOS, и поддерживается исключительно в версии iOS Forensic Toolkit для Mac. Пользователям редакции для Windows по-прежнему доступна только работа с учётной записью для разработчиков; в качестве опции этот режим остался доступен и для пользователей редакции для Mac.

Способ полностью прозрачен: для установки агента-экстрактора в iOS Forensic Toolkit используется та же процедура, что и с учётной записью разработчика. Разница в том, что для запуска установленного приложения на iPhone нужно будет открыть приложение «Настройки» и подтвердить цифровой сертификат. В процессе устройство выходит в сеть интернет, что нарушает криминалистическую чистоту исследования. Подробности — в статье Извлечение данных из iPhone без учётной записи для разработчиков.

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

Nullximpactor

nullximpactor — фактически, альтернатива Cydia Impactor, работающая только на macOS, но позволяющая использовать для подписи обычные учётные записи. Для подписи приложения используется код AltServer.

Для работы требуется установка плагина в приложение Mail. Разработчик @nullx рекомендует использовать для подписи одноразовые Apple ID без двухфакторной аутентификации. В противном случае необходимо создать в учётной записи «пароль приложения».

Этот способ доступен только macOS; требуется начальная настройка AltDeploy; остаются все ограничения персональной учётной записи (приложение будет работать не дольше 7 дней, а установить можно не более трёх приложений).

iOS App Signer

iOS App Signer — решение, принципиально отличающееся от всех остальных программ подобного назначения. iOS App Signer использует для подписи IPA штатную среду разработки Xcode, обходя при этом требование учётной записи разработчика (впрочем, семидневное ограничение или ограничение на число установленных таким образом приложений разработчикам обойти не удалось).

Пользоваться iOS App Signer достаточно сложно, но на GitHub есть подробные инструкции.

Достоинства решения оригинальном методе, не требующием установки AltDeploy. Недостатки: только macOS; требуется Xcode; сложно настраивать; ограничения персональной учётной записи.

Подпись в режиме онлайн собственным сертификатом

ВНИМАНИЕ: мы ни в коем случае не рекомендуем пользоваться сервисами, для работы которых требуется передать собственный сертификат на удалённый сервер. Перед тем, как это сделать, просто подумайте, откуда берутся многочисленные «утечки» сертификатов, которые впоследствии используются пиратскими магазинами приложений и онлайновыми сервисами по установке IPA.

Существуют бесплатные сервисы, позволяющие подписать IPA в режиме онлайн, без связи устройства с компьютером. В отличие от сервисов для подписывания приложений, о которых будет рассказано ниже, этот тип сервисов использует сертификат, предоставленный самим пользователем. Пример такого сервиса – IPASign.

Помимо собственно файла IPA, сервис затребует сертификат p12 для подписи, пароль и файл provisioning. Сервис работает просто: достаточно предоставить файл IPA для подписи, сертификат, пароль сертификата, файл mobile provisioning. Сервис выдаст QR-код, отсканировав который на iPhone, можно установить подписанный IPA без связи с компьютером. Детали реализации неизвестны.

AltDeploy и AltStore

Распространённый способ установки приложений из сторонних источников — AltDeploy и AltStore.

AltStore – интересный и распространённый способ для установки неофициальных приложений и эмуляторов на устройства с iOS без джейлбрейка. С инструкциями по установке можно ознакомиться на сайте проекта.

В сравнении с онлайновыми магазинами приложений AltStore – действительно достойная альтернатива. Есть возможность проконтролировать происхождение пакета IPA, а подписан он будет персональным сертификатом пользователя, который не может быть аннулирован Apple, как это часто происходит с альтернативными магазинами приложений.

Недостатков у этого решения достаточно. Во-первых, если используется персональный сертификат, то вы получаете все минусы персональных сертификатов: ограничение на число установленных приложений (не более трёх) и время их работы (не более 7 дней). Разумеется, использование сертификата разработчика снимает это ограничение — но если у вас есть такой сертификат, то и необходимости в установке AltStore нет никакой.

Во-вторых, необходимость установки и настройки как приложения iTunes с включённой синхронизацией через Wi-Fi, так и серверной части AltServer (которая будет использоваться, чтобы автоматически переподписывать установленные приложения каждые 7 дней).

Стоят ли усилия того, чтобы установить на устройство до трёх сторонних утилит? Сомнительно. А вот совместно с учётной записью разработчика это уже вполне может иметь смысл для установки приложений, которых нет и не будет в официальном App Store.

AltDeploy — фактически, форк AltStore. В отличие от AltStore, который устанавливается на само устройство с iOS, AltDeploy позволяет установить и подписать приложение непосредственно с компьютера. При этом требуется компьютер с macOS и преодоление традиционных для AltServer сложностей с установкой. Подробные инструкции по установке.

Альтернативные магазины приложений онлайн

Выше были описаны штатные способы установить приложение на устройство; в худшем случае мы вступали на территорию «серой зоны». Способы, описанные далее, в явном виде нарушают политики Apple и в некоторых случаях могут нарушать права других правообладателей.

Первый такой вариант – сторонние магазины приложений. Все подобные решения характеризуются простотой установки и использования (открыть страницу магазина в Safari – нажать на кнопку – получить на устройство альтернативный магазин приложений; подтвердить сертификат – можно работать). Есть как платные, так и бесплатные варианты. Среди подобных магазинов отметим Ignition — специализируется на утилитах джейлбрейка, твиках и патченных приложениях. Именно на этот сервис чаще всего ссылаются разработчики джейлбрейков в инструкциях по установке.

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

Какие риски возможны при использовании подобных сервисов? Отозванный Apple сертификат может привести к невозможности запуска установленного приложения. Техническая возможность модифицировать приложения на стороне сервиса означает вероятность получить вместе с установленной программой неприятный «довесок», который (в случае старых версий iOS) может даже взломать устройство.

Сервисы для подписывания приложений

Существуют и платные сервисы, которые подпишут IPA и установят его на iPhone. Сам факт того, что сервис стоит денег, ни в коем случае не означает его легальности или лицензионной чистоты: напротив, подобные сервисы не брезгуют монетизировать краденый и взломанный контент. Напомним, что мы ни в коем случае не рекомендуем пользоваться любыми сервисами, для работы которых требуется передать собственный сертификат на удалённый сервер, какими бы убедительными не выглядели обещания немедленно удалить сертификат после использования.

Сервис IPAWind позволяет не только подписывать пакеты, но и в некоторых пределах редактировать манифест. В свою очередь это позволяет устанавливать дубликат приложения (например, иметь на iPhone два WhatsApp), а также включать опцию iTunes Sharing, которая сделает рабочие файлы приложения доступными через iTunes.

Сервис AppDB, с одной стороны, предлагает каталог взломанных приложений, но есть и возможность подписать собственный IPA. Для установки приложений через этот сервис требуется привязка устройства. Подобным же образом работает сервис Signulous.

TestFlight

TestFlight – это сервис тестирования iOS-приложений и одноимённое приложение, которое пользователь может установить на своё устройство. С технической точки зрения TestFlight упрощает дистрибуцию тестовых сборок, облегчая процесс сбора кодов тестовых устройств (UDID) и позволяя распространять сборки среди зарегистрированных участников тестирования. До бесконечности тестовыми сборками пользоваться нельзя; рано или поздно сертификат истекает, и пользователю приходится или обновляться на официальную версию приложения, или устанавливать свежую тестовую сборку, которую предоставит разработчик.

Сервисом TestFlight могут воспользоваться как корпоративные, так и частные разработчики. В последнем случае будет ограничение на максимальное число участников бета-тестирования – не более сотни UDID в год. Удаление UDID из программы не освобождает слот. Некоторые разработчики пользуются этим сервисом для дистрибуции ПО, которое по тем или иным причинам не принимают в App Store.

Джейлбрейк

Для взломанных устройств доступно несколько магазинов приложений: Cydia и Sileo, а также Zebra и Installer 5. У разработчиков джейлбрейков, как правило, есть рекомендованный магазин приложений, который и будет установлен на устройство после взлома. Для чего нужны магазины приложений в процессе криминалистического анализа? Некоторые джейлбрейки не имеют встроенного сервиса SSH, и его требуется доустановить из магазина приложений. Как правило, устанавливается приложение OpenSSH.

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

Заключение

Участие в программе Apple для разработчиков — единственный рекомендуемый нами способ установки сторонних приложений. Для пользователей компьютеров Mac в нашем продукте iOS Forensic Toolkit доступен альтернативный способ, позволяющий установить приложение агента-экстрактора с использованием обычного Apple ID. У этого способа есть недостатки, основной из которых — нарушение криминалистической чистоты анализа из-за того, что для проверки цифровой подписи устройство приходится «выпустить» в интернет. Многочисленные альтернативы либо сложны в использовании, либо нарушают права правообладателей; многие из них небезопасны. Тем не менее, некоторые подобные сервисы можно использовать для установки джейлбрейков.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ