Prozess der App-Codesignierung in macOS
Alle Apps aus dem App Store sind von Apple signiert. Diese Signatur stellt sicher, dass die Apps nicht manipuliert oder geändert wurden. Apple signiert jede App, die mit einem Apple-Gerät bereitgestellt wird.
Unter macOS 10.15 müssen alle Apps, die nicht über den App Store vertrieben werden, vom jeweiligen Entwickler mithilfe eines von Apple (mit einem privaten Schlüssel) ausgestellten und mit der Entwickler-ID versehenen Zertifikats signiert und von Apple beglaubigt werden, damit sie im Rahmen und im Kontext der standardmäßigen Gatekeeper-Einstellungen ausgeführt werden können. Firmenintern entwickelte Apps müssen ebenfalls mithilfe einer von Apple ausgegebenen Entwickler-ID signiert werden, damit Benutzer deren Integrität verifizieren können.
In macOS sind die Codesignierung und die Beglaubigung zwei Vorgänge, die unabhängig voneinander für verschiedene Zwecke – und durch verschiedene Akteure – erfolgen können. Die Codesignierung erfolgt durch den Entwickler unter Verwendung des (von Apple ausgestellten) Zertifikats mit seiner Entwickler-ID. Die Verifizierung dieser Signatur liefert dem Benutzer den Beweis, dass die Software eines Entwicklers weder manipuliert noch geändert wurde, nachdem sie vom Entwickler final generiert und signiert wurde. Die Beglaubigung kann von jeder Person durchgeführt werden, die ein Glied in der Kette der Softwareverteilung ist. Sie dient als Nachweis dafür, dass Apple eine Kopie des Codes erhalten hat, dass Apple diese Kopie auf Schadsoftware geprüft hat und dass bei der Prüfung keine Schadsoftware gefunden wurde. Das Endergebnis der Beglaubigung ist ein Ticket, das auf Apple-Servern gespeichert wird und optional (von einer beliebigen Person) an die App angeheftet werden kann, ohne dass die Signierung durch den Entwickler beeinträchtigt oder ungültig wird.
MAC (Mandatory Access Controls) setzt die Codesignierung zwingend voraus, damit vom System geschützte Berechtigungen aktiviert werden. Beispielsweise muss der Code von Apps, die Zugang durch die Firewall benötigen, mit der entsprechenden MAC-Berechtigung signiert sein.