canmove, Confirmed users
1,537
edits
No edit summary |
No edit summary |
||
| (6 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{FeatureStatus | {{FeatureStatus | ||
|Feature name=CA Pinning | |Feature name=CA Pinning | ||
|Feature stage= | |Feature stage=Development | ||
|Feature status=In progress | |||
|Feature health=OK | |Feature health=OK | ||
|Feature status note=Depends on enabling libpkix by default. The feature will land one relase after the pkix landing. | |||
}} | }} | ||
{{FeatureTeam | {{FeatureTeam | ||
|Feature product manager= | |Feature product manager=Sid Stamm | ||
|Feature feature manager=Camilo Viecco | |Feature feature manager=Camilo Viecco | ||
|Feature lead engineer=Camilo Viecco | |Feature lead engineer=Camilo Viecco | ||
| Line 21: | Line 23: | ||
|Feature non-goals=* Replacing the existing x.509 PKI infrastructure. (This is a refinement.) | |Feature non-goals=* Replacing the existing x.509 PKI infrastructure. (This is a refinement.) | ||
* Enabling pinning without also requiring HTTPS (see section 6.5 of spec) | * Enabling pinning without also requiring HTTPS (see section 6.5 of spec) | ||
|Feature functional spec=See https://tools.ietf.org/html/draft-evans-palmer-key-pinning . | |Feature functional spec=It will be deployed in two pushes: | ||
# Do built in pins. | |||
# Allow website pin data as the ietf draft | |||
See https://tools.ietf.org/html/draft-evans-palmer-key-pinning . | |||
However we need to get clarification on several issues including: | |||
1. What do do when muliple headers are found (?) | |||
2. What is the benefit for the requirement that the backup key must NOT be in the chain? | |||
To allow for self MIM the pinning feature will provide three enforcement levels (it will always be calculated) | |||
0: Ignore pinning, ie allow connectionw with failed pin data. (calculate but store result somewhere internally) Hopefully we can put some UX to reflect failed pins, but this is outside of the current scope. | |||
1. (the default) Ignore Pinning IF the trust anchor is not a built in CA. | |||
2. Strict enforcement. | |||
|Feature ux design=The draft recommends that users have ways of querying which domains are pinned. We need to consider whether we think this is necessary and, if so, how to do it. (Perhaps integrated with the history view?) | |Feature ux design=The draft recommends that users have ways of querying which domains are pinned. We need to consider whether we think this is necessary and, if so, how to do it. (Perhaps integrated with the history view?) | ||
No UI will be provided to change the enforcement level. | |||
If site access is denied, we will need a screen explaining why. (There will be no override, as per spec.) | If site access is denied, we will need a screen explaining why. (There will be no override, as per spec.) | ||
| Line 30: | Line 46: | ||
Shall this be included in the STS .idl file? Dont know yet. | Shall this be included in the STS .idl file? Dont know yet. | ||
We shall notice that this is an HTTP extension. Not an TLS/SSL extension. | |||
There are 3 parts fo the implementation: | |||
1. Enhance permission manager to include strings for storage (https://bugzilla.mozilla.org/show_bug.cgi?id=744212 ) | |||
2. Ability to "Note" a pinning when presented over an error free TLS connection | |||
3. Ability to use the permission manager at chain building time to ensure a valid (from the pinning perspective planner exists). | |||
|Feature qa review=This will require a lot of QA, in particular due to the built-in roots. Will need non trivial collaboration with QA. | |||
|Feature implementation notes=So we have two bugs created now: | |Feature implementation notes=So we have two bugs created now: | ||
https://bugzilla.mozilla.org/show_bug.cgi?id=744212 | https://bugzilla.mozilla.org/show_bug.cgi?id=744212 (this one is waiting for review) | ||
and | and | ||
https://bugzilla.mozilla.org/show_bug.cgi?id=744204 | https://bugzilla.mozilla.org/show_bug.cgi?id=744204 | ||
|Feature landing criteria=This feature depends on using libpkix for functionality. | |||
}} | }} | ||
{{FeatureInfo | {{FeatureInfo | ||
|Feature priority=P1 | |Feature priority=P1 | ||
|Feature theme= | |Feature theme=TLS Hardening | ||
|Feature roadmap=Security | |Feature roadmap=Security | ||
|Feature engineering team=Security | |Feature engineering team=Security | ||
}} | }} | ||
{{FeatureTeamStatus}} | {{FeatureTeamStatus}} | ||