SlideShare a Scribd company logo
1 of 46
Download to read offline
A Passwordless Future!
Passkeys and WebAuthn for Java developers
Deepu K Sasidharan
@oktaDev | @deepu105 | deepu.tech
➔ JHipster co-lead developer
➔ Java Champion
➔ Creator of KDash, JDL Studio, JWT UI
➔ Developer Advocate @ Okta
➔ OSS aficionado, polyglot dev,
author, speaker
Hi, I’m Deepu K Sasidharan
@deepu105@mastodon.social deepu.tech
@deepu105 deepu05
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Why passwordless?
@oktaDev | @deepu105 | deepu.tech
The password
problem
@oktaDev | @deepu105 | deepu.tech
The Human
problem
@oktaDev | @deepu105 | deepu.tech
Phishing
Knowledge-based
Remote replay
Data breach
Reuse & share
Password management
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
What is Passwordless?
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Passwordless
Biometric
Magic links
OTPs
Push notifications
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Passwordless future == Passkeys
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Public-key cryptography
Pair of mathematically linked keys
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Authenticator
Can create and store public-private key pairs
@oktaDev | @deepu105 | deepu.tech
Roaming authenticators
Removable device via USB, NFC, Bluetooth
• Yubikey
• Google Titan
• Smartphones
Platform authenticators
Built into the device
• TouchID
• FaceID
• Smartphone Authenticators
• Windows Hello
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
== Authentication standard
Based on public key cryptography.
FIDO
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
FIDO2
WebAuthentication (WebAuthn)
Client to Authenticator Protocol (CTAP)
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
== W3C standard
WebAuthn is the standard that allows for passkeys implementation
WebAuthn
@oktaDev | @deepu105 | deepu.tech
Illustration based on https://webauthn.me/introduction
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Client to Authenticator Protocol
Communicate with authenticators over USB, NFC, and Bluetooth
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
== Passwordless FIDO
credential with WebAuthn
It uses asymmetric public key cryptography
Passkeys
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Passkeys
Synced
Hardware
bound
● Private key synced between devices in same
ecosystem and backed up to cloud
● Better usability
● One time enrollment
● Can be restored on device loss or on new
device
● Less secure than hardware bound passkeys
● Private key stored only on the device
● Not as convenient as synced passkeys
● Each device needs enrollment
● No recovery or backups
● Most secure option
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
How does the magic
happen?
@oktaDev | @deepu105 | deepu.tech
Registration flow
@oktaDev | @deepu105 | deepu.tech
Authentication flow
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Why passkeys?
@oktaDev | @deepu105 | deepu.tech
Phishing
Knowledge-based
Remote replay
Data breach
Reuse & share
Password management
@oktaDev | @deepu105 | deepu.tech
Easier to maintain
Not Reusable & Shareable*
Breach resistant
Remote attack resistant
Phishing resistant
Browser discoverable
@oktaDev | @deepu105 | deepu.tech
Passkeys security and usability spectrum
@oktaDev | @deepu105 | deepu.tech
menti.com
Code: 1655 4053
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Let’s see passkeys in action
Spring Boot web app using Auth0 by Okta as IdP
@oktaDev | @deepu105 | deepu.tech
# Create a Spring Boot web app
$ curl -G https://start.spring.io/starter.tgz 
-d dependencies=web,okta -d baseDir=passkey-demo | tar -xzvf -
# Add controller for @GetMapping("/")
# Create an Auth0 account and configure tenant to enable passkeys
# Login to the tenant
$ auth0 login
# Create an Auth0 app
$ auth0 apps create 
/-name "Spring Boot Passkeys" 
/-description "Spring Boot Example" 
/-type regular 
/-callbacks http://localhost:8080/login/oauth2/code/okta 
/-logout-urls http://localhost:8080 
/-reveal-secrets
# Update OIDC credentials
# Start the app
$ ./gradlew bootRun
a0.to/spring-passkey
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
WebAuthn for Java
@oktaDev | @deepu105 | deepu.tech
WebAuthn4j
● FIDO2 conformant
● Supports attestation validation
● Supports all attestation formats
● Suitable for relying party server
implementation
● Supports passkeys
● Used by Keycloak and Spring Security
● Kotlin friendly
java-webauthn-server
● Not 100% FIDO2 conformant
● Supports attestation validation
● All attestation formats not supported
● Suitable for relying party server
implementation
● Supports passkeys
● From Yubico
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
WebAuthn with Spring
Security in action
Spring Boot web app as a relying party using WebAuthn4j
@oktaDev | @deepu105 | deepu.tech
WebAuthn4J Spring Security
# Clone the repo
$ git clone https://github.com/deepu105/webauthn4j-spring-boot-passkeys-demo
# Start the app
$ ./gradlew bootRun
a0.to/spring-webauthn
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
Challenges
@oktaDev | @deepu105 | deepu.tech
● OS/Browser support
● Cloud vendor reliance
● Enterprise use cases
● Reset & Recovery
@oktaDev | @deepu105 | deepu.tech
Compatibility matrix: Platform Authenticators (TPM, TouchID, etc.)
https://webauthn.me/browser-support
@oktaDev | @deepu105 | deepu.tech
Compatibility matrix: Roaming Authenticators (Yubikey, Titan, etc.)
https://webauthn.me/browser-support
© Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only.
@oktaDev | @deepu105 | deepu.tech
How does it differ from
FIDO2 MFA?
@oktaDev | @deepu105 | deepu.tech
Passkeys
● Implemented using WebAuthn and FIDO2
● Can be synced or hardware-bound
● Discoverable credentials (Resident keys)
● Can be used for account registration as
first factor
● Enrollment required only once for synced
passkeys
FIDO2 MFA
● Implemented using WebAuthn and FIDO2
● Only hardware-bound
● Non-resident keys
● Can only be second factor after account
registration with password
● Enrollment required on each device
@oktaDev | @deepu105 | deepu.tech
https://webauthn.me/passkeys
https://passkeys.dev
https://passkey.org
https://fidoalliance.org/passkeys
Resources
@oktaDev | @deepu105 | deepu.tech
Passkeys login challenge
● Complete the challenge and visit our
booth to win some cool prizes
● Only for first 30 completed
submissions
a0.to/passkey-challenge
Authorization
Authentication
Security
Single Sign-On | Adaptive Multi-Factor Authentication | Universal Login | Passwordless |
Bot Detection & Prevention | Security Center | Breached Password Detection |
Brute Force Protection | FGA
How we can help:
Try Free Today:
Free Plan (forever) $0
Up to 7,500 monthly active users. Unlimited
user logins. Includes passkeys support*.
No credit card required.
Special Plans for Startups & Nonprofits
Plans for Everyone
B2C: your users are consumers
B2B: your users are businesses or a
mix of businesses and consumers
Enterprise: Best for production
applications that need to scale -
Contact Us
Make login our problem. Not yours.
a0.to/plg_signup
@oktaDev | @deepu105 | deepu.tech
Thank You
Subscribe to our newsletter
a0.to/nl-signup/java
Try our free Spring Boot +
Passkeys workshop
a0.to/spring-boot
@oktaDev | @deepu105 | deepu.tech
menti results

