J'ai un certificat de signature de code de StartCom (StartSSL). Je suis très satisfait de leur service: leur service client est très rapide et leurs prix sont très raisonnables.
Obtenir le certificat de signature de code
L'obtention d'un certificat de signature de code nécessite une validation d'identité de classe 2 . StartCom vous guide tout au long du processus (avec d'excellents taux de réponse, généralement dans les dix minutes selon mon expérience).
Si vous souhaitez obtenir les détails à la fois, lisez cet article de blog . J'ai été validé en moins d'une heure (pour un tarif de 59,90 $, via Paypal).
Après avoir été validé, générez une nouvelle clé privée et une demande de signature de certificat (CSR). Notez que tous les champs à l'exception de la clé publique sont ignorés . Toutes les informations contenues dans le certificat sont déduites des informations que vous fournissez lors de la validation d'identité et non de votre CSR .
Soumettez-le via l'interface Web et vous obtiendrez rapidement un nouveau certificat valable deux ans (j'ai obtenu le mien en moins d'une heure).
Problème: OID de signature à vie
Les certificats de classe 2 de StartCom ont l'OID de signature à vie défini. En raison de ce bit, la signature du code signé deviendra invalide après l'expiration du certificat, même s'il est horodaté.
Quand j'ai demandé à Eddy Nigg (COO / CTO de StartCom) la raison de cet OID, il a répondu:
Cela nous oblige à maintenir les CRL en activité jusqu'à 20 ans après l'expiration des certificats. C'est quelque chose que nous pouvons faire pour les certificats de niveau EV (volume beaucoup plus faible, conditions de paiement différentes) mais augmenterait le prix de la classe 2 uniquement pour cet avantage (où la signature de code n'est qu'une partie des options de ce niveau).
L'horodatage n'est donc disponible qu'après Extended Validation (EV), qui n'est disponible que pour les organisations légalement établies et coûte 199,90 $. Ainsi, les développeurs individuels ne peuvent pas utiliser l'horodatage avec un certificat de signature de code de StartCom .
Pendant longtemps, j'ai considéré cette limitation comme un gros problème. Récemment, j'ai changé d'avis: cela n'arrive qu'une fois tous les deux ans, les utilisateurs soucieux de la sécurité pourraient être plus enclins à obtenir la dernière version de mon logiciel, et les anciennes versions du logiciel continueront de fonctionner (pour ceux qui veulent l'utiliser; mais sans signature vérifiée).
Remarque: horodatez toujours votre code, même lorsque l'indicateur de signature à vie est défini ! Les signatures horodatées resteront valides jusqu'à la date d'expiration du certificat, même lorsque le certificat a été révoqué (évidemment, uniquement si la signature a été créée avant la révocation du certificat).
Utilisation pratique du certificat
Chez StartCom, vous ne payez que pour la validation. La validation d'identité est valable 350 jours et pendant cette période, vous pouvez demander des certificats de signature de code gratuitement. Vous ne pouvez avoir qu'un seul certificat de signature de code valide, et il peut être utilisé pour signer n'importe quel code (MSI, DLL, XPI, ...) mais pas le code de pilote (cela nécessite EV).
Pour modifier un attribut sur le certificat, le certificat précédent doit être révoqué et un nouveau doit être demandé. La révocation d'un certificat coûte 29,90 $. Cependant, lorsque j'ai changé mon email un jour après avoir reçu un certificat de signature de code, ils ont exceptionnellement révoqué mon certificat sans frais (j'ai été positivement surpris)!
Expiration
Lorsque votre certificat est sur le point d'expirer (après presque deux ans), vous recevez une notification (deux semaines à l'avance). Si votre identité vérifiée est toujours valide (rappelez-vous que les validations expirent au bout de 350 jours; vous devez alors confirmer à nouveau votre identité pour 59,90 $), vous pouvez demander un nouveau certificat sans révoquer le précédent. N'oubliez pas de publier une nouvelle version de votre logiciel qui est signée avec ce nouveau certificat de signature de code, car les versions précédentes afficheront bientôt «(non vérifié)» ou quelque chose de similaire.
OCSP
Lorsque j'ai reçu mon certificat, j'ai signé mon module complémentaire Firefox. Cependant, il montrait toujours "(Auteur non vérifié)", même si mon fichier XPI était correctement signé. Il s'est avéré que Firefox n'a pas obtenu l'état actuel du certificat lorsqu'il a interrogé les serveurs OCSP de StartCom pour connaître l'état de révocation de mon nouveau certificat. sujet de forum éventuellement pertinent
Après environ une demi-journée, mon certificat était connu des serveurs OCSP et mon nom est apparu comme prévu. Leçon apprise: lorsque vous avez un nouveau certificat, attendez environ un jour avant de publier votre logiciel avec la nouvelle signature.