On 09/25/2009 04:39 PM, Kathleen Wilson wrote:
Note that I am operating under the assumption that there is currently
no way in NSS to mark a root certificate as “untrusted”. Please let me
know if this assumption is incorrect.
There are 3 states we can report about a certificate: trusted, unknown, and untrusted.

These are colapsed from all our potential sources of trust into: the trust bit is own, or the trust bit is off. Certs in which the trust bit is off can still be trusted if the cert itself is signed by another cert which chains to a trusted root. For Root certs, trust bit off means the root cert is not trusted.

Trust can come from multiple tokens. Usually, however it's softoken (the user's database) and the builtins (our root cert list). Each token as a value called trustOrder, from 0 to 100. The smaller the trust order, the higher the precidence. Softoken is typically 50 and builtins are typically 100. This means if softoken has the cert in it's database with some trust attributes on it, those attributes will always override whatever we ship in the builtins module.
If it would be reasonable to mark a root cert as “untrusted” in NSS,
we could also consider this option... If a root were to be
compromised, and marked as untrusted, it could be treated as though
all of the trust bits are unset, and not allow the user to set any of
the trust bits. This would be safer than removing the root from NSS,
because it would prevent the user from importing and trusting the
root.

Because of the way the system works, deleting a cert from builtins would be equivalent to marking it untrusted. The user could still override our choice in softoken. Unfortunately the trustorder is set on the module, not the slot (/me mentally slapping myself for that), otherwise we could add a second slot in the builtins which had certs which had a lower trust order than softoken. We could then put disabled certs in that second token. It's probably not to difficult to give each slot it's own trust order that overrides the overall module trust order, but it would have to be added to NSS.

This means the feature is probably implementable without a lot of work, but then the question becomes, do we really want to do this? Once implemented, it would be very difficult to turn off (Hmm, well perhaps PSM could control whether or not the 'disabled certs' override the other trust flags as well or not.

We should probably have that discussion before we decide to do 'forced turn-offs' on certificates.

bob

I look forward to your constructive input on the creation of this
policy and process.

Kathleen


-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to