Déploiement ClickOnce et Authenticode

Mise à jour : novembre 2007

Authenticode est une technologie Microsoft utilisant un chiffrement standard pour signer du code d'application avec des certificats numériques qui vérifient l'authenticité de l'éditeur de l'application. En utilisant Authenticode pour le déploiement des applications, ClickOnce permet d'éviter des menaces de type « cheval de Troie », qu'une personne malveillante utilise pour présenter un virus ou un autre programme préjudiciable comme un programme légitime provenant d'une source établie et digne de confiance. Tous les déploiements ClickOnce doivent être signés avec un certificat numérique.

Les sections suivantes décrivent les différents types de certificats numériques utilisés avec Authenticode, la validation des certificats à l'aide d'autorités de certification (CA, Certificate Authority), le rôle de l'horodatage dans les certificats ainsi que les méthodes de stockage disponibles pour les certificats.

Authenticode et signature de code

Un certificat numérique est un fichier qui contient une paire de clés publique/privée de chiffrement, ainsi que des métadonnées décrivant l'éditeur à qui le certificat a été délivré et l'agence qui a publié le certificat.

Il existe différents types de certificats Authenticode, chacun d'eux étant configuré pour des types de signature différents. Pour les applications ClickOnce, vous devez posséder un certificat Authenticode valable pour la signature de code ; si vous essayez de signer une application ClickOnce avec un autre type de certificat, tel qu'un certificat de messagerie électronique numérique, il ne fonctionnera pas. Pour plus d'informations, consultez Introduction to Code Signing (https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp).

Vous pouvez obtenir un certificat pour la signature de code de trois façons différentes :

  • Achetez un certificat à un fournisseur de certificats.

  • Procurez-vous un certificat auprès d'un groupe de votre organisation responsable de la création de certificats numériques.

  • Générez votre propre certificat avec MakeCert.exe, inclus dans le Kit de développement logiciel (SDK) .NET Framework.

Avantages apportés par l'utilisation d'autorités de certification aux utilisateurs

  • Un certificat généré à l'aide de l'utilitaire MakeCert.exe est généralement appelé « certificat automatique » ou « certificat de test ». Ce type de certificat fonctionne pratiquement de la même façon qu'un fichier .snk dans le .NET Framework : il se compose uniquement d'une paire de clés de chiffrement public/privée et ne contient pas d'informations vérifiables à propos de l'éditeur. Vous pouvez utiliser les certificats automatiques pour déployer des applications ClickOnce avec un niveau de confiance élevé dans un intranet ; toutefois, lorsque ces applications sont exécutées sur un ordinateur client, ClickOnce les identifie comme provenant d'un éditeur inconnu. Par défaut, les applications ClickOnce signées avec des certificats automatiques et déployées sur Internet ne peuvent pas utiliser le déploiement d'applications approuvées.

  • En revanche, si vous recevez un certificat d'une autorité de certification (fournisseur de certificats ou département de votre entreprise, par exemple), le certificat garantit une sécurité plus élevée pour vos utilisateurs. Non seulement il identifie l'éditeur du logiciel signé, mais il vérifie également cette identité en contactant l'autorité de certification qui l'a signé. Si l'autorité de certification n'est pas l'autorité racine, Authenticode remontera également à l'autorité racine pour vérifier que l'autorité de certification est autorisée à publier des certificats. Pour bénéficier d'une sécurité accrue, vous devez utiliser un certificat publié par une autorité de certification chaque fois que c'est possible.

Pour plus d'informations sur la génération de certificats automatiques, consultez Outil Certificate Creation Tool (Makecert.exe).

Rôle de l'horodatage pour éviter une expiration accidentelle

Bien que les certificats fournissent une sécurité accrue, un tiers non autorisé peut obtenir un certificat ainsi que le mot de passe qui l'accompagne auprès de son propriétaire légitime. Par défaut, un certificat publié par une autorité de certification est valable pour 12 mois seulement. Cela oblige le propriétaire du certificat à revérifier son identité par l'intermédiaire de l'autorité de certification et permet d'éviter une utilisation prolongée d'un certificat compromis.

En général, la fonctionnalité d'expiration du certificat exige une nouvelle signature de votre application ClickOnce tous les 12 mois. La prise en charge de l'horodatage par Authenticode permet d'éviter cela. Lorsque vous signez un déploiement ClickOnce à l'aide d'un certificat, ClickOnce enregistre la date et l'heure de la signature et les incorpore dans la signature numérique du déploiement. Pour autant que le déploiement ait été signé lorsque le certificat était encore valide, ClickOnce permet à l'application de s'exécuter même si le certificat a expiré depuis.

Les outils de Visual Studio et du Kit de développement logiciel (SDK) Windows permettant de créer des déploiements ClickOnce, Mage.exe et MageUI.Exe, prennent en charge l'horodatage.

Stockage des certificats

  • Vous pouvez stocker des certificats en tant que fichier .pfx dans votre système de fichiers ou les stocker dans un conteneur de clé. Un utilisateur d'un domaine Windows peut avoir plusieurs conteneurs de clé. Par défaut, MakeCert.exe stocke des certificats dans votre conteneur de clé personnel, sauf si vous spécifiez qu'ils doivent être enregistrés dans un fichier .pfx. Mage.exe et MageUI.exe, les outils du Kit de développement logiciel (SDK) Windows servant à créer des déploiements ClickOnce, vous permettent d'utiliser des certificats stockés à l'aide de l'une ou l'autre de ces méthodes.

Voir aussi

Concepts

Vue d'ensemble du déploiement ClickOnce

Déploiement et sécurité ClickOnce

Vue d'ensemble du déploiement d'applications approuvées

Référence

Outil Manifest Generation and Editing (Mage.exe)