ClickOnce et AuthenticodeClickOnce and Authenticode

Authenticode est une technologie Microsoft qui utilise le chiffrement standard pour signer le code d’application avec des certificats numériques. Ces certificats permettent de vérifier l’authenticité de l’éditeur de l’application.Authenticode is a Microsoft technology that uses industry-standard cryptography to sign application code with digital certificates that verify the authenticity of the application's publisher. En utilisant Authenticode pour le déploiement d’applications, ClickOnceClickOnce réduit le risque d’un cheval de Troie.By using Authenticode for application deployment, ClickOnceClickOnce reduces the risk of a Trojan horse. Un cheval de Troie est un virus ou autre programme dangereux qu’un tiers malveillant présente comme un programme légitime provenant d’une source de confiance connue.A Trojan horse is a virus or other harmful program that a malicious third party misrepresents as a legitimate program coming from an established, trustworthy source. La signature des déploiements ClickOnceClickOnce avec un certificat numérique est une étape facultative permettant de vérifier que les assemblys et les fichiers ne sont pas falsifiés.Signing ClickOnceClickOnce deployments with a digital certificate is an optional step to verify that the assemblies and files are not tampered.

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), le rôle de l’horodatage dans les certificats et les méthodes de stockage possibles pour les certificats.The following sections describe the different types of digital certificates used in Authenticode, how certificates are validated using Certificate Authorities (CAs), the role of time-stamping in certificates, and the methods of storage available for certificates.

Authenticode et signature de codeAuthenticode and code signing

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.A digital certificate is a file that contains a cryptographic public/private key pair, along with metadata describing the publisher to whom the certificate was issued and the agency that issued the certificate.

Il existe différents types de certificats Authenticode.There are various types of Authenticode certificates. Chacun d’eux est configuré pour un type de signature particulier.Each one is configured for different types of signing. Pour les applications ClickOnceClickOnce , vous devez disposer d’un certificat Authenticode valide pour la signature de code.For ClickOnceClickOnce applications, you must have an Authenticode certificate that is valid for code signing. Si vous tentez de signer une application ClickOnceClickOnce avec un autre type de certificat, tel qu’un certificat numérique par e-mail, cela ne fonctionne pas.If you attempt to sign a ClickOnceClickOnce application with another type of certificate, such as a digital e-mail certificate, it will not work. Pour plus d’informations, consultez Introduction à la signature de code.For more information, see Introduction to code signing.

Vous pouvez obtenir un certificat pour la signature de code de trois façons différentes :You can obtain a certificate for code signing in one of three ways:

  • Achetez un certificat à un fournisseur de certificats.Purchase one from a certificate vendor.

  • Procurez-vous un certificat auprès d’un groupe de votre organisation responsable de la création de certificats numériques.Receive one from a group in your organization responsible for creating digital certificates.

  • Générer votre propre certificat à l’aide de l’applet de commande PowerShell New-SelfSignedCertificate, ou à l’aide de MakeCert.exe, qui est inclus dans le Kit de développement logiciel WindowsWindows Software Development Kit (SDK).Generate your own certificate by using the New-SelfSignedCertificate PowerShell cmdlet, or by using MakeCert.exe, which is included with the Kit de développement logiciel WindowsWindows Software Development Kit (SDK).

Comment à l’aide d’autorités de certification permet aux utilisateursHow using certificate authorities helps users

Un certificat généré à l’aide de New-SelfSignedCertificate ou MakeCert.exe utilitaire est généralement appelé un self-cert ou un certificat de test. Ce type de certificat fonctionne beaucoup de la même façon qu’un .snk fichier fonctionne dans le .NET Framework.A certificate generated using New-SelfSignedCertificate or the MakeCert.exe utility is commonly called a self-cert or a test cert. This kind of certificate works much the same way that a .snk file works in the .NET Framework. Il se compose uniquement d’une paire de clés publique/privée de chiffrement et ne contient aucune information vérifiable concernant l’éditeur.It consists solely of a public/private cryptographic key pair, and contains no verifiable information about the publisher. Vous pouvez utiliser des certificats automatiques pour déployer des applications ClickOnceClickOnce très fiables sur un intranet.You can use self-certs to deploy ClickOnceClickOnce applications with high trust on an intranet. Toutefois, quand ces applications sont exécutées sur un ordinateur client, ClickOnceClickOnce les identifie comme provenant d’un éditeur inconnu.However, when these applications run on a client computer, ClickOnceClickOnce will identify them as coming from an Unknown Publisher. Par défaut, les applications ClickOnceClickOnce signées avec des certificats automatiques et déployées sur Internet ne peuvent pas utiliser le déploiement d’applications approuvées.By default, ClickOnceClickOnce applications signed with self-certs and deployed over the Internet cannot utilize Trusted Application Deployment.

