Signature de Code FAQ

27 juin 2023

Signature de Code FAQ

 Introduction

GlobalSign propose deux types de certificats de Signature de Code. Les méthodes et les exigences pour signer le code varient d’une plate-forme à l’autre, ce qui crée souvent de la confusion pour l’utilisateur final. Cet article clarifiera les différences entre les types de certificats de signature de code et répondra aux questions courantes sur les exigences de signature de code pour différentes plates-formes.

 
Certificat Signature de Code


Qu’est-ce qu’un certificat de signature de code ? En quoi un certificat de signature de code est-il unique par rapport aux autres certificats X.509 v3?
Le certificat numérique contient des champs tels que l’utilisation de la clé et l’utilisation de la clé étendue qui dictent l’objectif d’un certificat. Lorsqu’un certificat SSL pour un site Web contiendrait une utilisation de la clé étendue pour l’authentification du serveur montrant qu’il peut être utilisé pour identifier un serveur, un certificat de signature de code a une utilisation de la clé étendue avec la signature de code pour indiquer qu’il peut être utilisé pour signer du code.
Il existe d’autres valeurs qui sont renseignées dans ces champs en fonction du type de certificat. Limiter les cas d’utilisation des certificats numériques atténue certains risques en cas de compromission des certificats. Un certificat avec tous les objectifs clés activés poserait un risque beaucoup plus grand en cas de compromission.

Existe-t-il différents types de certificats de signature de code?
Oui. GlobalSign propose des certificats de signature de code de validation standard et étendue.

Quelle est la différence entre la signature de code Standard et la signature de code EV?
Les certificats de signature de code standard sont soumis à une validation organisationnelle standard. Les certificats de signature de code EV sont soumis à des exigences strictes de validation étendue définies par le CA/B Forum.

Les certificats de signature de code EV ont l'avantage supplémentaire d'offrir une réputation instantanée avec Microsoft Smart Screen. Les certificats de signature de code Standard doivent se forger une réputation auprès du programme Smart Screen avant que les avertissements Smart Screen ne disparaissent.

Les certificats de signature de code EV sont également requis pour accéder au Portail de tableau de bord du centre de développement matériel Windows par lequel tous les pilotes en mode Kernel ciblant Windows 10 (Build 1607 et versions ultérieures) doivent être signés.

Existe-t-il différentes options de commande pour les certificats de signature de code standard et EV? 
Oui, les certificats de signature de code standard et les certificats de signature de code EV ont 3 options de commande et peuvent être livrés sur les clés cryptographiques SafeNet, les HSM ainsi que sur Azure Key Vault. Veuillez vous référer à la section 'Options de stockage des clés' du tableau comparatif ici

Puis-je utiliser le même certificat sur plusieurs ordinateurs?
Oui, mais pas simultanément, car la clé cryptographique Safenet ne peut être branché que sur un seul ordinateur à la fois. Tant que les pilotes SafeNet sont présents sur un autre ordinateur, la clé cryptographique peut être branché à ce poste de travail pour être utilisé.

Puis-je signer un fichier à distance?
Les certificats de signature de code standard et les certificats de signature de code EV ne sont pas accessibles via le protocole Bureau à distance (RDP). La clé cryptographique USB doit être branché à l’ordinateur local. Remarque : La signature d’un fichier à distance dépend du stockage de la clé. 

Une clé USB en locale peut être utilisée pour signer un fichier sur une machine distante, mais une clé USB distante ne peut pas être utilisée pour signer du tout.

Comment activer l’authentification unique de la clé USB?  
Pour activer l’authentification unique de la clé USB, ouvrez le client d’authentification Safenet (SAC). Cliquez ensuite sur Paramètres du client. Sous l’onglet Avancé, cochez la case Activer l’ouverture de session unique, comme indiqué dans le diagramme ci-dessous. Cliquez sur Enregistrer pour que les modifications prennent effet.

Remarque : Cette fonctionnalité est idéale pour les clients qui souhaitent signer des codes par lot. De cette façon, vous n’avez pas besoin d’entrer le mot de passe de la clé USB à chaque fois. Toutefois, pour la signature de code régulière, nous vous recommandons vivement de désactiver cette fonctionnalité car ce n’est pas une bonne pratique

Code-Signing-FAQ-safenet.jpg

 

Signature de Code


Les exigences pour signer du code évoluent-t-elles en fonction des plateformes?
Oui. Les exigences en matière de signature de code varient d’une plate-forme à l’autre. La configuration requise pour signer des fichiers JAR Java diffère de la signature d’un exécutable portable Windows. Il existe également des exigences distinctes pour la signature d’applications sur OS X et iOS. Comment et où votre (vos) application(s) sera (seront) distribuée(s) peut également être un facteur dans les exigences de signature.

Quelles sont les conditions requises pour signer du code dans Windows?
La configuration requise pour la signature de code Windows varie en fonction de la ou des versions de Windows que vous ciblez et du type de code que vous signez.

Microsoft a des exigences différentes pour le code qui s’exécutera en mode utilisateur par rapport au code qui s’exécutera en mode Kernel.

