SlideShare a Scribd company logo
1 of 29
Download to read offline
All Rights Reserved | FIDO Alliance | Copyright 20171
FIDO2 SPECIFICATION
OVERVIEW
REVISED NOVEMBER 20TH 2017
All Rights Reserved | FIDO Alliance | Copyright 20172
THE ROAD AHEAD
FIDO2 PROJECT:
WEBAUTHN AND CTAP
All Rights Reserved | FIDO Alliance | Copyright 20173
WEB AUTHENTICATION
Supported In:
A new JavaScript API
that enables FIDO Authentication
in the browser
All Rights Reserved | FIDO Alliance | Copyright 20174
CLIENT TO AUTHENTICATION PROTOCOL
A new API
that enables FIDO Authentication
from the Platform
All Rights Reserved | FIDO Alliance | Copyright 20175
RELYING PARTY APPLICATION
Browser “Application”:
A normal website - HTML, CSS,
JavaScript
Website, Inc. [US] https://www.acme.com
acme.com X
All Rights Reserved | FIDO Alliance | Copyright 20176
FIDO2 BUILDING BLOCKS
(External)
Authenticator
User Device
Browser
(Bound)
Authenticator
Platform
RP App FIDO Authentication
RP App Server
FIDO Server
Metadata
Web
Authentication
JS API
CTAP
All Rights Reserved | FIDO Alliance | Copyright 20177
CREDENTIAL MANAGEMENT API
• PublicKeyCredential inherits from Credential
• Credentail is a W3C Credential Management API for all types of
credentials
• https://www.w3.org/TR/credential-management-1
• Identifier, type, response, client extension
All Rights Reserved | FIDO Alliance | Copyright 20178
REGISTRATION – NO PREFERENCE
First-time flow:
• The user visits example.com, which serves up a JS script.
• User may have existing account at RP or request new acount.
• The Relying Party script runs the code snippet below.
• The client platform searches for and locates the authenticator.
• The client platform connects to the authenticator, performing any pairing actions if necessary.
• The authenticator shows appropriate UI for the user to select the authenticator, obtain a
biometric or other authorization gesture from the user.
• The authenticator returns a response to the client platform, which in turn returns a response to
the Relying Party script.
All Rights Reserved | FIDO Alliance | Copyright 20179
REGISTRATION
If a new credential was created,
• The Relying Party script sends the newly generated credential public key to the
server, along with additional information such as attestation.
• The server stores the credential public key in its database along with a friendly
name for later use.
• The script may store data such as the credential ID in local storage, to improve
future UX by narrowing the choice of credential for the user.
All Rights Reserved | FIDO Alliance | Copyright 201710
NAVIGATOR.CREDENTIAL.CREATE()
if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ }
var publicKey = {
challenge: Uint8Array.from(window.atob("PGifxAoBwCkWkm4b1CiIl5otCphiIh6MijdjbWFjomA="), c=>c.charCodeAt(0)),
// Relying Party:
rp: {
name: "Acme"
},
// User:
user: {
id: "1098237235409872"
name: "john.p.smith@example.com",
displayName: "John P. Smith",
icon: "https://pics.acme.com/00/p/aBjjjpqPb.png"
},
// This Relying Party will accept either an ES256 or RS256 credential, but
// prefers an ES256 credential.
pubKeyCredParams: [
{
type: "public-key",
alg: -7 // "ES256" as registered in the IANA COSE Algorithms registry
},
{
type: "public-key",
alg: -257 // Value registered by this specification for "RS256"
}
],
All Rights Reserved | FIDO Alliance | Copyright 201711
NAVIGATOR.CREDENTIAL.CREATE()
timeout: 60000, // 1 minute
excludeCredentials: [], // No exclude list of PKCredDescriptors
extensions: {"webauthn.location": true} // Include location information
// in attestation
};
// Note: The following call will cause the authenticator to display UI.
navigator.credentials.create({ publicKey })
.then(function (newCredentialInfo) {
// Send new credential info to server for verification and registration.
}).catch(function (err) {
// No acceptable authenticator or user refused consent. Handle appropriately.
});
All Rights Reserved | FIDO Alliance | Copyright 201712
REGISTRATION - PLATFORM AUTHENTICATOR
Relying Party requesting a platform authenticator
• The user visits example.com and clicks on the login button, which redirects the
user to login.example.com.
• The user enters a username and password to log in. After successful login, the
user is redirected back to example.com.
• The Relying Party script runs the JS.
• The user is prompted for whether they are willing to register with the Relying
Party using an available platform authenticator.
• If the user is not willing, terminate this flow.
• The user is shown appropriate UI and guided in creating a credential using one of
the available platform authenticators.
• Upon successful credential creation, the RP script conveys the new credential to
the server.
All Rights Reserved | FIDO Alliance | Copyright 201713
NAVIGATOR.CREDENTIAL.CREATE()
if (!PublicKeyCredential) { /* Platform not capable of the API. Handle error. */ }
PublicKeyCredential.isPlatformAuthenticatorAvailable()
.then(function (userIntent) {
// If the user has affirmed willingness to register with RP using an available platform authenticator
if (userIntent) {
var publicKeyOptions = { /* Public key credential creation options. */};
// Create and register credentials.
return navigator.credentials.create({ "publicKey": publicKeyOptions });
} else {
// Record that the user does not intend to use a platform authenticator
// and default the user to a password-based flow in the future.
}
}).then(function (newCredentialInfo) {
// Send new credential info to server for verification and registration.
}).catch( function(err) {
// Something went wrong. Handle appropriately.
});
All Rights Reserved | FIDO Alliance | Copyright 201714
AUTHENTICATION – ANY CREDENTIAL
When a user with an already registered credential visits a website and wants to
authenticate using the credential.
• The user visits example.com, which serves up a script with as much information as
possible to narrow the choice of acceptable credentials for the user.
• The Relying Party script runs JS.
• The client platform searches for and locates the authenticator.
• The client platform connects to the authenticator.
• The authenticator presents the user with a notification that their attention is required.
On opening the notification, the user picks an acceptable credentials using the account
information provided when creating the credentials
• The authenticator obtains a biometric or other authorization gesture from the user.
• The authenticator returns a response to the client platform, which in turn returns a
response to the Relying Party script.
All Rights Reserved | FIDO Alliance | Copyright 201715
AUTHENTICATION - ANY CREDENTAIL
• If an assertion was successfully generated and returned,
• The script sends the assertion to the server.
• The server examines the assertion, extracts the credential ID, looks up the registered
credential public key it is database, and verifies the assertion’s authentication
signature. If valid, it looks up the identity associated with the assertion’s credential ID;
that identity is now authenticated.
• The server now does whatever it would otherwise do upon successful authentication --
return a success page, set authentication cookies, etc.
• If the Relying Party script does not have any hints available (e.g., from locally stored
data) to help it narrow the list of credentials
All Rights Reserved | FIDO Alliance | Copyright 201716
NAVIGATOR.CREDENTIALS.GET()
if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ }
var options = {
challenge: new TextEncoder().encode("climb a mountain"),
timeout: 60000, // 1 minute
allowCredentials: [{ type: "public-key" }]
};
navigator.credentials.get({ "publicKey": options })
.then(function (assertion) {
// Send assertion to server for verification
}).catch(function (err) {
// No acceptable credential or user refused consent. Handle appropriately.
});
All Rights Reserved | FIDO Alliance | Copyright 201717
AUTHENTICATION - CREDENTIAL HINT
if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ }
var encoder = new TextEncoder();
var acceptableCredential1 = {
type: "public-key",
id: encoder.encode("!!!!!!!hi there!!!!!!!¥n")
};
var acceptableCredential2 = {
type: "public-key",
id: encoder.encode("roses are red, violets are blue¥n")
};
All Rights Reserved | FIDO Alliance | Copyright 201718
AUTHENTICATION - CREDENTIAL HINT
var options = {
challenge: encoder.encode("climb a mountain"),
timeout: 60000, // 1 minute
allowCredentials: [acceptableCredential1, acceptableCredential2];
extensions: { 'webauthn.txauth.simple':
"Wave your hands in the air like you just don’t care" };
};
navigator.credentials.get({ "publicKey": options })
.then(function (assertion) {
// Send assertion to server for verification
}).catch(function (err) {
// No acceptable credential or user refused consent. Handle appropriately.
});
All Rights Reserved | FIDO Alliance | Copyright 201719
DECOMMISSIONING
Possible situations in which decommissioning a credential might be desired. Note that all of
these are handled on the server side and do not need support from the API specified here.
• Possibility #1 -- user reports the credential as lost.
• User goes to server.example.net, authenticates and follows a link to report a
lost/stolen device.
• Server returns a page showing the list of registered credentials with friendly names
as configured during registration.
• User selects a credential and the server deletes it from its database.
• In future, the Relying Party script does not specify this credential in any list of
acceptable credentials, and assertions signed by this credential are rejected.
All Rights Reserved | FIDO Alliance | Copyright 201720
DECOMMISSIONING
• Possibility #2 -- server deregisters the credential due to inactivity.
• Server deletes credential from its database during maintenance activity.
• In the future, the Relying Party script does not specify this credential in any list of
acceptable credentials, and assertions signed by this credential are rejected.
• Possibility #3 -- user deletes the credential from the device.
• User employs a device-specific method (e.g., device settings UI) to delete a
credential from their device.
• From this point on, this credential will not appear in any selection prompts, and no
assertions can be generated with it.
• Sometime later, the server deregisters this credential due to inactivity.
All Rights Reserved | FIDO Alliance | Copyright 201721
FIDO BUILDING BLOCKS
(External)
Authenticator
User Device
Browser
(Bound)
Authenticator
Platform
RP App
CTAP
authenticatorMakeCredential()
authenticatorGetAssertion()
All Rights Reserved | FIDO Alliance | Copyright 201722
ATTESTATIONS
• Packed Attestations
• This is a WebAuthn optimized attestation statement format. It is implementable by authenticators with
limited resources (e.g., secure elements).
• TPM Attestations
• This attestation statement format is generally used by authenticators that use a Trusted Platform Module
as their cryptographic engine.
• Android Key Attestations
• When the authenticator in question is a platform-provided Authenticator on the Android "N" or later
platform, the attestation statement is based on the Android key attestation.
• Android SafetyNet Attestations
• When the authenticator in question is a platform-provided Authenticator on certain Android platforms,
the attestation statement is based on the SafetyNet API.
• FIDO U2F Attestations
• FIDO U2F authenticators using the formats defined in FIDO-U2F-Message-Formats specification
All Rights Reserved | FIDO Alliance | Copyright 201723
EXTENSIONS
• The mechanism for generating public key credentials and Authentication assertions
• Defined Extensions. Each extension is a client extension (browser must support). Each extention is
registered in a IANA registry.
• AppId
• This authentication extension allows Relying Parties that have previously registered a credential using the legacy
FIDO JavaScript APIs to request an assertion.
• Generic Transaction Authorization Extension
• This registration extension and authentication extension allows for a simple form of transaction authorization. A
Relying Party can specify a prompt string, intended for display on a trusted device on the authenticator
• Authenticator Selection Extension
• This registration extension allows a Relying Party to guide the selection of the authenticator that will be leveraged
when creating the credential. It is intended primarily for Relying Parties that wish to tightly control the experience
around credential creation.
• User Verification Index Extension
• This registration extension and authentication extension enables use of a user verification index
• Supported Extensions Extension
• This registration extension enables the Relying Party to determine which extensions the authenticator supports.
• Location Extension
• The location registration extension and authentication extension provides the client device’s current location to the
WebAuthn Relying Party
• User Verification Method Extension
• This registration extension and authentication extension enables use of a user verification method.
All Rights Reserved | FIDO Alliance | Copyright 201724
FIDO AUTHENTICATION:
SECURITY & CONVENIENCE
All Rights Reserved | FIDO Alliance | Copyright 201725
CONVENIENCE & SECURITY
Security
Convenience
Password + OTP
Password
All Rights Reserved | FIDO Alliance | Copyright 201726
CONVENIENCE & SECURITY
Security
Convenience
Password + OTP
Password
FIDO
In FIDO
• Same user verification method
for all servers
In FIDO: Arbitrary user verification
methods are supported
(+ they are interoperable)
All Rights Reserved | FIDO Alliance | Copyright 201727
CONVENIENCE & SECURITY
Security
Convenience
Password + OTP
Password
FIDO
In FIDO: Scalable security
depending on Authenticator
implementation
In FIDO:
• Only public keys on server
• Not phishable
All Rights Reserved | FIDO Alliance | Copyright 201728
CONCLUSION
• Different authentication use-cases lead to different
authentication requirements
• FIDO separates user verification from authentication and
hence supports all user verification methods
• FIDO supports scalable convenience & security
• User verification data is known to Authenticator only
• FIDO complements federation
All Rights Reserved | FIDO Alliance | Copyright 201729
DEMOS
• Scenario #1 WebAuthn
• TBD
• Scenario #2 CTAP
• TBD

