¿Certificado de firma de código para proyectos de código abierto?

117

Quiero publicar una de mis aplicaciones como de código abierto y quiero firmar digitalmente los binarios que he creado con mi propio certificado. (Por supuesto, cualquier otra persona puede descargar el código y compilarlo ellos mismos con su propio certificado). Quiero hacer esto para que cualquiera pueda comprobar que esta compilación fue hecha por mí, no por otra persona. También quiero crear un sitio web seguro con un certificado SSL válido para que los visitantes puedan crear sus propias cuentas de forma segura para que puedan contribuir a este proyecto.

Podría crear un certificado autofirmado, pero realmente no me gusta esa opción. O podría pagarle a Verisign algunas piezas de oro para obtener los certificados que serían válidos por unos pocos años. Tampoco me gusta esa opción, ya que mi tesoro es valioso para mí.

Entonces, ¿hay otras opciones? Por ejemplo, ¿un proveedor que apoya proyectos de código abierto ofreciendo certificados a un precio reducido? No tiene que ser gratis, solo mucho menos costoso que Verisign ...

(El proyecto se crea en C # con Visual Studio 2008. Más un proyecto adicional en ASP.NET que quiere SSL).

Wim ten Brink
fuente
Esta pregunta está relacionada con el tema. Describe el problema (deseo de publicar) y lo que se ha hecho (aplicación creada, pero no firmada). No solicita recomendaciones, solo los nombres de uno o más proveedores gratuitos o de bajo costo. Solicita respuestas que "encuentren" un recurso externo, pero no de una manera que pueda atraer respuestas obstinadas o spam, ya que hay pocas opciones disponibles.
Edward Brey
5
Quiero señalar que he hecho esta pregunta hace casi 8 años. Hoy en día, ya hay algunas opciones más, pero la confiabilidad se está convirtiendo en un problema. También hay muchas opciones gratuitas para SSL y desarrollo web, pero los certificados de firma de código aún son escasos ...
Wim ten Brink
1
Por desgracia, LetsEncrypt no admitirá certificados de firma de código . Mediados de 2018, más barato que puedo encontrar es de Comdo codesigncert por $ 59 por el ano. Sería mucho más fácil si los gobiernos emitieran a todos los ciudadanos / sujetos con un certificado de firma de código como identificación nacional ... pero luego me vería obligado a confiar en mi gobierno
earcam

Respuestas:

9

Puede probar CAcert . Con esto, obtiene la certificación de otros usuarios de CAcert. CAcert tiene un sistema basado en la reputación, por lo que si se certifica con la suficiente frecuencia, su certificado se considera válido.

Puede que tenga que agregar CAcert como autoridad de confianza en el sistema de destino. La firma automática de su ejecutable debería ser una opción suficiente, pero deberá proporcionar el certificado público. El uso de una autoridad conocida puede ayudar a verificar el archivo, pero creo que se terminó en este caso, use una suma de comprobación o un hash sha2 del archivo en combinación con su certificado autofirmado. Puede configurar una caja de Linux como CA, sin embargo, deberán confiar en su certificado público.

Mnementh
fuente
48
La desventaja de CACert es que no está incluido de forma predeterminada en ninguno de los principales navegadores ( wiki.cacert.org/InclusionStatus ), por lo que la experiencia de usuario típica no es mejor que la de un certificado autofirmado .
Kohsuke Kawaguchi
6
Además, si está interesado en firmar ejecutables de Windows, tenga en cuenta que CACert no figura en la lista de Autoridades de certificación (CA) que son miembros del Programa de certificados raíz de Windows , mientras que Unizeto CERTUM es
user377486
Probé CAcert. Esta imagen lo resume: imgur.com/a/rNYqBme
selbie
La lista de CA actualizada se puede encontrar en ccadb-public.secure.force.com/microsoft/…
Erdogan Kurtur
35

Para los desarrolladores de código abierto, Certum proporciona certificados de firma de código de forma gratuita *

Simplemente ingrese "desarrollador de código abierto" en el campo "empresa" cuando solicite el certificado. Eso es.

El enlace a los certificados de firma de código fuente abierto está aquí

[*] A partir de 2016, el certificado de firma de código fuente abierto ya no está disponible de forma gratuita. Ahora es un servicio solo de pago.

Stefan
fuente
2
¿Has estado en el sitio y solo puedo ver los certificados SSL, puedes establecer un vínculo profundo a los certificados de firma de código?
Frozenskys
3
Parece que ya no ofrecen esto.
Chad
3
AFAIK dejaron de ofrecer los certificados de desarrollador de código abierto gratuitos. De lo contrario, agradecería mucho un enlace.
reiniero
15
Parece que los certificados ya no son gratuitos: la referencia a la firma de código fuente abierto se ha eliminado de la página de certificados de prueba y ahora hay una página de producto separada en.sklep.unizeto.pl/data-safety/code-signing-certificates/ … . Sin embargo, a 14 € son mucho más baratos que otros certificados. El proceso de registro también parece ser el mismo que cuando eran gratuitos.
Alex Warren
2
@quasoft esos son certificados SSL.
Nathan Osman
27

Actualización: ya no es gratis, ahora 105,78 € (a partir del 19 de febrero de 2017). El costo es menor si ya posee su hardware criptográfico. FWIW, las siguientes son las instrucciones anteriores.


Para obtener un certificado de firma de código gratuito de Certum / Unizeto para usted como individuo, siga estos pasos. Utilice Internet Explorer o Safari, ya que admiten el mecanismo de intercambio de claves.

  1. Busque los certificados Test ID y OpenSource Code Signing y envíe el formulario.

  2. El certificado aparecerá en Activar certificados . Haga clic en Activar .

  3. Siga el asistente de activación. Para Organización, ingrese Desarrollador de código abierto . En Unidad organizativa , ingrese Publicación de software .

  4. Recibirá un correo electrónico solicitando una prueba de identidad. Responda con un enlace al proyecto de código abierto y una imagen de su licencia de conducir (u otro documento aceptado). Para proteger su privacidad, debe cifrar la respuesta. * La forma de cifrar varía según el cliente de correo electrónico. Para Outlook, asegúrese de tener un certificado de correo electrónico ( disponible gratuitamente ) y active el cifrado .

  5. En aproximadamente un día, debería recibir un correo electrónico con un enlace para recopilar su certificado. Debe abrir el enlace desde la misma computadora y navegador que utilizó para iniciar el proceso.

* Aunque el correo electrónico de verificación de Certum dice enviar la prueba a [email protected], Certum también acepta la prueba enviada a la dirección de respuesta [email protected], a la que puede enviar un correo electrónico cifrado.

Edward Brey
fuente
Funcionó bien, muchas gracias! ¿Sabes si renuevan el certificado gratis después del período de 1 año? ¿O es solo un período de prueba y luego se convierte en un certificado pagado?
Al-Khwarizmi
1
Después de unos 10 meses, recibirá un correo electrónico para recordarle que su certificado vence. En ese correo mencionan que puedes renovar, pero eso no funcionó (para mí hace 4 meses). Había solicitado un nuevo certificado de la misma manera que lo hice un año antes y lo recibí. En resumen: solo solicita un nuevo certificado cada año.
Martijn Stolk
¿El menú desplegable de países ya no parece incluir Estados Unidos? Obtuve un certificado en 2013, por lo que solía funcionar para mí.
Warty
Probé esto. Ahora un certificado de 90 días. Pero, no puede pasar del paso "Activar" ya que hacer clic en el botón "Generar claves" no hace nada, y Siguiente lanza la alerta "Generar par de claves" ....
StevoKeano
Parece que les queda el método de RSE. ¿Cómo pueden saber si la CSR fue generada por su hardware o no?
OCTAGRAM
22

Actualización de 2016: StartCom ha sido adquirida por WoSign en circunstancias cuestionables . No confiaría en StartCom / WoSign. Considere el texto a continuación como una nota histórica sobre lo bueno que fue StartCom hasta principios de 2015 .

Tengo un certificado de firma de código de StartCom (StartSSL). Estoy muy satisfecho con su servicio: su servicio al cliente es muy rápido y sus precios son muy razonables.

Obtener el certificado de firma de código

Obtener un certificado de firma de código requiere Validación de identidad de clase 2 . StartCom lo guía a través de todo el proceso (con excelentes tasas de respuesta, generalmente dentro de los diez minutos en mi experiencia).
Si desea obtener los detalles correctos de una vez, lea esta publicación de blog . Fui validado en una hora (por una tarifa de 59,90 $, a través de Paypal).

Después de ser validado, genere una nueva clave privada y una Solicitud de firma de certificado (CSR). Tenga en cuenta que se ignoran todos los campos excepto la clave pública . Toda la información del certificado se infiere de la información que proporciona durante la validación de identidad, no de su CSR .

# Create key and CSR (key must be at least 2048 bit, per Policy Statement)
openssl req -nodes -newkey rsa:2048 -keyout codesigning.key -out codesigning.csr
# Add pass phrase to key (optional, but highly recommended)
openssl rsa -in codesigning.key -des3 -out codesigning2.key && \
    mv codesigning2.key codesigning.key

Envíe esto a través de la interfaz web y obtendrá rápidamente un nuevo certificado válido por dos años (obtuve el mío en una hora).

Problema: OID de firma de por vida

Los certificados de clase 2 de StartCom tienen configurado el OID Lifetime Signing. Debido a este bit, la firma del código firmado dejará de ser válida después de que caduque el certificado, incluso cuando tenga una marca de tiempo.

Cuando le pregunté a Eddy Nigg (COO / CTO de StartCom) por el motivo de este OID, respondió:

Nos exige mantener las CRL en funcionamiento hasta 20 años después de que los certificados ya hayan expirado. Esto es algo que podemos hacer para los certificados de nivel EV (volumen mucho menor, diferentes condiciones de pago) pero aumentaría el precio de la Clase 2 solo por este beneficio (donde la firma de código es solo una parte de las opciones en este nivel).

Por lo tanto, el sello de tiempo solo está disponible después de Extended Validation (EV), que solo está disponible para organizaciones legalmente establecidas y cuesta 199,90 $. Por lo tanto, los desarrolladores individuales no pueden usar la marca de tiempo con un certificado de firma de código de StartCom. .

Durante mucho tiempo, consideré esta limitación como un gran problema. Recientemente, cambié de opinión: solo ocurre una vez cada dos años, los usuarios preocupados por la seguridad pueden estar más inclinados a obtener la última versión de mi software, y las versiones antiguas del software seguirán funcionando (para aquellos que quieran usarlo; aunque sin una firma verificada).

Nota: ¡ Siempre coloque una marca de tiempo en su código, incluso cuando la marca de firma de por vida esté configurada ! Las firmas con sello de tiempo seguirán siendo válidas hasta la fecha de vencimiento del certificado, incluso cuando el certificado haya sido revocado (obviamente, solo si la firma se creó antes de que se revocara el certificado).

Uso práctico del certificado

En StartCom, solo paga por la validación. La validación de identidad es válida por 350 días, y durante este período, puede solicitar certificados de firma de código de forma gratuita. Solo puede tener un certificado de firma de código válido y puede usarse para firmar cualquier código (MSI, DLL, XPI, ...) pero no el código del controlador (esto requiere EV).

Para cambiar un atributo en el certificado, se debe revocar el certificado anterior y solicitar uno nuevo. La revocación de un certificado cuesta 29,90 $. Aunque cuando cambié mi correo electrónico un día después de obtener un certificado de firma de código, excepcionalmente revocaron mi certificado sin cargo (¡me sorprendió positivamente)!

Vencimiento

Cuando su certificado está a punto de caducar (después de casi dos años), recibe una notificación (dos semanas antes). Si su identidad verificada aún es válida (recuerde que las validaciones caducan a los 350 días; entonces debe confirmar su identidad nuevamente por 59.90 $), puede solicitar un nuevo certificado sin revocar el anterior. No olvide publicar una nueva versión de su software que esté firmada con este nuevo certificado de firma de código, porque las versiones anteriores pronto mostrarán "(no verificado)" o algo similar.

OCSP

Cuando recibí mi certificado, firmé mi complemento de Firefox. Sin embargo, todavía mostraba "(Autor no verificado)", aunque mi archivo XPI estaba correctamente firmado. Resultó que Firefox no obtuvo el estado actual del certificado cuando consultó a los servidores OCSP de StartCom sobre el estado de revocación de mi nuevo certificado. tema de foro posiblemente relevante

Después de aproximadamente medio día, los servidores OCSP conocieron mi certificado y mi nombre apareció como se esperaba. Lección aprendida: cuando tenga un nuevo certificado, espere aproximadamente un día antes de publicar su software con la nueva firma.

Rob W
fuente
1
Gracias por los conocimientos sobre la firma de por vida y "solo un certificado de firma de código activo". Definitivamente vale la pena conocerlo. Estaba planeando hacer esto algún día, y creo que todavía quiero hacerlo. Ya utilizas certificados SSL gratuitos.
ygoe
2
Actualización en StartCom: los certificados de código ahora no tienen configurado el OID de firma de por vida. Ahora son tan buenos como cualquier otro certificado de firma de código. Para las validaciones de la organización, incluso se incluye la firma de código del kernel.
Josef dice Reincorporar a Monica
8

También puede consultar KSoftware . Revenden Comodo certificados de firma de código, por US $ 99 / año.

Joe Kuemerle
fuente
1
Los he usado con éxito en el pasado. Tucows también es un revendedor, y si hace un contrato de varios años, creo que puede obtenerlos por alrededor de 70 al año.
EricLaw
KSoftware tiene un gran servicio, mientras que Comodo no es bueno, los chicos de KSoftware responden rápidamente, no soy pariente, solo un cliente feliz.
digitai
1
Recientemente compré un certificado con KSoftware, pero aún no terminé el proceso de validación, el equipo de validación de Comodo sigue pidiéndome un número de teléfono pero el Face-to-Face no dijo que fuera obligatorio.
Nicke Manarin
1
Acabo de comprar un certificado de firma de código de K Software porque la diferencia de precio era sustancial: $ 75 por año en lugar de $ 175 por año. Intentaré publicar una actualización aquí después de pasar por la validación y la emisión. Mi instinto, sin embargo, dice que probablemente valga la pena pagar los $ 100 adicionales e ir directamente con Comodo. Te haré saber cómo va ...
Joshua Pinter
1
Actualización: Intenté consultar con nuestros abogados para completar el documento requerido, pero dijeron que costaría alrededor de $ 1,500. Así que optamos por registrarnos en D & B.com para obtener un número DUNS y usarlo como "verificación" de que existimos. Lo tenemos ahora, pero fue un dolor en el trasero y tardó aproximadamente un mes en completarse de principio a fin. Si tiene prisa, buscaría otro proveedor, como digicert.com. (Dicho esto, no estoy seguro si son diferentes / mejores)
Joshua Pinter
8

Podrías echar un vistazo a StartSSL producto .

Nota StartSSL ahora se ha cerrado y ya no emite certificados.

Frozenskys
fuente
4
Gracioso. Google Chrome me informa que startssl.com tiene un certificado no válido y me advierte sobre los riesgos de acceder a este sitio. :-) Sin embargo, procedí. Se ve bien.
Wim ten Brink
1
Si agrega el certificado de CA raíz de startsll, esto desaparecerá. Creo que FireFox 3+ se envía con este
certificado de
46
Siempre es una gran sensación importar CA raíz. Un poco frustra todo el propósito de tenerlos.
Matthew Whited
3
StartSSL es la primera CA gratuita (única todavía) con una RootCA en Windows Vista +. Hay una actualización de certificado para versiones anteriores de Windows que lo incluyen también afaik. Por qué Chrome no lo tiene como RootCA o como respaldo a Windows para verificar es solo un problema de Chrome.
Robert MacLean
6
Por cierto, los certificados de firma de código de StartSSL son beta y requieren ser verificados (que no es gratis actualmente $ 50)
Robert MacLean