Signature de code ad hoc
Pour les applications tierces et les fichiers binaires que vous compilez vous-même et qui nécessitent la signature de code, utilisez une signature de code ad hoc .
- Je suppose que l'application ne fonctionnera pas sans signature;
- Je suppose que la demande ne sera pas distribuée;
- Je suppose que vous ne vous souciez pas que l'identité de la signature soit valide.
Une signature ad hoc n'offre pas d'avantages de sécurité fiables. Il peut être utilisé pour déterminer si l'application a été modifiée et il peut être utilisé pour appliquer des restrictions de sécurité, telles que des droits, à une application.
Une signature ad hoc validera codesign
mais pas spctl
. Cela peut ou non être important selon le binaire signé. Pour les applications et les exécutables, il est peu probable que cela ait de l'importance car il spctl
n'est pas exécuté sur des fichiers binaires créés localement.
Pourquoi Code Sign?
Concernant la question raffinée:
Comment dois-je gérer le code source non signé que je compile moi-même, car je ne m'attends pas à ce que les contributeurs puissent toujours signer ou se souvenir de leur code, surtout lorsqu'il s'agit de petites contributions à des projets open source avec de nombreux contributeurs.
Pour la plupart des applications auto-compilées, la signature de code n'est pas nécessaire. Cela suppose que vous faites confiance au code de l'application. Sur macOS, vous pouvez ouvrir des applications non fiables à partir du Finder, voir Ouvrir une application d' Apple à partir d'un développeur non identifié .
Si vous ne faites pas confiance au code ou aux développeurs, ne compilez pas ou n'exécutez pas l'application.
Votre responsabilité
Le fournisseur du code source n'a aucune responsabilité ni obligation de fournir des binaires signés pré-construits. Étant auto-compilé, toute signature de code est votre choix et votre responsabilité.
Apple exige que les soumissions à leurs App Stores soient signées par code.
Apple demande aux développeurs en dehors de leurs App Stores de signer leur code, mais il n'est pas encore requis.
Dans les deux cas, seuls les binaires finaux sont signés. Le code source et les ressources d'origine ne sont pas signés.
Le code source n'est pas signé
Le code source lui-même ne peut pas être signé de manière significative pour macOS. Les fichiers source et le code peuvent être signés numériquement, comme tout autre fichier, mais cela n'a aucun impact sur la façon dont l'application ou le binaire résultant est traité par macOS.
Comment faire pour signer un code ad hoc sur une application Mac
Pour coder une application sur macOS avec une signature ad hoc, définissez l' -s
indicateur d' identité sur -
:
codesign --force -s - </path/to/application>
Toutes les autres règles, exigences et permutations de la codesign
commande restent les mêmes.
Le drapeau --force
est utilisé ici pour remplacer toute signature existante.
Vous devrez peut-être ajouter l' --deep
indicateur à la codesign
commande pour signer les sous-ressources telles que les infrastructures et les services intégrés.