SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Mobile Authentication


Moving Towards a Passwordless Future
David Luna
david@luna.co.uk
2016
Introduction
• David Luna, Software Engineer at ForgeRock
• Part of the team that develops OpenAM
• Worked on Push and OATH implementations
• Not a fan of passwords
Why Not Passwords?
• Knowledge-based authentication:
• password - weak
• password1 - weak
• p4sS:w0rD - weak
• k33p,a:littl3!b1rdHoU5eInURS0ul - not bad… but
try typing it on a phone
Outline
• Authentication (the ludicrous-speed version)
• Underlying Technical Components (in brief)
• OATH
• Push
• FIDO
• Summary
Authentication
• The act of confirming the identity of a person by validating their
identity documents
• Factors
• Knowledge-based: Something the user KNOWS (passwords…)
• Ownership-based: Something the user HAS (security tokens,
mobile phones…)
• Inherence-based: Something the user IS (biometrics…)
• “2FA” - Using first one, then a “second factor authentication”
• “multifactor” - Using many in tandem
Tech Components
• OTPs - One-Time Passwords
• Not re-usable
• Generally automatically generated by a machine and either:
• Told to the user
• Used machine-to-machine
• Can be emailed to people on request (e.g. Steam)
• Can be produced by a device on a dongle or the phone in
your pocket
Tech Components II
• HMAC - Keyed-Hash Message Authentication Codes
• Uses a secret key, and a cryptographic hashing function to produce a
message authentication code (MAC)
• Hashing just SHA1 / SHA256 on its own is vulnerable to attack (length
extension attack)
• Defined in RFC2104 - Pseudo-Code here is from Wikipedia
Tech Components III
• Public-key Cryptography
• Keys are produced in pairs:
• private
• public
• Keep the private one… well, private
• Share the public one without whomsoever you wish
• Messages encrypted by the public key can only be decrypted by the
private key’s holder
• Messages signed by the private key can be verified by holders of the
public key
also from Wikipedia
OATH- What is it?
• Initiative For Open AuTHentication (2005)
• Two defined standards:
• HOTP - HMAC One-Time Password
• TOTP - Time-based One-Time Password
• Hardware and software tokens (implementations) exist
• Both standards produce a 6-8 digit number
• User copies the code from their token to wherever it’s needed
• Server verifies that the code exists within an appropriate window of allowed
codes, success if so, failure otherwise
• We’ll use OpenAM’s implementation as our example
OATH- How does it work?
• Registration
• User is pre-authenticated using legacy auth, selects to register
for OATH
• Server generates sharedSecret for the user’s account
• Transfers this secret, along with OATH configuration
parameters to the token - or otherwise manually entered
• OpenAM uses QR codes to transmit
• Registration prompts for authentication using the new token
before committing the newly minted device to the user’s profile
OATH- How does it work?
• Authentication
• Uses a moving counter which must stay in sync between server and token
• HOTP(sharedSecret, counter) = truncate(HMAC-SHA1(sharedSecret,
counter))
• TOTP is HOTP where the counter is based on the number of time intervals
since an epoch
• Requires clocks to remain in sync
• Cannot move past the available window by repeated requesting of tokens
• The truncate function reduces the 160-bit output of the HMAC-SHA1 function
down to 4 bytes
• Finally we generate a 6-8 digit by using the HOTP output, mod 10^d, where d is
the number of digits we desire
Demo
OATH- Usability
• Hard to use, somewhat secure, prone to user error
• Hardware tokens run out of batteries/break
• Pure ownership factor - if you have the token, you have the auth
factor
• Only suitable as a second factor
• If server is compromised, user’s shared secret and counter
information is compromised
• The attacker can configure a token with the same parameters
as the user by reading data alone
Push- What is it?
• “Push” is not the name of the authentication method, but delivery mechanism
• Often used for chat programs - FaceBook Messenger, etc.
• Implemented by mobile OSes, Android, iOS, etc.
• Method of getting a message directly to a specific mobile device
• Can use notifications to draw attention to the message when received
• These notifications can work in tandem with an app on a phone to perform
authentication to a remote server
• Gaining traction at the moment, Google Prompt released last month
• We’ll use OpenAM’s implementation as our example
Push- How does it work?
• Registration
• User is pre-authenticated using legacy auth, selects to register for Push
• Server generates sharedSecret for the user’s account
• Transfers this secret, along with a challenge made up of random bytes to the
user
• OpenAM uses QR codes to transmit
• Server calculates the response to the challenge, by performing HMAC-
SHA256(sharedSecret, challenge)
• Phone performs the same calculation
• Phone requests a unique identifier for itself from its service provider (Google’s
GCM, or Apple’s APNS)
Push- How does it work?
• Registration (continued…)
• Phone transmits result of calculation to server along with its device identifier on
the network as well as the phone type, wrapped in a Signed JWT, over https
• Server verifies this result against its pre-calculated response
• If they match the server stores the credentials, returns HTTP 200 to the
phone and it does likewise
• Authentication
• Very similar to registration
• Challenge is sent via push this time
• Phone doesn’t need to talk to its service provider
Push- How does it work?
Registration
Authentication
Demo
Push- Usability
• Easy to use, secure, flexible… but no standard (…yet?)
• If device is stolen and there’s no additional security on the device itself
then the authentication factor is fully owned by the thief
• One-touch login can be offered - much less prone to error than
copying in a code from a screen manually
• If the server is compromised, shared secret can also be compromised
• Attacker can only take control of the token by writing a new device
location to send the authentication messages
• Easy for a user to comprehend
• At the mercy of mobile’s ability to receive a push notification
FIDO- What is it?
• Fast ID Online
• Unlike Push it’s a standard for online auth
• v.1.0 of the specification released in 2014
• Steady adoption, but devices need to be certified
• Allows for pluggable local authentication to a user-owner device
• Two protocols in the spec - UAF and U2F
• We’ll focus on UAF as it’s the passwordless flow, but U2F is very
similar
FIDO- How it works
• Registration
• User is pre-authenticated using legacy auth, selects to register for FIDO
• FIDO acts through extensions in client - app, browser or OS; to locate
FIDO Authenticators
• Authenticator decouples the authentication method on the local device
from the message sent to server
• Allowing for pluggable local authentication
• The UAF protocol allows the service to select which local authentication
mechanisms are presented to the user
• Secures communication to client vis TLS - server’s private key must be
kept secure & be trusted by client CA list
FIDO- How it works
• Registration
• Once locally authenticated, device mints a cryptographic key pair unique to:
• this user
• for this device
• on this service
• Stores the private key in secure memory
• Sends the public key to the service
• Sends the local authenticator’s attestation to the service
• Authentication
• Same process, but authenticator simply performs local auth
• Signs a challenge if local auth success
• Sends back to server
FIDO- How it works
Image from https://fidoalliance.org/
Registration
Authentication
FIDO UAF- How does it work?
Images from https://fidoalliance.org/
FIDO- Usability
• Easy to use, flexible, good security, standard
• Authenticators registered to central authority
(FIDO Alliance)
• FIDO authenticators can be revoked by FIDO
Alliance
• If server is compromised attacker can only
retrieve public key
Summary
• Passwordless authentication is a reality in 2016
• If you’re implementing today:
• Simple OTPs are a good place to start
• Best used as 2FA though, rather than passwordless
• Push is a good go-to right now
• Look at how FIDO could help you in future when support is
widespread
• Increased security
• Small administration overhead

