Je souhaite publier une de mes applications en open-source et signer numériquement les fichiers 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 le faire pour que tout le monde puisse vérifier que cette construction a été faite par moi, pas par quelqu'un d'autre. Je veux é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 qu'ils puissent 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 des projets open-source en offrant des certificats à prix réduit? Il n'a pas à être 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.)
Vous pouvez essayer CAcert . Avec cela, vous êtes certifié par d'autres utilisateurs de CAcert. CAcert dispose d'un système basé sur la réputation, donc si vous êtes suffisamment certifié, 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 qu'il est trop efficace 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.
Pour les développeurs open source, Certum fournit des certificats de signature de code gratuitement*
Entrez simplement "développeur open source" dans le champ "entreprise" lorsque vous demandez le certificat. C'est ça.
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. Il s'agit désormais d'un service payant uniquement.
Mise à jour: n'est plus gratuite, 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.
Pour obtenir un certificat de signature de code gratuit auprès 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.
Accédez à Test ID et certificats de signature de code OpenSource , et soumettez le formulaire.
Le certificat apparaîtra sous Activer les certificats . Cliquez sur Activer .
Passez par l'assistant d'activation. Pour Organisation entrez Développeur Open Source . Pour Unité organisationnelle, entrez Publication de logiciels .
Vous recevrez un e-mail vous 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 façon de crypter varie selon le client de messagerie. Pour Outlook, assurez-vous que vous disposez d'un certificat de messagerie ( disponible gratuitement ) et activez le cryptage .
Dans un jour ou deux, vous devriez recevoir un e-mail avec 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 indique d'envoyer la preuve à [email protected]
, Certum accepte également les preuves envoyées à l'adresse de réponse [email protected]
, auquel vous pouvez envoyer des e-mails cryptés.
Mise à jour 2016: StartCom a été acquis par WoSign dans des circonstances douteuses . Je ne ferais pas confiance à StartCom/WoSign. Considérez le texte ci-dessous comme une note historique sur la qualité de StartCom étaitjusqu'à début 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.
Obtention du certificat de signature de code
L'obtention d'un certificat de signature de code nécessite 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 de mon expérience).
Si vous voulez obtenir les détails immédiatement, lisez cet article de blog . J'ai été validé en moins d'une heure (pour un montant 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 du certificat 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 certificat valable pendant deux ans (j'ai reçu le mien dans l'heure).
Problème: OID de signature à vie
Les certificats de classe 2 de StartCom ont la signature à vie OID définie. En raison de ce bit, la signature du code signé deviendra invalide après l'expiration du certificat, même lorsqu'il est horodaté.
Lorsque 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 service 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 est niquement disponible 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 ne se produit 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 valables 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 pendant 350 jours et pendant cette période, vous pouvez demander gratuitement des certificats de signature de code. 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 de 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 demandé. La révocation d'un certificat coûte 29,90 $. Bien que lorsque j'ai changé mon e-mail un jour après avoir obtenu 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 après 350 jours; alors vous devez 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 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 le statut actuel du certificat lorsqu'il a interrogé les serveurs OCSP de StartCom pour le statut de révocation de mon nouveau certificat. sujet du forum éventuellement pertinent
Après environ une demi-journée, mon certificat était connu des serveurs OCSP et mon nom s'est affiché 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.
Vous pouvez voir le produit StartSSL .
Vous devrez acheter un certificat de signature de code. Les moins chers viennent de Comodo. J'ai publié le code source et les binaires, comme vous le planifiez, et signé les binaires. Voir changeur de lots date et heure pour les photos et autres fichiers.