Web Security
�Week 10 - Authentication
Old Dominion University
Department of Computer Science
CS 433/533 Spring 2023
Michael L. Nelson <mln@cs.odu.edu>
2024-10-21
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
How can we build systems which are secure even when the attacker has the user's password?
2
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
What is authentication?
3
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
ATMs = two factor authentication
4
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Authentication vs. Authorization
5
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
NIST Special Publication 800-63, Revision 3
Digital Identity Guidelines
6
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Good practices that are not always followed
7
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Users choose weak passwords
8
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Designing password requirements
9
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Payment Card Industry Data Security Standard (PCI DSS)
10
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Password requirement best practices (outdated)
11
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Terrible password
requirement practices
12
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Bank login "security images"
13
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
14
The majority of our participants (73%) entered their password when we removed the security image and caption. We found that features that make images more noticeable do not necessarily make them more effective at preventing phishing attacks, though some appearance characteristics succeed at discouraging users from logging in when the image is absent.
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
What we've learned about password requirements
15
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
16
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
17
https://community.spiceworks.com/topic/2286767-the-time-it-takes-to-crack-a-password-visualized
data ca. 2020
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
18
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
19
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Password requirement best practices (updated)
20
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Checking against known breaches
21
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
How not to do 2FA
22
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Good practices that are not always followed
23
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
24
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
NIST Special Publication 800-63, Revision 3
Digital Identity Guidelines
25
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Network-based guessing attacks
26
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Network-based guessing defenses
27
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
CAPTCHA
28
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
29
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Problems with CAPTCHAs
30
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
31
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
32
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
33
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Security isn’t the only goal of CAPTCHAs
34
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
You are training the machine
35
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
36
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Reauthenticate for
sensitive features
37
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy
information exposure
38
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy:
error messages
39
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy: Login
40
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy:
Password recovery
41
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy:
Account creation
42
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy:
HTTP status codes
43
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy: Timing
44
Bad:
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy: Timing
45
Good:
• Beware of using early returns in authentication code
• The code above is slower but consistent
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Response discrepancy:
Mitigation tradeoffs
46
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Data breaches
47
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
48
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
49
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Were you in a breach?
50
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
51
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
How are passwords stored?
52
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
53
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Never store passwords like this!
alice:password
bob:hunter2
charlie:correcthorsebatterystaple
david:hunter2
54
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Never store plaintext passwords
55
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Example: Hashing passwords
56
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
User table (hashed)
alice:XohImNooBHFR0OVvjcYpJ3NgPQ1qq73WKhHvch0VQtg=
bob:9S+9MrKzuG/4jvbEkGKChfSCrxXdyylUH5S89Saj9sc=
charlie:0mk89QsPD4FIJQv8IcHnoSe6qjOzKvcNuTevydeUxWA=
david:9S+9MrKzuG/4jvbEkGKChfSCrxXdyylUH5S89Saj9sc=
57
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Problems with just hashing
58
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Password salts
59
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Example: Hashing and salting passwords
60
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
User table (hashed and salted)
username:salt:password
alice:ciMTj87Q5Ti/PDfSUM4jcAT6cFJWVwJFjEbMc2sqAn0=:AQAiFDIbEUk5Wdoe6tTL+bnCBOIsectOW2SfftG0je8=
bob:NB9zdy/OIVnGHkPK7fK01saCcIpXrWV5rdtW8i5k/XY=:uxIXXvfrQ8/gTwrbTtgnsqsZCAw/y24O8nU3qlho5GE=
charlie:hetbWcTifseB9K3IQQPr6c/eMJyj3kVTqq/l+FqYf78=:FykuFcJV0AjBLyxMuQWrvuSTjRXyXStitVteWUJmPlM=
david:IZu5hPamBS/QY4ILZzTcyVY8TK17Dt9hmXW7bC4XbCc=:ydVe+vA56bKbA0oXzRfYtkABUXaxgkF4ngB0xNJRvA4=
61
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Just use bcrypt
62
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Example: Just use bcrypt
63
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
bcrypt hash string
64
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
User table (bcrypt)
alice:$2b$10$aQNe4MK0HDhrkus8GZGQL.Nj11nsx12VTMTDBkykiL/jRbb.fJuGC
bob:$2b$10$TSbaMNCCq6.xNkDVszwwhO9Fpb.eeW6aUSIFzGkPoQrs5RahskOUO
charlie:$2b$10$.5KcQQNEfnkPBYxeiqS2ZeePXLT5J30HG7zngfesyGuc0js37X41e
david:$2b$10$l8n7ZLsq13ygE0m3cQ8oEuBjPnGcGBUA4zvJhnsKgyDEZdEd2EFXa
65
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
How attackers use a
breach database
66
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Strong passwords
67
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Multi-factor authentication
68
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Selectively requiring MFA
69
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Time-based One-Time Passwords (TOTP)
70
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Time-based One-Time Passwords (TOTP)
71
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Time-based One-Time Passwords (TOTP)
72
Server generates unique secret key for user:
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Time-based One-Time Passwords (TOTP)
73
Generate the current one-time password:
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh
Final thoughts
74
ODU CS 433/533 Web Security Fall 2024 mln@cs.odu.edu
Based on Stanford CS 253 by Feross Aboukhadijeh