Contenu connexe

Tendances

Web authentication
Web authenticationWeb authentication
Web authentication
Pradeep J V
 
Creating OTP with free software
Creating OTP with free softwareCreating OTP with free software
Creating OTP with free software
Giuseppe Paterno'
 

Tendances (20)

Two Factor Authentication: Easy Setup, Major Impact
Two Factor Authentication: Easy Setup, Major ImpactTwo Factor Authentication: Easy Setup, Major Impact
Two Factor Authentication: Easy Setup, Major Impact
 
CNIT 128 7: Mobile Device Management
CNIT 128 7: Mobile Device ManagementCNIT 128 7: Mobile Device Management
CNIT 128 7: Mobile Device Management
 
Two factor authentication 2018
Two factor authentication 2018Two factor authentication 2018
Two factor authentication 2018
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense MechanismsCh 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
 
Adding Two Factor Authentication to your App with Authy
Adding Two Factor Authentication to your App with AuthyAdding Two Factor Authentication to your App with Authy
Adding Two Factor Authentication to your App with Authy
 
Web authentication
Web authenticationWeb authentication
Web authentication
 
Android secure coding
Android secure codingAndroid secure coding
Android secure coding
 
Cartes Asia Dem 2010 V2
Cartes Asia Dem 2010 V2Cartes Asia Dem 2010 V2
Cartes Asia Dem 2010 V2
 
