Firma de código Ad-Hoc
Para aplicaciones y binarios de terceros que compile usted mismo y que requiera 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 se ha cambiado y se puede usar para aplicar restricciones de seguridad, como derechos, a una aplicación.
Una firma ad-hoc se validará contra codesign
pero no spctl
. Esto puede o no importar dependiendo del binario que se firma. Para las aplicaciones y los ejecutables, es poco probable que esto importe porque spctl
no se ejecuta en binarios creados localmente.
¿Por qué Code Sign?
Con respecto a la pregunta refinada:
Cómo debo manejar el código fuente no firmado 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 que no sean de confianza desde el Finder, ver Abra una aplicación de un desarrollador no identificado de Apple.
Si no confía en el código o en los desarrolladores, no compile ni ejecute la aplicación.
Su responsabilidad
El proveedor del código fuente no tiene la responsabilidad ni la obligación de proporcionar códigos binarios firmados con código previamente creados. Al ser auto compilado, toda la firma del código es su elección y responsabilidad.
-
Apple requiere los envíos a sus tiendas de aplicaciones para que tengan el código firmado.
-
Los solicitantes de Apple que están fuera de sus tiendas de aplicaciones firman su código, pero aún no es necesario.
En ambos casos, solo se firman los binarios finales. El código fuente y los recursos originales no están firmados.
El código fuente no está firmado
El código fuente en sí no se puede firmar con código de manera significativa para macOS. Los archivos de origen y el código pueden firmarse digitalmente, como cualquier otro archivo, pero esto no tiene ningún impacto en la forma en que MacOS trata la aplicación o el binario resultante.
Cómo Ad-Hoc Code Firmar una aplicación para Mac
Para codificar una aplicación en macOS con una firma ad-hoc, establezca la identidad -s
flag en -
:
codesign --force -s - </path/to/application>
Todas las demás reglas, requisitos y permutaciones del comando codesign
siguen siendo las mismas.
La bandera --force
se usa aquí para sobrescribir cualquier firma existente.
Es posible que necesite agregar el indicador --deep
al comando codesign
para firmar sub-recursos como marcos y servicios integrados.