Skip to content
This repository was archived by the owner on Nov 6, 2023. It is now read-only.

Unbreak SSL Observatory.#885

Merged
cooperq merged 1 commit intoEFForg:masterfrom
jsha:unbreak-ssl-observatory
Jan 12, 2015
Merged

Unbreak SSL Observatory.#885
cooperq merged 1 commit intoEFForg:masterfrom
jsha:unbreak-ssl-observatory

Conversation

@jsha
Copy link
Copy Markdown
Member

@jsha jsha commented Jan 9, 2015

md5Fingerprint is no longer available for certs in Firefox, so switch to SHA1 for private cert lookup. Note: we originally used md5+sha1 on the theory that if an adversary is capable of a second preimage attack on one hash they may not be able to do both. Sha256 is newly available so if we still find it worthwhile we can do the same trick with sha256+sha1, and regenerate the contents of Root-CAs.js. But for now we should just fix the code because on current Firefox all certs are being considered 'private', which blocks submission to the Observatory.

cc @cooperq @pde

md5Fingerprint is no longer available for certs, so switch to SHA1
for private cert lookup.
@cooperq
Copy link
Copy Markdown
Contributor

cooperq commented Jan 12, 2015

Seems good, I will merge it now in the interest of unbreaking things but I do think that we should switch to SHA2 asap. @schoen has some thoughts about whether it's worthwhile to combine SHA2 and SHA1 or not I think.

cooperq added a commit that referenced this pull request Jan 12, 2015
@cooperq cooperq merged commit 189ba0d into EFForg:master Jan 12, 2015
@pde
Copy link
Copy Markdown
Contributor

pde commented Jan 15, 2015

We chose to use the concatenation of md5 and sha1 because it was (1) decently secure and (2) more readily computable in client code. Though we could probably have grabbed a sha256 library.

Unfortunately the serverside code checks that the submitted certs have the same submitted fp as the server recomputes for them. So we'll need to set CertificateParser.skipfpcheck to True on the server if we want this to work.

@pde
Copy link
Copy Markdown
Contributor

pde commented Jan 15, 2015

Alternatively to the serverside kludge, we could use a JavaScript md5 implementation.

@pde
Copy link
Copy Markdown
Contributor

pde commented Jan 15, 2015

https://bugzilla.mozilla.org/show_bug.cgi?id=622332
https://hg.mozilla.org/mozilla-central/rev/f2a5edce0a57

This broke when FF32 released in September, so presumably everyone not running TBB / ESR has been not submitting to the Observatory since then :(

@pde
Copy link
Copy Markdown
Contributor

pde commented Jan 15, 2015

I don't think it's wise to ship a client that just uses sha1. It would create two populations of incompatible client submissions, meaning:

  • we'd have to either turn skipfpcheck off forever, or have two different URL parameters for the fingerprint submissions (fp=MD5+SHA1&fp2=SHA1)
  • features like this one would have to exist in two versions for the two client populations

So I've been trying to get md5 fingerprints going in pure JS. They don't match, yet...

@jsha
Copy link
Copy Markdown
Member Author

jsha commented Jan 15, 2015

@pde: Aha, I missed the fact that this is used as part of the certificate submission as well as for checking whether root CAs are public. What's the reason behind doing fp check?

Assuming we keep the fp check, I think the right thing to do is to add a new URL parameter.

It's okay if the whitelist updating breaks in older clients, since it's just a load reduction measure and the population of those clients is small.

@jsha jsha mentioned this pull request Jan 16, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants