Andrews, Rick wrote, On 2008-05-28 11:22:
> I hope I'm sending this to the right group. Can someone describe for me
> (or point me to documentation) how Firefox 1, 2, and 3 handle revocation
> checking, in terms of CRLs and OCSP? What I'm interested in is:
>  - whether revocation checking is turned on by default
>  - whether CRL checking can be enabled but only for certain CRLs and Cas
>  - whether FF can be told to follow the CDP or AIA extension in the cert
>  - any other wrinkles
> 
> I'm running FF2 now and I can see what options are there (for example,
> there seems to be no option to ask FF to follow whatever CDP pointer is
> found in the cert) but I don't know if it was enabled by default when I
> first installed it.
> 
> Any help would be appreciated. Thanks,

I will answer separately for OCSP and CRLs.

OCSP:
All versions of FF have the ability to get OCSP URLs from AIA extensions
and (if they are http URLs) attempt to access the server.  OCSP checks
are only done on EE certs, when OCSP checking is enabled.  OCSP checking
is disabled by default in FF1 and FF2.  It is enabled by default in FF3.

In FF1 and FF2, there is no OCSP cache.  When OCSP is enabled, an OCSP
check is done every time an EE cert is encountered, when that EE cert
contains an AIA extension for OCSP.

IIRC, in FF1 and FF2, the OCSP client does not know how to deal with
http proxies, and fails when OCSP is enabled but it cannot connect
directly to the OCSP responder.

In FF1, if OCSP is enabled, if the OCSP status check fails for any reason
then the cert is treated as revoked.  By "fails", I mean the client is
unable to get a valid response because (e.g.) it cannot reach the server,
or the server's response signature is not valid.

In FF2 (current & recent versions), the user has a preference controlling
whether the cert is considered revoked, or not, when an OCSP check fails.
I believe that pref defaults to NOT consider the cert revoked when the
check fails.  However, the OCSP check itself is disabled by default.

In FF3, the OCSP checking is enabled by default.  There is a cache,
preventing excessive OCSP (re)checking.  The cache is not persistent.
It starts fresh each time the browser is started.  The user preference for
behavior upon OCSP check failure exists, as in FF2, and defaults to
treating a cert as NOT revoked on failure.  For EV certs only, OCSP
checking will be done on all certs in the chain with AIA OCSP extensions,
not only on EE certs.

In all versions of FF, there is a configuration option to specify an OCSP
signing authority to which all OCSP requests are sent, as provided in RFC 2560.

The OCSP client sends POST requests, not GETs.  AFAIK, it does not honor
http redirect responses, and treats them as OCSP failures.

Here is that information in a table:

                                  FF1       FF2          FF3
                               --------  ---------  ---------------
OCSP Enabled by default        No        No         Yes
Works with http proxy          No        No         Yes
client cache                   No        No         Yes
certs checked                  EE        EE         EE (all for EV)
http access method             POST      POST       POST
cert status upon OCSP failure  revoked   user pref  user pref


CRLs:
In all versions of FF, CRL checking is implemented and is always enabled.
CRL checking is performed only when a CRL is locally present for the
issuing CA.  CRL checking is done for all certs except trust anchors.

FF only handles "complete" CRLs, not delta CRLs, not partial CRLs.
It does not support the Issuing Distribution Point CRL extension.

CRLs are not downloaded "on demand" during the course of cert validation.
CRLDP cert extensions are not recognized, and critical CRLDP extensions
cause a cert to be rejected for possessing unknown critical extensions.
This was originally due to a patent issue.  That issue has been resolved,
but the work to add support for CRLDPs has not yet been completed.
We hope to add CRLDP-driven CRL fetching by year end.

FF can download a CRL from a user-supplied URL.  Once the user has "primed
the pump" by manually entering the URL, FF can download the CRL from that
URL periodically, based on a fixed schedule (every N days) or based on the
nextUpdate date in the CRL.  CRL downloading is perhaps the least used
feature in Firefox, and I cannot vouch for its reliability.

Once downloaded, CRLs are stored persistently, on disk, and remain until
they are superseded (replaced).
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to