Sobes.tech
Middle+

Ako funguje systém certifikátov v iOS?

sobes.tech AI

Odpoveď od AI

Certifikáty sa používajú na kryptografické podpisovanie a overovanie aplikácií, profilov prípravy a pripojení. Kľúčové komponenty: Korunový certifikát Apple, Medzikroky certifikáty, Certifikáty vývojára, Certifikáty distribúcie a Provisioning profily.

Korunový certifikát Apple je dôveryhodný koreňový certifikát Apple.

Medzikroky certifikáty spájajú koreňový certifikát s koncovými certifikátmi vývojára/distribútora.

Certifikát vývojára identifikuje vývojára na účely vývoja a ladenia na registrovaných zariadeniach.

Certifikát distribúcie sa používa na podpisovanie aplikácií pred ich rozšírením cez App Store, Enterprise programy alebo Ad Hoc.

Provisioning profil spája ID aplikácie, certifikáty vývojára/distribútora a registrované zariadenia (pre Ad Hoc a vývoj). Určuje, aké služby Apple môže aplikácia používať (napríklad Push Notifications, Capabilities).

Proces:

  1. Vytvorí sa žiadosť o podpis certifikátu (CSR) na počítači vývojára.
  2. CSR sa nahrá na portál Apple Developer.
  3. Apple vydá certifikát vývojára alebo distribúcie.
  4. Certifikát sa nainštaluje do úložiska kľúčov (Keychain) na počítači vývojára.
  5. Vytvorí sa Provisioning profil na portáli Apple Developer, ktorý spája ID aplikácie, certifikát a zariadenia. Profil sa tiež nahrá a nainštaluje.
  6. Aplikácia sa podpíše počas zostavenia pomocou certifikátu a Provisioning profilu.
  7. Pri inštalácii na zariadenie alebo pred publikovaním v App Store sa podpis a Provisioning profil overujú systémom iOS.

Overenie: Systém iOS overuje reťazec dôvery certifikátu, ktorý začína od certifikátu aplikácie a končí pri Apple Root certifikáte, a platnosť Provisioning profilu. Ak je niečo nesprávne, inštalácia alebo spustenie aplikácie je zablokované.

Provisioning profil
  .mobileprovision // súbor
  obsahuje:
    - ID aplikácie
    - Certifikáty (Vývojár/Distribúcia)
    - UDID zariadení (pre Dev/Ad Hoc)
    - Oprávnenia (Capabilities)

Certifikát
  .cer // súbor
  podpísaný Apple
  spojený s privátnym kľúčom v Keychain