More Related Content

What's hot

Getting Started with FIDO2
Getting Started with FIDO2Getting Started with FIDO2
Getting Started with FIDO2FIDO Alliance
 
Securing a Web App with Passwordless Web Authentication
Securing a Web App with Passwordless Web AuthenticationSecuring a Web App with Passwordless Web Authentication
Securing a Web App with Passwordless Web AuthenticationFIDO Alliance
 
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in EuropeFIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in EuropeFIDO Alliance
 
Getting Started With WebAuthn
Getting Started With WebAuthnGetting Started With WebAuthn
Getting Started With WebAuthnFIDO Alliance
 
FIDO UAF Specifications: Overview & Tutorial
FIDO UAF Specifications: Overview & Tutorial FIDO UAF Specifications: Overview & Tutorial
FIDO UAF Specifications: Overview & Tutorial FIDO Alliance
 
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -NadalinNew FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -NadalinFIDO Alliance
 
The Value of FIDO Certification
The Value of FIDO CertificationThe Value of FIDO Certification
The Value of FIDO CertificationFIDO Alliance
 
Technical Considerations for Deploying FIDO Authentication
Technical Considerations for Deploying FIDO Authentication Technical Considerations for Deploying FIDO Authentication
Technical Considerations for Deploying FIDO Authentication FIDO Alliance
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Haniyama Wataru
 
FIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for AllFIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for AllFIDO Alliance
 
WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?Thomas Konrad
 
FIDO U2F Specifications: Overview & Tutorial
FIDO U2F Specifications: Overview & TutorialFIDO U2F Specifications: Overview & Tutorial
FIDO U2F Specifications: Overview & TutorialFIDO Alliance
 
FIDO U2F & UAF Tutorial
FIDO U2F & UAF TutorialFIDO U2F & UAF Tutorial
FIDO U2F & UAF TutorialFIDO Alliance
 
Developer Tutorial: WebAuthn for Web & FIDO2 for Android
Developer Tutorial: WebAuthn for Web & FIDO2 for AndroidDeveloper Tutorial: WebAuthn for Web & FIDO2 for Android
Developer Tutorial: WebAuthn for Web & FIDO2 for AndroidFIDO Alliance
 
OpenID for Verifiable Credentials
OpenID for Verifiable CredentialsOpenID for Verifiable Credentials
OpenID for Verifiable CredentialsTorsten Lodderstedt
 
Google & FIDO Authentication
Google & FIDO AuthenticationGoogle & FIDO Authentication
Google & FIDO AuthenticationFIDO Alliance
 
Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakImplementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakYuichi Nakamura
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect Nat Sakimura
 
FIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptxFIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptxFIDO Alliance
 

What's hot (20)

Getting Started with FIDO2
Getting Started with FIDO2Getting Started with FIDO2
Getting Started with FIDO2
 
