Sobes.tech
Middle+

Come funziona il sistema di certificati in iOS?

sobes.tech AI

Risposta dell'AI

I certificati vengono utilizzati per la firma crittografica e la verifica delle applicazioni, dei profili di preparazione e delle connessioni. Componenti chiave: Certificato radice Apple, Certificati intermedi, Certificati sviluppatore, Certificati di distribuzione e Profili di provisioning.

Il Certificato radice Apple è il centro di certificazione radice di Apple ed è affidabile.

I Certificati intermedi collegano il certificato radice ai certificati finali dello sviluppatore/distributore.

Il Certificato sviluppatore identifica lo sviluppatore ai fini dello sviluppo e del debug su dispositivi registrati.

Il Certificato di distribuzione viene utilizzato per firmare le applicazioni prima di distribuirle tramite l'App Store, programmi aziendali o Ad Hoc.

Il Profilo di provisioning collega l'ID dell'app, i certificati sviluppatore/distributore e i dispositivi registrati (per Ad Hoc e sviluppo). Definisce quali servizi Apple può utilizzare l'app (ad esempio, Notifiche Push, Capacità).

Processo:

  1. Viene creata una richiesta di firma del certificato (CSR) sulla macchina dello sviluppatore.
  2. La CSR viene caricata sul portale Apple Developer.
  3. Apple rilascia un certificato sviluppatore o di distribuzione.
  4. Il certificato viene installato nel portachiavi (Keychain) sulla macchina dello sviluppatore.
  5. Viene creato un Profilo di provisioning sul portale Apple Developer, che collega l'ID dell'app, il certificato e i dispositivi. Il profilo viene anche caricato e installato.
  6. L'app viene firmata utilizzando il certificato e il Profilo di provisioning durante la compilazione.
  7. Durante l'installazione su un dispositivo o prima della pubblicazione sull'App Store, la firma e il Profilo di provisioning vengono verificati dal sistema iOS.

Verifica: Il sistema iOS verifica la catena di fiducia del certificato, che va dal certificato dell'app al Certificato radice Apple, e la validità del Profilo di provisioning. Se qualcosa è errato, l'installazione o l'esecuzione dell'app viene bloccata.

Profilo di provisioning
  .mobileprovision // file
  include:
    - ID dell'app
    - Certificati (Sviluppatore/Distribuzione)
    - UDID dei dispositivi (per sviluppo/Ad Hoc)
    - Entitlements (capacità)

Certificato
  .cer // file
  firmato da Apple
  collegato alla chiave privata nel Keychain