Que se passe-t-il lorsqu'un certificat de signature de code expire?

je pense acheter un certificat de signature de code de VeriSign ou de Thawte pour signer un XBAP avec. Ma question est la suivante: Qu'advient-il lorsque ce certificat expire? 299 $ et 599 $sont des prix assez élevés pour des certificats de 1 an/2 ans, et si je dois livrer une nouvelle construction signée à mes clients à chaque fois que mon certificat expire, alors je vais juste faire face à la difficulté de créer mon propre certificat pour l'instant.

ce que je n'aime pas dans la création de mon propre certificat est le difficulté à le distribuer à toutes les machines clientes qui utiliseront mon XBAP. Mon application ne sera jamais utilisé sur un réseau local, donc je suppose que je pourrais toujours utiliser Windows Installer mon certificat brewed maison (bien que je ne suis pas sûr sur la façon de faire cela - quelqu'un a des idées?).

ce ne serait pas vraiment un problème si je livrais une application de confiance partielle - mais mon application a besoin de permissions Web, car il va parler aux services WCF, donc il est dans ce gris zone entre confiance partielle et confiance totale, et sans certificat, je reçois ce message fun ole Trust Not Granted quand j'essaie de charger mon XBAP.

des idées?

45
demandé sur Rob 2008-12-01 00:32:36

6 réponses

ce que vous devez faire si vous prévoyez de l'utiliser dans un environnement (LAN) fermé est de configurer votre propre CA. Les versions Windows Server incluent une autorité de Certification facile à utiliser, mais encore plus facile à configurer une AC minimale au moyen de la demoCA fournie par openssl, qui se compose de plusieurs scripts. Vous pouvez lancer openssl demoCA en Cygwin sur Windows ou nativement. Ce demoCA se compose de plusieurs scripts perl / bash qui appellent les commandes openssl pour générer demandes, signer des certificats / LCR, etc.

