x509 cert avec l'adresse e-mail dans le sujet sont différents en java.vs net


J'ai un site Web avec plusieurs applications Web qui repose sur l'authentification de l'utilisateur final avec son certificat client x509. Nous observons que le même certificat, lorsqu'il est traité par une application.Net, affiche un DN Sujet différent que lorsqu'il est traité par une application Java, lorsque le DN contient un attribut d'adresse e-mail.

Dans. Net, je vois la variable serveur CERT_SUBJECT comme ceci:

C=US, S=Delaware, L=Wilmington, O=IDFC Dev, OU=Test, CN=Richard Sand, [email protected]

En Java, lorsque j'explore l'objet certificat x509 pour le même certificat (même session de navigateur), le sujet est:

[email protected], CN=Richard Sand, OU=Test, O=IDFC Dev, L=Wilmington, ST=Delaware, C=US

Ignorant l'ordre inversé des attributs (ce qui est un phénomène connu), le problème que nous rencontrons est qu'en Java, l'attribut d'adresse e-mail est EMAILADDRESS alors qu'en.Net, le même attribut s'affiche comme E .

Creuser plus loin, OpenSSL affiche cette sortie:

openssl.exe pkcs12 -in my.pfx -info

subject=/C=US/ST=Delaware/L=Wilmington/O=IDFC Dev/OU=Test/CN=Richard Sand/[email protected]

Alors que lorsque je vois le même certificat dans les magasins de certificats IE ou Firefox, ils affichent E=, par exemple:

E = [email protected]
CN = Richard Sand
OU = Test
O = IDFC Dev
L = Wilmington
S = Delaware
C = US

Je sais il peut sembler trivial de simplement caler dans un code pour changer une" interprétation " du DN sujet à l'autre, mais le problème est que nous avons deux produits COTS que nous ne pouvons pas modifier, et avant de commencer à pirater le problème, je veux comprendre lequel (ou les deux?) correct et s'il y a quelque chose sur une couche qui cause l'écart. Les RFC semblent tous faire référence à EMAILADDRRESS, mais comme dit, IE et FF ainsi que l'application. Net semblent tous utiliser "E"

Quelqu'un peut-il expliquer pourquoi ce qui se passe?

Merci!

Author: Richard Sand, 2017-03-02

1 answers

E et EMAILADDRESS sont des synonymes.

Lorsqu'une adresse électronique est incorporée dans le nom distinctif du sujet (obsolète, devrait être utilisé des extensions de nom alternatif du sujet), elle utilise l'identifiant pkcs-9-at-emailAdressdéfini dans PCKS#9 ( RFC2985).

Cela signifie que l'adresse e-mail n'est pas stockée avec une chaîne E ou EMAILADDRESS, mais en tant qu'ASN.1 structure avec l'identifiant 1.2.840.113549.1.9.1, et ce que.NET, Java ou IE montrent est une représentation de cet attribut.

Si vous voulez pour vérifier si l'objet d'un certificat correspond, vous devez comparer chaque champ RDN, pas la chaîne.

 3
Author: pedrofb, 2017-03-02 07:31:33