Firma codice ad-hoc
Per le applicazioni e i binari di terze parti che vengono compilati e che richiedono la firma del codice , utilizza una firma del codice ad hoc .
- Presumo che l'applicazione non verrà eseguita senza una firma;
- Presumo che l'applicazione non verrà distribuita;
- Suppongo che non ti preoccupi dell'identità della firma che è valida.
Una firma ad hoc non offre vantaggi di sicurezza affidabili. Può essere utilizzato per determinare se l'applicazione è stata modificata e può essere utilizzata per applicare restrizioni di sicurezza, come le autorizzazioni, a un'applicazione.
Una firma ad hoc verrà convalidata con codesign
ma non spctl
. Questo può o non importa a seconda del binario firmato. Per applicazioni ed eseguibili, è improbabile che ciò sia importante perché spctl
non viene eseguito su binari creati localmente.
Perché firmare il codice?
Per quanto riguarda la domanda perfezionata:
How I should handle unsigned source code that I compile myself, since I don't expect contributers to always be able to, or remember to, sign their code, especially when it comes to tiny contributions to open source projects with many contributers.
Per la maggior parte delle applicazioni auto compilate, non è necessario firmare il codice. Questo presuppone che tu abbia fiducia nel codice dell'applicazione. Su macOS, puoi aprire le applicazioni non attendibili dal Finder, vedi Apple apri un'app da uno sviluppatore non identificato .
Se non ti fidi del codice o degli sviluppatori, non compilare o eseguire l'applicazione.
Responsabilità dell'utente
Il fornitore del codice sorgente non ha alcuna responsabilità o obbligo di fornire binari firmati con codice precostruito. Essendo auto compilato, tutta la firma del codice è una tua scelta e responsabilità.
-
Le richieste di di Apple ai loro App Store devono essere firmate con il codice.
-
Gli sviluppatori Apple al di fuori dei loro App Store firmano il loro codice, ma non sono ancora richiesti.
In entrambi i casi, solo i binari finali sono firmati. Il codice sorgente e le risorse originali non sono firmati.
Il codice sorgente non è firmato
Il codice sorgente stesso non può essere firmato con codice in modo significativo per macOS. I file di origine e il codice possono essere firmati digitalmente, come qualsiasi altro file può essere, ma questo non ha alcun impatto sul modo in cui l'applicazione o il binario risultante viene trattato da macOS.
Come codice ad hoc firmare un'applicazione per Mac
Per codificare un'app su macOS con una firma ad-hoc, imposta il flag -s
identità su -
:
codesign --force -s - </path/to/application>
Tutte le altre regole, i requisiti e le permutazioni del comando codesign
rimangono invariati.
Il flag --force
è usato qui per sovrascrivere qualsiasi firma esistente.
Potrebbe essere necessario aggiungere il flag --deep
al comando codesign
per firmare sub-risorse come framework e servizi incorporati.