Signature de code ad hoc
Pour les applications tierces et les binaires que vous compilez vous-même, et qui exiger la signature du code, utilisez un signature de code ad hoc .
- Je suppose que l'application ne fonctionnera pas sans signature ;
- Je suppose que l'application ne sera pas distribuée ;
- Je suppose que vous ne vous souciez pas de la validité de l'identité de la signature.
Une signature ad hoc ne fournit pas d'avantages fiables en matière de sécurité. Elle peut être utilisée pour déterminer si l'application a été modifiée et elle peut être utilisée pour appliquer des restrictions de sécurité, telles que des droits, à une application.
Une signature ad-hoc sera validée contre codesign
mais pas spctl
. Cela peut être important ou non selon le binaire à signer. Pour les applications et les exécutables, il est peu probable que cela ait de l'importance car spctl
n'est pas exécuté sur les binaires créés localement.
Pourquoi Code Sign ?
En ce qui concerne la question affinée :
Comment dois-je traiter le code source non signé que je compile moi-même, puisque je ne m'attends pas à ce que les contributeurs puissent toujours, ou se souviennent de, signer leur code, en particulier lorsqu'il s'agit de petites contributions à des projets open source comptant de nombreux contributeurs.
Pour la plupart des applications auto-compilées, la signature du code n'est pas nécessaire. Cela suppose que vous ayez confiance dans le code de l'application. Sous MacOS, vous pouvez ouvrir les applications non fiables à partir du Finder, voir le site Web d'Apple. Ouvrez une application d'un développeur non identifié. .
Si vous ne faites pas confiance au code ou aux développeurs, ne compilez pas et n'exécutez pas l'application.
Votre responsabilité
Le fournisseur du code source n'a pas la responsabilité ou l'obligation de fournir des binaires pré-compilés signés. Étant donné qu'il s'agit d'un logiciel auto-compilé, toute signature de code est votre choix et votre responsabilité.
-
Apple exiger les soumissions à leurs App Stores pour être signées par un code.
-
Apple demande les développeurs hors App Stores signent leur code, mais ce n'est pas encore obligatoire.
Dans les deux cas, seuls les binaires finaux sont signés. Le code source original et les ressources 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 sources et le code peuvent être signés numériquement, comme n'importe quel 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 signer ad hoc le code d'une application Mac
Pour signer en code une application sous MacOS avec une signature ad hoc, définissez l'identité -s
pour -
:
codesign --force -s - </path/to/application>
Toutes les autres règles, exigences, et permutations de la codesign
restent les mêmes.
Le drapeau --force
est utilisé ici pour écraser toute signature existante.
Vous devrez peut-être ajouter le --deep
à la codesign
pour signer les sous-ressources telles que les frameworks et les services intégrés.