En revanche, si vous recevez un certificat d’une autorité de certification, par exemple un fournisseur de certificats ou un service de votre entreprise, le certificat offre davantage de sécurité pour vos utilisateurs.By contrast, if you receive a certificate from a CA, such as a certificate vendor, or a department within your enterprise, the certificate offers more security for your users. Non seulement il identifie l’éditeur du logiciel signé, mais il vérifie aussi cette identité auprès de l’autorité de certification qui l’a signé.It not only identifies the publisher of the signed software, but it verifies that identity by checking with the CA that signed it. Si l’autorité de certification n’est pas l’autorité racine, Authenticode remonte également jusqu’à l’autorité racine pour vérifier que l’autorité de certification est autorisée à publier des certificats.If the CA is not the root authority, Authenticode will also "chain" back to the root authority to verify that the CA is authorized to issue certificates. Pour garantir une sécurité optimale, utilisez un certificat publié par une autorité de certification quand cela est possible.For greater security, you should use a certificate issued by a CA whenever possible.

Pour plus d’informations sur la génération de certificats automatiques, consultez New-SelfSignedCertificate ou MakeCert.For more information about generating self-certs, see New-SelfSignedCertificate or MakeCert.

HorodatagesTimestamps

Les certificats utilisés pour signer des applications ClickOnceClickOnce expirent après une certaine durée (douze mois, le plus souvent).The certificates used to sign ClickOnceClickOnce applications expire after a certain length of time, typically twelve months. Pour éviter aux utilisateurs d’avoir à resigner constamment les applications avec de nouveaux certificats, ClickOnceClickOnce prend en charge l’horodatage.In order to remove the need to constantly re-sign applications with new certificates, ClickOnceClickOnce supports timestamp. Quand une application est signée avec un horodatage, son certificat est accepté même s’il a expiré, à condition que l’horodatage soit valide.When an application is signed with a timestamp, its certificate will continue to be accepted even after expiration, provided the timestamp is valid. Cela permet de télécharger et d’exécuter des applications ClickOnceClickOnce qui ont des certificats arrivés à expiration, mais des horodatages valides.This allows ClickOnceClickOnce applications with expired certificates, but valid timestamps, to download and run. Cela permet également aux applications installées qui ont des certificats expirés de continuer à télécharger et installer les mises à jour.It also allows installed applications with expired certificates to continue to download and install updates.

Pour inclure un horodatage dans un serveur d’applications, un serveur d’horodatage doit être disponible.To include a timestamp in an application server, a timestamp server must be available. Pour plus d’informations sur la sélection d’un serveur d’horodatage, consultez How to: Sign Application and Deployment Manifests.For information about how to select a timestamp server, see How to: Sign Application and Deployment Manifests.

Mettre à jour les certificats arrivés à expirationUpdate expired certificates

Dans les versions antérieures du .NET Framework, la mise à jour d’une application dont le certificat a expiré peut empêcher cette application de fonctionner.In earlier versions of the .NET Framework, updating an application whose certificate had expired could cause that application to stop functioning. Pour résoudre ce problème, utilisez l’une des méthodes suivantes :To resolve this problem, use one of the following methods:

  • Mettez à jour .NET Framework vers la version 2.0 SP1 ou ultérieure sur Windows XP, ou la version 3.5 ou ultérieure sur Windows Vista.Update the .NET Framework to version 2.0 SP1 or later on Windows XP, or version 3.5 or later on Windows Vista.

  • Désinstallez l’application, puis réinstallez une nouvelle version avec un certificat valide.Uninstall the application, and reinstall a new version with a valid certificate.

  • Créez un assembly de ligne de commande qui met à jour le certificat.Create a command-line assembly that updates the certificate. Pour obtenir des informations détaillées sur ce processus, consultez l’ article 925521 du support Microsoft.Step-by-step information about this process can be found at Microsoft Support Article 925521.

Certificats de StoreStore certificates

  • Vous pouvez stocker des certificats comme un .pfx fichier sur votre système de fichiers, ou vous pouvez les stocker à l’intérieur d’un conteneur de clé.You can store certificates as a .pfx file on your file system, or you can store them inside of a key container. Un utilisateur d’un domaine Windows peut avoir un ou plusieurs conteneurs de clé.A user on a Windows domain can have a number of key containers. Par défaut, MakeCert.exe stocke les certificats dans votre conteneur de clé personnel, sauf si vous spécifiez qu’il doit les enregistrer à un .pfx à la place.By default, MakeCert.exe will store certificates in your personal key container, unless you specify that it should save it to a .pfx instead. Mage.exe et MageUI.exe, le SDK WindowsWindows SDK outils de création ClickOnceClickOnce déploiements, vous permettre d’utiliser des certificats stockés dans deux manière.Mage.exe and MageUI.exe, the SDK WindowsWindows SDK tools for creating ClickOnceClickOnce deployments, enable you to use certificates stored in either fashion.

Voir aussiSee also

Sécurité et déploiement ClickOnce ClickOnce security and deployment
Sécuriser les applications ClickOnce Secure ClickOnce applications
Vue d’ensemble du déploiement application approuvée Trusted application deployment overview
Mage.exe (outil Manifest Generation and Editing)Mage.exe (Manifest Generation and Editing Tool)