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