SlideShare a Scribd company logo
January 2016
Flaws of password-based authentication
by Igor Sobinov
2
Agenda
• Overview
• Vulnerabilities
• Where to find errors
• Testing Techniques
• Defense
3
Password-based authentication
• User-side issues: People don’t like passwords because it is need to invent new one for
every service, remember the whole bunch or store somewhere
• Administrator-side issues: Password difficulty should be enough to prevent brute force,
but not too hard because users could write it down and stick to the monitor. The worst
case if user forget the password
4
Vulnerabilities
• Password Compromise: password is a single-factor authentication method. Password
could be tricked (phishing), bribed (chocolate) or coerced
University of Luxembourg: 43.5% users exchange password for chocolate (2016)
Keysniffer vulnerability opens wireless keyboards to snooping (2016)
• Allowing Weak Passwords: blank, password (for Non-native English), user name.
Password re-usage is also in loop
FBI's most-wanted cybercriminal used cat's name as password Chewy 123 (2014)
• Password Iteration: EmmaSummerPassword01, EmmaAutumnPassword01
25%-33% users iterate passwords.
5
Vulnerabilities
• Not Requiring Password Changes: Ones been compromised will remain compromised
indefinitely
• Default Passwords: The No1 to check in hacker’s list
Cash register (POS) maker used same password 166816 for 25 years (2015)
The Launch Code for U.S. Nukes Was 00000000 for 20 Years (2013)
• Replay Attacks: Network traffic is obtained and used to have access as real user. Public
Wi-Fi is the most often place
6
Vulnerabilities
• Storing Unencrypted Passwords: how?
Starbucks: We Stored Your Passwords in Plaintext (2014)
Chrome saved passwords in plain text (2013)
• Storing Encrypted password:
Far, The Bat, etc.
Windows 8 Stores Logon Passwords in Plain Text (2012) ???
• Brute force Attacks: Use salt, use enough computing resources
LinkedIn started use salt after 2012 hack
7
Vulnerabilities
• Revealing info in case of failure: don’t inform what’s incorrect: user name or password.
Prevent time attack:
bool login(String User, String Password)
{
if(!userTable.contain(User))
return false;
return HASH(userTable[User]) == HASH(Password);
}
CVE-2016-6210: OpenSSL timing attack BLOWFISH <-> SHA256/SHA512
8
Vulnerabilities
• Online Attacks: Unlimited try, no account locks???, DDOS. Strong CAPTCHA. Slow down
the authentication mechanism for repeated failures.
Find my iPhone vulnerability (2014)
• Return a forgotten password: don’t return originals, generate new one.
Don’t send password via email
Uber send plaintext passwords in emails (2015)
Google says half of email is sent unencrypted (2014)
• For clients: Trusted DNS names (DNSSEC), secure channels (TLS)
9
Where to find errors
• Password Compromise: Don’t store passwords as clear text, use substitutes
• Allowing Weak Passwords: Check the complexity requirements. Check localization
• Default Passwords: Reset at first login. Limited functionality.
Windows XP: if administrator password is blank it can’t be used across the LAN
• Replay Attacks: Don’t invent protocols. Use encrypted channel.
NTLM isn’t susceptible but NTLM over HTTP is susceptible (2005)
10
Where to find errors
• Brute Force Attacks: Use well-designed key derivation function(KDF). Take a look at RFC
2898, PBKDF2. Pay attention to number of iterations
• Online Attacks: Account lockout for configurable number of attempts, configurable
duration, revealing failure to the user name or password, timing attacks
11
Testing Techniques
• Password Compromise
• If password asked during setup, check for temporary files after setup. Break setup
by incorrect parameters or process kill
• If application create locked temporary files with secrets, create hard link to them
• Test binary and memory dump of application for default accounts
• Process memory could be crowding out to swap. Memory eater.
• Replay Attacks
• Capture the authentication traffic and sent it again
• If SSL/TLS used, setup MITM proxy and check if application notices about self-
signed certificate
12
Testing Techniques
• Brute-Force Attacks: check for brute-force password speed of typical CPU. Good limit-
no more 100-200 per second. Modern GPUs are massively parallel
• Check access rights to the password database
13
Defense
• Any ways to avoid passwords?
• Password Compromise
• Educate users
• Don’t store plain text passwords
• Don’t store password in process memory longer than required, use bzero
• Logon page should be only accessible via SSL/TLS
14
Defense
• Weak Password
• Enforces password complexity and length requirements
• Microsoft: minimum 14 symbols (2016)
• NIST: minimum 12 symbols in 95 symbol alphabet (printable ASCII)
• All available symbols: A-Z a-z 0-9 ~-& ◙ ╜┐╗♠. Be aware of SQL DBMS
• Randomly where feasible
• Increasing the length of the password by only 2 characters gives 500 times more
variations than the increase in the alphabet of 18 characters.
• Parts of user name mustn’t be contained, but only long enough
• Dictionary words ???
15
Defense
• Iterated Password: change all variants of numbers and slightly change other symbols. If
previous derives, drop the variant.
• Password Change: Set the minimum and maximum password age.
High security systems by Microsoft: 7-30
Use password history
• Default Password: Don’t use default password.
If it is required, put system in lock-down mode and don’t allow remote logins
• Store password in protected databases
16
Defense
• Replay Attack: Use SSL/TLS or IPSec. Use Secure Remote Password protocol (SRP) that
don’t send password over the network (implementation of Zero-knowledge proof)
• Password Verifier: Use good KDF, like PBKDF2, bcrypt, scrypt.
Number of iterations
• RFC 2898: 1000
• Office 2007: 50000
• Office 2010: 100000
Salt
• RFC 2898 8 bits, better 16
• Must be random
Hash
• HMAC-SHA256
17
Defense
• Classical key exchange protocols required PKI or trusted third party to prevent MITM
attack.
• Password-Authenticated Key Exchange (PAKE) is a technique that aims to establish
secure communication between two remote parties solely based on their shared
password
• PAKE by Juggling (J-PAKE) is a PAKE implementation achieves mutual authentication in
two steps:
• first, two parties send ephemeral public keys to each other
• second, they encrypt the shared password by juggling the public keys in a
verifiable way
The idea is to replace the low-entropy password with high-entropy cryptographic
key. Due to it J-PAKE has off-line dictionary attack resistance
18
Defense: Diffie-Hellman
a, b {1, … q-1}
19
Defense: PAKE
20
Defense
• Online Brute-Force Attack: Don’t disclosure user names.
• Account lockout: temporary or permanently.
• Graduated timeouts: attempts per second
• CAPTCHA
• Forgotten Password reminder: Don’t send previous password, generate new one.
• Don’t send the password at all, ask user to enter it on site
• Secure questions shouldn't contain public information
• Two-factor authentication (2FA): NIST don’t recommend to use SMS (2016) due to
phone number could be attached to VoIP or hijacked. Use biometric methods.
• Оппозиционные активисты пожаловались на взлом аккаунтов в Telegram (2016)
• One time passwords: On public places passwords could be easily stolen.
21
Examples: Real Story
Paris Hilton
Socialite
Heiress of Hilton empire
22
Examples: Real Story
Paris Hilton T-Mobile cell phone was hacked via web access to cloud (2005)
Ways to protect password-based account:
• Restrict logins to specific locations (states, countries)
• Disallow logins from Tor and other darknets
• Set up two-factor authentication
• Restrict access for specific devices (UUID)
• Log off automatically
• Create one-time passwords to log in from untrusted computers
• Divide: account name, user name, email
23
Q&A

