Как Apple's Enterprise Distribution Program was abused to enable installation of a GameBoy emulator

Существует история о том, как установить эмулятор GameBoy на iOS-устройства без джейлбрейка. Хотя поначалу это кажется удивительным, это просто результат злоупотребления компанией Apple Developer Enterprise Program компанией Apple, которая позволяет пользователям устанавливать гораздо больше, чем один эмулятор.

Обычная программа Apple для разработчиков заключается в том, что за 99 долларов в год разработчики могут создавать свои приложения, устанавливать их на свои устройства для тестирования и отправлять их в App Store (без учетной записи разработчика вы можете создавать приложения только в симулятор). Каждой учетной записи разработчика выделено 100 слотов для устройств, которые будут использоваться для разработки и тестирования. Для каждого уникального устройства, на котором разработчик желает развернуть приложение, уникальный идентификатор устройства (UDID) устройства должен быть добавлен в учетную запись разработчика, и устройства могут удаляться только один раз в год.

Корпоративная программа отличается тем, что она не требует, чтобы устройства регистрировались под учетной записью разработчика, и нет ограничения на количество устройств, на которые может быть установлено приложение, подписанное корпоративным сертификатом. Предполагаемая цель этого состоит в том, чтобы позволить компаниям распространять приложения, которые предназначены только для внутреннего использования. Многие компании требуют, чтобы более 100 устройств могли устанавливать приложение, но не хотят, чтобы эти проприетарные приложения были доступны широкой публике в App Store. Из-за этих смягченных ограничений Apple взимает большую плату за корпоративные учетные записи и требует, чтобы компании подали заявку и были приняты в программу.

Как вы уже могли догадаться, эмулятор, который можно установить на не взломанные устройства, подписан с использованием корпоративного сертификата. В частности, сторонняя компания, MacBuildServer, предлагает услугу, которую вы можете указать на любой общедоступный проект GitHub, и служба создаст приложение и подпишет его своим корпоративным сертификатом (хотя при желании вы можете предоставить свой собственный сертификат). Райли Тестут создал проект Github для эмулятора GameBoy Advanced, который будет работать на iOS. Собрав проект с помощью MacBuildServer, любой может установить подписанный на предприятии эмулятор.

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

Также нет ничего, что делает этот эмулятор особенно примечательным (хотя я уверен, что это отличный эмулятор). Имея доступ к исходному коду, любое приложение может быть создано и установлено на устройство. На самом деле, на GitHub есть ряд других эмуляторов для iOS, доступных для общественности. Будь то эмулятор, привязное приложение или любое другое приложение, запрещенное в App Store, все они, как правило, могут быть созданы и установлены кем-то с сертификатом разработчика. Тот факт, что MacBuildServer подписывает любое приложение своим корпоративным сертификатом, означает, что теперь не только кто-то может создать эти приложения для своего устройства, но и после сборки получившийся .IPA можно свободно распространять для установки на любое другое устройство. Даже если учетная запись MacBuildServer закрыта, а репозиторий Testut GitHub остается общедоступным, любой пользователь, имеющий учетную запись разработчика, может установить приложение на свое устройство, хотя и с более сложными шагами, чем установка корпоративного приложения.

Хотя пользователь должен быть предупрежден, установка любого приложения через XCode означает, что вы обходите проверки безопасности, которые обычно выполняются как часть процесса проверки Apple App Store. Этот тип установки приложения зарезервирован для разработчиков по уважительной причине. Если вы не проверяете код, который вы создаете для устройства, нет никакой гарантии, что то, что вы устанавливаете, это то, что оно утверждает. Установщик остерегается.

Обновление 17.07.13: Служба подписи предприятия больше не работает. В блоге на сайте MacBuildServer говорится, что Apple связался с ними и обнаружил, что он нарушает условия Apple. Хотя служба по-прежнему будет создавать и подписывать приложения, их не удастся установить на устройства, поскольку сертификат был отозван и больше не действителен.

Оцените статью!