Securing a Web App with Passwordless Web Authentication
Securing a Web App with Passwordless Web AuthenticationSecuring a Web App with Passwordless Web Authentication
Securing a Web App with Passwordless Web Authentication
 
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in EuropeFIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
FIDO & PSD2: Solving the Strong Customer Authentication Challenge in Europe
 
Getting Started With WebAuthn
Getting Started With WebAuthnGetting Started With WebAuthn
Getting Started With WebAuthn
 
FIDO UAF Specifications: Overview & Tutorial
FIDO UAF Specifications: Overview & Tutorial FIDO UAF Specifications: Overview & Tutorial
FIDO UAF Specifications: Overview & Tutorial
 
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -NadalinNew FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
New FIDO Specifications Overview -FIDO Alliance -Tokyo Seminar -Nadalin
 
The Value of FIDO Certification
The Value of FIDO CertificationThe Value of FIDO Certification
The Value of FIDO Certification
 
Technical Considerations for Deploying FIDO Authentication
Technical Considerations for Deploying FIDO Authentication Technical Considerations for Deploying FIDO Authentication
Technical Considerations for Deploying FIDO Authentication
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装
 
FIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for AllFIDO Authentication: Unphishable MFA for All
FIDO Authentication: Unphishable MFA for All
 
WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?WebAuthn - The End of the Password As We Know It?
WebAuthn - The End of the Password As We Know It?
 
FIDO U2F Specifications: Overview & Tutorial
FIDO U2F Specifications: Overview & TutorialFIDO U2F Specifications: Overview & Tutorial
FIDO U2F Specifications: Overview & Tutorial
 
FIDO U2F & UAF Tutorial
FIDO U2F & UAF TutorialFIDO U2F & UAF Tutorial
FIDO U2F & UAF Tutorial
 
Developer Tutorial: WebAuthn for Web & FIDO2 for Android
Developer Tutorial: WebAuthn for Web & FIDO2 for AndroidDeveloper Tutorial: WebAuthn for Web & FIDO2 for Android
Developer Tutorial: WebAuthn for Web & FIDO2 for Android
 
OpenID for Verifiable Credentials
OpenID for Verifiable CredentialsOpenID for Verifiable Credentials
OpenID for Verifiable Credentials
 
Google & FIDO Authentication
Google & FIDO AuthenticationGoogle & FIDO Authentication
Google & FIDO Authentication
 
FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門
 
Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakImplementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on Keycloak
 
Introduction to OpenID Connect
Introduction to OpenID Connect Introduction to OpenID Connect
Introduction to OpenID Connect
 
FIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptxFIDO Workshop-Demo Breakdown.pptx
FIDO Workshop-Demo Breakdown.pptx
 

Similar to FIDO2 Specifications Overview

FIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Alliance
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxChanna Ly
 
FIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Alliance
 
Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Antonio Peric-Mazar
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and PracticesLaunchAny
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB
 
Securing a Web App with Security Keys
Securing a Web App with Security KeysSecuring a Web App with Security Keys
Securing a Web App with Security KeysFIDO Alliance
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformMicrosoft 365 Developer
 
WP Passkey: Passwordless Authentication on WordPress
WP Passkey: Passwordless Authentication on WordPressWP Passkey: Passwordless Authentication on WordPress
WP Passkey: Passwordless Authentication on WordPressWordPress
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingWebinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingForgeRock
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...Sencha
 
使用 Passkeys 打造無密碼驗證服務
使用 Passkeys 打造無密碼驗證服務使用 Passkeys 打造無密碼驗證服務
使用 Passkeys 打造無密碼驗證服務升煌 黃
 
Consuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesConsuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesEdwin Rojas
 
Using API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconUsing API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconAntonio Peric-Mazar
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Amazon Web Services
 
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...apidays
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecuritiesamiable_indian
 
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform Integration
DEVNET-1124	Cisco pxGrid: A New Architecture for Security Platform IntegrationDEVNET-1124	Cisco pxGrid: A New Architecture for Security Platform Integration
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform IntegrationCisco DevNet
 

Similar to FIDO2 Specifications Overview (20)

FIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Technical Specifications Overview
FIDO Technical Specifications Overview
 
How to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptxHow to build Simple yet powerful API.pptx
How to build Simple yet powerful API.pptx
 
FIDO Technical Specifications Overview
FIDO Technical Specifications OverviewFIDO Technical Specifications Overview
FIDO Technical Specifications Overview
 
Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
Securing a Web App with Security Keys
Securing a Web App with Security KeysSecuring a Web App with Security Keys
Securing a Web App with Security Keys
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platform
 
WP Passkey: Passwordless Authentication on WordPress
WP Passkey: Passwordless Authentication on WordPressWP Passkey: Passwordless Authentication on WordPress
WP Passkey: Passwordless Authentication on WordPress
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through ScriptingWebinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
Webinar: Extend The Power of The ForgeRock Identity Platform Through Scripting
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
 
使用 Passkeys 打造無密碼驗證服務
使用 Passkeys 打造無密碼驗證服務使用 Passkeys 打造無密碼驗證服務
使用 Passkeys 打造無密碼驗證服務
 
Box Authentication Types
Box Authentication TypesBox Authentication Types
Box Authentication Types
 
Consuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL WebservicesConsuming GRIN GLOBAL Webservices
Consuming GRIN GLOBAL Webservices
 