More Related Content

What's hot

How to Protect Yourself From Heartbleed Security Flaw
How to Protect Yourself From Heartbleed Security FlawHow to Protect Yourself From Heartbleed Security Flaw
How to Protect Yourself From Heartbleed Security Flaw
ConnectSafely
 
Eap intro
Eap introEap intro
Eap intro
Aditya Mehta
 
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by DefaultCase Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
Mohammed ALDOUB
 
Authenticated key exchange protocols
Authenticated key exchange protocolsAuthenticated key exchange protocols
Authenticated key exchange protocols
Pvrtechnologies Nellore
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building Better
Equal Experts
 
Webscarab demo @ OWASP Belgium
Webscarab demo @ OWASP BelgiumWebscarab demo @ OWASP Belgium
Webscarab demo @ OWASP Belgium
Philippe Bogaerts
 

What's hot (6)

How to Protect Yourself From Heartbleed Security Flaw
How to Protect Yourself From Heartbleed Security FlawHow to Protect Yourself From Heartbleed Security Flaw
How to Protect Yourself From Heartbleed Security Flaw
 
Eap intro
Eap introEap intro
Eap intro
 
Case Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by DefaultCase Study of Django: Web Frameworks that are Secure by Default
Case Study of Django: Web Frameworks that are Secure by Default
 
