Présentation des certificats
Cet article décrit l’utilisation de certificats dans les applications plateforme Windows universelle (UWP). Les certificats numériques sont utilisés dans le chiffrement à clé publique pour lier une clé publique à une personne, un ordinateur ou une organisation. Les identités liées sont le plus souvent utilisées pour authentifier une entité auprès d’une autre. Par exemple, les certificats sont souvent utilisés pour authentifier un serveur Web auprès d’un utilisateur ou vice versa. Vous pouvez créer des demandes de certificat et installer ou importer des certificats émis. Vous pouvez aussi inscrire un certificat dans une hiérarchie de certificats.
Magasins de certificats partagés
Les applications UWP utilisent le nouveau modèle d’application isolationniste introduit dans Windows 8. Dans ce modèle, les applications s’exécutent dans une construction de système d’exploitation de bas niveau, appelée conteneur d’applications, qui empêche l’application d’accéder aux ressources ou aux fichiers en dehors de lui-même, sauf si elle est explicitement autorisée à le faire. Les sections suivantes décrivent les implications de cette opération sur l’infrastructure à clé publique (PKI).
Stockage de certificats par conteneur d’application
Les certificats destinés à être utilisés dans un conteneur d’application spécifique sont stockés par utilisateur, par emplacement de conteneur d’application. Une application s’exécutant dans un conteneur d’application a un accès en écriture uniquement à son propre stockage de certificats. Si l’application ajoute des certificats à l’un de ses magasins, ces certificats ne peuvent pas être lus par d’autres applications. Si une application est désinstallée, tous les certificats spécifiques à celui-ci sont également supprimés. Une application dispose également d’un accès en lecture aux magasins de certificats d’ordinateur locaux autres que le magasin MY et REQUEST.
Cache
Chaque conteneur d’applications a un cache isolé dans lequel il peut stocker les certificats d’émetteur nécessaires à la validation, aux listes de révocation de certificats (CRL) et aux réponses OCSP (Online Certificate Status Protocol).
Certificats et clés partagés
Lorsqu’une carte à puce est insérée dans un lecteur, les certificats et clés contenus sur la carte sont propagés à l’utilisateur MY store où ils peuvent être partagés par n’importe quelle application de confiance totale que l’utilisateur exécute. Par défaut, toutefois, les conteneurs d’applications n’ont pas accès au magasin MY par utilisateur.
Pour résoudre ce problème et permettre aux groupes de principaux d’accéder aux groupes de ressources, le modèle d’isolation de conteneur d’application prend en charge le concept de fonctionnalités. Une fonctionnalité permet à un processus de conteneur d’application d’accéder à une ressource spécifique. La fonctionnalité sharedUserCertificates accorde à un conteneur d’applications un accès en lecture aux certificats et clés contenus dans le magasin MY utilisateur et au magasin Racines approuvées de carte à puce. La fonctionnalité n’accorde pas d’accès en lecture au magasin REQUEST de l’utilisateur.
Vous spécifiez la fonctionnalité sharedUserCertificates dans le manifeste, comme illustré dans l’exemple suivant.
<Capabilities>
<Capability Name="sharedUserCertificates" />
</Capabilities>
Champs Certificat
La norme de certificat de clé publique X.509 a été révisée au fil du temps. Chaque version successive de la structure de données a conservé les champs qui existaient dans les versions précédentes et ajouté plus, comme illustré dans l’illustration suivante.
Certains de ces champs et extensions peuvent être spécifiés directement lorsque vous utilisez la classe CertificateRequestProperties pour créer une demande de certificat. La plupart ne peuvent pas. Ces champs peuvent être remplis par l’autorité émettrice ou ils peuvent être laissés vides. Pour plus d’informations sur les champs, consultez les sections suivantes :
Champs version 1
Champ | Description |
---|---|
Version | Spécifie le numéro de version du certificat encodé. Actuellement, les valeurs possibles de ce champ sont 0, 1 ou 2. |
Numéro de série | Contient un entier positif unique attribué par l’autorité de certification (CA) au certificat. |
Algorithme de signature | Contient un identificateur d’objet (OID) qui spécifie l’algorithme utilisé par l’autorité de certification pour signer le certificat. Par exemple, 1.2.840.113549.1.1.5 spécifie un algorithme de hachage SHA-1 combiné à l’algorithme de chiffrement RSA de RSA Laboratories. |
Émetteur | Contient le nom unique X.500 de l’autorité de certification qui a créé et signé le certificat. |
Validité | Spécifie l’intervalle de temps pendant lequel le certificat est valide. Les dates jusqu’à la fin de 2049 utilisent le format temps universel coordonné (Heure de Greenwich) (yymmddhhmmssz). Les dates commençant par le 1er janvier 2050 utilisent le format de temps généralisé (aaaammddhhmmssz). |
Objet | Contient un nom unique X.500 de l’entité associée à la clé publique contenue dans le certificat. |
Clé publique | Contient la clé publique et les informations d’algorithme associées. |
Champs version 2
Un certificat X.509 version 2 contient les champs de base définis dans la version 1 et ajoute les champs suivants.
Champ | Description |
---|---|
Identificateur unique de l’émetteur | Contient une valeur unique qui peut être utilisée pour rendre le nom X.500 de l’autorité de certification non ambiguë lorsqu’elle est réutilisée par différentes entités au fil du temps. |
Identificateur unique de l’objet | Contient une valeur unique qui peut être utilisée pour rendre le nom X.500 de l’objet du certificat non ambigu lorsqu’il est réutilisé par différentes entités au fil du temps. |
Extensions de version 3
Un certificat X.509 version 3 contient les champs définis dans la version 1 et la version 2 et ajoute des extensions de certificat.
Champ | Description |
---|---|
Identificateur de clé d’autorité | Identifie la clé publique de l’autorité de certification (CA) qui correspond à la clé privée utilisée par celle-ci pour signer le certificat. |
Contraintes de base | Précise si l’entité peut être utilisée en qualité d'autorité de certification ainsi que, le cas échéant, le nombre d’autorités de certification subordonnées qui peuvent exister sous celle-ci dans la chaîne de certificats. |
Stratégies du certificat | Indique les stratégies sous lesquelles le certificat a été émis et les fins auxquelles il peut être utilisé. |
Points de distribution de la liste de révocation de certificats | Contient l’URI de la liste de révocation de certificats (CRL) de base. |
Utilisation améliorée de la clé | Indique la façon dont la clé publique contenue dans le certificat peut être utilisée. |
Autre nom de l’émetteur | Indique une ou plusieurs variantes du nom de l'émetteur de la demande de certificat. |
Utilisation de la clé | Indique des restrictions sur les opérations qui peuvent être réalisées par la clé publique contenue dans le certificat. |
Contraintes de nom | Précise l’espace de noms dans lequel doivent se trouver tous les noms de sujets d’une hiérarchie de certificats. L’extension est utilisée uniquement dans un certificat d’autorité de certification. |
Contraintes de stratégie | Limite la validation du chemin en interdisant le mappage de stratégie ou en exigeant que chaque certificat de la hiérarchie contienne un identificateur de stratégie acceptable. L’extension est utilisée uniquement dans un certificat d’autorité de certification. |
Mappages de stratégie | Précise les stratégies d’une autorité de certification subordonnée qui correspondent aux stratégies de l’autorité de certification émettrice. |
Durée de l’utilisation de la clé privée | Indique une période de validité de la clé privée différente de celle du certificat auquel elle est associée. |
Autre nom de l'objet | Indique une ou plusieurs variantes du nom du sujet de la demande de certificat. Parmi les variantes possibles se trouvent les adresses électroniques, les noms DNS, les adresses IP et les URI. |
Attributs d’annuaire du sujet | Transmet des attributs d’identification tels que la nationalité du sujet du certificat. La valeur de l’extension est une séquence de paires de valeurs d'OID. |
Identificateur de la clé du sujet | Permet de distinguer entre les différentes clés publiques détenues par le sujet du certificat. La valeur de l’extension est généralement un hachage SHA-1 de la clé. |