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:
- Viene creata una richiesta di firma del certificato (CSR) sulla macchina dello sviluppatore.
- La CSR viene caricata sul portale Apple Developer.
- Apple rilascia un certificato sviluppatore o di distribuzione.
- Il certificato viene installato nel portachiavi (Keychain) sulla macchina dello sviluppatore.
- 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.
- L'app viene firmata utilizzando il certificato e il Profilo di provisioning durante la compilazione.
- 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