Sobes.tech
Middle+

Jak działa system certyfikatów w iOS?

sobes.tech AI

Odpowiedź od AI

Certyfikaty są używane do podpisu kryptograficznego i weryfikacji aplikacji, profili przygotowawczych i połączeń. Kluczowe komponenty: Certyfikat główny Apple, Certyfikaty pośrednie, Certyfikaty deweloperskie, Certyfikaty dystrybucyjne i Profile provisioning.

Certyfikat główny Apple jest zaufanym centrum certyfikacji Apple.

Certyfikaty pośrednie łączą certyfikat główny z końcowymi certyfikatami dewelopera/dystrybutora.

Certyfikat deweloperski identyfikuje dewelopera do celów rozwoju i debugowania na zarejestrowanych urządzeniach.

Certyfikat dystrybucyjny służy do podpisywania aplikacji przed ich rozpowszechnianiem przez App Store, Programy Enterprise lub Ad Hoc.

Profil provisioning łączy ID aplikacji, certyfikaty deweloperskie/dystrybucyjne i zarejestrowane urządzenia (dla Ad Hoc i rozwoju). Określa, z jakich usług Apple może korzystać aplikacja (np. Powiadomienia Push, Funkcje).

Proces:

  1. Tworzy się żądanie podpisu certyfikatu (CSR) na komputerze dewelopera.
  2. CSR jest przesyłane na portal Apple Developer.
  3. Apple wydaje certyfikat dewelopera lub dystrybucji.
  4. Certyfikat jest instalowany w magazynie kluczy (Keychain) na komputerze dewelopera.
  5. Tworzy się Profil provisioning na portalu Apple Developer, łączący ID aplikacji, certyfikat i urządzenia. Profil jest również przesyłany i instalowany.
  6. Aplikacja jest podpisywana przy użyciu certyfikatu i Profilu provisioning podczas kompilacji.
  7. Podczas instalacji na urządzeniu lub przed publikacją w App Store, podpis i Profil provisioning są weryfikowane przez system iOS.

Weryfikacja: System iOS sprawdza łańcuch zaufania certyfikatu, od certyfikatu aplikacji do Certyfikatu głównego Apple, oraz ważność Profilu provisioning. Jeśli coś jest nieprawidłowe, instalacja lub uruchomienie aplikacji jest blokowane.

Profil provisioning
  .mobileprovision // plik
  zawiera:
    - ID aplikacji
    - Certyfikaty (Deweloper/Dystrybucja)
    - UDID urządzeń (dla Dev/Ad Hoc)
    - Uprawnienia (Capabilities)

Certyfikat
  .cer // plik
  podpisany przez Apple
  powiązany z kluczem prywatnym w Keychain