All Projects → line → line-fido2-server

line / line-fido2-server

Licence: Apache-2.0 license
FIDO2(WebAuthn) server officially certified by FIDO Alliance and Relying Party examples.

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
Vim Snippet
174 projects
CSS
56736 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to line-fido2-server

webauthn-demo
WebAuthn demo with Ionic/Angular and Spring Boot
Stars: ✭ 22 (-93.71%)
Mutual labels:  passwordless, webauthn, fido2
FIDO-Server
Open-source FIDO server, featuring the FIDO2 standard.
Stars: ✭ 17 (-95.14%)
Mutual labels:  relying-party, webauthn, fido2
webauthn-example
Basic WebAuthn client and server in go
Stars: ✭ 53 (-84.86%)
Mutual labels:  webauthn, fido2
Opensk
OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
Stars: ✭ 2,114 (+504%)
Mutual labels:  webauthn, fido2
passwordless
Passwordless authentication server, supports OTP, WebAuthn, plan to implement TOTP and mobile biometric authentication
Stars: ✭ 34 (-90.29%)
Mutual labels:  passwordless, webauthn
go-libfido2
libfido2 bindings for golang
Stars: ✭ 42 (-88%)
Mutual labels:  webauthn, fido2
keycloak-radius-plugin
Make the radius server as part of keycloak SSO
Stars: ✭ 102 (-70.86%)
Mutual labels:  webauthn, fido2
awesome-yubikey
Curated list of awesome Yubikey resources, open source projects, tools and tutorials.
Stars: ✭ 22 (-93.71%)
Mutual labels:  webauthn, fido2
android-webauthn-authenticator
A WebAuthn Authenticator for Android leveraging hardware-backed key storage and biometric user verification.
Stars: ✭ 101 (-71.14%)
Mutual labels:  webauthn, fido2
clarion
WebAuthn (U2F) helper for CLI operations (e.g. SSH Log in)
Stars: ✭ 78 (-77.71%)
Mutual labels:  webauthn, fido2
Solo
Solo 1: open security key supporting FIDO2 & U2F over USB + NFC
Stars: ✭ 1,986 (+467.43%)
Mutual labels:  webauthn, fido2
wp-webauthn
🔒 WP-WebAuthn allows you to safely login to your WordPress site without password.
Stars: ✭ 85 (-75.71%)
Mutual labels:  webauthn, fido2
uru-card
Arduino based firmware for FIDO2 Authenticator
Stars: ✭ 114 (-67.43%)
Mutual labels:  webauthn, fido2
webauthn.me
webauthn.me, learn more about the Web Authentication API or try the debugger.
Stars: ✭ 30 (-91.43%)
Mutual labels:  passwordless, webauthn
adfsmfa
MFA for ADFS 2022/2019/2016/2012r2
Stars: ✭ 86 (-75.43%)
Mutual labels:  webauthn, fido2
portal-demos
A few demos on how the new portal API can be used with React.
Stars: ✭ 14 (-96%)
Mutual labels:  example
SplashScreenExample
How to implement a Splash Screen in ReactNative
Stars: ✭ 14 (-96%)
Mutual labels:  example
play-scala-streaming-example
Example Play application showing Comet and Server Sent Events in Scala
Stars: ✭ 42 (-88%)
Mutual labels:  example
erws
Erlang Websockets example using Cowboy
Stars: ✭ 43 (-87.71%)
Mutual labels:  example
GStreamer-Python
Fetch RTSP Stream using GStreamer in Python and get image in Numpy
Stars: ✭ 81 (-76.86%)
Mutual labels:  example

LINE FIDO2 SERVER

Stars Repo Size License Apache-2.0 Top Language Spring Boot Java version Data base Last Commit

FIDO2(WebAuthn) Server officially certified by FIDO Alliance

Overview

FIDO (Fast IDentity Online) is an open standard for online authentication. It is designed to solve the password problems stemming from a lot of security problems as we are suffering today.

Rather than relying on symmetric credentials (like passwords or PINs, typically which is a knowledge-based factor), FIDO is based on a public-key cryptography algorithm that is based on asymmetric credentials.

