Closed Bug 320492 Opened 20 years ago Closed 20 years ago

Firefox cannot import two certificates with the same distinguished name

Categories

(Core :: Security: PSM, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: meiows, Assigned: KaiE)

Details

Attachments

(2 files)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-GB; rv:1.8) Gecko/20051111 Firefox/1.5 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-GB; rv:1.8) Gecko/20051111 Firefox/1.5 If I create two key/certificate pairs in PKCS#12 format, and attempt to import both in to Firefox 1.5, then the import of the second fails with the error message "PKCS #12 operation failed for unknown reasons". The attached PKCS #12 files reproduce this problem. OpenSSL sadly insists on a passphrase, so for the RSA certificate the phrase is "foobar", and for the DSA "export". Reproducible: Always Steps to Reproduce: 1. Import clientrsa.p12 in to firefox by clicking Tools > Options > Advanced > View Certificates > Import, selecting clientrsa.p12 and typing the passphrase "foobar". This should suceed. 2. Do the same with clientdsa.p12, the passphrase is "export". This will fail. Actual Results: Certificate import fails Expected Results: Certificate import suceeds, as with Windows/Internet Explorer. I suspect, but don't know, that the problem is that Firefox uses some or all of the Distinguished Name of the certificate's subject/issuer as a unique key to store the certificate under. It would probably be better to use the key fingerprint and certificate serial number as a really unique key.
I suspect this is NSS, but I'll start with PSM.
Assignee: nobody → kengert
Component: Security → Security: PSM
Product: Firefox → Core
Version: unspecified → Trunk
Chris, do both certs have the same issuer names and the same serial numbers? That's the most common cause of this sort of complaint. Also, what error message do you get?
(In reply to comment #4) > Chris, do both certs have the same issuer names and the same serial numbers? > That's the most common cause of this sort of complaint. > Also, what error message do you get? > Yes, Indeed. Both certificates are issued by the same certificate (hence the issuing DN is exactly the same), and both have the same serial number. Thats a bug though, obviously if you have multiple accounts with the same site (e.g. two people doing their taxes with the UK inland revenue) you are going to need to import two certificates with the same issuer DN and serial no.
RFC 3280 says: The serial number MUST be a positive integer assigned by the CA to each certificate. It MUST be unique for each certificate issued by a given CA (i.e., the issuer name and serial number identify a unique certificate). CAs MUST force the serialNumber to be a non-negative integer. Given the uniqueness requirements above, serial numbers can be expected to contain long integers. Certificate users MUST be able to handle serialNumber values up to 20 octets. Conformant CAs MUST NOT use serialNumber values longer than 20 octets. mozilla will not import a second (different) certificate with the same issuer name *AND* serial number as another already-imported cert. That is working as designed, and is standards-conformant. No issuer should *ever* issue two different certs with the same serial number. Since your two certs have the same issuer name and same serial number, that is the cause, and this bug is invalid.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
The next paragraph is: Note: Non-conforming CAs may issue certificates with serial numbers that are negative, or zero. Certificate users SHOULD be prepared to gracefully handle such certificates. It would be extremely helpful if this defect were fixed. Its a showstopper for one of our customers. For our operating system, we always compare certificates using both key fingerprint and serial number. There are a number of popular CAs and other content issuers who are not compliant, especially in the mobile domain.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
Your certs' problem is not that serial numbers are negative or zero, but that they are duplicated, non-unique. uniqueness is a requirement of the RFC. This is a design characteristic, not a defect. The fact that some cert issuer is not conforming to the rules does not make this a defect for mozilla. This has been mozilla policy (and before it, Netscape Communicator policy) for over a decade. Uniqueness of the (issuer name, serial number) pair is necesssary for CRLs to to be able to revoke unique certificates. CRLs list revoked certs only by serial number. The CRL is produced for a single issuer so all serial numbers in the CRL are implicitly for the same issuer.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago20 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: