Процесс подписания кода приложения в iOS и iPadOS
В iOS и iPadOS компания Apple предлагает такие средства обеспечения безопасности приложений, как обязательная подпись кода, строгий вход в систему для разработчиков и многие другие.
Обязательная подпись кода
После запуска ядро iOS или iPadOS определяет, какие процессы пользователей и приложения могут быть запущены в системе. Чтобы помочь проверить, что все приложения получены из известного и утвержденного источника и не подделаны, iOS и iPadOS требуют, чтобы весь исполняемый код был подписан с помощью выпущенного компанией Apple сертификата. Установленные на устройстве приложения, такие как Почта и Safari, подписаны Apple. Приложения сторонних разработчиков также должны быть проверены и подписаны с помощью выпущенного компанией Apple сертификата. Обязательная подпись кода расширяет концепцию цепочки доверия с операционной системы на приложения. Она помогает принять меры, чтобы приложения сторонних разработчиков не загружали неподписанные фрагменты кода или не использовали самомодифицирующийся код.
Процесс подписания приложений разработчиками
Разработчики могут подписывать свои приложения с помощью сертификатов (в рамках программы Apple Developer Program). Они также могут встраивать в свои приложения различные программные среды и использовать сертификаты, выданные Apple, для проверки кода (с помощью строки идентификатора команды).
Проверка сертификата. Для разработки и установки приложений на iPhone или iPad разработчики должны зарегистрироваться в Apple и присоединиться к программе Apple Developer Program. Перед выдачей сертификата компания Apple проверяет личность каждого разработчика, будь то частное лицо или компания, в реальном мире. Используя эти сертификаты, разработчики могут подписывать приложения и отправлять их в App Store для распространения. В результате все приложения в App Store отправляются идентифицированными людьми и организациями, что выступает в качестве сдерживающего фактора для создания вредоносных приложений. Кроме того, Apple проверяет все приложения, что помогает выявить явные ошибки или другие заметные проблемы и определить, соответствуют ли приложения своему описанию. Эта проверка дает пользователям дополнительную уверенность в качестве приложений, которые они покупают.
Проверка подписи кода. Разработчики приложений для iOS и iPadOS могут встраивать в свои приложения различные программные среды, используемые самим приложением или встроенными в него расширениями. Чтобы защитить систему и другие приложения от загрузки стороннего кода в их адресное пространство, в момент загрузки система выполняет проверку подписи кода для всех динамических библиотек, на которые ссылается процесс. Эта проверка выполняется с помощью идентификатора команды (Team ID), который извлекается из выпущенного компанией Apple сертификата. Идентификатор команды представляет собой десятизначную буквенно-цифровую строку, например 1A2B3C4D5F. Приложение может ссылаться на любую библиотеку платформы, поставляемую вместе с системой, и любую библиотеку с таким же идентификатором команды в подписи кода, как у основного исполняемого модуля. Поскольку исполняемые модули, поставляемые как часть системы, не имеют идентификатора команды, они могут ссылаться только на библиотеки, также поставляющиеся с системой.
Проверка корпоративных приложений собственной разработки
У получивших разрешение компаний есть возможность разрабатывать корпоративные приложения для внутреннего использования и распространять их среди своих сотрудников. Предприятия и организации могут подать заявку на участие в программе Apple Developer Enterprise Program (ADEP). Для получения дополнительной информации и ознакомления с условиями участия посетите сайт программы Apple Developer Enterprise Program. Став участником программы ADEP, организация может зарегистрироваться и получить профиль обеспечения, который разрешает запускать корпоративные приложения собственной разработки на указанных в профиле устройствах.
Для запуска этих приложений у пользователей должен быть установлен профиль обеспечения. Это помогает гарантировать, что только санкционированные организацией пользователи могут загружать приложения на iPhone и iPad. Приложения, установленные через систему управления мобильными устройствами (MDM), по умолчанию считаются доверенными, поскольку взаимосвязь между организацией и устройством уже установлена. В противном случае пользователям необходимо авторизовать профиль обеспечения приложения в Настройках. Организации также могут запретить пользователям одобрять установку приложений неизвестных разработчиков. При первом запуске любого корпоративного приложения собственной разработки устройство должно получить подтверждение от Apple, что это приложение разрешено запускать.