Kako funkcioniše sistem sertifikata u iOS-u?
sobes.tech АИ
Одговор од АИ
Sertifikati se koriste za kriptografski potpis i verifikaciju aplikacija, profila za pripremu i konekcija. Ključni sastavni delovi: Apple Root sertifikat, Srednji sertifikati, Sertifikati developera, Sertifikati za distribuciju i Provisioning profili.
Apple Root sertifikat je pouzdani korenski sertifikat Apple-a.
Srednji sertifikati povezuju korenski sertifikat sa krajnjim sertifikatima developera/distributera.
Sertifikat developera identifikuje developera za potrebe razvoja i otklanjanja grešaka na registrovanim uređajima.
Sertifikat za distribuciju se koristi za potpisivanje aplikacija pre nego što se distribuiraju putem App Store, Enterprise programa ili Ad Hoc.
Provisioning profil povezuje ID aplikacije, sertifikate developera/distributera i registrovane uređaje (za Ad Hoc i razvoj). Definiše koje Apple usluge aplikacija može koristiti (npr. Push Notifications, Capabilities).
Proces:
- Kreira se zahtev za potpisivanje sertifikata (CSR) na računaru developera.
- CSR se učitava na Apple Developer portal.
- Apple izdaje sertifikat developera ili distribucije.
- Sertifikat se instalira u keystore (Keychain) na računaru developera.
- Kreira se Provisioning profil na Apple Developer portalu, koji povezuje ID aplikacije, sertifikat i uređaje. Profil se takođe učitava i instalira.
- Aplikacija se potpisuje tokom izgradnje koristeći sertifikat i Provisioning profil.
- Pri instalaciji na uređaj ili pre objavljivanja u App Store, potpis i Provisioning profil proveravaju se od strane iOS sistema.
Provera: iOS sistem proverava lanac poverenja sertifikata, koji počinje od sertifikata aplikacije do Apple Root sertifikata, i validnost Provisioning profila. Ako nešto nije u redu, instalacija ili pokretanje aplikacije biće blokirano.
Provisioning profil
.mobileprovision // fajl
uključuje:
- ID aplikacije
- Sertifikate (Developer/Distribution)
- UDID uređaja (za Dev/Ad Hoc)
- Ovlašćenja (Capabilities)
Sertifikat
.cer // fajl
potpisan od strane Apple
povezan sa privatnim ključem u Keychain