CNIT 128 9. Writing Secure Android Applications
CNIT 128 9. Writing Secure Android ApplicationsCNIT 128 9. Writing Secure Android Applications
CNIT 128 9. Writing Secure Android Applications
 
Creating OTP with free software
Creating OTP with free softwareCreating OTP with free software
Creating OTP with free software
 
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
Ch 1: Web Application (In)security & Ch 2: Core Defense Mechanisms
 
CNIT 128 8. Android Implementation Issues (Part 3)
CNIT 128 8. Android Implementation Issues (Part 3)CNIT 128 8. Android Implementation Issues (Part 3)
CNIT 128 8. Android Implementation Issues (Part 3)
 
Combat the Latest Two-Factor Authentication Evasion Techniques
Combat the Latest Two-Factor Authentication Evasion TechniquesCombat the Latest Two-Factor Authentication Evasion Techniques
Combat the Latest Two-Factor Authentication Evasion Techniques
 
Automation In Android & iOS Application Review
Automation In Android & iOS 	Application Review�Automation In Android & iOS 	Application Review�
Automation In Android & iOS Application Review
 
Two Factor Authentication
Two Factor AuthenticationTwo Factor Authentication
Two Factor Authentication
 
Core defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applicationsCore defense mechanisms against security attacks on web applications
Core defense mechanisms against security attacks on web applications
 
Two Factor Authentication Made Easy ICWE 2015
Two Factor Authentication Made Easy  ICWE 2015Two Factor Authentication Made Easy  ICWE 2015
Two Factor Authentication Made Easy ICWE 2015
 
Android attacks
Android attacksAndroid attacks
Android attacks
 
Two-factor Authentication
Two-factor AuthenticationTwo-factor Authentication
Two-factor Authentication
 
Multi-Factor Authentication - "Moving Towards the Enterprise"
Multi-Factor Authentication - "Moving Towards the Enterprise" Multi-Factor Authentication - "Moving Towards the Enterprise"
Multi-Factor Authentication - "Moving Towards the Enterprise"
 

Similaire à Mobile Authentication - Moving Towards a Passwordless Future

Windows Phone 8 Security and Testing WP8 Apps
Windows Phone 8 Security and Testing WP8 AppsWindows Phone 8 Security and Testing WP8 Apps
Windows Phone 8 Security and Testing WP8 Apps
Jorge Orchilles
 
Seminar-Two Factor Authentication
Seminar-Two Factor AuthenticationSeminar-Two Factor Authentication
Seminar-Two Factor Authentication
Dilip Kr. Jangir
 
Brian Desmond - Quickly and easily protect your applications and services wit...
Brian Desmond - Quickly and easily protect your applications and services wit...Brian Desmond - Quickly and easily protect your applications and services wit...
Brian Desmond - Quickly and easily protect your applications and services wit...
Nordic Infrastructure Conference
 

Similaire à Mobile Authentication - Moving Towards a Passwordless Future (20)

10 1 otp all
10 1 otp all10 1 otp all
10 1 otp all
 
How to do right cryptography in android part 3 / Gated Authentication reviewed
How to do right cryptography in android part 3 / Gated Authentication reviewedHow to do right cryptography in android part 3 / Gated Authentication reviewed
How to do right cryptography in android part 3 / Gated Authentication reviewed
 
Provable Device Cybersecurity in Blockchain Transactions
Provable Device Cybersecurity in Blockchain TransactionsProvable Device Cybersecurity in Blockchain Transactions
Provable Device Cybersecurity in Blockchain Transactions
 
