2016-12-05 6 views
2

Я понимаю математику за криптографией RSA, однако у меня возникли проблемы с согласованием этого с процессом лингвистики и аутентификации Apple. Мы имеем следующие объекты:Подпись кода iOS

  • Мой личным пар ключ
  • пар ключей от Apple
  • Моего сертификат развития
  • Моего сертификат распределения
  • компании Apple по всему миру отношения разработчиков сертификат от Apple
  • Моего профиля обеспечения разработки
  • Профиль распределения профилей

И следующие различные режимы Run:

  • Запуск приложений из App Store
  • Запуск приложений, распределенных для бета-тестирования
  • запускать приложения в среде разработки/отладки

Как все это работает вместе для достижения цели? И, «работая вместе», я имею в виду явно какие признаки, что, когда и где.

Мой текущий колото является:

  1. сгенерировать открытый/закрытый ключ
  2. я выдать запрос на сертификат от Apple: Я посылаю им свой открытый ключ и некоторую информацию о том, кто я, и знак это использование моего личного ключа. Затем Apple использует некоторый крипто хэш для проверки информации и что я действительно владею этим открытым ключом. Затем Apple проверяет мою информацию против зарегистрированных разработчиков Apple, и если все проверяется, выдает сертификат (включая мой открытый ключ) и подписывает все это, используя свой закрытый ключ. Может иметь разные сертификаты, подписанные Apple для разных целей.
  3. Я включаю этот сертификат в любой профиль обеспечения. Я хочу запустить мой код (либо отдельно, либо ipa, либо иначе).
  4. Когда я пытаюсь запустить приложение на устройстве, и устройство понимает, что это не подписанный непосредственно Apple, он смотрит на профиль обеспечения, который я установил на нем
  5. Если идентификатор приложения проверяется и является одним из зарегистрированных зарегистрированных устройств, он смотрит на сертификаты
  6. Он проверяет подпись сертификата , используя открытый ключ Apple, чтобы убедиться, что сертификат был подписан Apple, и, таким образом, устройство может доверять подлинности сертификата
  7. Затем он проверяет код подписал приложение, используя мой открытый ключ включен в сертификат, и если они совпадают, то он знает код, подписанный доверенным разработчиком приложения
  8. Теперь можно запустить приложение

Я в растерянности какой сертификат Apple для Worldwide?

+0

Что касается подписания кода, сертификат Apple Worldwide содержится в профилях подготовки (корневой сертификат) – shallowThought

+0

@shallowThought Но - как это возможно? Вы загружаете сертификат WWDR полностью отдельно от профилей подготовки - и Apple подписывает эти профили, поэтому ни один способ ничего не добавить к ним после факта. – Kay

+0

Правильно. Apple подписывает эти профили. Вам не нужно загружать сертификат Apple Worldwide для подписи кода. – shallowThought

ответ

0

Профили профилей, созданные через портал разработчиков, подписаны Apple. Ваши профили обеспечения содержат ваш сертификат в них, поэтому идентификатор идентификатора ipa должен совпадать с идентификатором в профиле. Когда приложение запущено, iOS, вероятно, проверяет, соответствует ли код, соответствующий профилю обеспечения, и если профиль обеспечения действителен. При разработке профиля/ad-hoc он также проверяет, разрешено ли устройству запуска приложения. И, кроме того, когда приложение отправляется в ИТЦ (для AppStore или TestFlight), он подписывается и шифруется Apple с помощью своих сертификатов/ключей.

Смежные вопросы