Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Who Am I? - Working on FIDO2, UAF since 2015  - Security Engineer

Slide 3

Slide 3 text

Agenda - What’s FIDO? - History of FIDO works and activities - Details of LINE FIDO2 Server - How to contribute? - Future works 

Slide 4

Slide 4 text

What’s FIDO? 

Slide 5

Slide 5 text

Fast IDentity Online 

Slide 6

Slide 6 text

Passwords are Risky!  Rainbow table Key logging Phishing Social engineering A A

Slide 7

Slide 7 text

FIDO is the Future of Logins More Secure Easier Safer 

Slide 8

Slide 8 text

How does FIDO work? It’s based on the public key cryptography It’s based on the public key cryptography  Challenge (random number) Response (signature) Success or fail User gesture Prompt user gesture User verification FIDO Protocol Unlock private key Verify signature(/w public key)

Slide 9

Slide 9 text

History of FIDO works and activities 

Slide 10

Slide 10 text

FIDO Alliance Board member Our Journey with FIDO 2020 LINE BK LINE Passwordless 2018 FIDO Universal Server Certification 2021 FIDO Developer Challenge Open source release 2019 FIDO Hackathon LINE Pay 2017 

Slide 11

Slide 11 text

Board Member X  May, 2017

Slide 12

Slide 12 text

FIDO Working Group Korea Working Group Japan Working Group - Vice Chair  2017 - 2021 APAC Marketing Forum

Slide 13

Slide 13 text

Universal Server Certification  Dec, 2018

Slide 14

Slide 14 text

FIDO Hackathon in Korea https://fidoalliance.org/fido-authentication-developer-support-program-fido-hackathon-in-korea/  April - Dec, 2019

Slide 15

Slide 15 text

FIDO Hackathon in Korea  April - Dec, 2019

Slide 16

Slide 16 text

LINE Pay X FIDO  Sep, 2019

Slide 17

Slide 17 text

LINE BK X FIDO  Oct, 2020

Slide 18

Slide 18 text

Passwordless LINE X FIDO Login Push Success Authentication iOS Android Primary LINE App Secondary LINE App iPad Mac Windows  Nov, 2020

Slide 19

Slide 19 text

FIDO Developer Challenge Judgement https://fidoalliance.org/fido-developer-challenge/  Jul - Oct, 2021

Slide 20

Slide 20 text

Release to Open source  Aug, 2021

Slide 21

Slide 21 text

LINE DEVELOPER DAY 2019  https://linedevday.linecorp.com/jp/2019/sessions/D1-1 Strong Customer Authentication & Biometrics Using FIDO

Slide 22

Slide 22 text

LINE DEVELOPER DAY 2020  Secure LINE login with biometrics key replacing password https://linedevday.linecorp.com/2020/en/sessions/7365

Slide 23

Slide 23 text

LINE DEVELOPER DAY 2020  https://linedevday.linecorp.com/2020/en/sessions/8802 Cross-platform Mobile Security at LINE

Slide 24

Slide 24 text

LINE Engineering Blog  https://engineering.linecorp.com/en/blog/fido-at-line/ https://engineering.linecorp.com/en/blog/fido-at-line-fido2-server-opensource/

Slide 25

Slide 25 text

Details of LINE FIDO2 Server 

Slide 26

Slide 26 text

Three Standards of FIDO UAF (Since 2014 - ) Mobile Support Android/iOS U2F (2014 - ) Using Hardware Key FIDO2 (2018 - ) Mobile/Desktop/Web Support  Passwordless Login 2FA Passwordless Login + 2FA

Slide 27

Slide 27 text

Features of FIDO2 Standard  - Consists of two specifications (CTAP + WebAuthn)

Slide 28

Slide 28 text

FIDO2 is the Newest set of Specifications FIDO2 FIDO2 CTAP W3C WebAuthn Platform proprietary Server Client Platform Authenticator External Authenticator USB/NFC/Bluetooth

Slide 29

Slide 29 text

Features of FIDO2 Standard - Major browser support  - Consists of two specifications (CTAP + WebAuthn)

Slide 30

Slide 30 text

 https://fidoalliance.org/fido2/fido2-web-authentication-webauthn Platform/Browser Support Updated Jun, 2020

Slide 31

Slide 31 text

Features of FIDO2 Standard - Major browser support - Native API support - Windows10, Android  - Backward compatibility for U2F - Consists of two specifications (CTAP + WebAuthn)

Slide 32

Slide 32 text

LINE FIDO2 Server & Client Overview LINE FIDO2 Combo (Android,iOS) Relying Party LINE FIDO2 Server Client Server

Slide 33

Slide 33 text

LINE FIDO2 Server & Client Overview Open source LINE FIDO2 Combo (Android,iOS) Relying Party LINE FIDO2 Server Client Server

Slide 34

Slide 34 text

Open sourced Server Modules server FIDO2 Server application  spring-boot-starter FIDO2 Server wrapped in a Spring boot starter rp-server Simple RP Implementation with Web page for Test common FIDO2 Common Message classes

