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.
Firmar el programa usted mismo no está arruinando el propósito de la firma de código. El propósito general de la firma de código es hacer posible verificar que el programa es una copia no modificada que fue creada originalmente por una entidad específica (persona o empresa). Cuando firma un programa usted mismo solo para que se ejecute en su computadora, hace posible que el sistema verifique que realmente fue usted quien creó el binario y que otros no lo han modificado.
La diferencia cualitativa entre firmar el binario de la aplicación usted mismo y solo permitir aplicaciones de desarrolladores no identificados en GateKeeper es que, en el primer caso, permite que se ejecute una aplicación única y específica, mientras que en el segundo, abre la posibilidad de que pueda abrir muchos diferentes aplicaciones simplemente haciendo clic derecho sobre ellas y eligiendo Abrir. Es decir, es más restrictivo y, por lo tanto, algo más "seguro" al firmar el programa específico usted mismo.
La responsabilidad de firmar es completamente suya. El desarrollador de código abierto no puede firmar el código fuente; solo es posible firmar los archivos binarios compilados. Mientras produce los binarios compilados usted mismo, le corresponde firmarlos.
Puede registrarse para obtener una cuenta de desarrollador en el sitio web de Apple que le permitirá crear un certificado que se puede usar para firmar. Si eres desarrollador y compilas regularmente binarios para ejecutar en Mac, esta es la forma preferida de hacer las cosas. Si esto es algo excepcional que probablemente nunca volverás a hacer, probablemente sea excesivo pasar por este proceso. YMMV.
Otras respuestas a su pregunta aquí recomiendan que use la firma ad-hoc para su binario. Eso no funcionará. Deberá generar una firma válida para que el binario se ejecute con GateKeeper en su configuración más segura.
fuente
Si no eres el desarrollador, entonces no.
En pocas palabras, la firma de código es un método para decir que usted (el desarrollador) es quien dice ser y que el código no ha cambiado desde la última vez que lo firmó.
Suena como su firma de código confusa (lo que requieren los desarrolladores para publicar aplicaciones en la App Store) y Gatekeeper (lo que protege a su Mac de instalar software de desarrolladores no identificados).
Si permite que su Mac instale software tanto de la App Store como de los desarrolladores identificados, seguirá recibiendo la ventana emergente que le alerta sobre el hecho de que se instalará el software
Y si es de un desarrollador no identificado, obtendrá la misma ventana emergente con un "icono de advertencia"
Aún puede instalar el software. Este es solo un mecanismo que obliga a la interacción del usuario a instalar realmente el software que le proporciona una capa de seguridad contra el malware autoinstalado.
fuente