More Related Content

Similar to A-Passwordless-Future--WebAuthn-for-Java-Developers.pdf

Similar to A-Passwordless-Future--WebAuthn-for-Java-Developers.pdf (20)

Keeping your collaboration safe while working remotely
Keeping your collaboration safe while working remotelyKeeping your collaboration safe while working remotely
Keeping your collaboration safe while working remotely
 
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWSAdvanced Security Extensions in Apigee Edge: JWT, JWE, JWS
Advanced Security Extensions in Apigee Edge: JWT, JWE, JWS
 
FIDO Technical Overview at FIDO KWG Hackathon
FIDO Technical Overview at FIDO KWG HackathonFIDO Technical Overview at FIDO KWG Hackathon
FIDO Technical Overview at FIDO KWG Hackathon
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
 
Implementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on KeycloakImplementing WebAuthn & FAPI supports on Keycloak
Implementing WebAuthn & FAPI supports on Keycloak
 
Go passwordless with fido2
Go passwordless with fido2Go passwordless with fido2
Go passwordless with fido2
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdfKubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
 
An Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices WorldAn Authentication and Authorization Architecture for a Microservices World
An Authentication and Authorization Architecture for a Microservices World
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
 
How Secure is Your API?
How Secure is Your API?How Secure is Your API?
How Secure is Your API?
 
Application Security in ASP.NET Core
Application Security in ASP.NET CoreApplication Security in ASP.NET Core
Application Security in ASP.NET Core
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
FIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT DevicesFIWARE Wednesday Webinars - How to Secure IoT Devices
FIWARE Wednesday Webinars - How to Secure IoT Devices
 
