Certificat de signature de code pour les projets open source?

118

Je souhaite publier une de mes applications en open-source et je souhaite signer numériquement les binaires que j'ai créés avec mon propre certificat. (Bien sûr, n'importe qui d'autre peut simplement télécharger le code et le construire lui-même avec son propre certificat.) Je veux faire cela pour que tout le monde puisse vérifier que cette version a été faite par moi, pas par quelqu'un d'autre. Je souhaite également créer un site Web sécurisé avec un certificat SSL valide afin que les visiteurs puissent créer leurs propres comptes de manière sécurisée afin de pouvoir contribuer à ce projet.

Je pourrais créer un certificat auto-signé, mais je n'aime pas vraiment cette option. Ou je pourrais payer Verisign quelques pièces d'or pour obtenir les certificats qui ne seraient valables que quelques années. Je n'aime pas non plus cette option, car ma trésorerie est précieuse pour moi.

Alors, y a-t-il d'autres options? Par exemple, un fournisseur qui prend en charge les projets open source en proposant des certificats à un prix réduit? Il n'est pas nécessaire que ce soit gratuit, juste beaucoup moins cher que Verisign ...

(Le projet est créé en C # avec Visual Studio 2008. Plus un projet supplémentaire dans ASP.NET qui veut SSL.)

Wim ten Brink
la source
Cette question est sur le sujet. Il décrit le problème (désir de publier) et ce qui a été fait (application construite, mais pas signée). Il ne demande pas de recommandations, seulement les noms d'un ou plusieurs prestataires gratuits ou à bas prix. Il demande des réponses qui «trouvent» une ressource hors site, mais pas d'une manière susceptible d'attirer des réponses avisées ou du spam, car il y a peu d'options disponibles.
Edward Brey
5
Je tiens à souligner que j'ai posé cette question près de 8 ans maintenant. Aujourd'hui, il existe déjà quelques options supplémentaires, mais la fiabilité devient un problème. Il existe également de nombreuses options gratuites pour SSL et le développement Web, mais les certificats de signature de code sont encore rares ...
Wim ten Brink
1
Hélas LetsEncrypt ne prendra pas en charge les certificats de signature de code . Mi 2018, moins cher que je peux trouver est de Comdo de codesigncert pour 59 $ par voie anale. Ce serait beaucoup plus facile si les gouvernements délivraient à tous les citoyens / sujets un certificat de signature de code comme pièce d'identité nationale ... mais alors je serais obligé de faire confiance à mon gouvernement
earcam le

Réponses:

9

Vous pouvez essayer CAcert . Avec cela, vous êtes certifié par d'autres utilisateurs de CAcert. CAcert a un système basé sur la réputation, donc si vous êtes certifié assez souvent, votre certificat est considéré comme valide.

Vous devrez peut-être ajouter CAcert en tant qu'autorité de confiance sur le système cible. L'auto-signature de votre exécutable devrait être une option suffisante, mais vous devrez fournir le certificat public. L'utilisation d'une autorité connue peut aider à vérifier le fichier, mais je pense que c'est trop tuer dans ce cas, utilisez une somme de contrôle ou un hachage sha2 du fichier en combinaison avec votre certificat auto-signé. Vous pouvez configurer une boîte Linux en tant qu'autorité de certification, mais ils devront faire confiance à votre certificat public.

Mnementh
la source
48
L'inconvénient de CACert est qu'il n'est inclus par défaut dans aucun des principaux navigateurs ( wiki.cacert.org/InclusionStatus ), donc l'expérience utilisateur typique n'est pas meilleure que celle d'un certificat auto-signé.
Kohsuke Kawaguchi
6
De plus, si vous souhaitez signer des exécutables Windows, sachez que CACert ne figure pas dans la liste des autorités de certification (CA) membres du programme de certificat racine Windows , tandis que Unizeto CERTUM est
user377486
J'ai essayé CAcert. Cette photo résume le tout: imgur.com/a/rNYqBme
selbie
la liste des autorités de certification mise à jour est disponible sur ccadb-public.secure.force.com/microsoft
Erdogan Kurtur le
35

Pour les développeurs open source, Certum fournit des certificats de signature de code gratuitement *

Entrez simplement "développeur open source" dans le champ "société" lorsque vous demandez le certificat. C'est tout.

Le lien vers les certificats de signature de code open source est ici

[*] Depuis 2016, le certificat de signature de code Open Source n'est plus disponible gratuitement. C'est maintenant un service payant uniquement.

Stefan
la source
2
Vous êtes allé sur le site et ne pouvez voir que les certificats SSL, pouvez-vous créer un lien profond vers les certificats de signature de code?
Frozenskys
3
Ils ne semblent plus offrir cela.
Chad
3
AFAIK, ils ont cessé d'offrir les certificats de développeur Open Source gratuits. Sinon, j'apprécierais vraiment un lien.
reiniero
15
Il semble que les certificats ne soient plus gratuits - la référence à la signature de code open source a été supprimée de la page des certificats de test, et il existe maintenant une page produit distincte en.sklep.unizeto.pl/data-safety/code-signing-certificates/ … . À 14 €, ils sont cependant beaucoup moins chers que les autres certificats. Le processus d'inscription semble être le même que lorsqu'ils étaient gratuits.
Alex Warren
2
@quasoft ce sont des certificats SSL.
Nathan Osman le
27

Mise à jour: plus gratuite, maintenant 105,78 € (à partir du 19 février 2017). Le coût est moindre si vous possédez déjà leur matériel cryptographique. FWIW, voici les instructions précédentes.


Pour obtenir un certificat de signature de code gratuit de Certum / Unizeto pour vous-même en tant qu'individu, suivez ces étapes. Utilisez Internet Explorer ou Safari, car ils prennent en charge le mécanisme d'échange de clés.

  1. Accédez aux certificats Test ID et OpenSource Code Signing et soumettez le formulaire.

  2. Le certificat apparaîtra sous Activer les certificats . Cliquez sur Activer .

  3. Passez par l'assistant d'activation. Pour Organisation, entrez Open Source Developer . Pour Unité organisationnelle , entrez Publication de logiciels .

  4. Vous recevrez un e-mail demandant une preuve d'identité. Répondez avec un lien vers le projet open source et une image de votre permis de conduire (ou d'un autre document accepté). Pour protéger votre vie privée, vous devez crypter la réponse. * La méthode de chiffrement varie selon le client de messagerie. Pour Outlook, assurez-vous de disposer d'un certificat de messagerie ( disponible gratuitement ) et activez le cryptage .

  5. Dans un délai d'un jour environ, vous devriez recevoir un e-mail contenant un lien pour récupérer votre certificat. Vous devez ouvrir le lien à partir du même ordinateur et navigateur que vous avez utilisé pour démarrer le processus.

