Comment signer une application avec SDK pour Windows

Nous allons vous montrer comment signer un fichier à l'aide de Signtool sous Windows et un certificat Code signing. Supposons que vous avez installé SDK Windows (Software Development Kit) et que vous disposez d'un certificat Code signing valide, stocké sur un matériel certifié. Pour installer l'outil SDK pour Windows, utilisez le lien suivant : Windows Software Development Kit (SDK) for Windows 10.

Utiliser Signtool

Signtool.exe est un outil qui vous permet de signer des applications avec un certificat Code Signing. Installez l'outil et suivez nos instructions. L'utilisation est simple - pour signer une application avec votre certificat et appeler les paramètres correctes, vous devez connaître les commandes.

SignTool est un outil de ligne de commande pour signer des fichiers. Votre certificat de signature doit être disponible pour l'ordinateur (vous ne l'installez pas).

Signer avec signtool.exe
Signer avec signtool.exe

Pour signer avec votre certificat, voici les commandes de base :

signtool commande/paramètre

Sign - Signe numériquement les fichiers. Verify - Vérifie la signature numérique en déterminant si le certificat de signature a été émis par une autorité de confiance. Timestamp (horodatage) - permet d'enregistrer la date et l'heure d'un événement. L'horodatage peut être inséré également lors de la signature.

Paramètres utiles :

  • /f SignCertFile – Si vous signez encore avec le fichier .pfx, ce commande spécifie son emplacement. Mais, l'obtention du certificat dans un fichier .pfx n'est plus possible..
  • /fd – Spécifie l'algorithme hash de la signature. L'algorithme par défaut est SHA-1, mais SHA256 est recommandé, utilisez alors /fd SHA256.
  • /s StoreName – spécifie le magasin de certificats à utiliser lors de la recherche du certificat. Le magasin par défaut est My Store.
  • /t URL – ajoute un horodatage et son URL. Les timestamp serveurs URL se trouvent ci-dessous.
  • /td - algorithme d'hachage sécurisé (digest) dans l'horodatage. Choisissez sha256 ou supérieur.
  • /fd - algorithme d'hachage sécurisé (digest). Choisissez sha256 ou supérieur.

Retrouvez la documentation complète sur le web du Microsoft ou en entrant la commande „signtool sign /?“.

Exemple de commande de signature numérique du fichier :

SignTool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:test.exe

Utilisez toujours l'horodatage (timestamp). Il garantit la fiabilité de l'application signée même après l'expiration du certificat. Ceci est très important, car vous n'aurez pas à signer à nouveau les anciennes applications (après l'expiration du certificat Code Signing). Si vous utilisez l'horodatage au moment de la signature, elle restera valide à l'avenir.

Vous pouvez utiliser plusieurs serveurs d'horodatage, nous vous recommandons le serveur timestamp de DigiCert : http://timestamp.digicert.com/

Ce serveur n'utilise pas le port 80, alors inutile d'essayer de l'ouvrir, la page du site timestamp.digicert.com sera introuvable.

Magasin de certificats

Un certificat peut être stocké dans plusieurs emplacements et vous pouvez "l'appeler" de plusieurs manières. Son enregistrement au format .pfx n'est plus possible (les mots de passe sont souvent très faibles) et la clé privée ne peut plus être exportée pour la protéger contre les vols. Le fichier .pfx peut être encore utilisé pour les sauvegardes de certificats S/MIME ou pour le site web.

Un certificat Code Signing est typiquement stocké sur un token USB, ensuite vous effectuez un appel du certificat. Cette méthode est sûre et vous utilisez la même procédure comme si votre certificat était stocké au format pfx. Le vol du certificat est exclu puisque la clé privée ne peut pas être exportée du token. Si vous entrez un mauvais mot de passe 5 fois, le token restera bloqué.

Pour utiliser un stockage, utilisez le paramètre : /n SubjectName

signtool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:test.exe

Ou vous pouvez sélectionner le stockage par défault My - le certificat de signature est trouvé automatiquement :

signtool sign /s My /td sha256 /fd sha256 /t http://timestamp.digicert.com C:test.exe

Vérification de la signature

Maintenant, vous savez comment signer votre application et vous l'avez fourni de la première signature. Comment vérifier une signature ?
Pour vérifier un fichier signé avec signtool, utilisez:

signtool verify C:test.exe

La signature peut être vérifiée également dans les propriétés du fichier. Ouvrez l'Explorateur de fichiers Windows et cliquez sur Détails.

Détails de la signature dans l'Explorateur de fichiers Windows
Signature dans l'Explorateur de fichiers Windows
Cet article vous a-t-il été utile ?