webauthn 101 - black hat briefings · webauthn 101 demystifying webauthn blackhat 2019. 2 agenda...

44
WebAuthn 101 Demystifying WebAuthn Blackhat 2019

Upload: others

Post on 26-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

WebAuthn 101Demystifying WebAuthn

Blackhat 2019

Page 2: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

2

Agenda

MFA - a spectrum of assurance

Enter WebAuthnPasswords aren’t enough

Page 3: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

301Passwords aren’t enough

Page 4: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

4.3B+Credentials leaked

in dumps

110MAccounts proactively

re-secured

17%Minimum password

reuse rate

Data breaches, phishing, or malware? Understanding the risks of stolen credentials (Thomas et al.) ai.google/research/pubs/pub46437

Page 5: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

99.9Source: Google

Page 6: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Sources of stolen passwords

Phishing Keyloggers Data breach

Page 7: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Password reuse is the largest source

Phishing is the most dangerous source

The black market fuel account compromise

Page 8: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

9180 of attacks on businesses

include phishing

of information security attacks start with phishing

Source: PhishMe study, cofense.com/enterprise-phishing-susceptibility-report/Source: UK govt, The Cyber Security Breaches Survey 2019

Page 9: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Phishing overtook exploit-based malware in 2016

Source: Safe Browsing (Google Transparency Report)

Exploit malware and phishing sites detected each week

80000

60000

40000

20000

02010 2012 2014 2016 2018

Malware

Phishing

Page 10: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

success rate for a well designed phishing page*

of account vulnerabilities were due to weak or stolen passwords**

*Data Breaches, Phishing, or Malware? Understanding the Risks of Stolen Credentials, 2017**Verizon 2015 Data Breach Investigations Report

43% 76%

Page 11: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

1102MFA - a spectrum of assurance

Page 12: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

MFA It’s a spectrum of assurance

SMS / Voice Backup codes Authenticator (TOTP)

Mobile Push FIDO security keys

Assurance

Many different types of MFA exist, all providing different levels of assurance and convenience

Phishing-resistant

Page 13: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Titan Security Key

Enhanced account protectionPhishing-resistant 2nd factor of authentication that verifies user’s identity and sign-in URL

Trusted hardwareIncludes a secure element with firmware written by Google to verify the key’s integrity

Open ecosystemWorks with popular browsers and a growing ecosystem of services that support FIDO

Page 14: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Now, your Android phone is also a security key

Enhanced account protectionStrongest 2FA protection against phishing

Easy to useSimple, one-time enrollment process, no app required

Convenient for usersUse the phone which is already in your pocket

Today

With phone’s built-in security key

Page 15: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

challenge, “google.com”

Server

How Security Keys work

Who’s calling?

sign: {challenge, “google.com”}

{challenge, “google.com”}signed

Alice’s Security Key

Challenge was: 123456Origin was: google.com Alice’s Key

https://www.google.com

5

challenge

1

6

2

3

4

Page 16: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Created with open standards

Server

USB/NFC/BLEWho’s calling?

https://www.google.com

https://www.google.com

Page 17: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Created with open standards

Server

USB/NFC/BLEWho’s calling?

https://www.google.com

https://www.google.com

WebAuthn API

Page 18: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Created with open standards

Server

USB/NFC/BLEWho’s calling?

https://www.google.com

https://www.google.com

WebAuthn API

CTAP API

Page 19: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

1903Enter WebAuthn

Page 20: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Introducing WebAuthn

+A W3C specification* (Web API) that allows websites to interact with authenticators

* https://github.com/w3c/webauthn

Page 21: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What is WebAuthn? How does it relate to FIDO2?

WebAuthnCTAP

FIDO2

Client(Computer, phone)

Built-in authenticator(fingerprint)

Remote server(Website)

Removable authenticator(Phone, security key)

Page 22: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

WebAuthn: two use cases

username

password

[email protected]

*********