* Bien que l'e-mail de vérification de Certum dise d'envoyer la preuve à [email protected], Certum accepte également la preuve envoyée à l'adresse de réponse [email protected], à laquelle vous pouvez envoyer un e-mail crypté.

Edward Brey
la source
A bien fonctionné, merci beaucoup! Savez-vous s'ils renouvellent le certificat gratuitement après la période d'un an? Ou est-ce juste une période d'essai et ensuite cela devient un certificat payé?
Al-Khwarizmi
1
Après environ 10 mois, vous recevrez un e-mail pour vous rappeler que votre certificat expire. Dans ce mail, ils mentionnent que vous pouvez renouveler, mais cela n'a pas fonctionné (pour moi il y a 4 mois). J'avais demandé un nouveau certificat de la même manière qu'un an plus tôt et je l'ai reçu. En bref: il vous suffit de demander un nouveau certificat chaque année.
Martijn Stolk
La liste déroulante des pays ne semble plus répertorier les États-Unis? J'ai obtenu un certificat en 2013, donc cela fonctionnait pour moi.
Warty
J'ai essayé ça. Maintenant un certificat de 90 jours. Mais, ne peut pas passer l'étape "Activer" car cliquer sur le bouton "Générer les clés" ne fait rien, et Next lance l'alerte "Générer une paire de clés" ....
StevoKeano
Ils semblent avoir la méthode RSE restante. Comment peuvent-ils savoir si la RSE a été générée par leur matériel ou non?
OCTAGRAM
22

