IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Signer un executable avec un certificat valide [Débutant]


Sujet :

Dotnet

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 174
    Points : 7 424
    Points
    7 424
    Billets dans le blog
    1
    Par défaut Signer un executable avec un certificat valide
    Bonjour,

    Je n'y connais absolument rien aux certificats.

    J'utilise un programme tiers, à partir duquel je souhaite exécuter un programme que j'ai écris moi-même.

    Dans la documentation du programme tiers, il y a cette note :
    Note: For security reasons, only executables (*.exe, *.msi, *.msp) signed with a valid certificate are executed.
    Et en effet, lorsque je tente d'exécuter mon programme non signé, j'obtiens une erreur.

    Avec quel outil, et comment puis-je signer mon binaire ?
    Je peux éventuellement installer des certificats (pas de confiance) sur les différents PC cibles : on est dans un réseau d'entreprise.

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Sans être un spécialiste du sujet non plus, il y a normalement deux grandes méthodes pour signer un assembly :
    • via Visual Studio : il faut aller dans les propriétés du projet/signature, et cocher la case correspondante, puis sélectionner une paire de clé (ou en générer une).
    • via l'outil sn.exe


    Après, lorsqu'on signe des assemblys, on utilise une paire de clé, pas un certificat. Je ne sais pas si la vérification peut se faire via le système de certificat de l'OS. Normalement, la vérification est faite via les chaînes d'assembly (je veux charger l'assembly XXX qui a comme clé publique YYYY). Par exemple, System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 cherche à charger l'assembly nommé "System.Data.Linq" dans sa version 4 et dont la clé publique est b77a5c561934e089*. Ceci permet de s'assurer de l'identité de l'assembly que l'on souhaite charger, par exemple, en évitant de charger un assembly qui aurait le même nom.

    Là, on est dans un cas un peu différent, où tu lances un exécutable (donc a priori, sans préciser la chaine d'assembly fortement typé). Je ne sais pas trop comment un programme appelant peu dès lors vérifier l'identité du programme appelé. Il peut néanmoins vérifier qu'il est signé et vérifier sa signature. Peut être serait-ce suffisant dans ton cas ?




    * En réalité, le PublicKeyToken n'est pas la clé publique. C'est un hash issu de la clé publique. L'intérêt est que le hash beaucoup plus petit et donc manipulable par rapport à une véritable clé publique (dont la taille peut être 512, 1024, 2048, ... bits).

    Et la clé publique est incluse dans un assembly signé. Ce qui permet donc de vérifier l'identité d'un assembly n'est pas sa clé publique en elle-même, mais le PublicKeyToken.

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 174
    Points : 7 424
    Points
    7 424
    Billets dans le blog
    1
    Par défaut
    Le message d'erreur indique qu'il faut que le programme soit signé avec un certificat de confiance.

    En fait, c'est une signature du même type que celles des programmes d'installation dont j'ai besoin.

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    D'accord.

    Dans ce cas, c'est peut-être l'outil SignTool qu'il te faut.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 174
    Points : 7 424
    Points
    7 424
    Billets dans le blog
    1
    Par défaut
    J'en suis arrivé à la même conclusion.

    Mais j'ai pas trouvé comment créer un certificat :/

  6. #6
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    L'outil MakeCert peut être utilisé à cette fin.

    Un lien que j'avais stocké dans un coin pour la création de certificat : https://blog.jayway.com/2014/09/03/c...r-development/

    Il s'agit de créer un certificat autosigné, normalement, dans un but de développement. Mais cela doit pouvoir être utilisé dans ton cas dans le cadre d'un déploiement interne.

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 174
    Points : 7 424
    Points
    7 424
    Billets dans le blog
    1
    Par défaut
    Merci beaucoup François.

    J'ai pu créer un certificat autosigné.
    Je l'ai inscrit en tant certificat racine de confiance sur ma machine.
    Je l'ai aussi inscrit de même sur mon poste de test.

    J'ai ensuite signé mon programme avec signtool avec la commande suivante :
    Code cmd : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    signtool sign /v /f ..\moncertificat.pfx /p monmotdepassequivabien monprogrammeasigner.exe

    Et hop ! Maintenant ça marche !

  8. #8
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    21
    Par défaut
    Avec plaisir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Signer un exécutable avec le certificat
    Par raoufam dans le forum WinDev
    Réponses: 0
    Dernier message: 30/11/2015, 19h37
  2. Signer plusieurs applet avec le même certificat ?
    Par jejeman dans le forum Applets
    Réponses: 4
    Dernier message: 07/04/2014, 12h52
  3. Script Execution avec validation
    Par aerane dans le forum Windows
    Réponses: 0
    Dernier message: 26/02/2013, 12h04
  4. comment signer ses assemblie avec un certificat?
    Par giova_fr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/09/2011, 19h53
  5. signer et installer une MIDlet avec un certificat
    Par yocks dans le forum Java ME
    Réponses: 3
    Dernier message: 01/08/2007, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo