Eu tenho um certificado de assinatura de código da StartCom (StartSSL). Estou muito satisfeito com o serviço prestado: o atendimento ao cliente é muito rápido e os preços muito razoáveis.
Obtendo o certificado de assinatura de código
A obtenção de um certificado de assinatura de código requer validação de identidade de classe 2 . O StartCom o orienta em todo o processo (com excelentes taxas de resposta, geralmente em dez minutos, segundo minha experiência).
Se você quiser obter os detalhes certos de uma vez, leia esta postagem do blog . Fui validado em uma hora (por uma taxa de 59,90 $, via Paypal).
Depois de ser validado, gere uma nova chave privada e um Certificate Signing Request (CSR). Observe que todos os campos, exceto a chave pública, são ignorados . Todas as informações no certificado são deduzidas das informações que você fornece durante a validação de identidade, não do seu CSR .
Envie-o pela interface da web e você obterá rapidamente um novo certificado válido por dois anos (recebi o meu em uma hora).
Problema: OID de assinatura vitalícia
Os certificados classe 2 da StartCom têm o conjunto de OID de assinatura vitalícia. Por causa desse bit, a assinatura do código assinado se tornará inválida depois que o certificado expirar, mesmo quando tiver um carimbo de data / hora.
Quando perguntei a Eddy Nigg (COO / CTO da StartCom) o motivo desse OID, ele respondeu:
Exige de nós manter as CRLs operando por até 20 anos após os certificados já expirados. Isso é algo que podemos fazer para certificados de nível EV (volume muito menor, condições de pagamento diferentes), mas aumentaria o preço da Classe 2 apenas por esse benefício (onde a assinatura de código é apenas parte das opções neste nível).
Portanto, o carimbo de data / hora só está disponível após a Validação Estendida (EV), que só está disponível para organizações legalmente estabelecidas e custa US $ 199,90. Portanto, os desenvolvedores individuais não podem usar o carimbo de data / hora com um certificado de assinatura de código do StartCom .
Por muito tempo, considerei essa limitação um grande problema. Recentemente, mudei de ideia: isso só acontece uma vez a cada dois anos, usuários preocupados com a segurança podem estar mais inclinados a obter a versão mais recente do meu software e as versões antigas do software ainda funcionarão (para aqueles que desejam usá-lo; embora sem uma assinatura verificada).
Nota: Sempre registre a data e hora do código, mesmo quando o sinalizador de assinatura vitalício está definido ! As assinaturas com carimbo de data / hora permanecerão válidas até a data de expiração do certificado, mesmo quando o certificado foi revogado (obviamente, somente se a assinatura foi criada antes do certificado ser revogado).
Uso prático do certificado
Na StartCom, você só paga pela validação. A validação da identidade é válida por 350 dias e, durante este período, você pode solicitar certificados de assinatura de código gratuitamente. Você só pode ter um certificado de assinatura de código válido e pode ser usado para assinar qualquer código (MSI, DLL, XPI, ...), mas não o código do driver (isso requer EV).
Para alterar um atributo no certificado, o certificado anterior deve ser revogado e um novo solicitado. A revogação de um certificado custa 29,90 $. Porém, quando mudei meu e-mail um dia após obter um certificado de assinatura de código, eles excepcionalmente revogaram meu certificado sem taxa (fiquei positivamente surpreso)!
Vencimento
Quando o seu certificado estiver prestes a expirar (após quase dois anos), você receberá uma notificação (com duas semanas de antecedência). Se sua identidade verificada ainda for válida (lembre-se de que as validações expiram depois de 350 dias; então você deve confirmar sua identidade novamente por $ 59,90), você pode solicitar um novo certificado sem revogar o anterior. Não se esqueça de publicar uma nova versão do seu software que seja assinada com este novo certificado de assinatura de código, porque as versões anteriores logo mostrarão "(não verificado)" ou algo semelhante.
OCSP
Quando recebi meu certificado, assinei meu add-on do Firefox. No entanto, ainda mostrava "(Autor não verificado)", embora meu arquivo XPI estivesse assinado corretamente. Descobriu-se que o Firefox não obteve o status do certificado atual quando consultou os servidores OCSP da StartCom sobre o status de revogação do meu novo certificado. possivelmente tópico relevante do fórum
Depois de cerca de meio dia, meu certificado foi conhecido pelos servidores OCSP e meu nome apareceu conforme o esperado. Lição aprendida: quando você tiver um novo certificado, espere cerca de um dia antes de publicar seu software com a nova assinatura.