Le code qui s’exécute en mode utilisateur peut utiliser des certificats qui remontent à une autorité de certification approuvée, telle que GlobalSign. Pour la signature en mode Kernel, la chaîne de certificats doit se terminer à l’autorité de certification racine de Microsoft. Pour ce faire, GlobalSign fournit un certificat croisé qui permet à nos certificats de signature de code de revenir à l’autorité de certification racine de Microsoft et d’être approuvés pour la signature en mode Kernel.

Windows (toutes versions) a une exigence supplémentaire. Les pilotes en mode Kernel doivent être signés par le portail du tableau de bord du Centre de développement matériel Windows, auquel il faut accéder à un certificat de signature de code EV.

Existe-t-il des exigences ou des facteurs supplémentaires liés à la signature de code Windows?
Un autre facteur est l’algorithme de signature utilisé pour signer votre certificat ainsi que l’algorithme de signature utilisé pour signer le code. Pour plus de détails sur ces exigences, consultez notre article Sur la prise en charge de l’algorithme de hachage de signature de code Windows.

Remarque : À compter du 26 janvier 2021, GlobalSign n’offrira plus de services d’horodatage SHA-1 Authenticode et CodeSign.

Dois-je signer toutes les DLL incluses dans mon application?
Windows ne vérifie pas les signatures sur les DLL lorsqu’elles sont chargées par un exécutable. Il existe des exceptions à cette règle, telles que les DLL liées aux DRM et tous les modules sous WindowsRT/ARM.

Si ces scénarios ne s’appliquent pas, il n’est pas nécessaire de signer les DLL, mais une raison de signer chaque DLL est d’exécuter un contrôle d’intégrité chaque fois que votre application se lance.

Puis-je signer un fichier pour prendre en charge plusieurs versions de Windows avec des exigences différentes?
Dans la plupart des cas, oui, vous pouvez utiliser « Double Signature » pour placer plusieurs signatures sur un fichier. Une signature peut utiliser un certificat de signature de code SHA-1 et une autre signature peut utiliser un certificat SHA-2. Les formats prenant en charge les signatures doubles sont les suivants : .exe, .dll et .sys.

Les programmes d’installation MSI ne prennent pas en charge les signatures doubles. Vous trouverez plus d’informations sur la double signature, y compris la prise en charge MSI, dans cet article Microsoft.

Pour obtenir un certificat de signature de code SHA-1 et SHA-2 standard, vous pouvez simplement réémettre votre certificat SHA-1 ou SHA-2 et modifier l’algorithme de signature au cours du processus. Cela se traduira par deux certificats de signature de code valides. L’un a signé avec SHA-1 et l’autre avec SHA-2.

Si vous avez deux certificats et que vous souhaitez signer deux fois vos fichiers, veuillez suivre ce guide Double Signature.

Remarque: cette option n’est disponible que pour les certificats de signature de code standard, la signature de code EV est SHA-256 uniquement et ne peut pas être modifiée. Vous pouvez toutefois signer deux fois avec un certificat de signature de code SHA-1 standard et un certificat de signature de code SHA-256 EV.

Quels utilitaires sont généralement requis pour signer des fichiers?

Windows:
Microsoft signtool est l’utilitaire standard pour la signature de pilotes et de fichiers exécutables. Il est fourni dans le cadre du Kit de développement logiciel (SDK) Windows. Signtool peut signer à l’aide d’un fichier .pfx local ou tirer parti des certificats de votre magasin de certificats Windows. Il fonctionne avec les certificats de signature de code standard et EV.

De nombreuses applications de développement prennent en charge nativement la signature de code à l’aide de la méthode .pfx ou du magasin de certificats. Par exemple, lors de la signature de macros VBA via Excel, l’application utilise des certificats de votre magasin de certificats local. D’autres applications telles qu’InstallShield prennent également en charge la signature de code intégrée.

Java:
Jarsigner est un utilitaire fourni avec le JDK Java et peut être utilisé pour signer des certificats. Généralement, si vous signez du code pour Java, vous allez créer un Keystore Java (.jks) avec Java KeyTool (également fourni avec le JDK), mais jarsigner prend également en charge les fichiers .pfx, à condition que vous connaissiez l’alias.

EV Code Signing fonctionne également avec Jarsigner. Il est un peu plus avancé et implique l’édition d’un fichier de configuration pour spécifier l’emplacement de la clé USB. Plus de détails dans l’article Java EV Code Signing.

Apple:
Alors que les certificats de signature de code standard et EV peuvent signer des fichiers .dmg et .app, la stratégie Gatekeeper locale par défaut sur OS X et la stratégie Apple App Store exigent l’utilisation d’un certificat émis par Apple lié à un identifiant de développeur Apple.

Les certificats de signature de code d’autres autorités de certification peuvent toujours être utilisés pour signer des éléments tels que des profils et des stratégies sous OS X. L’utilitaire par défaut sur OS X pour signer le code est appelé codesign. Vous trouverez plus d’informations sur cet utilitaire dans le manuel du produit.

Related Articles

Système d’Alerte GlobalSign

Voir les alertes de système récentes.

Voir les Alertes

Atlas Discovery

Analysez vos terminaux pour localiser tous vos Certificats.

Inscrivez-vous

Configuration Test SSL

Vérifiez l’installation de votre certificat pour les problèmes et les vulnérabilités SSL.

Contactez l’équipe support