
Processo di firma del codice delle app in macOS
Tutte le app di App Store sono firmate da Apple. La firma è progettata per garantire che non siano state manomesse o alterate. Apple firma ogni app fornita con i dispositivi Apple.
Sui dispositivi con macOS 10.15, per poter essere eseguite con le impostazioni Gatekeeper di default, tutte le app distribuite al di fuori di App Store devono essere firmate dallo sviluppatore tramite un certificato rilasciato da Apple e corredato da ID sviluppatore (insieme a una chiave privata), e devono inoltre essere autenticate da Apple. Anche le app sviluppate internamente devono essere firmate con un ID sviluppatore rilasciato da Apple in modo che gli utenti possano verificarne l’integrità.
Sui dispositivi con macOS, la firma del codice e l’autenticazione funzionano in modo indipendente per scopi diversi e possono essere effettuate da agenti diversi. La firma del codice viene effettuata dallo sviluppatore utilizzando il proprio certificato ID sviluppatore (emesso da Apple). La verifica di tale firma garantisce all’utente che il software di uno sviluppatore non sia stato manomesso dal momento in cui lo sviluppatore ha eseguito la build e l’ha firmato. L’autenticazione può essere effettuata da chiunque partecipi alla catena di distribuzione del software e provi che ad Apple è stata fornita una copia del codice perché verifichi la presenza di malware e che non è stato rilevato alcun malware conosciuto. Il risultato dell’autenticazione è un ticket, che viene archiviato sui server di Apple e può essere facoltativamente associato all’app (da chiunque) senza rendere nulla la firma dello sviluppatore.
I MAC (Mandatory Access Controls) richiedono la firma del codice per abilitare le autorizzazioni protette dal sistema. Per esempio, le app che richiedono l’accesso tramite il firewall devono avere la firma del codice con l’autorizzazione MAC appropriata.