WebAuthn PRF extension
Derives scoped pseudorandom outputs from a compatible WebAuthn credential.
Support in current browsers
Checked against the current browser versions recorded in MDN browser data 8.1.5.
| Browser | Minimum | Outcome | Reason |
|---|---|---|---|
| Chrome | 155 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Edge | 154 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Firefox | 157 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Safari | 27 | Not supported | At least one required mapped feature is not available at this browser baseline. |
| Chrome for Android | 155 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Firefox for Android | 157 | Not supported | At least one required mapped feature is not available at this browser baseline. |
| Safari on iOS | 27 | Not supported | At least one required mapped feature is not available at this browser baseline. |
| Android WebView | 155 | Not supported | At least one required mapped feature is not available at this browser baseline. |
| Samsung Internet | 30.0 | Works | Every required mapped BCD feature is available without a recorded qualification. |
How support changed
Each segment groups recorded releases with the same result. Gaps between recorded versions are not filled in. This is support at each release, rather than the planner’s check of every release above a minimum.
Chrome
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1 – 115114 recorded releasesNot supported
- 116 – 15540 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1 – 115114 recorded releasesNot supported
- 116 – 15540 recorded releasesWorks
Edge
api.CredentialsContainer.create.publicKey_option.extensions.prf- 12 – 11543 recorded releasesNot supported
- 116 – 15439 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 12 – 11543 recorded releasesNot supported
- 116 – 15439 recorded releasesWorks
Firefox
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1 – 134137 recorded releasesNot supported
- Partial implementation
- Not supported on macOS.
- 135 – 1384 recorded releasesWorks with limits
- Partial implementation
- Not supported on macOS.
- 139 – 15719 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1 – 134137 recorded releasesNot supported
- Partial implementation
- Not supported on macOS.
- 135 – 1384 recorded releasesWorks with limits
- Partial implementation
- Not supported on macOS.
- 139 – 15719 recorded releasesWorks
Safari
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1 – 17.646 recorded releasesNot supported
- 18 – 2715 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1 – 2761 recorded releasesNot supported
Chrome for Android
api.CredentialsContainer.create.publicKey_option.extensions.prf- 18 – 11591 recorded releasesNot supported
- 116 – 15540 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 18 – 11591 recorded releasesNot supported
- 116 – 15540 recorded releasesWorks
Firefox for Android
api.CredentialsContainer.create.publicKey_option.extensions.prf- 4 – 148132 recorded releasesNot supported
- 149 – 1579 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 4 – 157141 recorded releasesNot supported
Safari on iOS
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1 – 17.643 recorded releasesNot supported
- 18 – 2715 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1 – 2758 recorded releasesNot supported
Android WebView
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1 – 155126 recorded releasesNot supported
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1 – 155126 recorded releasesNot supported
Samsung Internet
api.CredentialsContainer.create.publicKey_option.extensions.prf- 1.0 – 23.045 recorded releasesNot supported
- 24.0 – 30.07 recorded releasesWorks
api.CredentialsContainer.get.publicKey_option.extensions.prf- 1.0 – 23.045 recorded releasesNot supported
- 24.0 – 30.07 recorded releasesWorks
BCD 8.1.5 · catalogue 2.3.0. Source corrections can change this trace without a new browser release.
What this feature can and cannot do
Helps protect against
- Exportable application key material
- Password-derived local secrets
Does not guarantee
- Account recovery
- Relying-party verification
- Every authenticator
What you need before using it
- A compatible authenticator
- A reviewed WebAuthn extension design
Fallback to keep in place
Keep key derivation and recovery independent of the extension where it is unavailable.