Using API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconUsing API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonycon
 
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
Identity Management for Your Users and Apps: A Deep Dive on Amazon Cognito - ...
 
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...
apidays LIVE LONDON - Hypermedia API for Secure, Seamless User Authentication...
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecurities
 
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform Integration
DEVNET-1124	Cisco pxGrid: A New Architecture for Security Platform IntegrationDEVNET-1124	Cisco pxGrid: A New Architecture for Security Platform Integration
DEVNET-1124 Cisco pxGrid: A New Architecture for Security Platform Integration
 

More from FIDO Alliance

FIDO Alliance: Welcome and FIDO Update.pptx
FIDO Alliance: Welcome and FIDO Update.pptxFIDO Alliance: Welcome and FIDO Update.pptx
FIDO Alliance: Welcome and FIDO Update.pptxFIDO Alliance
 
IBM: Hey FIDO, Meet Passkey!.pptx
IBM: Hey FIDO, Meet Passkey!.pptxIBM: Hey FIDO, Meet Passkey!.pptx
IBM: Hey FIDO, Meet Passkey!.pptxFIDO Alliance
 
OTIS: Our Journey to Passwordless.pptx
OTIS: Our Journey to Passwordless.pptxOTIS: Our Journey to Passwordless.pptx
OTIS: Our Journey to Passwordless.pptxFIDO Alliance
 
CISA: #MoreThanAPassword.pptx
CISA: #MoreThanAPassword.pptxCISA: #MoreThanAPassword.pptx
CISA: #MoreThanAPassword.pptxFIDO Alliance
 
Introducing FIDO Device Onboard (FDO)
Introducing  FIDO Device Onboard (FDO)Introducing  FIDO Device Onboard (FDO)
Introducing FIDO Device Onboard (FDO)FIDO Alliance
 
FIDO Alliance Webinar: Catch Up WIth FIDO
FIDO Alliance Webinar: Catch Up WIth FIDOFIDO Alliance Webinar: Catch Up WIth FIDO
FIDO Alliance Webinar: Catch Up WIth FIDOFIDO Alliance
 
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.com
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.comConsumer Attitudes Toward Strong Authentication & LoginWithFIDO.com
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.comFIDO Alliance
 
新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向FIDO Alliance
 
日立PBI技術を用いた「デバイスフリーリモートワーク」構想
日立PBI技術を用いた「デバイスフリーリモートワーク」構想日立PBI技術を用いた「デバイスフリーリモートワーク」構想
日立PBI技術を用いた「デバイスフリーリモートワーク」構想FIDO Alliance
 
Introduction to FIDO and eIDAS Services
Introduction to FIDO and eIDAS ServicesIntroduction to FIDO and eIDAS Services
Introduction to FIDO and eIDAS ServicesFIDO Alliance
 
富士通の生体認証ソリューションと提案
富士通の生体認証ソリューションと提案富士通の生体認証ソリューションと提案
富士通の生体認証ソリューションと提案FIDO Alliance
 
テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察FIDO Alliance
 
「開けゴマ!」からYubiKeyへ
「開けゴマ!」からYubiKeyへ「開けゴマ!」からYubiKeyへ
「開けゴマ!」からYubiKeyへFIDO Alliance
 
YubiOnが目指す未来
YubiOnが目指す未来YubiOnが目指す未来
YubiOnが目指す未来FIDO Alliance
 
FIDO2導入してみたを考えてみた
FIDO2導入してみたを考えてみたFIDO2導入してみたを考えてみた
FIDO2導入してみたを考えてみたFIDO Alliance
 
中小企業によるFIDO導入事例
中小企業によるFIDO導入事例中小企業によるFIDO導入事例
中小企業によるFIDO導入事例FIDO Alliance
 
VPNはもう卒業!FIDO2認証で次世代リモートアクセス
VPNはもう卒業!FIDO2認証で次世代リモートアクセスVPNはもう卒業!FIDO2認証で次世代リモートアクセス
VPNはもう卒業!FIDO2認証で次世代リモートアクセスFIDO Alliance
 
CloudGate UNOで安全便利なパスワードレスリモートワーク
CloudGate UNOで安全便利なパスワードレスリモートワークCloudGate UNOで安全便利なパスワードレスリモートワーク
CloudGate UNOで安全便利なパスワードレスリモートワークFIDO Alliance
 
数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポートFIDO Alliance
 
FIDO Alliance Research: Consumer Attitudes Towards Authentication
FIDO Alliance Research: Consumer Attitudes Towards AuthenticationFIDO Alliance Research: Consumer Attitudes Towards Authentication
FIDO Alliance Research: Consumer Attitudes Towards AuthenticationFIDO Alliance
 

More from FIDO Alliance (20)

FIDO Alliance: Welcome and FIDO Update.pptx
FIDO Alliance: Welcome and FIDO Update.pptxFIDO Alliance: Welcome and FIDO Update.pptx
FIDO Alliance: Welcome and FIDO Update.pptx
 
IBM: Hey FIDO, Meet Passkey!.pptx
IBM: Hey FIDO, Meet Passkey!.pptxIBM: Hey FIDO, Meet Passkey!.pptx
IBM: Hey FIDO, Meet Passkey!.pptx
 
OTIS: Our Journey to Passwordless.pptx
OTIS: Our Journey to Passwordless.pptxOTIS: Our Journey to Passwordless.pptx
OTIS: Our Journey to Passwordless.pptx
 
