Prozess der App-Codesignierung in iOS und iPadOS
In iOS und iPadOS stellt Apple die Sicherheit von Apps mithilfe von Maßnahmen wie der zwingenden Codesignierung und strengen Anmeldevorgaben für Entwickler sicher.
Zwingende Codesignierung
Nachdem der iOS- bzw. iPadOS-Kernel gestartet wurde, bestimmt er, welche Benutzerprozesse und Apps ausgeführt werden dürfen. Um sicherzustellen, dass alle Apps von bekannten und genehmigten Quellen stammen und nicht manipuliert wurden, muss der gesamte ausführbare Code für iOS bzw. iPadOS mit einem von Apple ausgegebenem Zertifikat signiert worden sein. Die ab Werk auf dem Gerät vorhandenen Apps (z. B. Mail und Safari) wurden von Apple signiert. Apps von anderen Anbietern müssen ebenfalls vom Entwickler mit einem von Apple ausgegebenen Zertifikat validiert und signiert werden. Die zwingende Codesignierung weitet das „Chain of Trust“-Konzept des Betriebssystems auf Apps aus und verhindert so, dass Apps anderer Anbieter nicht signierten Code ausführen oder Code verwenden, der sich selbst ändert.
Signieren von Apps durch ihre Entwickler
Entwickler können ihre Apps per Zertifikatvalidierung (über das Apple Developer Program) signieren. Sie haben auch die Möglichkeit, Frameworks in ihre Apps einzubetten und diesen Code mithilfe eines von Apple ausgegebenen Zertifikats validieren zu lassen (über eine als String vorliegende Teamkennung).
Zertifikatvalidierung: Um Apps auf iPhone- und iPad-Geräten entwickeln und installieren zu können, müssen sich Entwickler bei Apple registrieren und dem Apple Developer-Programm beitreten. Vor der Ausgabe eines Zertifikats überprüft Apple die reale Identität jedes Entwicklers (Einzelpersonen oder Unternehmen). Mit dem Zertifikat können Entwickler Apps signieren und sie zum Vertrieb an den App Store senden. Das bedeutet, dass alle Apps im App Store von identifizierbaren Personen oder Organisationen eingereicht wurden, was für Entwickler schädlicher Apps als Abschreckung dient. Außerdem wird von Apple die korrekte Funktionsweise der Apps überprüft, um sicherzustellen, dass sie keine offensichtlichen Bugs oder anderen Probleme enthalten. Zusätzlich zu den bereits beschriebenen Technologien können Benutzer dank dieser Kuratierung auf die Qualität der gekauften Apps vertrauen.
Validierung der Codesignatur: iOS und iPadOS erlauben es Entwicklern, Frameworks in ihre Apps zu integrieren, die von der jeweiligen App selbst oder von in der App integrierten Erweiterungen genutzt werden können. Um das System und andere Apps davor zu schützen, dass Code aus anderen Apps in ihrem jeweiligen Adressbereich ausgeführt wird, nimmt das System eine Validierung der Codesignatur aller dynamischen Bibliotheken vor, auf die ein Prozess beim Start zugreift. Diese Verifizierung erfolgt über die Team-ID, die aus einem von Apple ausgegebenem Zertifikat extrahiert wird. Bei einer Team-ID handelt es sich um eine zehnstellige alphanumerische Zeichenfolge – z. B. 1A2B3C4D5F. Ein Programm kann auf jede Plattformbibliothek, die auf dem System vorinstalliert ist, sowie auf jede Bibliothek zugreifen, in deren Team-ID dieselbe Codesignatur wie in der Hauptprogrammdatei enthalten ist. Da die auf dem System vorinstallierten ausführbaren Dateien keine Team-ID haben, können sie nur auf Bibliotheken zugreifen, die ebenfalls auf dem System vorinstalliert sind.
Verifizierung von proprietären firmeninternen Apps
Qualifizierte Unternehmen haben die Möglichkeit, firmeninterne Apps zur Verwendung im Unternehmen zu entwickeln und sie an ihre Mitarbeiter zu verteilen. Unternehmen und Organisationen können sich für das Apple Developer Enterprise Program (ADEP) bewerben. Weitere Informationen und die notwendigen Teilnahmevoraussetzungen sind auf der Apple Developer Enterprise Program-Website zu finden. Eine Organisation, die als ADEP-Mitglied aufgenommen wurde, kann sich für die Ausstellung eines Bereitstellungsprofils registrieren, das es ermöglicht, proprietäre firmeninterne Apps auf autorisierten Geräten auszuführen.
Benutzer müssen das betreffende Bereitstellungsprofil installieren, damit sie diese Apps ausführen können. Dadurch wird sichergestellt, dass nur die von einer Organisation ins Auge gefassten Benutzer die Apps auf ihr iPhone oder iPad laden können. Apps, die über Lösung für die Mobilgeräteverwaltung (Mobile Device Management, MDM) installiert werden, sind implizit vertrauenswürdig, da die Beziehung zwischen der Organisation und dem Gerät bereits etabliert ist. In allen anderen Fällen müssen Benutzer dem Bereitstellungsprofil der App in den Einstellungen zustimmen. Organisationen können es Benutzern auch verwehren, Apps zuzulassen, die von unbekannten Entwicklern stammen. Beim erstmaligen Starten einer proprietären firmeninternen App muss das Gerät daher die positive Bestätigung durch Apple einholen, dass die App ausgeführt werden darf.