Authenticated key exchange protocols
Authenticated key exchange protocolsAuthenticated key exchange protocols
Authenticated key exchange protocols
 
Platform Security IRL: Busting Buzzwords & Building Better
Platform Security IRL:  Busting Buzzwords & Building BetterPlatform Security IRL:  Busting Buzzwords & Building Better
Platform Security IRL: Busting Buzzwords & Building Better
 
Webscarab demo @ OWASP Belgium
Webscarab demo @ OWASP BelgiumWebscarab demo @ OWASP Belgium
Webscarab demo @ OWASP Belgium
 

Similar to Flaws of password-based authentication

CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking Authentication
Sam Bowne
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking Authentication
Sam Bowne
 
CNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking AuthenticationCNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking Authentication
Sam Bowne
 
CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
Sam Bowne
 
OWASP TOP 10
OWASP TOP 10OWASP TOP 10
OWASP TOP 10
Robert MacLean
 
Presentation 3 1 1 1
Presentation 3 1 1 1Presentation 3 1 1 1
Presentation 3 1 1 1
Ashwin Kumar
 
Single Sign-On & Strong Authentication
Single Sign-On & Strong AuthenticationSingle Sign-On & Strong Authentication
Single Sign-On & Strong Authentication
Arun S M
 
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
Jason Hong
 
E gov security_tut_session_3
E gov security_tut_session_3E gov security_tut_session_3
E gov security_tut_session_3
Mustafa Jarrar
 
Authentication Methods authauthauthauthauthautha
Authentication Methods authauthauthauthauthauthaAuthentication Methods authauthauthauthauthautha
Authentication Methods authauthauthauthauthautha
Olajide Kuku
 
2 Laymans Course - LAMP V2.pptx
2 Laymans Course - LAMP V2.pptx2 Laymans Course - LAMP V2.pptx
2 Laymans Course - LAMP V2.pptx
ssuser2f0fb0
 
authentication.ppt
authentication.pptauthentication.ppt
authentication.ppt
AchinikeWinifred
 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)
Ajay Negi
 
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
Nazar Tymoshyk, CEH, Ph.D.
 
Windows network
Windows networkWindows network
Windows network
Jithesh Nair
 
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
AlienVault
 
CISSP Prep: Ch 6. Identity and Access Management
CISSP Prep: Ch 6. Identity and Access ManagementCISSP Prep: Ch 6. Identity and Access Management
CISSP Prep: Ch 6. Identity and Access Management
Sam Bowne
 
hacking lecture 3c.ppt
hacking lecture 3c.ppthacking lecture 3c.ppt
hacking lecture 3c.ppt
peter722626
 
CNIT 125 6. Identity and Access Management
CNIT 125 6. Identity and Access ManagementCNIT 125 6. Identity and Access Management
CNIT 125 6. Identity and Access Management
Sam Bowne
 
Web authentication
Web authenticationWeb authentication
Web authentication
Pradeep J V
 

Similar to Flaws of password-based authentication (20)

CNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking AuthenticationCNIT 129S - Ch 6a: Attacking Authentication
CNIT 129S - Ch 6a: Attacking Authentication
 
Ch 6: Attacking Authentication
Ch 6: Attacking AuthenticationCh 6: Attacking Authentication
Ch 6: Attacking Authentication
 
CNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking AuthenticationCNIT 129: 6. Attacking Authentication
CNIT 129: 6. Attacking Authentication
 
CNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking AuthenticationCNIT 129S: Ch 6: Attacking Authentication
CNIT 129S: Ch 6: Attacking Authentication
 
OWASP TOP 10
OWASP TOP 10OWASP TOP 10
OWASP TOP 10
 
Presentation 3 1 1 1
Presentation 3 1 1 1Presentation 3 1 1 1
Presentation 3 1 1 1
 
Single Sign-On & Strong Authentication
Single Sign-On & Strong AuthenticationSingle Sign-On & Strong Authentication
Single Sign-On & Strong Authentication
 
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
Knock x Knock: The Design and Evaluation of a Unified Authentication Manageme...
 
E gov security_tut_session_3
E gov security_tut_session_3E gov security_tut_session_3
E gov security_tut_session_3
 
Authentication Methods authauthauthauthauthautha
Authentication Methods authauthauthauthauthauthaAuthentication Methods authauthauthauthauthautha
Authentication Methods authauthauthauthauthautha
 