1. “Bootstrapping” - security key as a 2nd factor 2. “Re-authentication” - biometrics as a way to simplify verifying a returning user

+

Page 23: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Implemented on Android

Keymaster

Biometrics

FIDO module

Chrome myApp...

www

Green: Your app can directly talk to the key store to store and use cryptographic keysRed: Your app can directly talk to the biometric APIs

OR

Blue: Your app and website can talk to the FIDO/WebAuthn APIs that abstracts the keystore and biometric APIs

FIDO server

Page 24: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Meet Elisa

Page 25: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Elisa wants to sign in to her bank

She starts on her mobile browser and enrolls in fingerprint after sign-in

Registering built-in authenticator for re-auth (mobile web)

Page 26: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Elisa opens launches her mobile browser, Chrome, and goes to Tri-Bank

1. Registering built-in authenticator for re-auth (mobile web)

Page 27: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

She signs in with her username and password

1. Registering built-in authenticator for re-auth (mobile web)

Page 28: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

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

Page 29: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What happened behind the scenes?

Silently determined whether a platform authenticator was available:PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().then(resp

onse => {

if (response === true) {

//User verifying platform authenticator is available!

} else {

//User verifying platform authenticator is NOT available.

}

Page 30: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What happened behind the scenes?

Created the credential on the platform authenticatornavigator.credentials.create({

"publicKey": PublicKeyCredentialCreationOptions

});

Page 31: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What happened behind the scenes?

With values for PublicKeyCredentialCreationOptions

○ excludeCredentials = [// add any already registered ids ]

○ authenticatorSelection.authenticatorAttachment = 'platform'// other options: ‘cross-platform’

○ authenticatorSelection.userVerification = 'required'// other options: ‘discouraged’ or ‘preferred’

Page 32: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Elisa comes back to Tri-Bank in another session

Page 33: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

The next time Elisa opens Tri-Bank on mobile browser, she gets a fingerprint dialog

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).

Page 34: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Using only her fingerprint, she’s able to sign in without using her username + password on mobile web

Page 35: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What happened behind the scenes?

Created a signature using the platform authenticatornavigator.credentials.get({

"publicKey": PublicKeyCredentialRequestOptions

});

With values for PublicKeyCredentialRequestOptions○ allowCredentials = [// credential associated with session]○ userVerification = true

Page 36: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

2a. Using built-in authenticator for re-auth (mobile web)

Elisa downloads Tri-Bank from the Play Store

She launches the app for the first time to sign in to check her funds

Page 37: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

She installs Tri-Bank from Google Play Store and opens the app

Page 38: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Elisa chooses “Sign In” and enters her username

Page 39: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Elisa is now asked to authenticate with the fingerprint dialog

Page 40: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

What happened behind the scenes?

Created a signature using the platform authenticatorFido2ApiClient fido2ApiClient = Fido.getFido2ApiClient(this.getApplicationContext());

Task<Fido2PendingIntent> result = fido2ApiClient.getSignIntent(requestOptions);

With values for requestOptions○ allowCredentials = [// credential associated with session ]○ userVerification = true

Page 41: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Case study: Yahoo! JAPANReauth using fingerprint reduced time to sign-in by ...

comparing to that of using a password.

37.5%

Page 42: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Case study: Google98% of biometric reauth users finish in 38s98% of all users enter password in 150s

VS

Does not exist in biometric

Google Internal Data: 2018

Page 43: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

Implement WebAuthn today!● Play with our FIDO server

webauthndemo.appspot.com

● Implement WebAuthn Create and Get methodscodelabs.developers.google.com/codelabs/webauthn-reauth/

● Link your Android app for a seamless login experiencecodelabs.developers.google.com/codelabs/fido2-for-android/

Page 44: WebAuthn 101 - Black Hat Briefings · WebAuthn 101 Demystifying WebAuthn Blackhat 2019. 2 Agenda MFA - a spectrum of assurance Enter WebAuthn Passwords aren’t enough. 3 Passwords

44

Q&A