12 votos

¿Debo signo abrir código fuente yo mismo?

Yo uso macOS 10.14, y se topó con un problema cuando traté de instalar un plugin de código abierto para Vim que he encontrado en Github. He descargado el código fuente y compilado yo mismo, que funcionó bien, pero cuando me encontré con él, y la ejecución se interrumpe porque el "Código de la firma [de ejecutable] no es válido para su uso en el proceso".

Esto me ha dado un montón de preguntas que no puedo envolver mi cabeza alrededor de:

Yo podría firmar yo mismo, pero no se que tipo de arruinar el propósito de la firma de código? ¿Hay alguna diferencia cualitativa en la firma de código, desde internet y permitiendo a las aplicaciones de los desarrolladores no identificados en el "Esta aplicación fue descargada de internet cuadro de diálogo"?

Si no lo hago, cuya "responsabilidad" es el signo? El repositorio mantenedor? Los contribuyentes? Es Apple, esperando que los desarrolladores de código abierto para siempre tener un Apple ID de Desarrollador? O he entendido mal el propósito de la firma de código?

Editar:

A clearify, mi pregunta es cómo debo manejar sin firmar el código fuente que puedo compilar yo mismo, ya no espero contribuyentes a ser siempre capaz de, o recuerde, signo de su código, especialmente cuando se trata de pequeñas contribuciones a proyectos de código abierto con muchos contribuyentes.

11voto

Steve Evans Puntos 155

Ad-Hoc De Firma De Código

Para aplicaciones de terceros y los binarios que compilar tu mismo, y que requieren de firma de código, el uso de un código ad hoc de la firma.

  • Estoy suponiendo que la aplicación no se ejecutará sin firma;
  • Estoy asumiendo que la aplicación no será distribuido;
  • Estoy asumiendo que usted no se preocupa por la identidad de la firma sea válido.

Ad-hoc de la firma no se garantizan las prestaciones de la seguridad. Puede ser utilizado para determinar si la aplicación ha cambiado y que puede ser utilizado para aplicar restricciones de seguridad, tales como derechos, a una aplicación.

Ad-hoc de la firma, se validará contra codesign pero no spctl. Esto puede o puede no importar dependiendo del binario de la firma. Para aplicaciones y ejecutables, es poco probable que esto importa, porque a spctl no se ejecuta en local creado binarios.

¿Por Qué Firmar El Código?

Respecto a la pregunta refinada:

Cómo debo manejar sin firmar el código fuente que puedo compilar yo mismo, ya no espero contribuyentes a ser siempre capaz de, o recuerde, signo de 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 los auto compilado de aplicaciones, no es necesario para la firma de código. Esto asume que usted confía en el código de la aplicación. En macOS, puede abrir las aplicaciones de no confianza en el Buscador, a ver de Apple Abra una aplicación de un desarrollador no identificado.

Si usted no confía en el código o de los desarrolladores, no se puede compilar o ejecutar la aplicación.

Su Responsabilidad

El proveedor de la fuente de código no tiene ninguna responsabilidad u obligación de proporcionar pre-construidos de firma de código binario. Ser auto compilado, todo de firma de código es su elección y la responsabilidad.

  • Apple requieren presentaciones para sus Tiendas de aplicaciones para ser firma de código.

  • Apple petición de los desarrolladores fuera de sus Tiendas de aplicaciones de firmar su código, pero aún no es necesario.

En ambos casos, sólo el final de los binarios están firmados. El código fuente original y los recursos no están firmados.

El Código fuente No está Firmado

El código fuente no puede ser con firma de código de una manera significativa para macOS. Archivos de código fuente y el código puede ser firmado digitalmente, como cualquier otro archivo que puede ser, pero esto no tiene ningún impacto sobre la manera en que la resultante de la aplicación o binario es tratada por macOS.

Cómo Ad-Hoc Signo de Código de una Aplicación para Mac

Para codiseñar una aplicación en macOS con un ad-hoc de la firma, establecer la identidad -s indicador -:

codesign --force -s - </path/to/application>

Todas las otras reglas, requisitos, y las permutaciones de la codesign comando siguen siendo los mismos.

La bandera --force es utilizado aquí para sobrescribir cualquier firma existentes.

Usted puede ser que necesite para agregar el --deep bandera a la codesign comando para firmar sub-recursos tales como los marcos y los servicios integrados.

6voto

Jose Chavez Puntos 645

La firma del programa por sí mismo no es arruinar el propósito de la firma de código. El propósito general de la firma de código es hacer lo posible para verificar que el programa es una copia no modificada que fue creado originalmente por una entidad específica (persona o empresa). Cuando usted firma un programa por sí mismo, sólo para ejecutarse en el equipo, hacen posible que el sistema para comprobar que es de hecho la que creó el binario, y que no ha sido modificado por los demás.

La diferencia cualitativa entre la firma binario de la aplicación a sí mismo, y sólo permitiendo a las aplicaciones de los desarrolladores no identificados en el GateKeeper es que en el primer caso se permite que un único y específico de la aplicación para que se ejecute mientras que en el segundo, se abre la posibilidad de que pueda abrir un montón de diferentes aplicaciones simplemente haciendo clic derecho sobre ellos y seleccionando Abrir. I. e. es más restrictivo y por lo tanto un poco más "segura" con la firma del programa específico de sí mismo.

La responsabilidad de la firma es suya. El desarrollador de código abierto no puede firmar el código fuente - sólo es posible firmar los binarios compilados. Como se están produciendo los binarios compilados en sí mismo, corresponde a usted para firmar.

Usted puede inscribirse para una cuenta de desarrollador en el sitio web de Apple que te permitirá crear un certificado que puede ser utilizado para la firma. Si eres un desarrollador y regularmente compilar los binarios para funcionar en Mac esta es la mejor manera de hacer las cosas. Si esto es una cosa que usted probablemente no vuelva a hacer de nuevo, es probablemente una exageración para ir a través de este proceso. YMMV.

Otras respuestas para tu pregunta aquí recomienda el uso de ad-hoc de la firma para su binario. Que no va a funcionar. Usted necesita para generar una firma válida con el fin de tener el binario ejecutar con el Portero en su configuración más segura.

0voto

Douglas Puntos 10417

Debo firmar el código fuente abierto de mí mismo?

Si no eres desarrollador, entonces no.

La firma de código, en pocas palabras, es un método para decir que (el desarrollador) son quienes dicen que son y el código no ha cambiado desde la última vez que lo firmó.

¿Hay alguna diferencia cualitativa en la firma del código de la internet y permitiendo a las aplicaciones de los desarrolladores no identificados en el "Esta aplicación fue descargado de internet cuadro de diálogo"?

Parece que su confuso de Firma de Código (lo que se requiere por parte de los Desarrolladores para publicar Aplicaciones en la App Store) y el Portero (lo protege tu Mac de la instalación de software desde los desarrolladores no identificados).

Si usted permite que su Mac para instalar el software tanto de la App Store y se identificaron los desarrolladores, aún obtendrá la ventana emergente de alerta al hecho de que el software será instalado

Y si es de un desarrollador no identificado, obtendrá la misma ventana emergente con un "icono de advertencia"

Usted podrá instalar el software. Esto es sólo un mecanismo que obliga a la interacción del usuario para instalar el software proporciona una capa de seguridad en contra de la auto-instalación de malware.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X