Following discussions both in private and at the dev-security mailing
list of Mozilla with various participants, we decided to put forward the
following initial proposal of a framework for the handling of SSL/TLS
and S/MIME digital certificates in Mozilla products. The trigger for
this proposal was the controversial EV standard put forward by the
CA/Browser forum, which leaded us to believe, that a more radical and
somewhat farther reaching change could serve Browser Vendors,
Certification Authorities (CA) and Relying Parties better. The basic
idea is perhaps not new and similar ideas might have been proposed
previously, however we believe, that this is long overdue.
*Introduction:*
Currently all digital certificates are treated in the same way in todays
software. A certificate is considered as valid if:
1.) The certificate is found to be issued by a CA which is in the NSS
certificate root store
2.) The certificate is not expired (Within valid boundaries of the from
/ to dates)
3.) The CN resp. emailAddress field matches the web site address, resp.
email address
4.) The certificate is not revoked (provided CRL or OCSP checking is
enabled)
If the web site, resp. signed email presents a valid certificate, a
padlock is displayed in the address bar / status bar. In all other
circumstances a warning dialog is presented to the user, which he has to
accept or deny. This includes self signed certificates, certificates
issued by an unknown CA, expired certificates. Except in case of
certificate revocation, the connection is refused. If a particular web
page is found to have unsecured content embedded, such as images or
javascript files, than a question mark / crossed padlock is placed
instead of the clear padlock.
However the browser / mail client currently can not differentiate
between different types of validations performed for the identification
of the certificate and presents all certificates in a flat way, e.g. a
padlock. This flat system exists since the first implementations of SSL
support in browsers and has never been revised. Currently it is the sole
responsibility of the issuing CA to which extend a certificate and its
holder is validated, which can vary between every CA and within a
particular CA itself, as the CA often offers various levels of
verification procedures.
More than that, any verification above simple domain validation, resp.
email validation is almost meaningless, since the low level validations
are easier to circumvent, but more thorough verifications are treaded
with the same validity. From the subscriber perspective there is almost
no reason to perform higher validation because of that and the relying
party mostly doesn't know about the extend of the validations performed.
Low level validation are effective for the intended purpose and are part
of the PKI landscape, however they are often misused for other purposes,
where really higher verification should be performed, because of the
lack to differ in its validity. This is one of the core problems in
current handling of digital certificates in todays software.
(Just a by-note, that the proposed EV standard is in many cases an
overkill and sets the mark too high for most cases. It will not solve
the problem of the current binary flat system, this in addition to other
problems about this standard.)
The Mozilla CA policy today requires a minimal set of conditions, which
a CA has to meet in order to have its root certificate embedded with the
NSS certificate root store of certification authorities. This includes a
minimal set of validations which a CA has to perform as the lowest
verification procedure. Our proposal centers around the extension of
Mozilla CA policy and aims to provide an initial basic framework for the
ability to make a distinction between different validation procedures.
Within this framework, proposed and future standards can be integrated
easily, without the need to change the behavior of the underlying
framework and its software. Based on this framework the UI of the
browsers and mail clients can be adjusted and improved in future.
*Proposal:*
We propose to define four different validation levels or classes
according to which existing and future verification procedures of CAs
can be treated. The levels could be according to the list below, however
it's only a suggestion and should be adjusted and refined after thorough
discussion by the community:
Level 1:
This is the lowest level and the current minimum requirement of the
Mozilla CA policy. Level 1 is domain validated, resp. email validated
only, for example by sending an email ping to a administrative mail
account of the domain or to the email account in question. No other
verifications are performed at this level.
Level 2:
The identity is validated by various means, such as verification of the
identity via scanned, photocopied or photographed photo ID documents
(passport, identity card, driving license) and company registry, which
is then further verified by a lookup at a third party source, such as
phone directories and phone call or sending of a registered mail to the
address found in the documents provided by the subscriber. This kind of
verification is not done in person. Ownership of the domain name, resp.
email account is performed according to Level 1. The certificate must
state the subscriber name/organization name, locality, state (where
applicable) and country.
Level 3:
Additional verifications are performed at this level in relation to
Level 2, specially verification of the provided (authentic) documents by
the subscriber, establishment of the organization (minimum years of
existents), physical address of the organization and proof of ownership
of the domain name, resp. email address. The subscriber is verified in
person by an agent of the CA or other third party. The proposed EV
certificates would most likely fall under this level. The certificate
must state the subscriber name/organization name, locality, state (where
applicable) and country.
Level 4:
Verification of the subscriber is performed in person including all
original documents. The certificate includes government issued passport
or identity card number in the OU field, in addition to subscriber name,
address, locality, state (where applicable) and country. This level is
less suited for organizations, but mostly for individuals.
*Implementation:*
The Mozilla CA policy will be extended to include the above described
definitions. Levels can be assigned by the CA within the subscriber
certificate with a specially defined OID by using for example the
Mozilla OID space. In this proposal we suggest to leave the definition
of levels to the CA, as in any case the CA defines its verification
procedures in its own policies. Implementation could be fast in this
case and CAs could be advised to assign the corresponding OID to their
certificates. For example the OID for a certain level could be:
1.3.6.1.4.1.13769.pki.mozilla_policy_version.level
The Mozilla software can search for this OID in the certificate and
accordingly provide different information to the user and handle UI
behavior. A different way of implementation could be the inclusion of
such an OID at the intermediate CA certificate level, which would
perhaps result in easier tracking between the CA policy and assigned
level. It might be easier to verify the claims made by the CA concerning
the level it assigns to the various intermediate certificates. This
would be more difficult in case the OID would be only included in the
subscriber certificate. However implementation might be slower in this
case as intermediate CA certificates are usually valid for up to ten years.
*Summary:*
This proposal provides a solution for the long overdue "binary flat
system of the padlock" in browsers for SSL certificates, without special
and unnecessary requirements on the parties involved.
- Its adoption can be promoted and implemented very fast by both the
browsers and the various CAs.
- It supports any current CA policy of all CAs in the NSS cert store.
- Any future standard - including EV - can be simply included within the
proposed structure of levels without the need to make any special
adjustments to the software.
- The liability of Mozilla will be similar to the current system,
because the responsibility of assigning and implementation of the
different level lies with the CA. However the relying party might -
pending implementations of the UI - will receive better information in
order to make a fair judgment, without the browser vendor making a
decision on behalf of or instead of the relying party.
- Additionally all definitions in this proposal are subject to the
Mozilla CA policy and under full control of Mozilla. No special bindings
to interest groups (such as EV) exists and the Mozilla CA policy is open
to the public for review and is free to be implemented by any CA wishing
to conform to this policy.
Please note, that this proposal doesn't provide any suggestions
concerning the UI, but only provides an underlying framework for CAs and
the browser/mail client as a first strategic step. Any UI implementation
can be build according to this framework however and we suggest its
implementation afterwards.
The proposal is also available as a PDF document at
http://apache-2.startcom.org/moz-pki-proposal.pdf
--
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