A look at Google's approach to strong authentication with FIDO, including an exploration of how security keys have been deployed within Google and how simple and secure user journeys are with Web Authn.
1 of 70
Downloaded 46 times
More Related Content
Web Authn & Security Keys: Unlocking the Key to Authentication
5. success rate for
a well designed
password phishing
page
of account vulnerabilities
were due to weak or
stolen passwords
*Verizon data breach report, 2017
43% 81%
*Google study
6. 3.3B+
credentials leaked
in dumps
67M
accounts proactively
re-secured
17%
minimum password
reuse rate
* * * *
Data breaches, phishing, or malware? Understanding the risks of stolen
credentials (Thomas et al.) https://ai.google/research/pubs/pub46437
8. SMS usability
Coverage issues,
delay, user cost
Device usability
One per site,
expensive, fragile
User experience
Users find it hard
Phishable
OTPs are increasingly phished
?
Any second factor improves user security,
but...
15. 15
Based on
asymmetric
cryptography
● User’s device mints new key pair,
gives public key to server
● Server asks user’s device to sign
data to verify user
● One device, many services, “bring
your own device” enabled
Core idea - standard public key cryptography
16. 16
How security key works
“I promise a user is here”,
“the server challenge was: 337423”,
“the origin was: google.com”
Server
Password
https://www.google.com
17. 17
Security key defeats phishing
Password
goggle.com
Password
“I promise a user is here”,
“the server challenge was: 337423”,
“the origin was: goggle.com”
Server
https://www.goggle.com
19. 19
Deployment at Google
Enterprise use case
● Mandated for Google employees
● Corporate SSO (web)
● SSH
● Forms basis of all authentication
Consumer use case
● Available as opt-in for Google consumers
● Adopted by other relying parties too:
Dropbox, Github
20. 20
Use cases at Google
Bootstrapping
● It’s only used when employee signs in on a new device the first time.
● It protects against phishing.
● Removable security key is carried as part of the badge.
Hardware credential binding
● Once signed into a device, long-lived tokens (cookies, etc) are usually issued.
● Occasionally, a local security key touch is required, which is presented in
combination with this local token.
● This is to ensure the token is still being presented from a machine we trust.
21. 21
Time to
authenticate
OTP via SMS
OTP via app
Security Keys
OTP
Security Keys
50
40
30
20
10
0
Timetoauthenticate(s)
50
40
30
20
10
0
Timetopresent2ndfactor(s)
Google employees Consumer users
22. 22
Time to
authenticate
OTP via SMS
OTP via app
Security Keys
OTP
Security Keys
50
40
30
20
10
0
Timetoauthenticate(s)
50
40
30
20
10
0
Timetopresent2ndfactor(s)
Google employees Consumer users
"If you've been reading your e-mail" takeaway:
Security keys are faster
to use than OTPs
26. 26
We made the password a lot safer with U2F,
but we want to go one step further: we want
to remove the password from the equation
That’s where FIDO2 and WebAuthn come in
27. 27
What is WebAuthn? How does it relate to FIDO2?
W3C WebAuthnFIDO CTAP
FIDO2
Client
(Computer, phone)
Built-in authenticator
(fingerprint)
Remote server
(Website)
Removable authenticator
(Phone, security key)
31. 31
Elisa wants to sign in to her bank
She starts on her mobile browser and
enrolls in fingerprint after sign-in
Registering and using built-in authenticator for re-auth (mobile web)
32. 32
1. Registering built-in authenticator for re-auth (mobile web)
Request
UV=true
X-Plat=false
Result
credential
(internal,caBLE)
Elisa opens
launches her
mobile browser,
Chrome, and goes
to Tri-Bank
33. 33
1. Registering built-in authenticator for re-auth (mobile web)
She signs in with
her username and
password
34. 34
1. Registering built-in authenticator for re-auth (mobile web)
Tri-Bank shows a promo
asking Elisa if she wants
to opt in to fingerprint to
sign in
She opts in and
continues to her account
35. 35
Elisa comes back to
Tri-Bank in another session
2a. Using built-in authenticator for re-auth (mobile web)
36. 36
2a. Using built-in authenticator for re-auth (mobile web)
The next time Elisa
opens Tri-Bank on
mobile browser,
she gets a
fingerprint dialog
Request
credentialId
(internal)
Since the user already signed in on this device, the credential ID is encoded in the
cookie and the RP requests the “internal” transport only (since they don’t want the user
to see prompts about external authenticators).
37. 37
2a. Using built-in authenticator for re-auth (mobile web)
Using only her
fingerprint, she’s
able to sign in
without using her
username + password
on mobile web
Request
credentialId
(internal)
38. 38
Elisa downloads Tri-Bank
from the Play Store
She launches the app for the first time
to sign in to check her funds
2b. Using built-in authenticator for re-auth (native mobile app)
40. 40
2b. Using built-in authenticator for re-auth (native mobile app)
Elisa chooses
“Sign In” and also
chooses an
account
Request
credentialId
(internal)
41. 41
Elisa is now asked
to authenticate
with the
fingerprint dialog
2b. Using built-in authenticator for re-auth (native mobile app)
42. 42
Elisa wants to sign in to
her bank on her
desktop computer
3. Cross-platform bootstrap
43. 43
Elisa chooses to
sign in on her
desktop browser
Request
credentialId
(internal)
Request (Alternative)
{empty credentialId}
Will result in prompt to insert removable SK
3. Cross-platform bootstrap
53. 53
Note that we’re
inheriting the strength
of the credentials from
the initial bootstrap
If in Step 1 we only ask the
user for a username +
password, the strength of
all the derived credentials
are only as good as a
username + password.
If in Step 1 we ask for a
stronger credential (2nd
factor security key), all of
the derived credentials
would inherit those
stronger attributes too.
68. 68
How can I
get started?
Desktop/laptop
● WebAuthn support was
launched in Chrome 67.
● The initial release
supports only
external tokens.
● Support for built-in
modalities is coming
later in the fall.
Android
● FIDO2 APIs on Android
are available in
pre-release mode.
● Support for FIDO2 on
the web (to built-in
fingerprint sensor) will
come later in the fall.
Visit webauthndemo.appspot.com to try it out