open source - Certificado de firma de código para proyectos de código abierto
open-source code-signing-certificate (7)
Quiero publicar una de mis aplicaciones como código abierto y quiero firmar digitalmente los binarios que he creado con mi propio certificado. (Por supuesto, cualquier otra persona puede simplemente descargar el código y compilarlo con su propio certificado.) Quiero hacer esto para que cualquier persona pueda verificar que esta creación haya sido realizada 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 solo unos pocos años. Tampoco me gusta esa opción, ya que mi tesorería es valiosa para mí.
Entonces, ¿hay alguna otra opción? Por ejemplo, ¿un proveedor que respalda 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 Además de un proyecto adicional en ASP.NET que quiere SSL).
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, a continuación se encuentran las instrucciones anteriores.
Para obtener un certificado de firma de código gratuito de Certum / Unizeto para usted como individuo, siga estos pasos. Use Internet Explorer o Safari, ya que son compatibles con el mecanismo de intercambio de claves.
Examine los certificados de Id. De prueba y Código de firma de código abierto y envíe el formulario.
El certificado aparecerá en Activar certificados . Haga clic en Activar .
Pase por el asistente de activación. Para la organización, ingrese el desarrollador de código abierto . Para la Unidad organizativa , ingrese Publicación de software .
Recibirá un correo electrónico solicitando 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 encriptar la respuesta. * La forma de encriptar 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 .
Dentro de un día más o menos, debe recibir un correo electrónico con un enlace para recoger su certificado. Tienes que abrir el enlace desde la misma computadora y navegador que utilizaste para comenzar el proceso.
* Aunque el correo electrónico de verificación de Certum dice que debe enviar la prueba a [email protected]
, [email protected]
también acepta la prueba enviada a la dirección de respuesta [email protected]
, a la que puede enviar correos encriptados.
Deberá comprar un certificado de firma de código. Los más baratos son de Comodo. Publiqué código fuente y binarios, como tu plan, y firmé los binarios. Consulte Cambiador de lotes de fecha y hora para fotos y otros archivos .
Para los desarrolladores de código abierto, Certum proporciona certificados de firma de código gratis *
Simplemente ingrese "desarrollador de código abierto" en el campo "empresa" cuando solicite el certificado. Eso es.
Enlace a certificados de firma de código abierto está here
[*] A partir de 2016, el certificado de firma de código abierto ya no está disponible de forma gratuita. Ahora es un servicio pago único.
Podría echar un vistazo al producto StartSSL .
Puedes 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 usted es certificado con la suficiente frecuencia, su certificado se cuenta como válido.
Es posible que deba agregar CAcert como una autoridad de confianza en el sistema de destino. La autofirma de su ejecutable debe 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 es excesivo. En este caso, use una suma de comprobación o hash sha2 del archivo en combinación con su certificado autofirmado. Puede configurar un linux box como CA, sin embargo, deberán confiar en su certificado público.
Actualización de 2016: StartCom ha sido adquirido por WoSign en circunstancias cuestionables . No confiaría en StartCom / WoSign. Considere el siguiente texto como una nota histórica sobre cómo fue el buen 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 lo largo de todo el proceso (con excelentes tasas de respuesta, generalmente dentro de los diez minutos en mi experiencia).
Si desea obtener los detalles a la vez, lea esta publicación de blog . Fui validado dentro de una hora (por una tarifa de 59.90 $, a través de Paypal).Después de validarlo, genere una nueva clave privada y una Solicitud de firma de certificado (CSR). Tenga en cuenta que todos los campos excepto la clave pública se ignoran . Toda la información en el certificado se deduce de la información que proporciona durante la validación de la 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íelo 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 el conjunto OID de firma de por vida. Debido a este bit, la firma del código firmado se volverá inválida después de que caduque el certificado, incluso cuando tenga la 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 vigentes hasta 20 años después de que los certificados ya hayan expirado. Esto es algo que podemos hacer para los certificados de nivel de EV (mucho menor volumen, diferentes condiciones de pago) pero aumentaría el precio para la Clase 2 solo para este beneficio (donde la firma de código es solo una parte de las opciones en este nivel).
Por lo tanto, la marca de tiempo solo está disponible después de la Validación Extendida (EV), que solo está disponible para organizaciones legalmente establecidas y cuesta 199.90 $. Por lo tanto, los desarrolladores individuales no pueden utilizar 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 con mentalidad de seguridad pueden estar más inclinados a obtener la última versión de mi software, y las versiones anteriores del software seguirán funcionando (para aquellos que quieran usarlo; aunque sin una firma verificada).
Nota: ¡Indique siempre la hora de su código, incluso cuando esté configurada la bandera de firma Lifetime ! 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 durante 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 de controlador (esto requiere EV).
Para cambiar un atributo en el certificado, se debe revocar el certificado anterior y se debe solicitar uno nuevo. La revocación de un certificado cuesta 29.90 $. Sin embargo, 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é por vencer (después de casi dos años), recibirá una notificación (con dos semanas de anticipación). Si su identidad verificada sigue siendo válida (recuerde que las validaciones caducan después de 350 días, luego debe confirmar su identidad nuevamente por 59.90 $), puede solicitar un nuevo certificado sin revocar el anterior. No se olvide de publicar una nueva versión de su software firmado 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 se firmó correctamente. Resultó que Firefox no obtuvo el estado actual del certificado cuando consultó a los servidores OCSP de StartCom por el estado de revocación de mi nuevo certificado. posiblemente tema relevante del foro
Después de aproximadamente medio día, mi certificado era conocido por los servidores de OCSP, y mi nombre apareció como se esperaba. Lección aprendida: cuando tenga un certificado nuevo, espere un día antes de publicar su software con la nueva firma.