Firma del codice ad hoc
Per le applicazioni e i binari di terze parti compilati dall'utente e che richiedono la firma del codice, utilizzare una firma del codice ad hoc .
- Presumo che l'applicazione non funzionerà senza una firma;
- Presumo che l'applicazione non verrà distribuita;
- Suppongo che non ti interessi che l'identità della firma sia 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 diritti, a un'applicazione.
Una firma ad hoc verrà convalidata contro codesign
ma non spctl
. Questo può o meno avere importanza a seconda del file binario che viene firmato. Per applicazioni ed eseguibili, è improbabile che ciò abbia importanza perché spctl
non viene eseguito su file binari creati localmente.
Perché firmare il codice?
Per quanto riguarda la raffinata domanda:
Come dovrei gestire il codice sorgente senza segno che compilo da solo, dal momento che non mi aspetto che i contributori siano sempre in grado, o ricordo, di firmare il loro codice, specialmente quando si tratta di piccoli contributi a progetti open source con molti collaboratori.
Per la maggior parte delle applicazioni autocompilate, non è necessario firmare il codice. Ciò presuppone che ti fidi del codice dell'applicazione. Su macOS, puoi aprire applicazioni non attendibili dal Finder, vedi Apri un'app di Apple da uno sviluppatore non identificato .
Se non ti fidi del codice o degli sviluppatori, non compilare o eseguire l'applicazione.
La tua responsabilità
Il fornitore del codice sorgente non ha alcuna responsabilità o obbligo di fornire binari firmati con codice predefinito. Essendo compilato da solo, tutta la firma del codice è una tua scelta e responsabilità.
Apple richiede che gli invii agli App Store siano firmati in codice.
Apple richiede agli sviluppatori esterni agli App Store di firmare il proprio codice, ma non è ancora necessario.
In entrambi i casi, vengono firmati solo i file binari finali. Il codice sorgente e le risorse originali non sono firmati.
Il codice sorgente non è firmato
Il codice sorgente stesso non può essere firmato in modo significativo per macOS. I file sorgente e il codice possono essere firmati digitalmente, come qualsiasi altro file può essere, ma ciò non ha alcun impatto sul modo in cui l'applicazione o il binario risultanti vengono trattati da macOS.
Come codificare il codice ad hoc per un'applicazione Mac
Per contrassegnare un'applicazione su macOS con una firma ad hoc, impostare il -s
flag di identità su -
:
codesign --force -s - </path/to/application>
Tutte le altre regole, requisiti e permutazioni del codesign
comando rimangono invariate.
Il flag --force
viene utilizzato qui per sovrascrivere qualsiasi firma esistente.
Potrebbe essere necessario aggiungere il --deep
flag al codesign
comando per firmare risorse secondarie come framework e servizi incorporati.