Hi Ben,

Ben Bucksch wrote:

Actually, not even that is necessary. Classes each have their own root cert, so we can simply match root certs to level in our software, using a list that is just as hardcoded as our root certs, and matches the assigned levels.
So your idea might be a good one, I'm afraid there are some problems with this. Let me explain:

In this case, an extra effort would have to be invested into doing this. This is something Gerv correctly prefers to avoid. Of course it could be possible, provided there is enough manpower for it. But there is another problem...

As you might know, the Mozilla CA policy encourages to use separate root certificates *or* separate intermediate certificates under a single root for the issuance of certificates (see http://www.mozilla.org/projects/security/certs/policy/ section 13). Personally I think, all CAs should use intermediate CA certificates for the signing and leave the root certificate completely protected and off-line!

But this also means, that the intermediate CA certificates are not stored in the NSS certificate store and are changed/renewed rather frequently compared to the CA root (In our case for example the intermediate certificates have a life-time of 5 years and are changed every four years (leaving the last year for validity of the already issued certificates and for revocation). Therefore it would be difficult to hard code anything here.

Now, the phrase "Class 3" or similar is not a defined standard and every CA handles that differently - if at all. It would be very difficult to fetch such a phrase on the fly and make the right assignment. This is the reason why we came up with the OID stuff, since currently there is no unified standard or policy anywhere (the core of the problem we are trying to solve here?). The proposed OID could be added by the CA almost over night and code implemented at the NSS library for its detection as well in a short time.

More than that, there might be some CAs, which labeled their CA as "Class 3", but issue "domain validated" or trial certificates from this root. To make matters worse, some CAs issue all certificates from the same root, for all kinds of verification levels. (Something which should be discouraged strongly. The proposal will help with this.)

And at last, I indicated in a previous mail, that it would be most likely healthier for Mozilla to let the CA make this assignments. In this way, the responsibility remains with the CA and Mozilla doesn't make this decision, instead of or for the CA. Legal advice could be certainly helpful in order to support my logic here....


In fact, if I wanted to do that in Beonex, I could implement Eddy's proposal plus UI all in JavaScript. I simply match the root cert name or ID with a hardcoded list, and if it's VeriSign's Class 3 or StartCom's Class 3, I show the realname and address in the UI, because I know they check these properly, and otherwise I won't do anything special. Just as example.

If the OID detections for the UI would be possible in Javascript I don't know.

--
Regards

Signer:      Eddy Nigg, StartCom Ltd.
Phone:       +1.213.341.0390
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security

Reply via email to