122 votes

.Net - X509Certificate2 vs X509Certificate

Quelle est la différence entre les deux?

138voto

p.campbell Points 42771

Le x509Certificate a été introduit en .NET v1.0/1.1 et a (relativement) limitée dans ses fonctionnalités. Il peut être utilisé pour obtenir des informations à propos d'un certificat (dates de validité, d'un émetteur, etc.). Il avait des méthodes simples/opérations (c'est à dire la lecture d'un cert à partir de la disquette).

Le x509Certificate2 est une sous-classe de x509Certificate avec des fonctionnalités supplémentaires.

  • Il représente un certificat X509.
  • Il était nouveau dans le .NET Framework v2.0.
  • Cette classe vous donne accès à tous les V2 et V3 propriétés (l'identificateur de clé d'autorité et d'utilisation de la clé).
  • Il prend en charge le chargement d'un certificat à partir d'un magasin de certificats.

29voto

So Many Goblins Points 1536

À des fins d'exhaustivité, voici une copie de la section pertinente du site qui lui est lié dans @dommer de réponse, puisque le site ne peut plus être seulement dans le cache de Google pour qui-sait-combien de temps:

La Version 1.1 du framework a eu très peu d'autres que l' X509Certificate classe pour vous permettre de manipuler des certificats. Dans de fait, le v1.1 classe X509Certificate a apporté qu'un soutien de base: il ne donne accès à la X509 version 1 champs (comme le début de validité et valide pour les dates, l'objet et la clé publique), mais pas la version 2 champs (comme l'identificateur de clé d'autorité), ni de la version 3 champs (comme les clés d'utilisation). Il n'y a pas de support pour charger un certificat à partir d'un certificat magasin, ni les installations d'un certificat d'accès les listes de révocation de certificat ou listes de confiance. Microsoft amélioré ce avec les Services Web de mise en valeur (WSE) trousse de l'extension de la certificat de classe et en fournissant des classes d'accès des magasins de certificats. Ces classes peuvent maintenant être trouvés dans le .NET 3.0/2.0 cadre de la bibliothèque.

Le premier grand changement est une nouvelle classe appelée X509Certificate2 qui dérive de X509Certificate. Les méthodes pour accéder à la X509 les champs des certificats ont été dépréciées et maintenant, la classe a propriétés pour accéder à ces champs. En outre, si le certificat a associé à une clé privée puis la classe donne accès à cette clé. Il existe des méthodes qui vous permettent de fournir un mot de passe si le privé la clé est protégée par un. Le mot de passe est transmis par l'intermédiaire d'un SecureString paramètre qui est un type spécial qui permet de s'assurer que lorsque l'objet n'est plus utilisée que la mémoire occupée sera écrit sur si que le mot de passe ne peut pas être lu par un autre processus sur la machine. Sécuriser les chaînes et autres formes de protection des données seront couverts dans un section ultérieure.

Depuis X509Certificate2 dérive de X509Certificate cela signifie que vous pouvez appeler les méthodes statiques CreateFromeCertFile et CreateFromSignedFile par le biais de la X509Certificate2 classe. Cependant, ces méthodes retournent un X509Certificate objet et vous ne pouvez pas vous vers le bas lancer un objet X509Certificate2. La classe X509Certificate a été amélioré dans la version 3.0/2.0: il fournit des propriétés pour accéder à certains des X509 champs; il fournit à l'Importation et à l'Exportation des méthodes pour initialiser un objet à partir d'un tableau d'octets ou de générer un tableau d'octets à partir le certificat et qu'il a des constructeurs qui permettra de créer un objet à partir d'un fichier (ASN.1 DER) et à partir d'un tableau d'octets. Fait intéressant, l' X509Certificate2 classe a un constructeur qui peut créer une X509Certificate2 objet à partir d'un X509Certificate objet. Notez que bien qu'un X509Certificate objet peut uniquement afficher les champs, il X509v1 peut être créé à partir d'un certificat X509v3 et donc, si vous créez un X509Certificate2 objet à partir d'un X509Certificate objet vous sera en mesure d'accéder aux champs X509v3.

6voto

dommer Points 11550

.Net Security Workshop en donne un aperçu. Voir section 13.3.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X