2 Laymans Course - LAMP V2.pptx
2 Laymans Course - LAMP V2.pptx2 Laymans Course - LAMP V2.pptx
2 Laymans Course - LAMP V2.pptx
 
authentication.ppt
authentication.pptauthentication.ppt
authentication.ppt
 
Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)Logical Attacks(Vulnerability Research)
Logical Attacks(Vulnerability Research)
 
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
Security Hole #12 Lviv SoftServe-Symphony Solutions "Lockpicking Authentication"
 
Windows network
Windows networkWindows network
Windows network
 
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
AlienVault Brute Force Attacks- Keeping the Bots at Bay with AlienVault USM +...
 
CISSP Prep: Ch 6. Identity and Access Management
CISSP Prep: Ch 6. Identity and Access ManagementCISSP Prep: Ch 6. Identity and Access Management
CISSP Prep: Ch 6. Identity and Access Management
 
hacking lecture 3c.ppt
hacking lecture 3c.ppthacking lecture 3c.ppt
hacking lecture 3c.ppt
 
CNIT 125 6. Identity and Access Management
CNIT 125 6. Identity and Access ManagementCNIT 125 6. Identity and Access Management
CNIT 125 6. Identity and Access Management
 
Web authentication
Web authenticationWeb authentication
Web authentication
 

Recently uploaded

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 

Recently uploaded (20)

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 

