Firma de código ad-hoc
Para aplicaciones y binarios de terceros que compile usted mismo y que requieran la firma de código, use una firma de código ad hoc .
- Supongo que la aplicación no se ejecutará sin una firma;
- Supongo que la aplicación no se distribuirá;
- Supongo que no le importa que la identidad de la firma sea válida.
Una firma ad-hoc no proporciona beneficios de seguridad confiables. Se puede usar para determinar si la aplicación ha cambiado y se puede usar para aplicar restricciones de seguridad, como derechos, a una aplicación.
Una firma ad-hoc validará codesign
pero no spctl
. Esto puede o no importar dependiendo del binario que se firma. Para aplicaciones y ejecutables, es poco probable que esto importe porque spctl
no se ejecuta en binarios creados localmente.
¿Por qué firmar el código?
En cuanto a la pregunta refinada:
Cómo debo manejar el código fuente sin firmar que compilo yo mismo, ya que no espero que los contribuyentes siempre puedan o recuerden firmar su código, especialmente cuando se trata de pequeñas contribuciones a proyectos de código abierto con muchos contribuyentes.
Para la mayoría de las aplicaciones autocompiladas, no es necesario firmar el código. Esto supone que confía en el código de la aplicación. En macOS, puede abrir aplicaciones no confiables desde el Finder, consulte Apple's Abra una aplicación de un desarrollador no identificado .
Si no confía en el código o en los desarrolladores, no compile ni ejecute la aplicación.
Tu responsabilidad
El proveedor del código fuente no tiene la responsabilidad u obligación de proporcionar binarios firmados con código preconstruido. Al estar autocompilado, toda firma de código es su elección y responsabilidad.
Apple requiere que los envíos a sus tiendas de aplicaciones estén firmados con código.
Apple solicita a los desarrolladores que estén fuera de sus tiendas de aplicaciones que firmen su código, pero aún no es obligatorio.
En ambos casos, solo se firman los binarios finales. El código fuente original y los recursos no están firmados.
El código fuente no está firmado
El código fuente en sí mismo no puede ser firmado de manera significativa para macOS. Los archivos de origen y el código se pueden firmar digitalmente, como cualquier otro archivo, pero esto no tiene ningún impacto en cómo macOS trata la aplicación o el binario resultante.
Cómo firmar código ad-hoc en una aplicación Mac
Para codificar una aplicación en macOS con una firma ad-hoc, configure el -s
indicador de identidad en -
:
codesign --force -s - </path/to/application>
Todas las demás reglas, requisitos y permutaciones del codesign
comando siguen siendo los mismos.
La bandera --force
se usa aquí para sobrescribir cualquier firma existente.
Es posible que deba agregar el --deep
indicador al codesign
comando para firmar recursos secundarios como marcos y servicios integrados.