|
|
(7 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| ''Last Updated: 7 Sept 2017''
| |
|
| |
| '''Mission''': Use modern cryptography to improve the security and privacy of Firefox | | '''Mission''': Use modern cryptography to improve the security and privacy of Firefox |
|
| |
|
Line 16: |
Line 14: |
| NSS is the cryptography and transport security library that powers Firefox. | | NSS is the cryptography and transport security library that powers Firefox. |
|
| |
|
| * 2017 Q2: [[NSS/Demos|[MWOS] Add new NSS demonstration code]] to show how to use NSS in a modern way.
| |
| * 2017 Q2: [[NSS/ARGON2|[MWOS] Implement Argon2]] to provide a basis to modernize the Master Password in Firefox.
| |
| * 2017 Q2: Implement hardware crypto accelerations on OSX and ARM
| |
| * 2017 Q3: [[NSS/BoGo_Tests|Integrate BoGo's integration tests into NSS builds]].
| |
| ** The automated tests for NSS are mostly unit tests. Integration testing was historically assumed to happen at Firefox, but that's limited. BoGo is a rich set of integration tests that can diagnose protocol issues during automated testing.
| |
| * 2017 Q4: Post-Quantum Research and Development.
| |
| ** Mozilla is intending to join the efforts in developing cryptography that will remain secure once quantum computers come online. This is expected to be a long-duration R&D effort.
| |
|
| |
|
| == PSM == | | == PSM == |
| PSM performs the business logic of deciding whether a given secure network connection is actually trustworthy. It applies logic from the user's choices, the Mozilla Root Program, and the platform in order to make a trust determination. E.g., whether to show a connection as secure. | | PSM performs the business logic of deciding whether a given secure network connection is actually trustworthy. It applies logic from the user's choices, the Mozilla Root Program, and the platform in order to make a trust determination. E.g., whether to show a connection as secure. |
|
| |
|
| * 2016 Q4 / 2017 Q1: Re-architect PSM/NSS interaction to eliminate shutdown crashes. | | * [[Security/CryptoEngineering/Intermediate Preloading|Intermediate Preloading]] |
| ** The interaction between PSM and NSS is extremely old, and doesn't follow the modern methods Gecko uses to initialize and shutdown modules. As such, NSS sometimes crashes when shutting down; this is a leading crash on Android. Fixing this is a substantial architectural change.
| | * [https://bugzilla.mozilla.org/show_bug.cgi?id=1464828 OS-supplied Data at Rest Protections] |
| ** Details here: [[Security/CryptoEngineering/Platform Use of NSS|Platform Use of NSS]]
| |
| * 2017 Q2: Speed up TLS handshakes | |
| * 2017 Q2: Continue work on our Certificate Transparency implementation and test infrastructure
| |
| * 2017 Q3: Move error-string formatting for our error pages into the front-end JavaScript
| |
| * 2017 Q3: Retool the "See more" sections of error pages using JavaScript to provide more help
| |
|
| |
|
| == Web Authentication == | | == Web Authentication == |
| Password authentication is known to be a security liability on the Web. The [https://www.w3.org/TR/webauthn/ W3C Web Authentication Working Group is developing a specification] for using Scoped Credentials to supplement or replace passwords. Mozilla intends to implement Web Authentication (WebAuthn) specification.
| | See [[Security/Web Authentication]] |
| | |
| * 2016 Q2: FIDO U2F v1.1 JS API landed, hidden behind preferences.
| |
| ** You can test a "Soft Token" using any recent version of Firefox using the instructions at https://u2f.bin.coffee/
| |
| * 2017 Jan: Draft WebAuthn JS API available, hidden behind a pref, using the Soft Token from U2F.
| |
| ** [https://groups.google.com/d/msg/mozilla.dev.platform/F0rCRF8z87E/CPh7dIJ9BQAJ Intent to Implement Announcement]
| |
| ** [https://lists.w3.org/Archives/Public/public-webauthn/2017Jan/0083.html Ready For Experiment Announcement]
| |
| * 2017 Q2: Support USB HID U2F devices on Linux, Mac OS X, and Windows. [https://github.com/jcjones/u2f-hid-rs/ rust u2f-hid-rs library]
| |
| * 2017 Q2-3: Integrate '''USB HID U2F hardware support''' into Firefox.
| |
| ** Done in '''Firefox 57'''.
| |
| * 2017 Q2-3: Update to Working Draft 5 of the WebAuthn JS API.
| |
| ** Done in '''Firefox 56'''
| |
| * 2017 Q3: Integrate hardware support with the '''FIDO U2F v1.1 JS API'''
| |
| ** Done in '''Firefox 57'''.
| |
| * 2017 September: Interoperability testing for WebAuthn.
| |
| ** Done.
| |
| * 2017 (late): Update to the Candidate Recommendation of the WebAuthn JS API.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=1384776 Bug 1384776]
| |
| * 2017 (late) / 2018: Support USB HID CTAP devices on desktop platforms. (Exact version TBD)
| |
| ** [https://github.com/jcjones/u2f-hid-rs/issues/33 u2f-hid-rs Issue #33]
| |
| * 2018: Support U2F hardware for Firefox for Android.
| |
| ** [https://github.com/jcjones/u2f-hid-rs/issues/42 u2f-hid-rs Issue #42]
| |
| | |
| All of the above dates are for landing in Firefox Nightly.
| |
| | |
| '''Goal''': permit use of U2F tokens via a user-controllable preference (not on by default) in Firefox 56 or 57 (Done in '''Firefox 57'''), and Web Authentication (on by default) in Firefox 58 or 59. (See [[RapidRelease/Calendar]])
| |
| | |
| === Using U2F / WebAuthn ===
| |
| | |
| Enable the preferences in '''about:config''':
| |
| * security.webauth.u2f
| |
| * security.webauth.webauthn
| |
| | |
| Enabling debugging (example for OSX):
| |
| | |
| MOZ_LOG="webauthnmanager:5, webauth_u2f:5, webauth_u2f:5, u2fkeymanager:5, u2fhidtoken:5, u2fmanager:5" ~/Desktop/NightlyDebug.app/Contents/MacOS/firefox
| |
| | |
| This build supports WebAuthn WD-05 and U2F v1.1 using hardware tokens. It has been tested at:
| |
| * https://u2fdemo.appspot.com/
| |
| * https://github.com/
| |
| * https://u2f.bin.coffee/
| |
| * https://demo.yubico.com/u2f
| |
| * https://webauthn.bin.coffee/wd-05/
| |
| | |
| It does not work on Facebook or Google Accounts; there are issues beyond browser detection that haven't been analyzed yet.
| |
| | |
| === WD-07 Updates ===
| |
| <bugzilla>
| |
| {
| |
| "component":"DOM: Device Interfaces",
| |
| "whiteboard":"webauthn-wd07",
| |
| "include_fields": "id, summary, status, assigned_to, whiteboard, last_change_time"
| |
| }
| |
| </bugzilla>
| |
| | |
| === All WebAuthn Tracked Bugs ===
| |
| <bugzilla>
| |
| {
| |
| "component":"DOM: Device Interfaces",
| |
| "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
| |
| "whiteboard":"webauthn",
| |
| "include_fields": "id, summary, status, assigned_to, whiteboard, last_change_time"
| |
| }
| |
| </bugzilla>
| |
| | |
| == DOM Security ==
| |
| * 2017 Q2: Enable [https://wicg.github.io/hsts-priming/ HSTS Priming] in Firefox Beta
| |
| * 2017 Q2: Update our Mixed Content Blocking implementation to the [https://www.w3.org/TR/mixed-content/ W3C Candidate Recommendation]
| |
| * 2017 Q3: Release paper on HSTS Priming approach
| |