CISA: #MoreThanAPassword.pptx
CISA: #MoreThanAPassword.pptxCISA: #MoreThanAPassword.pptx
CISA: #MoreThanAPassword.pptx
 
Introducing FIDO Device Onboard (FDO)
Introducing  FIDO Device Onboard (FDO)Introducing  FIDO Device Onboard (FDO)
Introducing FIDO Device Onboard (FDO)
 
FIDO Alliance Webinar: Catch Up WIth FIDO
FIDO Alliance Webinar: Catch Up WIth FIDOFIDO Alliance Webinar: Catch Up WIth FIDO
FIDO Alliance Webinar: Catch Up WIth FIDO
 
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.com
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.comConsumer Attitudes Toward Strong Authentication & LoginWithFIDO.com
Consumer Attitudes Toward Strong Authentication & LoginWithFIDO.com
 
新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向
 
日立PBI技術を用いた「デバイスフリーリモートワーク」構想
日立PBI技術を用いた「デバイスフリーリモートワーク」構想日立PBI技術を用いた「デバイスフリーリモートワーク」構想
日立PBI技術を用いた「デバイスフリーリモートワーク」構想
 
Introduction to FIDO and eIDAS Services
Introduction to FIDO and eIDAS ServicesIntroduction to FIDO and eIDAS Services
Introduction to FIDO and eIDAS Services
 
富士通の生体認証ソリューションと提案
富士通の生体認証ソリューションと提案富士通の生体認証ソリューションと提案
富士通の生体認証ソリューションと提案
 
テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察
 
「開けゴマ!」からYubiKeyへ
「開けゴマ!」からYubiKeyへ「開けゴマ!」からYubiKeyへ
「開けゴマ!」からYubiKeyへ
 
YubiOnが目指す未来
YubiOnが目指す未来YubiOnが目指す未来
YubiOnが目指す未来
 
FIDO2導入してみたを考えてみた
FIDO2導入してみたを考えてみたFIDO2導入してみたを考えてみた
FIDO2導入してみたを考えてみた
 
中小企業によるFIDO導入事例
中小企業によるFIDO導入事例中小企業によるFIDO導入事例
中小企業によるFIDO導入事例
 
VPNはもう卒業!FIDO2認証で次世代リモートアクセス
VPNはもう卒業!FIDO2認証で次世代リモートアクセスVPNはもう卒業!FIDO2認証で次世代リモートアクセス
VPNはもう卒業!FIDO2認証で次世代リモートアクセス
 
CloudGate UNOで安全便利なパスワードレスリモートワーク
CloudGate UNOで安全便利なパスワードレスリモートワークCloudGate UNOで安全便利なパスワードレスリモートワーク
CloudGate UNOで安全便利なパスワードレスリモートワーク
 
数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート
 
FIDO Alliance Research: Consumer Attitudes Towards Authentication
FIDO Alliance Research: Consumer Attitudes Towards AuthenticationFIDO Alliance Research: Consumer Attitudes Towards Authentication
FIDO Alliance Research: Consumer Attitudes Towards Authentication
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

