Protocols for Checking Compromised Credentials
Lucy Li
Cornell Tech
Bijeeta Pal
Cornell Tech
Thomas Ristenpart
Cornell T ech
Rahul Chatterjee
University of Wisconsin—Madison Cornell Tech
Junade Ali
Cloudflare Inc.
Nick Sullivan
Cloudflare Inc.
Protocols for Checking Compromised Credentials Lucy Li Bijeeta Pal - - PowerPoint PPT Presentation
Protocols for Checking Compromised Credentials Lucy Li Bijeeta Pal Junade Ali Nick Sullivan Cornell Tech Cloudflare Inc. Cornell Tech Cloudflare Inc. Rahul Chatterjee Thomas Ristenpart University of WisconsinMadison Cornell T ech
Cornell Tech
Cornell Tech
Cornell T ech
University of Wisconsin—Madison Cornell Tech
Cloudflare Inc.
Cloudflare Inc.
2
lucy@email.com myPassword123
website.com
Leaked Credentials Username Passwords … … lucy@email.com myPassword123 alice@yahoo.com Star246, p4ssw0rd1 … …
Around 40% of users reuse passwords across different websites!
[Das et al. 2014, Pearman et al. 2017]
3
Leaked Credentials Username Passwords … … lucy@email.com myPassword123 alice@yahoo.com Star246, p4ssw0rd1 … …
website.com
Cl Client C3 C3 Server pw pw OR (u (u, pw) OR
Credential Entity
Client finds out if their credential is in the server’s database
4
Leaked Credentials Username Passwords … … lucy@email.com myPassword123 alice@yahoo.com Star246, p4ssw0rd1 … …
website.com
Cl Client C3 C3 Server pw pw OR (u (u, pw) OR
Credential Entity
Can we use a third party checker and still preserve privacy of user credentials? Two big initial deployments: Password only: Username-password:
and threat model
Checkup (GPC v1) leak information about passwords
5
6
7
myPassword123
myPassword123
alice@email.com
********
website.com
alice@email.com passwordGuess1
Ideally, no information about password leaked Partial information speeds up online guessing attacks
…
alice@email.com passwordGuessQ
8
9
C3 server Client
myPassword123
Passwords … dog456 myPassword123 …
Combine bucketization with some private set membership protocol
10
C3 server
HIBP: prefix of H(pw) GPC v1: prefix of H(user || pw) Ke Key y secu curity y question: How much does knowing the bucket queried help an adversary guess a client’s password?
Client
myPassword123 Combine bucketization with some private set membership protocol
identifiers?
queries, with access to usernames
11
github.com/lucy7li/compromised-credential-checking
12
10 20 30 40 50 60 70 80 1 10 100 1000
Attacker success rate (%) Number of queries given to the attacker
Baseline Hash Prefix (20 bits) Hash Prefix (16 bits) Frequency-smoothing (q'=100)
HIBP FSB (new)
Baseline / IDB / GPC v2
GPC v1
user erna name me-pas password d pai pair match with a C3 server
initia ially lly implemented a protocol that uses the prefix of H(user || pw) as the bucket identifier
if us user erna name is me is k kno nown t n to a attacker er
: use prefix of H(user) as the bucket identifier
13
14
15
password123
Hash of password123 = 15a56bd4dd…
15a56
15a56
Have I Been Pwned
Contains all password hashes with the same prefix 20-bit hash prefix
16
Password Probability Easy to guess the password if you know the bucket
Buckets
Colors in buckets correspond to probabilities of passwords given the bucket
17
Password Probability Go Goal: : Given a bucket, the probability of each password in the bucket is the same
Buckets
We propose FSB as a more secure bucketization algorithm
18
Password Probability
B: # buckets
Start bucket: H(◼) Proportional to probability of password Range for password ◼ [ H(◼) , H(◼) + f(Pr(◼)) ] To check a password with the server: Client computes range, picks a bucket randomly
19
20
21
Setting Protocol Bandwidth (KB) Total time (ms) Password-
HIBP 32 220 FSB 558 527 ID-password GPC 1,066 489 IDB 1,066 517
To Total tal ti time includes client-server communication and client- and server-side computations github.com/lucy7li/compromised-credential-checking
22
cs.cornell.edu/~lucy