Certificat de signature de code pour les projets open-source?

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

Je pourrais créer un certificate auto-signé, mais je n’aime pas vraiment cette option. Ou je pourrais payer quelques pièces d’or à Verisign pour obtenir les certificates valables pendant quelques années seulement. Je n’aime pas cette option non plus, car ma trésorerie est précieuse pour moi.

Y a-t-il d’autres options? Par exemple, un fournisseur qui prend en charge des projets open-source en offrant des certificates à un prix réduit? Ce n’est pas forcément gratuit, mais beaucoup moins cher que Verisign …

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

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 suffisamment certifié, votre certificate est considéré comme valide.

Vous devrez peut-être append CAcert comme 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 certificate public. Utiliser une autorité connue peut aider à vérifier le fichier, mais je pense que tuer est inutile. Dans ce cas, utilisez une sum de contrôle ou un hachage sha2 du fichier en combinaison avec votre certificate auto-signé. Vous pouvez configurer une boîte Linux en tant qu’autorité de certificateion, mais ils devront faire confiance à votre certificate public.

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

Entrez simplement “open source developer” dans le champ “company” lorsque vous demandez le certificate. C’est tout.

Le lien pour ouvrir des certificates de signature de code source est ici

[*] Depuis 2016, le certificate de signature de code source ouvert n’est plus disponible gratuitement. C’est maintenant un service payant.

Mise à jour: plus gratuit, maintenant 105,78 € (au 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.


Procurez -vous un certificate de signature de code gratuit de Certum / Unizeto en tant qu’individu, procédez comme suit. Utilisez Internet Explorer ou Safari, car ils prennent en charge le mécanisme d’échange de clés.

  1. Accédez aux certificates Test ID et OpenSource Code Signing , puis soumettez le formulaire.

  2. Le certificate apparaîtra sous Activer les certificates . Cliquez sur Activer .

  3. Parcourez l’assistant d’activation. Pour l’ organisation, entrez Développeur Open Source . Pour Unité organisationnelle , entrez Software Publishing .

  4. Vous recevrez un email demandant une preuve d’identité. Répondez avec un lien vers le projet open source et une image de votre permis de conduire (ou un autre document accepté). Pour protéger votre vie privée, vous devez crypter la réponse. * La manière de chiffrer varie selon le client de messagerie. Pour Outlook, assurez-vous d’avoir un certificate de messagerie ( disponible gratuitement ) et activez le cryptage .

  5. Dans un jour ou deux, vous devriez recevoir un email avec un lien pour collecter votre certificate. Vous devez ouvrir le lien à partir du même ordinateur et du même navigateur que vous avez utilisé pour démarrer le processus.

* Bien que l’e-mail de vérification de Certum indique que l’envoi de la preuve à [email protected] , Certum accepte également la preuve envoyée à l’adresse de réponse [email protected] , à laquelle vous pouvez envoyer des e-mails cryptés.

Mise à jour 2016: StartCom a été acquis par WoSign dans des circonstances discutables . Je ne ferais pas confiance à StartCom / WoSign. Considérez le texte ci-dessous comme une note historique sur la qualité de StartCom jusqu’au début de 2015 .

J’ai un certificate 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 très raisonnables.

Obtenir le certificate de signature de code

Obtenir un certificate 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 suivant mon expérience).
Si vous voulez obtenir les détails à la fois, lisez ce billet de blog . J’ai été validé dans l’heure qui a suivi (payant 59.90 $, via Paypal).

Après avoir été validé, générez une nouvelle clé privée et une demande de signature de certificate (CSR). Notez que tous les champs sauf la clé publique sont ignorés . Toutes les informations contenues dans le certificate sont déduites des informations que vous fournissez lors de la validation de l’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 certificate valide pour deux ans (j’ai obtenu le mien en une heure).

Problème: OID de signature à vie

Les certificates de classe 2 de StartCom sont dotés de l’OID de signature à vie. À cause de ce bit, la signature du code signé ne sera plus valide après l’expiration du certificate, même s’il est horodaté.

Lorsque j’ai demandé à Eddy Nigg (directeur de l’exploitation / directeur technique de StartCom) la raison de cette OID, il a répondu:

Cela exige de nous que les CRL fonctionnent jusqu’à 20 ans après l’expiration des certificates. C’est quelque chose que nous pouvons faire pour les certificates 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 organismes légalement établis et coûte 199,90 $. Ainsi, les développeurs individuels ne peuvent pas utiliser l’horodatage avec un certificate 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 fonctionneraient toujours (pour ceux qui veulent l’utiliser); mais sans signature vérifiée).

Remarque: Toujours horodater votre code, même si l’indicateur de signature à vie est défini ! Les signatures horodatées restront valides jusqu’à la date d’expiration du certificate, même si le certificate a été révoqué (évidemment, uniquement si la signature a été créée avant la révocation du certificate).

Utilisation pratique du certificate

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 gratuitement des certificates de signature de code. Vous ne pouvez avoir qu’un seul certificate de signature de code valide et il peut être utilisé pour signer n’importe quel code (MSI, DLL, XPI, …) mais pas le code du pilote (cela nécessite un EV).

Pour modifier un atsortingbut du certificate, le certificate précédent doit être révoqué et un nouveau demandé. La révocation d’un certificate coûte 29,90 $. Bien que quand j’ai changé mon email un jour après avoir obtenu un certificate de signature de code, ils ont exceptionnellement révoqué mon certificate sans frais (j’ai été positivement surpris)!

Expiration

Lorsque votre certificate 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 après 350 jours, vous devez alors confirmer votre identité pour 59,90 $), vous pouvez demander un nouveau certificate sans révoquer le précédent. N’oubliez pas de publier une nouvelle version de votre logiciel signée avec ce nouveau certificate 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 certificate, j’ai signé mon module complémentaire Firefox. Cependant, il affiche toujours “(Auteur non vérifié)”, même si mon fichier XPI est correctement signé. Il s’est avéré que Firefox n’a pas obtenu le statut actuel du certificate lorsqu’il a interrogé les serveurs OCSP de StartCom pour connaître l’état de révocation de mon nouveau certificate. sujet de forum éventuellement pertinent

Après environ une demi-journée, mon certificate était connu des serveurs OCSP et mon nom s’est présenté comme prévu. Leçon apprise: Lorsque vous avez un nouveau certificate, attendez environ une journée avant de publier votre logiciel avec la nouvelle signature.

Vous pourriez jeter un oeil au produit StartSSL .

Vous pouvez également consulter KSoftware . Ils revendent des certificates de signature de code Comodo pour 99 USD / an.

Vous devrez acheter un certificate de signature de code. Les moins chers sont de Comodo. J’ai publié du code source et des fichiers binarys, comme vous prévoyez, et signé les fichiers binarys. Voir Changeur de lot de date et heure pour les photos et autres fichiers .