Mise à jour 2016: StartCom a été acquis par WoSign dans des circonstances douteuses . Je ne ferais pas confiance à StartCom / WoSign. Considérons le texte ci - dessous une note historique sur la façon dont bon StartCom était jusqu'au début de 2015 .

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 .

# 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

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.

Rob W
la source
1
Merci pour les informations sur la signature à vie et "un seul certificat de signature de code actif". Vaut vraiment la peine de savoir. J'avais l'intention de le faire un jour, et je pense que je veux toujours le faire. Vous utilisez déjà des certificats SSL gratuits.
ygoe
2
Mise à jour sur StartCom: les certificats de code n'ont désormais pas d'OID de signature à vie défini. Ils sont maintenant aussi bons que tous les autres certificats de signature de code. Pour les validations d'organisation, la signature du code du noyau est même incluse.
Josef dit réintégrer Monica le
8

Vous pouvez également consulter KSoftware . Ils revendent les certificats de signature de code Comodo pour 99 $ US / an.

Joe Kuemerle
la source
1
Je les ai utilisés avec succès dans le passé. Tucows est également un revendeur, et si vous faites un accord sur plusieurs années, je pense que vous pouvez les obtenir pendant environ 70 par an.
EricLaw
KSoftware a un excellent service, alors que Comodo n'est pas bon, les gars de KSoftware sont rapides à répondre, je ne suis pas lié, juste un client heureux.
digitai
1
J'ai récemment acheté un certificat avec KSoftware, mais je n'ai toujours pas terminé le processus de validation, l'équipe de validation de Comodo n'arrête pas de me demander un numéro de téléphone mais le Face-à-Face n'a pas dit que c'était obligatoire.
Nicke Manarin
1
Je viens d'acheter un certificat de signature de code chez K Software car la différence de prix était substantielle: 75 $ par an au lieu de 175 $ par an. J'essaierai de publier une mise à jour ici après avoir effectué la validation et l'émission. Mon instinct, cependant, dit que cela vaut probablement la peine de payer les 100 $ supplémentaires et d'aller directement avec Comodo. Je vous ferai savoir comment ça se passe ...
Joshua Pinter
1
Mise à jour: J'ai essayé de consulter nos avocats pour obtenir le document requis, mais ils ont dit que cela coûterait environ 1 500 $ à faire. Nous avons donc choisi de simplement nous enregistrer sur D & B.com pour obtenir un numéro DUNS et l'utiliser comme «vérification» de notre existence. Nous l'avons maintenant mais c'était une douleur dans le cul et a pris environ un mois pour terminer du début à la fin. Si vous êtes pressé, je regarderais différents fournisseurs, comme digicert.com. (Cela étant dit, je ne sais pas s'ils sont différents / meilleurs.)
Joshua Pinter
8

Vous pouvez jeter un œil au produit StartSSL .

Remarque StartSSL est maintenant fermé et n'émet plus de certificats.

Frozenskys
la source
4
Drôle. Google Chrome me signale que startssl.com a un certificat invalide et me prévient des risques liés à l'accès à ce site. :-) J'ai continué, cependant. Ça a l'air bien.
Wim ten Brink
1
Si vous ajoutez le certificat de l'autorité de certification racine à partir du démarrage, cela disparaîtra. Je crois que FireFox 3+ est livré avec ce certificat CA intégré.
Frozenskys
46
Il est toujours agréable d'importer des autorités de certification racine. Kinda va à l'encontre de tout le but de les avoir.
Matthew Whited
3
StartSSL est le premier CA gratuit (le seul encore) avec un RootCA sous Windows Vista +. Il existe une mise à jour de certificat pour les anciennes versions de Windows qui l'incluent trop afaik. Pourquoi Chrome ne l'a pas en tant que RootCA ou de secours à Windows pour vérifier n'est qu'un problème de Chrome.
Robert MacLean
6
Les certificats de signature de code de BTW StartSSL sont bêta et doivent être vérifiés (ce qui n'est pas gratuit pour l'instant 50 $)
Robert MacLean