Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTPS Public Key Pinning HPKP #15

Closed
mozfreddyb opened this issue May 12, 2015 · 17 comments
Closed

HTTPS Public Key Pinning HPKP #15

mozfreddyb opened this issue May 12, 2015 · 17 comments

Comments

@mozfreddyb
Copy link

Would be great if badssl had a test for HPKP voilations.

@lgarron lgarron mentioned this issue May 15, 2015
23 tasks
@lgarron
Copy link
Collaborator

lgarron commented May 28, 2015

Before I forget: we should have a preloaded pinning violation like https://pinningtest.appspot.com/

@lgarron
Copy link
Collaborator

lgarron commented Oct 23, 2015

https://pinning-test.badssl.com should trigger a pinning failure in tomorrow's Chrome Canary: https://codereview.chromium.org/1413513003

@lgarron
Copy link
Collaborator

lgarron commented Oct 25, 2015

Whee!
screen shot 2015-10-25 at 02 10 13

@april
Copy link
Collaborator

april commented Oct 25, 2015

Looks nice, now go to bed!

@rugk
Copy link
Contributor

rugk commented Oct 26, 2015

Nice, but you should not write: This site is preloaded with a bad HPKP pin starting in Chrome 48
Because HPKP is a name for the "dynamic pinning".
So probably "preloaded key pinning" would be a better name to differentiate this.


BTW could you also open an issue for inclusion of this key pin in Firefox?

@lgarron
Copy link
Collaborator

lgarron commented Oct 26, 2015

Because HPKP is a name for the "dynamic pinning".

I prefer to use HSTS and HPKP consistently to make them more recognizable.

As far as I understand, preloaded HPKP is still key pinning for HTTP – it just wasn't served using an HTTP header. (Whereas the "H" distinguishes this mechanism from, say, the SSH known_hosts mechanism.)

Your link and the spec are unclear on this; the most relevant information I can find is a suggestive description of it as trust on first use. But I'd like to get it right; do you know of a good citation for it?

BTW could you also open an issue for inclusion of this key pin in Firefox?

Will do.

@lgarron
Copy link
Collaborator

lgarron commented Oct 26, 2015

BTW could you also open an issue for inclusion of this key pin in Firefox?

Will do.

Filed: https://bugzilla.mozilla.org/show_bug.cgi?id=1218515

@jkldgoefgkljefogeg
Copy link

I got no warning on Chromium 48.0.2564.116 (Developer Build) Ubuntu 15.10 (64-bit) and Firefox 44.0.2

@lgarron
Copy link
Collaborator

lgarron commented Mar 1, 2016

I got no warning on Chromium 48.0.2564.116 (Developer Build) Ubuntu 15.10 (64-bit) and Firefox 44.0.2

Chromium developer builds don't have HPKP enabled. Did you build this yourself?

@jkldgoefgkljefogeg
Copy link

I got the warning on 49.0.2623.64 (Official Build) beta-m (64-bit) Windows x64.

but not on 48.0.2564.116-0ubuntu0.15.10.1.1221 0 from Ubuntu wily

@timmc
Copy link

timmc commented Sep 16, 2016

Same result here, no warning on Chromium Version 53.0.2785.89 Built on 8.5, running on Debian 8.5 (64-bit). This is true on my work computer as well. Additionally, a coworker verified that Google Chrome on Linux did block access. Maybe Debian packages it weird?

(I also don't see a warning on Firefox ESR 45.3.0, and I thought the pin went into v44.)

Should I open a separate issue?

@lgarron
Copy link
Collaborator

lgarron commented Sep 16, 2016

Should I open a separate issue?

No, this is expected behaviour.
Non-official builds disable static key pinning data, to avoid stale entries whose updates are not controlled by Google.

@timmc
Copy link

timmc commented Sep 16, 2016

Maybe worth a note, then, that the static test is only valid for Google Chrome.

@timmc
Copy link

timmc commented Sep 16, 2016

Ah... and my Firefox ESR 45 probably "fails" the test because the static pins have expired! Yeah, I think some of these tests need a special marker indicating that they only work for some browser/version/build combinations and are not expected to work across the board.

@lgarron
Copy link
Collaborator

lgarron commented Sep 16, 2016

tests need a special marker

This is not a bad idea, and we are working on improving the descriptions (#202).

However, this behaviour is known to most people who use badssl.com on a regular basis, and it's not quite our goal to cater to every use case, so I don't consider this a high priority right now.

Could you let us know more about your use case?

@timmc
Copy link

timmc commented Sep 16, 2016

Well, the tagline of the repo is "Memorable site for testing clients against bad SSL configs." so I assumed it was for broader use than just on the official vendor-built binaries. When I found that neither of Chromium 53 or Firefox ESR 45 "passed" the pinning test I was all set to file bugs, then found this thread. So I think there's a lot of value in noting which tests are broadly applicable (e.g. no browser should accept expired certs) vs. specific to a particular set of builds (e.g. preloaded HPKP).

@lgarron
Copy link
Collaborator

lgarron commented Sep 16, 2016

When I found that neither of Chromium 53 or Firefox ESR 45 "passed" the pinning test I was all set to file bugs, then found this thread.

So you were testing for HPKP support in your Chromium/Firefox installs? Sounds like a reasonable case. Could you file a more specific bug, so that you'll be in the loop when we update the language?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants