Wie funktioniert das Zertifikatssystem in iOS?
sobes.tech KI
Antwort von AI
Zertifikate werden für kryptografische Signaturen und die Verifizierung von Anwendungen, Bereitstellungsprofilen und Verbindungen verwendet. Schlüsselkomponenten: Apple Root-Zertifikat, Zwischenzertifikate, Entwicklerzertifikate, Distributionszertifikate und Provisioning-Profile.
Das Apple Root-Zertifikat ist das vertrauenswürdige Stammzertifikat von Apple.
Zwischenzertifikate verbinden das Stammzertifikat mit den Endzertifikaten des Entwicklers/Verteilers.
Das Entwicklerzertifikat identifiziert den Entwickler für Entwicklungs- und Debugging-Zwecke auf registrierten Geräten.
Das Distributionszertifikat wird verwendet, um Anwendungen vor der Verteilung über den App Store, Enterprise-Programme oder Ad Hoc zu signieren.
Das Provisioning-Profil verbindet die App-ID, Entwickler-/Distributionszertifikate und registrierte Geräte (für Ad Hoc und Entwicklung). Es legt fest, welche Apple-Dienste die Anwendung nutzen kann (z.B. Push-Benachrichtigungen, Fähigkeiten).
Prozess:
- Es wird eine Zertifikatsignaturanfrage (CSR) auf dem Entwickler-Computer erstellt.
- Die CSR wird auf das Apple Developer-Portal hochgeladen.
- Apple stellt ein Entwickler- oder Distributionszertifikat aus.
- Das Zertifikat wird im Schlüsselbund (Keychain) auf dem Entwickler-Computer installiert.
- Es wird ein Provisioning-Profil auf dem Apple Developer-Portal erstellt, das die App-ID, das Zertifikat und die Geräte verbindet. Das Profil wird ebenfalls hochgeladen und installiert.
- Die Anwendung wird während des Build-Prozesses mit dem Zertifikat und dem Provisioning-Profil signiert.
- Bei der Installation auf einem Gerät oder vor der Veröffentlichung im App Store werden die Signatur und das Provisioning-Profil vom iOS-System überprüft.
Überprüfung: Das iOS-System überprüft die Vertrauenskette des Zertifikats, die vom App-Zertifikat bis zum Apple Root-Zertifikat reicht, sowie die Gültigkeit des Provisioning-Profils. Wenn etwas falsch ist, wird die Installation oder Ausführung der Anwendung blockiert.
Provisioning-Profil
.mobileprovision // Datei
enthält:
- App-ID
- Zertifikate (Entwickler/Verteiler)
- Geräte-UDIDs (für Dev/Ad Hoc)
- Berechtigungen (Capabilities)
Zertifikat
.cer // Datei
von Apple signiert
mit privatem Schlüssel im Keychain verknüpft