FIDO & Strong Authentication Technology Landscape
FIDO & Strong Authentication Technology LandscapeFIDO & Strong Authentication Technology Landscape
FIDO & Strong Authentication Technology Landscape
 
Windows Phone 8 Security and Testing WP8 Apps
Windows Phone 8 Security and Testing WP8 AppsWindows Phone 8 Security and Testing WP8 Apps
Windows Phone 8 Security and Testing WP8 Apps
 
JDD2015: Security in the era of modern applications and services - Bolesław D...
JDD2015: Security in the era of modern applications and services - Bolesław D...JDD2015: Security in the era of modern applications and services - Bolesław D...
JDD2015: Security in the era of modern applications and services - Bolesław D...
 
Safenet Authentication Service, SAS
Safenet Authentication Service, SASSafenet Authentication Service, SAS
Safenet Authentication Service, SAS
 
You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA You Can't Spell Enterprise Security without MFA
You Can't Spell Enterprise Security without MFA
 
Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013Mobile code mining for discovery and exploits nullcongoa2013
Mobile code mining for discovery and exploits nullcongoa2013
 
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
 
Lock it Down: Access Control for IBM i
Lock it Down: Access Control for IBM iLock it Down: Access Control for IBM i
Lock it Down: Access Control for IBM i
 
Anonymous Individual Integration for IoT
Anonymous Individual Integration for IoTAnonymous Individual Integration for IoT
Anonymous Individual Integration for IoT
 
Cyber Security.pdf
Cyber Security.pdfCyber Security.pdf
Cyber Security.pdf
 
Two factor authentication.pptx
Two factor authentication.pptxTwo factor authentication.pptx
Two factor authentication.pptx
 
HTTP Services & REST API Security
HTTP Services & REST API SecurityHTTP Services & REST API Security
HTTP Services & REST API Security
 
Seminar-Two Factor Authentication
Seminar-Two Factor AuthenticationSeminar-Two Factor Authentication
Seminar-Two Factor Authentication
 
CIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul Madsen
CIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul MadsenCIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul Madsen
CIS 2015- IoT? The ‘I’ needs to be ‘Identity’- Paul Madsen
 
Polling system solution using blockchain & Liferay
Polling system solution using blockchain & LiferayPolling system solution using blockchain & Liferay
Polling system solution using blockchain & Liferay
 
Brian Desmond - Quickly and easily protect your applications and services wit...
Brian Desmond - Quickly and easily protect your applications and services wit...Brian Desmond - Quickly and easily protect your applications and services wit...
Brian Desmond - Quickly and easily protect your applications and services wit...
 
Security 101: Multi-Factor Authentication for IBM i
Security 101: Multi-Factor Authentication for IBM iSecurity 101: Multi-Factor Authentication for IBM i
Security 101: Multi-Factor Authentication for IBM i
 

Plus de ForgeRock Identity Tech Talks

Plus de ForgeRock Identity Tech Talks (16)

Deep dive into the Open Banking payments flows
Deep dive into the Open Banking payments flowsDeep dive into the Open Banking payments flows
Deep dive into the Open Banking payments flows
 
Implementing Open Banking with ForgeRock
Implementing Open Banking with ForgeRockImplementing Open Banking with ForgeRock
Implementing Open Banking with ForgeRock
 
Just Enough Authentication
Just Enough AuthenticationJust Enough Authentication
Just Enough Authentication
 
Authentication
AuthenticationAuthentication
Authentication
 
Anonymity, Trust, Accountability
Anonymity, Trust, AccountabilityAnonymity, Trust, Accountability
Anonymity, Trust, Accountability
 
Gov.uk Verify - The Journey So Far
Gov.uk Verify - The Journey So FarGov.uk Verify - The Journey So Far
Gov.uk Verify - The Journey So Far
 
EU Single Digital Market - eIDAS To The Rescue
EU Single Digital Market - eIDAS To The RescueEU Single Digital Market - eIDAS To The Rescue
EU Single Digital Market - eIDAS To The Rescue
 
Delivering Identity at Internet Scale
Delivering Identity at Internet ScaleDelivering Identity at Internet Scale
Delivering Identity at Internet Scale
 
The Slow Death of Passwords
The Slow Death of PasswordsThe Slow Death of Passwords
The Slow Death of Passwords
 
