2011-04-15 15 views
5

Es una buena práctica firmar siempre archivos ejecutables (exe, dll, ocx, etc.). Por otro lado, con un proyecto de código abierto, puede considerar ignorar las contribuciones al proyecto de todos los demás desarrolladores.En caso de que las bibliotecas de código abierto estén firmadas digitalmente

Esto es un dilema bastante ético para mí y me gustaría escuchar más opiniones al respecto, ya sea de personas que han estado en una situación similar o personas que contribuyeron a un proyecto de código abierto.

Me gustaría señalar que esta pregunta es para un proyecto de código abierto que se escribió en C# utilizando .NET 4 por lo que cuando el usuario hace clic en el ejecutable, se le pedirá una advertencia que indique que el archivo es de un editor que no es de confianza si no está firmado digitalmente.

Por cierto, todos los ensamblados ya tienen un fuerte nombre (firma), pero todavía no están firmados digitalmente (es decir, utilizando un certificado de firma de código Verisign).

+1

¿Huh? Las aplicaciones .NET no muestran una advertencia de "editor no confiable" cuando las ejecuta. Construyo y ejecuto aplicaciones .NET todo el tiempo, y nunca recibí la advertencia que describes de uno de ellos. –

+2

Sí, sí, si lo descargas desde la web, por supuesto, no compilas localmente. –

+2

@Joe White: si está distribuyendo algo con un instalador o como MSI, tendrá que estar firmado por código o recibirá advertencias de IE * y * advertencias desagradables de UAC. [Aquí hay un ejemplo] (http://www.autoitscript.com/autoit3/docs/intro/autoit_on_vista.htm) de lo que ve: la última pantalla es lo que obtiene de un ejecutable sin firmar. – josh3736

Respuesta

4

.Net es una bestia diferente, ya que muchas características requieren (especialmente bibliotecas) requieren que el archivo se firme con una clave de nombre fuerte, pero esas pueden ser autofirmadas sin queja del producto final (utiliza los programas cert not las bibliotecas para que aparezca ese cuadro de mensaje al que se refiere en su pregunta original).

Sin embargo, en el caso general, no veo nada de malo en que un grupo firme la distribución oficial con una clave privada. Si hace algo con el origen y recompila técnicamente "el archivo es de un editor que no es de confianza", ya que puedo confiar en Canonical pero no confío en usted. Siempre que el ejecutable que no se está firmando de un editor específico no impida que se use de la manera que se pretendía (la cláusula de tivoización en la GPL) no veo ninguna razón para NO firmar los archivos ejecutables.

+0

El problema es que no es posible obtener un certificado de grupo (requiere ser incorporado) por lo que la firma será personal. –

+0

@Teoman Soygul Alguien es el gerente del proyecto, alguien recibe la última palabra de lo que se publica en el sitio web en forma compilada y lo que no. Eso es quién debe firmar la aplicación (si está haciendo un autenticode). Si acaba de obtener la firma de PGP, el grupo puede tener su propia clave privada, pero es probable que todavía tenga una persona que la administre. –

+0

sí obteniendo el ejecutable y el paquete instalador firmado por el administrador parece ser el camino a seguir ya que no podemos obtener un certificado corporativo, pero aún ... habrá corazones rotos .. –

2

Decir que se trata de un "dilema bastante ético" probablemente lo esté desproporcionando. Definitivamente quiere code sign sus ejecutables, y realmente no veo el problema con su firma. Por ejemplo, TortoiseSVN está firmado por "Stefan Kueng, desarrollador de código abierto".

Dicho esto, probablemente sea una buena idea formar algún tipo de entidad legal para su proyecto, y luego obtener el certificado de firma de código en el nombre de la entidad de su proyecto. De esta forma, en lugar de que usted personalmente firme el ejecutable (y, por lo tanto, "se lleve todo el crédito"), el nombre de su proyecto aparece como el editor.

Si estuvo en los EE. UU., Sugiero formar LLC o posiblemente 501(c)(3) organization, que está exento del impuesto sobre la renta y permite a las personas hacer donaciones deducibles de impuestos para el proyecto. (Many proyectos de código abierto se organizan como entidades 501 (c) (3), incluyendo WordPress y jQuery.) Veo que está en Turquía, por lo que tendrá que investigar sus requisitos locales para formar algún tipo de entidad legal; una vez formado, podrá obtener un certificado de una CA en nombre de la entidad de su proyecto en lugar de la suya.

+0

josh3736, me ganaste: V Estás sin tomar crédito al firmar el ejecutable, certificando que es "verdadero". Pero esto se puede hacer solo cuando hay algún tipo de entidad detrás del proyecto (por ejemplo, fundación, junta directiva, etc.) y no solo un grupo de desarrolladores. – Albireo

+2

@Albiero: Incluso como un grupo de desarrolladores, todavía es bastante fácil formar una entidad para representar su proyecto (al menos en mi punto de partida, y si no necesita lidiar con estar exento de impuestos). En Ohio, no necesita nada más que $ 125 y un [formulario] (http://www.sos.state.oh.us/SOS/Upload/business/forms/533a.pdf) con el nombre de la entidad que está formando y su nombre y dirección de correo. Ni siquiera necesita una carta formal o artículos de incorporación ni nada de eso. – josh3736

Cuestiones relacionadas