lorsque vous avez votre propre AC, ce que vous devez installer, c'est votre certificat racine de L'AC, de sorte qu'il n'y aura plus de problèmes pour mettre à jour les certificats d'utilisateur puisque le certificat de L'AC restera le même. En général, un certificat CA devrait durer 5 à 10 ans, mais vous pouvez configurer autant que vous le voulez (rappelez-vous que c'est votre propre CA).

le certificat CA sera installé sur chaque machine client. Si votre application fait confiance au système Windows sécurité il doit être installé sur iExplorer Certificate Authorities keystore. Si vous utilisez une Application Java, vous devez distribuer le certificat de L'AC dans le Java keystore que vous utilisez.

6
répondu Fernando Miguélez 2008-11-30 22:33:23

Si vous timestamp votre code tant que le certificat est valide l'effet est que vos certificats expirés sont bons.

Certificat De Signature Du Code De Dégel FAQ:

combien de temps puis-je utiliser un certificat de signature de Code?

  • les certificats de signature de Code sont valides pour 1 ou 2 ans selon le cycle de vie que vous choisissez lorsque vous achetez le certificat. Veuillez noter: Pour Microsoft ® Authenticode® (Multi-Purpose), vous devriez également timestamp votre code signé pour éviter que votre code expire lorsque votre certificat expire.

le code timestamp est-il valide après l'expiration d'un certificat de signature de Code?

  • Microsoft ® Authenticode® (Multi-Purpose) vous permet de timestamp votre code signé. Timestamping assure que le code n'expirera pas quand le certificat expire parce que le navigateur valide le timestamp. Le service d'horodatage est fourni avec l'aimable autorisation de VeriSign. Si vous utilisez le service timestamping lors de la signature du code, un hachage de votre code est envoyé au serveur de VeriSign pour enregistrer un timestamp pour votre code. Le logiciel d'un utilisateur peut faire la distinction entre le code signé avec un certificat expiré qui ne devrait pas être fiable et le code qui a été signé avec un certificat qui était valide au moment où le code a été signé mais qui a par la suite expiré.
69
répondu Martin Vobr 2016-01-13 11:19:22

attention aux certificats avec wtd_lifetime_signing_flag défini: il signifie (malgré ce que vous Esprit supposer à partir du nom) qu'un programme signé avec le certificat est valide après l'expiration du certificat, même si le programme n'a pas changé, et que le certificat est valide lorsqu'il a été signé.

cela affecte également les mises à jour, en ce que même si le client coche la case pour faire confiance à tous les programmes de votre entreprise, si votre programme de mise à jour n'est pas signé avec le même cert (ou que cert expire) puis la fiducie échoue.

à partir de: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx


Timestamp de Traitement avec la durée de Vie de la Signature de la Sémantique

les Applications ou les autorités de certification qui ne veulent pas de signatures timestamp pour vérifier avec succès pendant une période indéterminée ont deux options:

* régler le signature à vie dans le certificat de signature de l'éditeur.

si le certificat de signature de l'éditeur contient l'OID du signataire à vie en plus de l'OID de signature du code PKIX, la signature devient invalide lorsque le certificat de signature de l'éditeur expire, même si la signature est horodatée. Le signe de vie est défini comme suit:

szOID_KP_LIFETIME_SIGNING 1.3.6.1.4.1.311.10.3.13

• définir le paramètre WTD_LIFE_SIGNING_FLAG dans WINTRUST_DATA structure lors de L'appel WinVerifyTrust.

si un appelant WinVerifyTrust définit WTD_LIFETIME_SIGNING_FLAG dans la structure WINTRUST_DATA et que le certificat de signature de l'éditeur a expiré, WinVerifyTrust déclare que la signature est invalide même si la signature est horodatée.

si un éditeur révoque un certificat de signature de code qui contient l'identificateur à vie ou un ensemble d'appelants WinVerifyTrust WTD_LIFETIME_SIGNING_FLAG dans la structure WINTRUST_DATA, WinVerifyTrust indique que la signature est valide si les deux conditions suivantes sont remplies:

• la signature a été estampillée avant la date de révocation.

• le certificat de signature est toujours en cours de validité. Après l'expiration de la période de validité, la signature n'est plus valable.


Par Exemple: https://forum.startcom.org/viewtopic.php?f=15&t=2215&p=6827&hilit=lifetime+signing#p6827

C'est un problème grave avec des certificats StartSSL. Cela ne me surprend pas qu'il y ait des limitations dans un certificat qui coûtent si peu, mais enterrer cette limitation dans les petits caractères ou dans un vieux post forum au lieu de l'indiquer clairement dans la description du produit est une mauvaise affaire. Ils peuvent corriger cela dans le futur, et d'autres peuvent ou ne peuvent pas avoir la même limitation ainsi un e-mail à vérifier avant de dépenser pourrait être sage.

Devinez qui ne savait pas demander? LOL... eh bien, vivre et apprendre.

24
répondu James Newton 2011-03-16 23:28:51

si vous vous assurez d'ajouter un horodatage lors de la signature des binaires, vous n'aurez pas à les signer de nouveau lorsque le certificat expire. Juste ajouter "/t http://timestamp.verisign.com/scripts/timstamp.dll" à la ligne de commande de signtool et la signature numérique sera toujours marquée comme valide, à moins que le certificat est révoqué et l'autorité de certification de confiance.

La raison certificats de signature de code sont si chers, c'est que quelqu'un doit vérifier que vous êtes qui vous dites que vous êtes. Dans mon cas ils ont vérifié l'adresse et le numéro de téléphone, et il m'a appelé. Les certificats de Comodo semblent un peu moins chers.

10
répondu BCran 2010-08-04 22:03:58

les certificats de signature de Code ne sont pas" gérés", ce qui signifie qu'ils ne sont pas mis à jour eux-mêmes... les chances sont que vous devez acheter un nouveau une fois qu'il expire.



Vous pouvez configurer une autorité de Certification (CA) - stick avec une CA basée sur windows si vous êtes un magasin windows-only mais sinon je recommande Linux avec quelque chose comme DogTag Certificat De Système.



Notez que si vous créez votre propre CA, vous devrez exporter le certificat public et installez cela (de façon à ce qu'il soit fiable en tant qu'AC racine) sur n'importe quel serveur qui exécutera du code/des scripts signés par un certificat de signature de code émis par cette AC. C'est beaucoup, beaucoup moins cher (gratuit?) comparé à payer pour un cert tous les X ans - sans parler des autres certs que vous pourriez émettre pour diverses raisons/utilisations!

-2
répondu static 2013-04-30 16:48:25

vous devez éviter de timestamper le processus de signature ou de timestamper le processus pendant qu'il est dans la validité du certificat. Des outils tels que Sign PE et de l'autre vous permet de contrôler ces paramètres

-2
répondu Michael Haephrati 2017-03-11 22:07:42