Flak+technologies
Flak+technologiesFlak+technologies
Flak+technologies
 
Flak+technologies
Flak+technologiesFlak+technologies
Flak+technologies
 
OpenId Connect Protocol
OpenId Connect ProtocolOpenId Connect Protocol
OpenId Connect Protocol
 
How to Make Your IoT Devices Secure, Act Autonomously & Trusted Subjects
How to Make Your IoT Devices Secure, Act Autonomously & Trusted SubjectsHow to Make Your IoT Devices Secure, Act Autonomously & Trusted Subjects
How to Make Your IoT Devices Secure, Act Autonomously & Trusted Subjects
 
Provisioning IoT...Oh Baby You Know Meeee!
Provisioning IoT...Oh Baby You Know Meeee!Provisioning IoT...Oh Baby You Know Meeee!
Provisioning IoT...Oh Baby You Know Meeee!
 
Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!Securing Your Resources with Short-Lived Certificates!
Securing Your Resources with Short-Lived Certificates!
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 

A-Passwordless-Future--WebAuthn-for-Java-Developers.pdf

  • 1. A Passwordless Future! Passkeys and WebAuthn for Java developers Deepu K Sasidharan
  • 2. @oktaDev | @deepu105 | deepu.tech ➔ JHipster co-lead developer ➔ Java Champion ➔ Creator of KDash, JDL Studio, JWT UI ➔ Developer Advocate @ Okta ➔ OSS aficionado, polyglot dev, author, speaker Hi, I’m Deepu K Sasidharan @deepu105@mastodon.social deepu.tech @deepu105 deepu05
  • 3. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Why passwordless?
  • 4. @oktaDev | @deepu105 | deepu.tech The password problem
  • 5. @oktaDev | @deepu105 | deepu.tech The Human problem
  • 6. @oktaDev | @deepu105 | deepu.tech Phishing Knowledge-based Remote replay Data breach Reuse & share Password management
  • 7. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech What is Passwordless?
  • 8. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Passwordless Biometric Magic links OTPs Push notifications
  • 9. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Passwordless future == Passkeys
  • 10. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Public-key cryptography Pair of mathematically linked keys
  • 11. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech
  • 12. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech
  • 13. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Authenticator Can create and store public-private key pairs
  • 14. @oktaDev | @deepu105 | deepu.tech Roaming authenticators Removable device via USB, NFC, Bluetooth • Yubikey • Google Titan • Smartphones Platform authenticators Built into the device • TouchID • FaceID • Smartphone Authenticators • Windows Hello
  • 15. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech == Authentication standard Based on public key cryptography. FIDO
  • 16. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech FIDO2 WebAuthentication (WebAuthn) Client to Authenticator Protocol (CTAP)
  • 17. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech == W3C standard WebAuthn is the standard that allows for passkeys implementation WebAuthn
  • 18. @oktaDev | @deepu105 | deepu.tech Illustration based on https://webauthn.me/introduction
  • 19. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Client to Authenticator Protocol Communicate with authenticators over USB, NFC, and Bluetooth
  • 20. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech == Passwordless FIDO credential with WebAuthn It uses asymmetric public key cryptography Passkeys
  • 21. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Passkeys Synced Hardware bound ● Private key synced between devices in same ecosystem and backed up to cloud ● Better usability ● One time enrollment ● Can be restored on device loss or on new device ● Less secure than hardware bound passkeys ● Private key stored only on the device ● Not as convenient as synced passkeys ● Each device needs enrollment ● No recovery or backups ● Most secure option
  • 22. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech How does the magic happen?
  • 23. @oktaDev | @deepu105 | deepu.tech Registration flow
  • 24. @oktaDev | @deepu105 | deepu.tech Authentication flow
  • 25. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Why passkeys?
  • 26. @oktaDev | @deepu105 | deepu.tech Phishing Knowledge-based Remote replay Data breach Reuse & share Password management
  • 27. @oktaDev | @deepu105 | deepu.tech Easier to maintain Not Reusable & Shareable* Breach resistant Remote attack resistant Phishing resistant Browser discoverable
  • 28. @oktaDev | @deepu105 | deepu.tech Passkeys security and usability spectrum
  • 29. @oktaDev | @deepu105 | deepu.tech menti.com Code: 1655 4053
  • 30. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Let’s see passkeys in action Spring Boot web app using Auth0 by Okta as IdP
  • 31. @oktaDev | @deepu105 | deepu.tech # Create a Spring Boot web app $ curl -G https://start.spring.io/starter.tgz -d dependencies=web,okta -d baseDir=passkey-demo | tar -xzvf - # Add controller for @GetMapping("/") # Create an Auth0 account and configure tenant to enable passkeys # Login to the tenant $ auth0 login # Create an Auth0 app $ auth0 apps create /-name "Spring Boot Passkeys" /-description "Spring Boot Example" /-type regular /-callbacks http://localhost:8080/login/oauth2/code/okta /-logout-urls http://localhost:8080 /-reveal-secrets # Update OIDC credentials # Start the app $ ./gradlew bootRun a0.to/spring-passkey
  • 32. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech WebAuthn for Java
  • 33. @oktaDev | @deepu105 | deepu.tech WebAuthn4j ● FIDO2 conformant ● Supports attestation validation ● Supports all attestation formats ● Suitable for relying party server implementation ● Supports passkeys ● Used by Keycloak and Spring Security ● Kotlin friendly java-webauthn-server ● Not 100% FIDO2 conformant ● Supports attestation validation ● All attestation formats not supported ● Suitable for relying party server implementation ● Supports passkeys ● From Yubico
  • 34. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech WebAuthn with Spring Security in action Spring Boot web app as a relying party using WebAuthn4j
  • 35. @oktaDev | @deepu105 | deepu.tech WebAuthn4J Spring Security # Clone the repo $ git clone https://github.com/deepu105/webauthn4j-spring-boot-passkeys-demo # Start the app $ ./gradlew bootRun a0.to/spring-webauthn
  • 36. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech Challenges
  • 37. @oktaDev | @deepu105 | deepu.tech ● OS/Browser support ● Cloud vendor reliance ● Enterprise use cases ● Reset & Recovery
  • 38. @oktaDev | @deepu105 | deepu.tech Compatibility matrix: Platform Authenticators (TPM, TouchID, etc.) https://webauthn.me/browser-support
  • 39. @oktaDev | @deepu105 | deepu.tech Compatibility matrix: Roaming Authenticators (Yubikey, Titan, etc.) https://webauthn.me/browser-support
  • 40. © Okta and/or its affiliates. All rights reserved. Confidential Information of Okta – For Recipient’s Internal Use Only. @oktaDev | @deepu105 | deepu.tech How does it differ from FIDO2 MFA?
  • 41. @oktaDev | @deepu105 | deepu.tech Passkeys ● Implemented using WebAuthn and FIDO2 ● Can be synced or hardware-bound ● Discoverable credentials (Resident keys) ● Can be used for account registration as first factor ● Enrollment required only once for synced passkeys FIDO2 MFA ● Implemented using WebAuthn and FIDO2 ● Only hardware-bound ● Non-resident keys ● Can only be second factor after account registration with password ● Enrollment required on each device
  • 42. @oktaDev | @deepu105 | deepu.tech https://webauthn.me/passkeys https://passkeys.dev https://passkey.org https://fidoalliance.org/passkeys Resources
  • 43. @oktaDev | @deepu105 | deepu.tech Passkeys login challenge ● Complete the challenge and visit our booth to win some cool prizes ● Only for first 30 completed submissions a0.to/passkey-challenge
  • 44. Authorization Authentication Security Single Sign-On | Adaptive Multi-Factor Authentication | Universal Login | Passwordless | Bot Detection & Prevention | Security Center | Breached Password Detection | Brute Force Protection | FGA How we can help: Try Free Today: Free Plan (forever) $0 Up to 7,500 monthly active users. Unlimited user logins. Includes passkeys support*. No credit card required. Special Plans for Startups & Nonprofits Plans for Everyone B2C: your users are consumers B2B: your users are businesses or a mix of businesses and consumers Enterprise: Best for production applications that need to scale - Contact Us Make login our problem. Not yours. a0.to/plg_signup
  • 45. @oktaDev | @deepu105 | deepu.tech Thank You Subscribe to our newsletter a0.to/nl-signup/java Try our free Spring Boot + Passkeys workshop a0.to/spring-boot
  • 46. @oktaDev | @deepu105 | deepu.tech menti results