Slide 35

Slide 35 text

Server stack LINE FIDO2 Server is built on top of Spring Boot Crypto COSE JWT BouncyCastle Security Storage MySQL Redis H2 Jackson Lombok Swagger Utilities/Helpers CBOR Retrofit2 Services Spring Boot Data-Jpa Data-Redis Web Logging Validation JDBC Test Challenge Response Attestation Metadata UserKey Session Mds v2 X.509

Slide 36

Slide 36 text

Attestation features Attestation types Basic Self Attestation CA None Anonymization CA Attestation formats Packed TPM Android Key Attestation Android SafetyNet FIDO U2F None Apple Anonymous 

Slide 37

Slide 37 text

Attestation features Attestation types Basic Self Attestation CA None Anonymization CA Attestation formats Packed TPM Android Key Attestation Android SafetyNet FIDO U2F None Apple Anonymous 

Slide 38

Slide 38 text

Quickstart Guide - Run rpserver and server or line-fido2-spring-boot-demo - Connect to http://localhost:8080/ 

Slide 39

Slide 39 text

Quickstart Guide - You can Register, Authenticate and check the result. - Username and display name are required when starting registration - You can also test various additional functions by selecting several options. 

Slide 40

Slide 40 text

Quickstart Guide External Properties - rpserver spring: profiles: active: local config: use-legacy-processing: true server: port: 8080 logbook: write: level: INFO obfuscate: headers: - host - origin - referer - user-agent - accept-encoding exclude: - /health fido2-server: scheme: http host: localhost port: 8081 endpoint: get-reg-challenge: /fido2/reg/challenge get-auth-challenge: /fido2/auth/challenge send-reg-response: /fido2/reg/response send-auth-response: /fido2/auth/response get-delete-credentials: /fido2/credentials spring: profiles: active: local resources: chain: cache: false fido2: rp: id: localhost origin: localhost port: 8080 conformance: url: http://localhost:8080 logging: level: org.springframework.web: DEBUG org.hibernate: DEBUG com.linecorp.line: DEBUG  rpserver/../resources/application.yaml rpserver/../resources/application-local.yaml

Slide 41

Slide 41 text

Quickstart Guide External Properties - FIDO2 server … server: port: 8081 fido: … fido2: session-ttl-millis: 180000 accept-unregistered-authenticators: true logbook: write: level: INFO category: http.wire-log obfuscate: headers: … exclude: - /health mds: enable-mds : false sources: # if you want to use mds service please see below # https://fidoalliance.org/metadata/ - name: fido-mds-v2 enabled: true endpoint: https://mds2.fidoalliance.org/ access-token: xxx root-certificates: - xxx spring: profiles: active: local server: port: 8081 redis: host: localhost port: 6379 password: logging: level: com.linecorp.line: DEBUG org.springframework.web: DEBUG org.hibernate: DEBUG h2: console: enabled: true settings: web-allow-others: true  server/../resources/application.yaml server/../resources/application-local.yaml

Slide 42

Slide 42 text

Quickstart Guide data.sql -- test rp insert into rp (id, name, description) values('localhost', 'example1', 'example1');  server/../resources/data.sql

Slide 43

Slide 43 text

Demo  Registration

Slide 44

Slide 44 text

Demo  Registration

Slide 45

Slide 45 text

Demo  Authentication

Slide 46

Slide 46 text

Demo  Authentication

Slide 47

Slide 47 text

FIDO Play service Client architecture  FIDO2 GMS Core LINE Authenticator LTSM Native Authenticator External Authenticator LINE FIDO2 Glue Layer (Abstraction) RP App (Activity) RP App (View) LINE FIDO2 Combo (FIDO2 Client, Authenticator Logic) LTSM (LINE Trusted Security Module) KAL (KeyChain Abstraction Layer) WAL (Whitebox Abstraction Layer) Abstraction layer supporting both Android native authenticator and LINE authenticator Uses Touch ID and Face ID as UV and leverages WBC (Whitebox cryptography) for attestation CTAP2 Single API entry point iOS Android

Slide 48

Slide 48 text

How to contribute? 

Slide 49

Slide 49 text

https://github.com/line/line-fido2-server 

Slide 50

Slide 50 text

README & CONTRIBUTING 

Slide 51

Slide 51 text

Wiki 

Slide 52

Slide 52 text

Find or Create an issues to contribute 

Slide 53

Slide 53 text

Sign CLA 

Slide 54

Slide 54 text

PR Review and Merge 

Slide 55

Slide 55 text

Future Works 

Slide 56

Slide 56 text

Roadmap As an open source project More Features Tech documents  Library Distribution

Slide 57

Slide 57 text

Roadmap Inside LINE More LINE services Other Platforms  Sharing knowledge

Slide 58

Slide 58 text

TRY OUR OPEN SOURCE! WELCOME YOUR STAR AND LOVE!