Slide 1

Slide 1 text

MOBILE AUTHENTICATION IMPLEMENTING FIDO ON MOBILE Mobile Romandie Meetup • January 2019 • Nicolas Marfurt

Slide 2

Slide 2 text

Senior Software Engineer at AdNovum @nmarfurt

Slide 3

Slide 3 text

USERNAME / PASSWORD AUTHENTICATION

Slide 4

Slide 4 text

USERNAME / PASSWORD AUTHENTICATION A pain for users: ‣ inconvenient to type ‣ hard to remember ‣ re-used for multiple accounts ‣ not changed over time

Slide 5

Slide 5 text

USERNAME / PASSWORD AUTHENTICATION Password stored on server: ‣ common to all user’s devices ‣ needs to trust server for secure storage ‣ servers can be attacked and passwords can be stolen ‣ single point of failure

Slide 6

Slide 6 text

THE WORLD HAS A PASSWORD PROBLEM

Slide 7

Slide 7 text

source: 1password.com

Slide 8

Slide 8 text

source: apple.com

Slide 9

Slide 9 text

THE WORLD HAS A PASSWORD PROBLEM STILL

Slide 10

Slide 10 text

FIDO

Slide 11

Slide 11 text

source: http://artychoc-studio.com/portfolio/graphic-design-0033/

Slide 12

Slide 12 text

Fast Identity Online

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

YOU CAN’T LEAK PASSWORDS IF YOU DON’T STORE PASSWORD

Slide 15

Slide 15 text

FIDO UAF OVERVIEW • Passwordless experience ‣ based on asymmetric keys generated by the device • Use local device for online authentication ‣ multiple user verification methods ‣ e.g. fingerprint, face recognition, voice recognition • No secret stored on server ‣ private key never leaves the device ‣ unique key pair per registration

Slide 16

Slide 16 text

FIDO UAF WORKFLOWS • User enrollment • Registration • Authentication and Transaction confirmation • De-registration

Slide 17

Slide 17 text

FIDO Client

Slide 18

Slide 18 text

FIDO Client

Slide 19

Slide 19 text

USER ENROLLMENT

Slide 20

Slide 20 text

FIDO UAF – USER ENROLLMENT User enrollment consists of creating the verification material locally on your device.

Slide 21

Slide 21 text

FIDO UAF – USER ENROLLMENT source: apple.com

Slide 22

Slide 22 text

REGISTRATION

Slide 23

Slide 23 text

FIDO UAF – REGISTRATION The user registers their device to the online service by selecting a local authentication mechanism.

Slide 24

Slide 24 text

FIDO UAF – REGISTRATION User is prompted to choose an available authenticator that matches the online service’s acceptance policy. source: https://fidoalliance.org/how-fido-works/

Slide 25

Slide 25 text

FIDO UAF – REGISTRATION User unlocks the FIDO authenticator. source: https://fidoalliance.org/how-fido-works/

Slide 26

Slide 26 text

FIDO UAF – REGISTRATION The user's device creates a new, unique key pair. source: https://fidoalliance.org/how-fido-works/

Slide 27

Slide 27 text

FIDO UAF – REGISTRATION Public key is sent to the server, as well with other data which is signed by the authenticator. source: https://fidoalliance.org/how-fido-works/

Slide 28

Slide 28 text

AUTHENTICATION

Slide 29

Slide 29 text

FIDO UAF – AUTHENTICATION Authorize a user to connect to a service, or confirm a transaction made by the user.

Slide 30

Slide 30 text

FIDO UAF – AUTHENTICATION Online service challenges the user to login with a registered device that matches the service’s acceptance policy. source: https://fidoalliance.org/how-fido-works/

Slide 31

Slide 31 text

FIDO UAF – AUTHENTICATION User is verified to unlock the FIDO authenticator. source: https://fidoalliance.org/how-fido-works/

Slide 32

Slide 32 text

FIDO UAF – AUTHENTICATION Authenticator selects the proper private key and signs the challenge. source: https://fidoalliance.org/how-fido-works/

Slide 33

Slide 33 text

FIDO UAF – AUTHENTICATION Signed challenge is sent back to the server, which verifies it with the registered public key. source: https://fidoalliance.org/how-fido-works/

Slide 34

Slide 34 text

DE-REGISTRATION

Slide 35

Slide 35 text

FIDO UAF – DE-REGISTRATION Remove stored information on server and remove keys on stored on device.

Slide 36

Slide 36 text

IMPLEMENTING FIDO

Slide 37

Slide 37 text

NEVIS MOBILE AUTHENTICATION • Solution based on top of the FIDO standard • Part of NEVIS, AdNovum’s security suite product • Server component that implements the FIDO UAF protocol • Android and iOS native SDKs • Access App to authenticate users to services using NEVIS

Slide 38

Slide 38 text

BUILDING A FIDO CLIENT FRAMEWORK • Designing a robust architecture ‣ close collaboration between Android and iOS developers • Shaping a public API ‣ allowing flexibility to the users of the SDK ‣ … while offering standard use cases out of the box • Very good testing to ensure quality • Good documentation

Slide 39

Slide 39 text

UNDERSTANDING THE FIDO SPECIFICATIONS

Slide 40

Slide 40 text

UNDERSTANDING THE FIDO SPECIFICATIONS • standard is young ‣ version 1 in 2014, current version 1.1 in 2017 • slow adoption ‣ Touch ID and Face ID are not FIDO compliant ‣ low-level layers should eventually be implemented by vendors directly • almost no reference or example • some aspects are well detailed, while others are not so clear ‣ needs to figure out a solution that fits the context

Slide 41

Slide 41 text

SECURITY ASPECTS

Slide 42

Slide 42 text

SECURITY ASPECTS • Key generation ‣ use the Secure Enclave or Secure Element/TEE ‣ dedicated hardware, isolated from the main processor • Key bound to user verification on usage ‣ e.g. Touch ID or Face ID to use private key for signing • APIs choice ‣ iOS: Security framework and Keychain ‣ Android: KeyStore and Spongy Castle • APIs have constraints and limitations ‣ key types and formats ‣ additional work to support some formats for export

Slide 43

Slide 43 text

REAL-WORLD USE CASES • What happens if the app is uninstalled and re-installed, or restored from a backup? ‣ needs to have a consistent state ‣ be careful with different store behavior, e.g. iOS Keychain • What happens if the user changes his device? ‣ needs to register again on new device ‣ delete registration from old device on server • How to recover if the local user verification is locked? ‣ needs another registered authenticator as alternative ‣ contact support

Slide 44

Slide 44 text

WHAT ARE YOUR QUESTIONS

Slide 45

Slide 45 text

LINKS & DOCUMENTATION Links • https://fidoalliance.org/what-is-fido/ • https://fidoalliance.org/specifications/download/ • https://www.nevis-security.ch/en/offering/solution/ mobile_authentication.html • https://developers.google.com/android/reference/com/ google/android/gms/fido/Fido • https://www.linkedin.com/pulse/eliminate-passwords-new- approach-authentication-needed-peter-gassmann/ • https://en.wikipedia.org/wiki/Public-key_cryptography