Open Bug 236461 Opened 20 years ago Updated 2 years ago

Problems importing a PKCS #7 certificate set in Mozilla

Categories

(Core :: Security: PSM, enhancement, P5)

Other Branch
x86
All
enhancement

Tracking

()

People

(Reporter: jmanuel.macias, Unassigned)

References

()

Details

(Whiteboard: [psm-backlog])

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040303
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040303


   We have been testing the behaviour of different browsers
  when downloading a PKCS #7 certificate set contained within 
  a single file in DER format. The file was created as stated
  in the man page for openssl's crl2pkcs7 tool:

     openssl crl2pkcs7 -nocrl -certfile newcert.pem
         -certfile demoCA/cacert.pem -outform DER -out p7.der

   The idea is to download several CA certificates at once. We
  think the user should be asked for each of the certificates
  within the file, because he or she propably won't want to
  install all of them. 

   We tested with Mozilla (latest builds) as well as other
  popular browsers (Microsoft Internet Explorer, Opera and
  Konqueror where tested).

   The only two that seems to have a reasonable behaviour are
  Internet Explorer and (maybe) Opera.

   The DER file used to make the tests detailed below is 
  available at:

    http://www.rediris.es/pruebas/tacar/

   The behaviour of the different browser is as follows:

   - IE 6 downloads the file containing the set of certificates
  and spawns the MS Windows Certificate Manager, letting the
  user choose which of the certificates to install.

   - Opera 7 built-in certificate manager displays all the
  certificates within the file, and lets the user install
  *all* of them.

   - Konqueror launchs the KDE Certificate Manager which seems
  to have problems displaying the information of the certificates;
  if the user choose the 'install' option, will install all the
  certificates. IMHO, that behaviour is dangerous, since the
  user is not being informed of what the browser is going to do.

   - Finally, Mozilla -latest tested: Mozilla 1.7b Mozilla/5.0
  (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040303-, only
  displays the information for the first certificate, but it
  will install all of them if you decide to install the 
  displayed certificate.

   IE 6 approach seems to be the more reasonable, since the
  user is asked and is able to choose what to do.

   Opera approach is not bad at all, but the user will have to
  install all the certificates and then delete those that are
  not needed (if it's the case).

   Konqueror behaviour is definitively wrong.

   Mozilla should improve the way it handles the certificates,
  because someone would install additional (undesired?)
  certificates while the user is prompted to install only one
  certificate.


Reproducible: Always
Steps to Reproduce:
1.Just click in the link provided


Actual Results:  
Mozilla certificate manager only displays the first certificate in the set. But
if you install it, all certificates are installed.

Expected Results:  
I think Mozilla should display all the certificates within the set.
I remember reading from some document that DER could only contain a single
certificate...

Anyway, I can confirm this. Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.6) Gecko/20040113
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Linux → All
adding wtc..  seems like more of nss thing than psm.  should this be security
sensitive?
I'm removing the security sensitive flag, because mozilla's behavior is 
exactly as designed and intended, and has been essentially the same 
ever since Communicator 4.0.  It's been documented for about 8 years.
See http://wp.netscape.com/eng/security/comm4-cert-download.html

A PKCS7 file of certs is supposed to contain a single cert chain, not a
collection of potentially unrelated certs.  

When downloading a set of certs and trusting it, one is making a fundamental
decision about trust.  The idea being put forth by the submittor is that a
given set of certs may contain some trustworthy and some untrustworthy certs.
But in that case, one must conclude that the source of that set of certs is
not entirely trustworthy.  

At most, this is a request for enhancement, asking that mozilla impose more
effort on the part of the user in making trust decisions.  There is much
debate now (in the mozilla public crypto newsgroup) about whether mozilla
imposes too much or too little responsibility on the end users, and whether
it offers too much or too little info for those decisions.  It is widely
observed that most users click through all security dialogs without reading
them.  The best solution is probably to give the users fewer decisiosn to 
make, less rope with which to hang themselves.  

In any case, this this correctly a PSM bug because it requests UI changes.
If additional NSS APIs are needed, the RFE for those APIs should come from
the PSM developer.
Group: security
Severity: major → enhancement
Hi Nelson,

referring to ftp://ftp.rsa.com/pub/pkcs/ascii/pkcs-7.asc I think that multiple
root certificates should be possible within a single PKCS#7 file and be
processed as a sequence of single root certs... The processing of sub-CA certs
is OK.

Cheers

Reimer

Quote:

SignerInfos ::= SET OF SignerInfo

The fields of type SignedData have the following meanings:
[...]          
     o    certificates is a set of PKCS #6 extended
          certificates and X.509 certificates. It is
          intended that the set be sufficient to contain
          chains from a recognized "root" or "top-level
          certification authority" to all of the signers in
          the signerInfos field. There may be more
          certificates than necessary, and there may be
          certificates sufficient to contain chains from two
          or more independent top-level certification
          authorities. There may also be fewer certificates
          than necessary, if it is expected that those
          verifying the signatures have an alternate means
          of obtaining necessary certificates (e.g., from a
          previous set of certificates).
Assignee: kaie → nobody
Product: PSM → Core
QA Contact: bmartin → ui
Component: Security: UI → Security: PSM
Priority: -- → P5
Whiteboard: [psm-backlog]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.