Steak and OAuth Pi
Steak and OAuth PiSteak and OAuth Pi
Steak and OAuth Pi
 
Share All The Things With UMA
Share All The Things With UMAShare All The Things With UMA
Share All The Things With UMA
 
A Deep Dive Into Identity Work Flow
A Deep Dive Into Identity Work FlowA Deep Dive Into Identity Work Flow
A Deep Dive Into Identity Work Flow
 
Rethinking The Policy Agent
Rethinking The Policy AgentRethinking The Policy Agent
Rethinking The Policy Agent
 
Authorization Using JWTs
Authorization Using JWTsAuthorization Using JWTs
Authorization Using JWTs
 
Blockchain
BlockchainBlockchain
Blockchain
 
Introduction to SAML & OIDC
Introduction to SAML & OIDCIntroduction to SAML & OIDC
Introduction to SAML & OIDC
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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...
 

Mobile Authentication - Moving Towards a Passwordless Future

  • 1. Mobile Authentication 
 Moving Towards a Passwordless Future David Luna david@luna.co.uk 2016
  • 2. Introduction • David Luna, Software Engineer at ForgeRock • Part of the team that develops OpenAM • Worked on Push and OATH implementations • Not a fan of passwords
  • 3. Why Not Passwords? • Knowledge-based authentication: • password - weak • password1 - weak • p4sS:w0rD - weak • k33p,a:littl3!b1rdHoU5eInURS0ul - not bad… but try typing it on a phone
  • 4. Outline • Authentication (the ludicrous-speed version) • Underlying Technical Components (in brief) • OATH • Push • FIDO • Summary
  • 5. Authentication • The act of confirming the identity of a person by validating their identity documents • Factors • Knowledge-based: Something the user KNOWS (passwords…) • Ownership-based: Something the user HAS (security tokens, mobile phones…) • Inherence-based: Something the user IS (biometrics…) • “2FA” - Using first one, then a “second factor authentication” • “multifactor” - Using many in tandem
  • 6. Tech Components • OTPs - One-Time Passwords • Not re-usable • Generally automatically generated by a machine and either: • Told to the user • Used machine-to-machine • Can be emailed to people on request (e.g. Steam) • Can be produced by a device on a dongle or the phone in your pocket
  • 7. Tech Components II • HMAC - Keyed-Hash Message Authentication Codes • Uses a secret key, and a cryptographic hashing function to produce a message authentication code (MAC) • Hashing just SHA1 / SHA256 on its own is vulnerable to attack (length extension attack) • Defined in RFC2104 - Pseudo-Code here is from Wikipedia
  • 8. Tech Components III • Public-key Cryptography • Keys are produced in pairs: • private • public • Keep the private one… well, private • Share the public one without whomsoever you wish • Messages encrypted by the public key can only be decrypted by the private key’s holder • Messages signed by the private key can be verified by holders of the public key also from Wikipedia
  • 9. OATH- What is it? • Initiative For Open AuTHentication (2005) • Two defined standards: • HOTP - HMAC One-Time Password • TOTP - Time-based One-Time Password • Hardware and software tokens (implementations) exist • Both standards produce a 6-8 digit number • User copies the code from their token to wherever it’s needed • Server verifies that the code exists within an appropriate window of allowed codes, success if so, failure otherwise • We’ll use OpenAM’s implementation as our example
  • 10. OATH- How does it work? • Registration • User is pre-authenticated using legacy auth, selects to register for OATH • Server generates sharedSecret for the user’s account • Transfers this secret, along with OATH configuration parameters to the token - or otherwise manually entered • OpenAM uses QR codes to transmit • Registration prompts for authentication using the new token before committing the newly minted device to the user’s profile
  • 11. OATH- How does it work? • Authentication • Uses a moving counter which must stay in sync between server and token • HOTP(sharedSecret, counter) = truncate(HMAC-SHA1(sharedSecret, counter)) • TOTP is HOTP where the counter is based on the number of time intervals since an epoch • Requires clocks to remain in sync • Cannot move past the available window by repeated requesting of tokens • The truncate function reduces the 160-bit output of the HMAC-SHA1 function down to 4 bytes • Finally we generate a 6-8 digit by using the HOTP output, mod 10^d, where d is the number of digits we desire
  • 12. Demo
  • 13. OATH- Usability • Hard to use, somewhat secure, prone to user error • Hardware tokens run out of batteries/break • Pure ownership factor - if you have the token, you have the auth factor • Only suitable as a second factor • If server is compromised, user’s shared secret and counter information is compromised • The attacker can configure a token with the same parameters as the user by reading data alone
  • 14. Push- What is it? • “Push” is not the name of the authentication method, but delivery mechanism • Often used for chat programs - FaceBook Messenger, etc. • Implemented by mobile OSes, Android, iOS, etc. • Method of getting a message directly to a specific mobile device • Can use notifications to draw attention to the message when received • These notifications can work in tandem with an app on a phone to perform authentication to a remote server • Gaining traction at the moment, Google Prompt released last month • We’ll use OpenAM’s implementation as our example
  • 15. Push- How does it work? • Registration • User is pre-authenticated using legacy auth, selects to register for Push • Server generates sharedSecret for the user’s account • Transfers this secret, along with a challenge made up of random bytes to the user • OpenAM uses QR codes to transmit • Server calculates the response to the challenge, by performing HMAC- SHA256(sharedSecret, challenge) • Phone performs the same calculation • Phone requests a unique identifier for itself from its service provider (Google’s GCM, or Apple’s APNS)
  • 16. Push- How does it work? • Registration (continued…) • Phone transmits result of calculation to server along with its device identifier on the network as well as the phone type, wrapped in a Signed JWT, over https • Server verifies this result against its pre-calculated response • If they match the server stores the credentials, returns HTTP 200 to the phone and it does likewise • Authentication • Very similar to registration • Challenge is sent via push this time • Phone doesn’t need to talk to its service provider
  • 17. Push- How does it work? Registration Authentication
  • 18. Demo
  • 19. Push- Usability • Easy to use, secure, flexible… but no standard (…yet?) • If device is stolen and there’s no additional security on the device itself then the authentication factor is fully owned by the thief • One-touch login can be offered - much less prone to error than copying in a code from a screen manually • If the server is compromised, shared secret can also be compromised • Attacker can only take control of the token by writing a new device location to send the authentication messages • Easy for a user to comprehend • At the mercy of mobile’s ability to receive a push notification
  • 20. FIDO- What is it? • Fast ID Online • Unlike Push it’s a standard for online auth • v.1.0 of the specification released in 2014 • Steady adoption, but devices need to be certified • Allows for pluggable local authentication to a user-owner device • Two protocols in the spec - UAF and U2F • We’ll focus on UAF as it’s the passwordless flow, but U2F is very similar
  • 21. FIDO- How it works • Registration • User is pre-authenticated using legacy auth, selects to register for FIDO • FIDO acts through extensions in client - app, browser or OS; to locate FIDO Authenticators • Authenticator decouples the authentication method on the local device from the message sent to server • Allowing for pluggable local authentication • The UAF protocol allows the service to select which local authentication mechanisms are presented to the user • Secures communication to client vis TLS - server’s private key must be kept secure & be trusted by client CA list
  • 22. FIDO- How it works • Registration • Once locally authenticated, device mints a cryptographic key pair unique to: • this user • for this device • on this service • Stores the private key in secure memory • Sends the public key to the service • Sends the local authenticator’s attestation to the service • Authentication • Same process, but authenticator simply performs local auth • Signs a challenge if local auth success • Sends back to server
  • 23. FIDO- How it works Image from https://fidoalliance.org/
  • 24. Registration Authentication FIDO UAF- How does it work? Images from https://fidoalliance.org/
  • 25. FIDO- Usability • Easy to use, flexible, good security, standard • Authenticators registered to central authority (FIDO Alliance) • FIDO authenticators can be revoked by FIDO Alliance • If server is compromised attacker can only retrieve public key
  • 26. Summary • Passwordless authentication is a reality in 2016 • If you’re implementing today: • Simple OTPs are a good place to start • Best used as 2FA though, rather than passwordless • Push is a good go-to right now • Look at how FIDO could help you in future when support is widespread • Increased security • Small administration overhead