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 .
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.