FIDO2 Specifications Overview

  • 1. All Rights Reserved | FIDO Alliance | Copyright 20171 FIDO2 SPECIFICATION OVERVIEW REVISED NOVEMBER 20TH 2017
  • 2. All Rights Reserved | FIDO Alliance | Copyright 20172 THE ROAD AHEAD FIDO2 PROJECT: WEBAUTHN AND CTAP
  • 3. All Rights Reserved | FIDO Alliance | Copyright 20173 WEB AUTHENTICATION Supported In: A new JavaScript API that enables FIDO Authentication in the browser
  • 4. All Rights Reserved | FIDO Alliance | Copyright 20174 CLIENT TO AUTHENTICATION PROTOCOL A new API that enables FIDO Authentication from the Platform
  • 5. All Rights Reserved | FIDO Alliance | Copyright 20175 RELYING PARTY APPLICATION Browser “Application”: A normal website - HTML, CSS, JavaScript Website, Inc. [US] https://www.acme.com acme.com X
  • 6. All Rights Reserved | FIDO Alliance | Copyright 20176 FIDO2 BUILDING BLOCKS (External) Authenticator User Device Browser (Bound) Authenticator Platform RP App FIDO Authentication RP App Server FIDO Server Metadata Web Authentication JS API CTAP
  • 7. All Rights Reserved | FIDO Alliance | Copyright 20177 CREDENTIAL MANAGEMENT API • PublicKeyCredential inherits from Credential • Credentail is a W3C Credential Management API for all types of credentials • https://www.w3.org/TR/credential-management-1 • Identifier, type, response, client extension
  • 8. All Rights Reserved | FIDO Alliance | Copyright 20178 REGISTRATION – NO PREFERENCE First-time flow: • The user visits example.com, which serves up a JS script. • User may have existing account at RP or request new acount. • The Relying Party script runs the code snippet below. • The client platform searches for and locates the authenticator. • The client platform connects to the authenticator, performing any pairing actions if necessary. • The authenticator shows appropriate UI for the user to select the authenticator, obtain a biometric or other authorization gesture from the user. • The authenticator returns a response to the client platform, which in turn returns a response to the Relying Party script.
  • 9. All Rights Reserved | FIDO Alliance | Copyright 20179 REGISTRATION If a new credential was created, • The Relying Party script sends the newly generated credential public key to the server, along with additional information such as attestation. • The server stores the credential public key in its database along with a friendly name for later use. • The script may store data such as the credential ID in local storage, to improve future UX by narrowing the choice of credential for the user.
  • 10. All Rights Reserved | FIDO Alliance | Copyright 201710 NAVIGATOR.CREDENTIAL.CREATE() if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ } var publicKey = { challenge: Uint8Array.from(window.atob("PGifxAoBwCkWkm4b1CiIl5otCphiIh6MijdjbWFjomA="), c=>c.charCodeAt(0)), // Relying Party: rp: { name: "Acme" }, // User: user: { id: "1098237235409872" name: "john.p.smith@example.com", displayName: "John P. Smith", icon: "https://pics.acme.com/00/p/aBjjjpqPb.png" }, // This Relying Party will accept either an ES256 or RS256 credential, but // prefers an ES256 credential. pubKeyCredParams: [ { type: "public-key", alg: -7 // "ES256" as registered in the IANA COSE Algorithms registry }, { type: "public-key", alg: -257 // Value registered by this specification for "RS256" } ],
  • 11. All Rights Reserved | FIDO Alliance | Copyright 201711 NAVIGATOR.CREDENTIAL.CREATE() timeout: 60000, // 1 minute excludeCredentials: [], // No exclude list of PKCredDescriptors extensions: {"webauthn.location": true} // Include location information // in attestation }; // Note: The following call will cause the authenticator to display UI. navigator.credentials.create({ publicKey }) .then(function (newCredentialInfo) { // Send new credential info to server for verification and registration. }).catch(function (err) { // No acceptable authenticator or user refused consent. Handle appropriately. });
  • 12. All Rights Reserved | FIDO Alliance | Copyright 201712 REGISTRATION - PLATFORM AUTHENTICATOR Relying Party requesting a platform authenticator • The user visits example.com and clicks on the login button, which redirects the user to login.example.com. • The user enters a username and password to log in. After successful login, the user is redirected back to example.com. • The Relying Party script runs the JS. • The user is prompted for whether they are willing to register with the Relying Party using an available platform authenticator. • If the user is not willing, terminate this flow. • The user is shown appropriate UI and guided in creating a credential using one of the available platform authenticators. • Upon successful credential creation, the RP script conveys the new credential to the server.
  • 13. All Rights Reserved | FIDO Alliance | Copyright 201713 NAVIGATOR.CREDENTIAL.CREATE() if (!PublicKeyCredential) { /* Platform not capable of the API. Handle error. */ } PublicKeyCredential.isPlatformAuthenticatorAvailable() .then(function (userIntent) { // If the user has affirmed willingness to register with RP using an available platform authenticator if (userIntent) { var publicKeyOptions = { /* Public key credential creation options. */}; // Create and register credentials. return navigator.credentials.create({ "publicKey": publicKeyOptions }); } else { // Record that the user does not intend to use a platform authenticator // and default the user to a password-based flow in the future. } }).then(function (newCredentialInfo) { // Send new credential info to server for verification and registration. }).catch( function(err) { // Something went wrong. Handle appropriately. });
  • 14. All Rights Reserved | FIDO Alliance | Copyright 201714 AUTHENTICATION – ANY CREDENTIAL When a user with an already registered credential visits a website and wants to authenticate using the credential. • The user visits example.com, which serves up a script with as much information as possible to narrow the choice of acceptable credentials for the user. • The Relying Party script runs JS. • The client platform searches for and locates the authenticator. • The client platform connects to the authenticator. • The authenticator presents the user with a notification that their attention is required. On opening the notification, the user picks an acceptable credentials using the account information provided when creating the credentials • The authenticator obtains a biometric or other authorization gesture from the user. • The authenticator returns a response to the client platform, which in turn returns a response to the Relying Party script.
  • 15. All Rights Reserved | FIDO Alliance | Copyright 201715 AUTHENTICATION - ANY CREDENTAIL • If an assertion was successfully generated and returned, • The script sends the assertion to the server. • The server examines the assertion, extracts the credential ID, looks up the registered credential public key it is database, and verifies the assertion’s authentication signature. If valid, it looks up the identity associated with the assertion’s credential ID; that identity is now authenticated. • The server now does whatever it would otherwise do upon successful authentication -- return a success page, set authentication cookies, etc. • If the Relying Party script does not have any hints available (e.g., from locally stored data) to help it narrow the list of credentials
  • 16. All Rights Reserved | FIDO Alliance | Copyright 201716 NAVIGATOR.CREDENTIALS.GET() if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ } var options = { challenge: new TextEncoder().encode("climb a mountain"), timeout: 60000, // 1 minute allowCredentials: [{ type: "public-key" }] }; navigator.credentials.get({ "publicKey": options }) .then(function (assertion) { // Send assertion to server for verification }).catch(function (err) { // No acceptable credential or user refused consent. Handle appropriately. });
  • 17. All Rights Reserved | FIDO Alliance | Copyright 201717 AUTHENTICATION - CREDENTIAL HINT if (!PublicKeyCredential) { /* Platform not capable. Handle error. */ } var encoder = new TextEncoder(); var acceptableCredential1 = { type: "public-key", id: encoder.encode("!!!!!!!hi there!!!!!!!¥n") }; var acceptableCredential2 = { type: "public-key", id: encoder.encode("roses are red, violets are blue¥n") };
  • 18. All Rights Reserved | FIDO Alliance | Copyright 201718 AUTHENTICATION - CREDENTIAL HINT var options = { challenge: encoder.encode("climb a mountain"), timeout: 60000, // 1 minute allowCredentials: [acceptableCredential1, acceptableCredential2]; extensions: { 'webauthn.txauth.simple': "Wave your hands in the air like you just don’t care" }; }; navigator.credentials.get({ "publicKey": options }) .then(function (assertion) { // Send assertion to server for verification }).catch(function (err) { // No acceptable credential or user refused consent. Handle appropriately. });
  • 19. All Rights Reserved | FIDO Alliance | Copyright 201719 DECOMMISSIONING Possible situations in which decommissioning a credential might be desired. Note that all of these are handled on the server side and do not need support from the API specified here. • Possibility #1 -- user reports the credential as lost. • User goes to server.example.net, authenticates and follows a link to report a lost/stolen device. • Server returns a page showing the list of registered credentials with friendly names as configured during registration. • User selects a credential and the server deletes it from its database. • In future, the Relying Party script does not specify this credential in any list of acceptable credentials, and assertions signed by this credential are rejected.
  • 20. All Rights Reserved | FIDO Alliance | Copyright 201720 DECOMMISSIONING • Possibility #2 -- server deregisters the credential due to inactivity. • Server deletes credential from its database during maintenance activity. • In the future, the Relying Party script does not specify this credential in any list of acceptable credentials, and assertions signed by this credential are rejected. • Possibility #3 -- user deletes the credential from the device. • User employs a device-specific method (e.g., device settings UI) to delete a credential from their device. • From this point on, this credential will not appear in any selection prompts, and no assertions can be generated with it. • Sometime later, the server deregisters this credential due to inactivity.
  • 21. All Rights Reserved | FIDO Alliance | Copyright 201721 FIDO BUILDING BLOCKS (External) Authenticator User Device Browser (Bound) Authenticator Platform RP App CTAP authenticatorMakeCredential() authenticatorGetAssertion()
  • 22. All Rights Reserved | FIDO Alliance | Copyright 201722 ATTESTATIONS • Packed Attestations • This is a WebAuthn optimized attestation statement format. It is implementable by authenticators with limited resources (e.g., secure elements). • TPM Attestations • This attestation statement format is generally used by authenticators that use a Trusted Platform Module as their cryptographic engine. • Android Key Attestations • When the authenticator in question is a platform-provided Authenticator on the Android "N" or later platform, the attestation statement is based on the Android key attestation. • Android SafetyNet Attestations • When the authenticator in question is a platform-provided Authenticator on certain Android platforms, the attestation statement is based on the SafetyNet API. • FIDO U2F Attestations • FIDO U2F authenticators using the formats defined in FIDO-U2F-Message-Formats specification
  • 23. All Rights Reserved | FIDO Alliance | Copyright 201723 EXTENSIONS • The mechanism for generating public key credentials and Authentication assertions • Defined Extensions. Each extension is a client extension (browser must support). Each extention is registered in a IANA registry. • AppId • This authentication extension allows Relying Parties that have previously registered a credential using the legacy FIDO JavaScript APIs to request an assertion. • Generic Transaction Authorization Extension • This registration extension and authentication extension allows for a simple form of transaction authorization. A Relying Party can specify a prompt string, intended for display on a trusted device on the authenticator • Authenticator Selection Extension • This registration extension allows a Relying Party to guide the selection of the authenticator that will be leveraged when creating the credential. It is intended primarily for Relying Parties that wish to tightly control the experience around credential creation. • User Verification Index Extension • This registration extension and authentication extension enables use of a user verification index • Supported Extensions Extension • This registration extension enables the Relying Party to determine which extensions the authenticator supports. • Location Extension • The location registration extension and authentication extension provides the client device’s current location to the WebAuthn Relying Party • User Verification Method Extension • This registration extension and authentication extension enables use of a user verification method.
  • 24. All Rights Reserved | FIDO Alliance | Copyright 201724 FIDO AUTHENTICATION: SECURITY & CONVENIENCE
  • 25. All Rights Reserved | FIDO Alliance | Copyright 201725 CONVENIENCE & SECURITY Security Convenience Password + OTP Password
  • 26. All Rights Reserved | FIDO Alliance | Copyright 201726 CONVENIENCE & SECURITY Security Convenience Password + OTP Password FIDO In FIDO • Same user verification method for all servers In FIDO: Arbitrary user verification methods are supported (+ they are interoperable)
  • 27. All Rights Reserved | FIDO Alliance | Copyright 201727 CONVENIENCE & SECURITY Security Convenience Password + OTP Password FIDO In FIDO: Scalable security depending on Authenticator implementation In FIDO: • Only public keys on server • Not phishable
  • 28. All Rights Reserved | FIDO Alliance | Copyright 201728 CONCLUSION • Different authentication use-cases lead to different authentication requirements • FIDO separates user verification from authentication and hence supports all user verification methods • FIDO supports scalable convenience & security • User verification data is known to Authenticator only • FIDO complements federation
  • 29. All Rights Reserved | FIDO Alliance | Copyright 201729 DEMOS • Scenario #1 WebAuthn • TBD • Scenario #2 CTAP • TBD