Sobes.tech
Middle+

Hoe werkt het certificaten systeem in iOS?

sobes.tech AI

Antwoord van AI

Certificaten worden gebruikt voor cryptografische ondertekening en verificatie van applicaties, provisioning-profielen en verbindingen. Belangrijke componenten: Apple Root-certificaat, Intermediaire certificaten, Ontwikkelaarscertificaten, Distributiecertificaten en Provisioning-profielen.

Het Apple Root-certificaat is het vertrouwde root-certificaat van Apple.

Intermediaire certificaten verbinden het root-certificaat met de eindcertificaten van de ontwikkelaar/distributeur.

Het ontwikkelaarscertificaat identificeert de ontwikkelaar voor ontwikkelings- en debugdoeleinden op geregistreerde apparaten.

Het distributiecertificaat wordt gebruikt om applicaties te ondertekenen voordat ze worden verspreid via de App Store, Enterprise-programma's of Ad Hoc.

Het provisioning-profiel koppelt de app-ID, ontwikkelaars-/distributiecertificaten en geregistreerde apparaten (voor Ad Hoc en ontwikkeling). Het bepaalt welke Apple-diensten de app kan gebruiken (bijvoorbeeld Push-notificaties, Capabilities).

Proces:

  1. Er wordt een certificaatondertekeningsverzoek (CSR) gemaakt op de ontwikkelaarscomputer.
  2. De CSR wordt geüpload naar het Apple Developer-portaal.
  3. Apple geeft een ontwikkelaars- of distributiecertificaat uit.
  4. Het certificaat wordt geïnstalleerd in de sleutelopslag (Keychain) op de ontwikkelaarscomputer.
  5. Er wordt een provisioning-profiel gemaakt op het Apple Developer-portaal, dat de app-ID, het certificaat en de apparaten koppelt. Het profiel wordt ook geüpload en geïnstalleerd.
  6. De app wordt tijdens de build ondertekend met het certificaat en het provisioning-profiel.
  7. Bij installatie op een apparaat of vóór publicatie in de App Store worden de handtekening en het provisioning-profiel gecontroleerd door het iOS-systeem.

Verificatie: Het iOS-systeem controleert de vertrouwensketen van het certificaat, die loopt van het app-certificaat tot het Apple Root-certificaat, en de geldigheid van het provisioning-profiel. Als er iets niet klopt, wordt de installatie of uitvoering van de app geblokkeerd.

Provisioning-profiel
  .mobileprovision // bestand
  bevat:
    - App ID
    - Certificaten (Ontwikkelaar/Distributie)
    - UDID van apparaten (voor Dev/Ad Hoc)
    - Entitlements (mogelijkheden)

Certificaat
  .cer // bestand
  ondertekend door Apple
  gekoppeld aan de private key in de Keychain