Simply, the device generates the key pair and stores the private key within the secure area, and sends the corresponding public key (as the name implies it is okay to be public) to the server.

Then, if the authentication is needed, the server sends challenges to the device and the device generates the digital signature with the private key and sends it to the server.

Finally, the server can validate the signature with the registered public key.

What is FIDO2

FIDO2 is an improved standard for use on the web and other platforms as well as mobile. Various web browsers and OS platforms currently support the FIDO2 standard API.

Basically, FIDO2 has the following operations - Registration, Authentication.

Registration

  • The user is prompted to choose an available FIDO authenticator that matches the online service’s acceptance policy.
  • User unlocks the FIDO authenticator using a fingerprint reader, a button on a second–factor device, securely–entered PIN, or other methods.
  • The user’s device creates a new public/private key pair unique for the local device, online service, and user’s account.
  • The public key is sent to the online service and associated with the user’s account. The private key and any information about the local authentication method (such as biometric measurements or templates) never leave the local device.

Authentication

  • Online service challenges the user to log in with a previously registered device that matches the service’s acceptance policy.
  • User unlocks the FIDO authenticator using the same method as at Registration time.
  • The device uses the user’s account identifier provided by the service to select the correct key and sign the service’s challenge.
  • The client device sends the signed challenge back to the service, which verifies it with the stored public key and lets the user log in.

Screenshots

Chrome on Mac with TouchId

registration_flow

Chrome on Mac with Secret Key (2FA)

registration_flow

Chrome on Android with Fingerprint (Reg)

registration_flow

Chrome on Android with Fingerprint (Auth)

registration_flow

Modules

  • server: The FIDO2 server implementation conforming to the FIDO2 standard
  • common: FIDO2 related common models
  • rp-server: The sample application with a FIDO2 RP implementation
  • spring-boot-stater: The spring-boot-starter version of the LINE FIDO2 server application that can be easily integrated into a Spring Boot environment

Features

  • Supported attestation types
    • Basic
    • Self
    • Attestation CA (a.k.a Privacy CA)
    • None
    • Anonymization CA
  • Supported attestation formats
    • Packed (FIDO2)
    • Tpm (Windows10 devices)
    • Android key attestation
    • Android SafetyNet (Any Android devices running 7+)
    • FIDO U2F (Legacy U2F authenticators)
    • Apple Anonymous
    • None
  • Metadata service integration
    • FIDO MDSv2

How to run

You need to run the FIDO2 server and RP Server first.

If you want to integrate your own RP Server, please implement APIs by referring to the sample codes. Regarding client sides, you may implement the web app for communicating with the RP server.

We also provide our server in the form of a spring boot starter. Check out the spring-boot-starter directory.

Manual

# Start RP Server
cd rpserver
./gradlew bootRun

# Start FIDO2 Server or Line-fido2-spring-boot Demo
cd server
./gradlew bootRun

cd spring-boot-starter/line-fido2-spring-boot-demo
./gradlew bootRun

Docker for demo

If the Docker environment is configured, You can easily run applications with docker-compose.

# Start both RP Server and FIDO2 Server
docker-compose up

After running the applications, you can open the test page at the link below.

http://localhost:8080/

Local DB

FIDO2 Server running on local environments uses h2 as an embedded DB. This needs to be replaced with commercial standalone DB for other environments such as staging, beta or real.

In the case of the local environment, you can use the h2 console. Add the following path /h2-console to the fido server URL to access the h2 web console.

e.g., http://localhost:8081/h2-console

Lombok

This project utilizes Lombok to reduce implementing getter/setter/constructors. You need the Lombok plugin to build with IntelliJ and Eclipse. See the following web pages to get information.

https://projectlombok.org/

Issues

  • If data.sql doesn't work well in an IntelliJ environment, try commenting on this part in build.gradle.
jar {
  processResources {
    exclude("**/*.sql")
  }
}

API Guides

After running the applications, you can view API guide documents at the link below.

Spring REST Docs

Swagger UI

References

LINE Engineering Blogs

LINE DevDay Videos

Internal

External

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].