Flaws of password-based authentication

  • 1. January 2016 Flaws of password-based authentication by Igor Sobinov
  • 2. 2 Agenda • Overview • Vulnerabilities • Where to find errors • Testing Techniques • Defense
  • 3. 3 Password-based authentication • User-side issues: People don’t like passwords because it is need to invent new one for every service, remember the whole bunch or store somewhere • Administrator-side issues: Password difficulty should be enough to prevent brute force, but not too hard because users could write it down and stick to the monitor. The worst case if user forget the password
  • 4. 4 Vulnerabilities • Password Compromise: password is a single-factor authentication method. Password could be tricked (phishing), bribed (chocolate) or coerced University of Luxembourg: 43.5% users exchange password for chocolate (2016) Keysniffer vulnerability opens wireless keyboards to snooping (2016) • Allowing Weak Passwords: blank, password (for Non-native English), user name. Password re-usage is also in loop FBI's most-wanted cybercriminal used cat's name as password Chewy 123 (2014) • Password Iteration: EmmaSummerPassword01, EmmaAutumnPassword01 25%-33% users iterate passwords.
  • 5. 5 Vulnerabilities • Not Requiring Password Changes: Ones been compromised will remain compromised indefinitely • Default Passwords: The No1 to check in hacker’s list Cash register (POS) maker used same password 166816 for 25 years (2015) The Launch Code for U.S. Nukes Was 00000000 for 20 Years (2013) • Replay Attacks: Network traffic is obtained and used to have access as real user. Public Wi-Fi is the most often place
  • 6. 6 Vulnerabilities • Storing Unencrypted Passwords: how? Starbucks: We Stored Your Passwords in Plaintext (2014) Chrome saved passwords in plain text (2013) • Storing Encrypted password: Far, The Bat, etc. Windows 8 Stores Logon Passwords in Plain Text (2012) ??? • Brute force Attacks: Use salt, use enough computing resources LinkedIn started use salt after 2012 hack
  • 7. 7 Vulnerabilities • Revealing info in case of failure: don’t inform what’s incorrect: user name or password. Prevent time attack: bool login(String User, String Password) { if(!userTable.contain(User)) return false; return HASH(userTable[User]) == HASH(Password); } CVE-2016-6210: OpenSSL timing attack BLOWFISH <-> SHA256/SHA512
  • 8. 8 Vulnerabilities • Online Attacks: Unlimited try, no account locks???, DDOS. Strong CAPTCHA. Slow down the authentication mechanism for repeated failures. Find my iPhone vulnerability (2014) • Return a forgotten password: don’t return originals, generate new one. Don’t send password via email Uber send plaintext passwords in emails (2015) Google says half of email is sent unencrypted (2014) • For clients: Trusted DNS names (DNSSEC), secure channels (TLS)
  • 9. 9 Where to find errors • Password Compromise: Don’t store passwords as clear text, use substitutes • Allowing Weak Passwords: Check the complexity requirements. Check localization • Default Passwords: Reset at first login. Limited functionality. Windows XP: if administrator password is blank it can’t be used across the LAN • Replay Attacks: Don’t invent protocols. Use encrypted channel. NTLM isn’t susceptible but NTLM over HTTP is susceptible (2005)
  • 10. 10 Where to find errors • Brute Force Attacks: Use well-designed key derivation function(KDF). Take a look at RFC 2898, PBKDF2. Pay attention to number of iterations • Online Attacks: Account lockout for configurable number of attempts, configurable duration, revealing failure to the user name or password, timing attacks
  • 11. 11 Testing Techniques • Password Compromise • If password asked during setup, check for temporary files after setup. Break setup by incorrect parameters or process kill • If application create locked temporary files with secrets, create hard link to them • Test binary and memory dump of application for default accounts • Process memory could be crowding out to swap. Memory eater. • Replay Attacks • Capture the authentication traffic and sent it again • If SSL/TLS used, setup MITM proxy and check if application notices about self- signed certificate
  • 12. 12 Testing Techniques • Brute-Force Attacks: check for brute-force password speed of typical CPU. Good limit- no more 100-200 per second. Modern GPUs are massively parallel • Check access rights to the password database
  • 13. 13 Defense • Any ways to avoid passwords? • Password Compromise • Educate users • Don’t store plain text passwords • Don’t store password in process memory longer than required, use bzero • Logon page should be only accessible via SSL/TLS
  • 14. 14 Defense • Weak Password • Enforces password complexity and length requirements • Microsoft: minimum 14 symbols (2016) • NIST: minimum 12 symbols in 95 symbol alphabet (printable ASCII) • All available symbols: A-Z a-z 0-9 ~-& ◙ ╜┐╗♠. Be aware of SQL DBMS • Randomly where feasible • Increasing the length of the password by only 2 characters gives 500 times more variations than the increase in the alphabet of 18 characters. • Parts of user name mustn’t be contained, but only long enough • Dictionary words ???
  • 15. 15 Defense • Iterated Password: change all variants of numbers and slightly change other symbols. If previous derives, drop the variant. • Password Change: Set the minimum and maximum password age. High security systems by Microsoft: 7-30 Use password history • Default Password: Don’t use default password. If it is required, put system in lock-down mode and don’t allow remote logins • Store password in protected databases
  • 16. 16 Defense • Replay Attack: Use SSL/TLS or IPSec. Use Secure Remote Password protocol (SRP) that don’t send password over the network (implementation of Zero-knowledge proof) • Password Verifier: Use good KDF, like PBKDF2, bcrypt, scrypt. Number of iterations • RFC 2898: 1000 • Office 2007: 50000 • Office 2010: 100000 Salt • RFC 2898 8 bits, better 16 • Must be random Hash • HMAC-SHA256
  • 17. 17 Defense • Classical key exchange protocols required PKI or trusted third party to prevent MITM attack. • Password-Authenticated Key Exchange (PAKE) is a technique that aims to establish secure communication between two remote parties solely based on their shared password • PAKE by Juggling (J-PAKE) is a PAKE implementation achieves mutual authentication in two steps: • first, two parties send ephemeral public keys to each other • second, they encrypt the shared password by juggling the public keys in a verifiable way The idea is to replace the low-entropy password with high-entropy cryptographic key. Due to it J-PAKE has off-line dictionary attack resistance
  • 20. 20 Defense • Online Brute-Force Attack: Don’t disclosure user names. • Account lockout: temporary or permanently. • Graduated timeouts: attempts per second • CAPTCHA • Forgotten Password reminder: Don’t send previous password, generate new one. • Don’t send the password at all, ask user to enter it on site • Secure questions shouldn't contain public information • Two-factor authentication (2FA): NIST don’t recommend to use SMS (2016) due to phone number could be attached to VoIP or hijacked. Use biometric methods. • Оппозиционные активисты пожаловались на взлом аккаунтов в Telegram (2016) • One time passwords: On public places passwords could be easily stolen.
  • 21. 21 Examples: Real Story Paris Hilton Socialite Heiress of Hilton empire
  • 22. 22 Examples: Real Story Paris Hilton T-Mobile cell phone was hacked via web access to cloud (2005) Ways to protect password-based account: • Restrict logins to specific locations (states, countries) • Disallow logins from Tor and other darknets • Set up two-factor authentication • Restrict access for specific devices (UUID) • Log off automatically • Create one-time passwords to log in from untrusted computers • Divide: account name, user name, email