phoenix: rebirth of a cryptographic password-hardening service · problem i - weak passwords worst...

82
Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W.F. Lai 1,2 Christoph Egger 1 Dominique Schr¨ oder 1 Sherman S.M. Chow 2 1 Friedrich-Alexander-Universit¨ at Erlangen-N¨ urnberg 2 Chinese University of Hong Kong August 17, 2017

Upload: others

Post on 13-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service

Russell W.F. Lai 1,2

Christoph Egger 1

Dominique Schroder 1

Sherman S.M. Chow 2

1Friedrich-Alexander-UniversitatErlangen-Nurnberg

2Chinese University of Hong Kong

August 17, 2017

Page 2: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Scheme Design

2 of 26

Page 3: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Authentication - before 1976

UserUsername AlicePassword 123456

DatabaseUsername AlicePassword pw

Salt aqZcSP

I am “Alice”.

My password is “123456”.

Validation Algorithm

pw?= 123456

OK!

3 of 26

Page 4: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Authentication - before 1976

UserUsername AlicePassword 123456

DatabaseUsername AlicePassword pw

Salt aqZcSP

I am “Alice”.

My password is “123456”.

Validation Algorithm

pw?= 123456

OK!

3 of 26

Page 5: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Authentication - before 1976

UserUsername AlicePassword 123456

DatabaseUsername AlicePassword pw

Salt aqZcSP

I am “Alice”.

My password is “123456”.

Validation Algorithm

pw?= 123456

OK!

3 of 26

Page 6: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Authentication - after 1976

UserUsername AlicePassword 123456

DatabaseUsername Alice

Hash hSalt aqZcSP

I am “Alice”.

My password is “123456”.

Validation Algorithm

h?= H(123456, aqZcSP)

OK!

3 of 26

Page 7: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Problem I - Weak Passwords

Worst Passwords of 2016 by TeamsID

• 4% of users use “123456” as password• 25% of users use the top 25 worst passwords• Users are stubborn◦ Choose stronger passwords◦ Use crypto

4 of 26

Page 8: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Problem II - Stolen Passwords

Data breaches in 2004–2017 (Wikipedia)

Cost of Data Breach(IBM - 2017 Study)

• Average Cost per DataBreach: $3.62 million

• Average Cost per StolenRecord $141

Service providers haveincentives to change!

5 of 26

Page 9: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Problem II - Stolen Passwords

Data breaches in 2004–2017 (Wikipedia)

Cost of Data Breach(IBM - 2017 Study)

• Average Cost per DataBreach: $3.62 million

• Average Cost per StolenRecord $141

Service providers haveincentives to change!

5 of 26

Page 10: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Problem II - Stolen Passwords

Data breaches in 2004–2017 (Wikipedia)

Cost of Data Breach(IBM - 2017 Study)

• Average Cost per DataBreach: $3.62 million

• Average Cost per StolenRecord $141

Service providers haveincentives to change!

5 of 26

Page 11: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database

Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC, c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

6 of 26

Page 12: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

6 of 26

Page 13: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks

6 of 26

Page 14: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Messages from client are independent of passwords!

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks

6 of 26

Page 15: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks

6 of 26

Page 16: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!

??

Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks

6 of 26

Page 17: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC, c,Alice, 000000),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks6 of 26

Page 18: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, qwerty),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks6 of 26

Page 19: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, asdfgh),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks6 of 26

Page 20: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

Too many requests!Crypto Server (Server)

Key Features

• Seamless to end user (Alice)

• Obliviousness: (Malicious) server does not learn password

• Hiding: (Compromised) client cannot verify password by itself– eliminate offline attacks

• Rate-Limiting (per Username): (Compromised) client cannotsubmit too many requests

– mitigate online attacks6 of 26

Page 21: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Key-Rotation◦ Update both keys if either party is compromised◦ Bring the entire system to a fresh state◦ Update ciphertexts without knowing passwords (seamless to end user)

6 of 26

Page 22: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Password Hardening Services (Facebook, Pythia)

“Alice”

“123456”

OK!Database (Client)Username AliceCiphertext c

Verification Algorithm Protocol

Alice

〈C(skC , c,Alice, 123456),S(skS ,Alice)〉valCrypto Server (Server)

Key Features

• Key-Rotation◦ Update both keys if either party is compromised◦ Bring the entire system to a fresh state◦ Update ciphertexts without knowing passwords (seamless to end user)

6 of 26

Page 23: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

The Crypto Server

Crypto Server

• Key generation independent of client◦ Can be set up by any third party company / organization◦ One server can serve multiple clients

• Only stores:◦ One secret key per client◦ One counter per end user for rate-limiting

(deleted after the current time interval)

• Can be split into multiple servers (future work)

7 of 26

Page 24: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

The Crypto Server

Crypto Server

• Key generation independent of client◦ Can be set up by any third party company / organization◦ One server can serve multiple clients

• Only stores:◦ One secret key per client◦ One counter per end user for rate-limiting

(deleted after the current time interval)

• Can be split into multiple servers (future work)

7 of 26

Page 25: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

The Crypto Server

Crypto Server

• Key generation independent of client◦ Can be set up by any third party company / organization◦ One server can serve multiple clients

• Only stores:◦ One secret key per client◦ One counter per end user for rate-limiting

(deleted after the current time interval)

• Can be split into multiple servers (future work)

7 of 26

Page 26: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

False Friends (Similar but different notions)

Common Feature

• To distribute the task of verifying passwords to multiple servers

Distributed Password Verification(CCS’15) Camenisch, Lehmann, and Neven

• Joint key generation between client and server

• Rate-limiting at client only

Password-Authenticated Key Exchange (PAKE) /Password-Protected Secret Sharing (PPSS)

• Crypto servers need to store a secret share per end user

• No / inefficient key rotations

8 of 26

Page 27: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

False Friends (Similar but different notions)

Common Feature

• To distribute the task of verifying passwords to multiple servers

Distributed Password Verification(CCS’15) Camenisch, Lehmann, and Neven

• Joint key generation between client and server

• Rate-limiting at client only

Password-Authenticated Key Exchange (PAKE) /Password-Protected Secret Sharing (PPSS)

• Crypto servers need to store a secret share per end user

• No / inefficient key rotations

8 of 26

Page 28: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

False Friends (Similar but different notions)

Common Feature

• To distribute the task of verifying passwords to multiple servers

Distributed Password Verification(CCS’15) Camenisch, Lehmann, and Neven

• Joint key generation between client and server

• Rate-limiting at client only

Password-Authenticated Key Exchange (PAKE) /Password-Protected Secret Sharing (PPSS)

• Crypto servers need to store a secret share per end user

• No / inefficient key rotations8 of 26

Page 29: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Literature on Password Hardening (PH)

Partially-Oblivious Pseudorandom Functions (PO-PRF)(USENIX’15) Everspaugh, Chatterjee, Scott, Juels, and Ristenpart

• Formalized PO-PRF

• Construction (Pythia) based on pairing

Partially-Oblivious Commitments (PO-Com)(CCS’16) Schneider, Fleischhacker, Schroder, and Backes

• Formalized PO-Com◦ Security definitions too weak for PH (not covering online attacks)

• Construction without pairing◦ 2× faster than Pythia when used for PH

9 of 26

Page 30: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Literature on Password Hardening (PH)

Partially-Oblivious Pseudorandom Functions (PO-PRF)(USENIX’15) Everspaugh, Chatterjee, Scott, Juels, and Ristenpart

• Formalized PO-PRF

• Construction (Pythia) based on pairing

Partially-Oblivious Commitments (PO-Com)(CCS’16) Schneider, Fleischhacker, Schroder, and Backes

• Formalized PO-Com◦ Security definitions too weak for PH (not covering online attacks)

• Construction without pairing◦ 2× faster than Pythia when used for PH

9 of 26

Page 31: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

This Work

• Finally, formalized PH◦ Revisit and strengthen model of Schneider et al.

• Formalized key-rotation

• Devastating online attacks against scheme of Schneider et al.◦ Attack 1: Enable offline-dictionary attack after one validation request◦ Attack 2: Extract password after one validation request◦ The attacks defeat the purpose of external crypto server◦ The attacks are outside of their security model

• Extremely simple construction (still without pairing)◦ Simple enough for real-world use – easy to understand and implement◦ Proven secure under strengthened security model◦ 1.5× faster than scheme of Schneider et al.◦ 3× faster than Pythia

10 of 26

Page 32: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

This Work

• Finally, formalized PH◦ Revisit and strengthen model of Schneider et al.

• Formalized key-rotation

• Devastating online attacks against scheme of Schneider et al.◦ Attack 1: Enable offline-dictionary attack after one validation request◦ Attack 2: Extract password after one validation request◦ The attacks defeat the purpose of external crypto server◦ The attacks are outside of their security model

• Extremely simple construction (still without pairing)◦ Simple enough for real-world use – easy to understand and implement◦ Proven secure under strengthened security model◦ 1.5× faster than scheme of Schneider et al.◦ 3× faster than Pythia

10 of 26

Page 33: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

This Work

• Finally, formalized PH◦ Revisit and strengthen model of Schneider et al.

• Formalized key-rotation

• Devastating online attacks against scheme of Schneider et al.◦ Attack 1: Enable offline-dictionary attack after one validation request◦ Attack 2: Extract password after one validation request◦ The attacks defeat the purpose of external crypto server◦ The attacks are outside of their security model

• Extremely simple construction (still without pairing)◦ Simple enough for real-world use – easy to understand and implement◦ Proven secure under strengthened security model◦ 1.5× faster than scheme of Schneider et al.◦ 3× faster than Pythia

10 of 26

Page 34: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

This Work

• Finally, formalized PH◦ Revisit and strengthen model of Schneider et al.

• Formalized key-rotation

• Devastating online attacks against scheme of Schneider et al.◦ Attack 1: Enable offline-dictionary attack after one validation request◦ Attack 2: Extract password after one validation request◦ The attacks defeat the purpose of external crypto server◦ The attacks are outside of their security model

• Extremely simple construction (still without pairing)◦ Simple enough for real-world use – easy to understand and implement◦ Proven secure under strengthened security model◦ 1.5× faster than scheme of Schneider et al.◦ 3× faster than Pythia

10 of 26

Page 35: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username un

Hash H(un, pw, nC)Client Nonce nC

Server Nonce

Enrollment Protocol

Username un

PRF Value

Server Nonce nS

Crypto Server (Server)

11 of 26

Page 36: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username unPRF Value PRFsk(un, pw, nC)

Client Nonce nC

Server Nonce

Enrollment Protocol

Username un

PRF Value

Server Nonce nS

Crypto Server (Server)

11 of 26

Page 37: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username un

Product PRF ValuePRFskS (un, nS)·

PRFskC (un, pw, nC)Client Nonce nCServer Nonce nS

Enrollment Protocol

Username un

PRF Value PRFskS (un, nS)

Server Nonce nS

Crypto Server (Server)

11 of 26

Page 38: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username un

Ciphertext Enc

(pkS ,

PRFskS (un, nS)·PRFskC (un, pw, nC)

)Client Nonce nCServer Nonce nS

Enrollment Protocol

Username un

PRF Value PRFskS (un, nS)

Server Nonce nS

Crypto Server (Server)

11 of 26

Page 39: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username un

Ciphertext Enc

(pkS ,

PRFskS (un, nS)·PRFskC (un, pw, nC)

)Client Nonce nCServer Nonce nS

Enrollment Protocol

Username un

PRF Value HS(un, nS)kS

Server Nonce nS

Crypto Server (Server)

Homomorphic Encryption

Enc(pk,m ·m′) ≈Enc(pk,m) · Enc(pk,m′)

Key-Homomorphic PRF

PRFsk·sk′(m) =PRFsk(m) · PRFsk′(m)

11 of 26

Page 40: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

From Salted Hash to Phoenix (Intuitive Description)

Database (Client)Username un

(g r , hr · HS(un, nS)kS · HC(un, pw, nC)

kC )Client Nonce nCServer Nonce nS

Enrollment Protocol

Username un

PRF Value

Server Nonce nS

Crypto Server (Server)

e.g., ElGamal (and variants)

sk = s, pk = h = g s

c = (g r , hr ·m)

(g r+r ′ , hr+r ′ ·m ·m′) =(g r , hr ·m) · (g r ′ , hr

′ ·m′)

e.g., Naor-Pinkas-Reingold

sk = ky = H(m)k

H(m)k+k ′= H(m)k · H(m)k

11 of 26

Page 41: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Validation (Intuitive Description)

Database (Client)Username unCiphertext (g r , hr · HS(un, nS)kS · HC(un, pw, nC)kC )

Client Nonce nCServer Nonce nS

Crypto Server (Server)

Validation Protocol

hr · HS(un, nS)kS =hr · HS(un, nS)kS · HC(un, pw, nC)kC

HC(un, pw, nC)kC

(g r , hr · HS(un, nS)kS ), un, nS

Is un requested too many times?

Is the ciphertext valid?

Prove(The ciphertext is valid!)

12 of 26

Page 42: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Validation (Intuitive Description)

Database (Client)Username unCiphertext (g r , hr · HS(un, nS)kS · HC(un, pw, nC)kC )

Client Nonce nCServer Nonce nS

Crypto Server (Server)

Validation Protocol

hr · HS(un, nS)kS =hr · HS(un, nS)kS · HC(un, pw, nC)kC

HC(un, pw, nC)kC

(g r , hr · HS(un, nS)kS ), un, nS

Is un requested too many times?

Is the ciphertext valid?

Prove(The ciphertext is valid!)

12 of 26

Page 43: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Validation (Intuitive Description)

Database (Client)Username unCiphertext (g r , hr · HS(un, nS)kS · HC(un, pw, nC)kC )

Client Nonce nCServer Nonce nS

Crypto Server (Server)

Validation Protocol

hr · HS(un, nS)kS =hr · HS(un, nS)kS · HC(un, pw, nC)kC

HC(un, pw, nC)kC

(g r , hr · HS(un, nS)kS ), un, nS

Is un requested too many times?

Is the ciphertext valid?

Prove(The ciphertext is valid!)

12 of 26

Page 44: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Validation (Intuitive Description)

Database (Client)Username unCiphertext (g r , hr · HS(un, nS)kS · HC(un, pw, nC)kC )

Client Nonce nCServer Nonce nS

Crypto Server (Server)

Validation Protocol

hr · HS(un, nS)kS =hr · HS(un, nS)kS · HC(un, pw, nC)kC

HC(un, pw, nC)kC

(g r , hr · HS(un, nS)kS ), un, nS

Is un requested too many times?

Is the ciphertext valid?

Prove(The ciphertext is valid!)

12 of 26

Page 45: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Validation (Intuitive Description)

Database (Client)Username unCiphertext (g r , hr · HS(un, nS)kS · HC(un, pw, nC)kC )

Client Nonce nCServer Nonce nS

Crypto Server (Server)

Validation Protocol

hr · HS(un, nS)kS =hr · HS(un, nS)kS · HC(un, pw, nC)kC

HC(un, pw, nC)kC

(g r , hr · HS(un, nS)kS ), un, nS

Is un requested too many times?

Is the ciphertext valid?

Prove(The ciphertext is valid!)

12 of 26

Page 46: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Why it works?

• Obliviousness:◦ Nothing about the password is sent to the server

(g r , hr · HS(un, nS)kS ), un, nS

• Hiding:◦ PRF values of the passwords are encrypted to the server◦ Client cannot decrypt by itself◦ Validity check binds (un, nS) with HS(un, nS)kS in c◦ Online attacks require guessing pw to remove HC(pw, nC)kC from c

13 of 26

Page 47: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Why it works?

• Obliviousness:◦ Nothing about the password is sent to the server

(g r , hr · HS(un, nS)kS ), un, nS

• Hiding:◦ PRF values of the passwords are encrypted to the server◦ Client cannot decrypt by itself◦ Validity check binds (un, nS) with HS(un, nS)kS in c◦ Online attacks require guessing pw to remove HC(pw, nC)kC from c

13 of 26

Page 48: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Key-Rotation (Intuitive Description)

Database (Client) Crypto Server (Server)

g s·r · HS(un, nS)kS · HC(un, pw, nC)kC

↓ˆαgα·s·r · HS(un, nS)α·kS · HC(un, pw, nC)α·kC

↓ ·(g r )β · HS(un, nS)γ

g (α·s+β)·r · HS(un, nS)α·kS+γ · HC(un, pw, nC)α·kC

=

g s′·r · HS(un, nS)k′S · HC(un, pw, nC)k

′C

14 of 26

Page 49: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Russell W. F. Lai

Phoenix Key-Rotation (Intuitive Description)

Database (Client) Crypto Server (Server)

g s·r · HS(un, nS)kS · HC(un, pw, nC)kC

↓ˆαgα·s·r · HS(un, nS)α·kS · HC(un, pw, nC)α·kC

↓ ·(g r )β · HS(un, nS)γ

g (α·s+β)·r · HS(un, nS)α·kS+γ · HC(un, pw, nC)α·kC

=

g s′·r · HS(un, nS)k′S · HC(un, pw, nC)k

′C

14 of 26

Page 50: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation and Deployment

15 of 26

Page 51: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation

In Comparison

Current password hashing recommendations suggest up to one secondsingle-core computing time

ContextWe have all three (python based) implementations running onAmazon AWS single-core instances

Questions

• How long does the user have to wait for password verification

• Do we need many servers to support Password-Hardening

• What are the practical implications

16 of 26

Page 52: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation

How long must the end user wait for to log in?

≈ 8 ms! (+ round trip time)

Frankfurt IrelandHTTP HTTPS HTTPS HTTP HTTPS HTTPS

keep-alive keep-alive

RTT (64 bytes) 1.2 23

Pythia enroll/validate 17.93 25.28 16.01 62.03 113.79 38.56

Schneider et al. enroll 9.80 22.86 8.14 53.72 111.40 30.89Schneider et al. validate 12.30 25.65 10.73 56.32 115.32 33.49

Phoenix enroll 5.43 17.93 3.89 50.30 107.25 26.52Phoenix validate 9.74 22.78 8.06 53.92 113.02 30.73

Latency in millisecond (ms)

17 of 26

Page 53: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation

How long must the end user wait for to log in?

≈ 8 ms! (+ round trip time)

Frankfurt IrelandHTTP HTTPS HTTPS HTTP HTTPS HTTPS

keep-alive keep-alive

RTT (64 bytes) 1.2 23

Pythia enroll/validate 17.93 25.28 16.01 62.03 113.79 38.56

Schneider et al. enroll 9.80 22.86 8.14 53.72 111.40 30.89Schneider et al. validate 12.30 25.65 10.73 56.32 115.32 33.49

Phoenix enroll 5.43 17.93 3.89 50.30 107.25 26.52Phoenix validate 9.74 22.78 8.06 53.92 113.02 30.73

Latency in millisecond (ms)

17 of 26

Page 54: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation

How many requests can the server entertain in one second?

Over 370!

HTTPS HTTPSkeep-alive

parameter 2, 607.16 807.50

Pythia enroll/validate 128.50 125.75

Schneider et al. enroll 380.37 278.51Schneider et al. validate 221.75 183.92

Phoenix enroll 1, 557.81 697.66Phoenix validate 371.34 275.42

Requests per second

18 of 26

Page 55: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Evaluation

How many requests can the server entertain in one second?

Over 370!

HTTPS HTTPSkeep-alive

parameter 2, 607.16 807.50

Pythia enroll/validate 128.50 125.75

Schneider et al. enroll 380.37 278.51Schneider et al. validate 221.75 183.92

Phoenix enroll 1, 557.81 697.66Phoenix validate 371.34 275.42

Requests per second

18 of 26

Page 56: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Hybrid Scheme

Can we make use of memory-hard functions like Argon2 or scrypt?

• Use a memory-hard function instead of a traditional hash functionfor the PRF

• Even if the attacker has compromised both Client and Server,she has to use the memory-hard function for dictionary attacks

Naor-Pinkas-Reingold

sk = kPRF value

19 of 26

Page 57: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Hybrid Scheme

Can we make use of memory-hard functions like Argon2 or scrypt?

• Use a memory-hard function instead of a traditional hash functionfor the PRF

• Even if the attacker has compromised both Client and Server,she has to use the memory-hard function for dictionary attacks

Naor-Pinkas-Reingold

sk = kPRF value H(x)k

19 of 26

Page 58: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Hybrid Scheme

Can we make use of memory-hard functions like Argon2 or scrypt?

• Use a memory-hard function instead of a traditional hash functionfor the PRF

• Even if the attacker has compromised both Client and Server,she has to use the memory-hard function for dictionary attacks

Naor-Pinkas-Reingold

sk = kPRF value Sha256(x)k

19 of 26

Page 59: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Hybrid Scheme

Can we make use of memory-hard functions like Argon2 or scrypt?

• Use a memory-hard function instead of a traditional hash functionfor the PRF

• Even if the attacker has compromised both Client and Server,she has to use the memory-hard function for dictionary attacks

Naor-Pinkas-Reingold

sk = kPRF value Argon2(x)k

19 of 26

Page 60: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Availability

What happens when the Crypto Server is unavailable?

• Server only holds key-pair per Client and Rate-Limiting information

• Several Crypto Servers can host the key-pair for availability butkeys are then located on several machines

20 of 26

Page 61: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Availability

What happens when the Crypto Server is unavailable?

• Server only holds key-pair per Client and Rate-Limiting information

• Several Crypto Servers can host the key-pair for availability butkeys are then located on several machines

sk

20 of 26

Page 62: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Availability

What happens when the Crypto Server is unavailable?

• Server only holds key-pair per Client and Rate-Limiting information

• Several Crypto Servers can host the key-pair for availability butkeys are then located on several machines

sk

sk

20 of 26

Page 63: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Practical Deployment

Availability

What happens when the Crypto Server is unavailable?

• Server only holds key-pair per Client and Rate-Limiting information

• Several Crypto Servers can host the key-pair for availability butkeys are then located on several machines

sk

sk

20 of 26

Page 64: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

DDoS and Rate-Limiting

There are two scenarios where Rate-Limiting might be triggered:

Client has been compromised

• It is acceptable when users fail to log in

Alice123456

21 of 26

Page 65: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

DDoS and Rate-Limiting

There are two scenarios where Rate-Limiting might be triggered:

Client has been compromised

• It is acceptable when users fail to log in

Alice123456

21 of 26

Page 66: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

DDoS and Rate-Limiting

There are two scenarios where Rate-Limiting might be triggered:

External Attacker

• Honest users should only be slightly inconvenienced

• Crypto Server has little information to distinguish users

• Client is honest and can therefore help

Alice123456

21 of 26

Page 67: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

DDoS and Rate-Limiting

There are two scenarios where Rate-Limiting might be triggered:

External Attacker

• Honest users should only be slightly inconvenienced

• Crypto Server has little information to distinguish users

• Client is honest and can therefore help

Alice123456

Alicepassword

21 of 26

Page 68: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

• Warn the Client about upcoming Rate-Limiting:once a soft limit is exceededthere is a limited number of additional tries availablethe client needs to make sure only the honest user gets to use these

• Client then takes extra measures, for example◦ Send an E-Mail / SMS / . . . with an one-time code to the user◦ Add Puzzles to the login screen

22 of 26

Page 69: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Alicepassword

23 of 26

Page 70: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Alice000000

23 of 26

Page 71: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Alicequerty

23 of 26

Page 72: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Aliceasdfgh

23 of 26

Page 73: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Slo

wd

own

!

23 of 26

Page 74: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

SMS:Token=SECRET

23 of 26

Page 75: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Alice098765

23 of 26

Page 76: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

Missing Token

23 of 26

Page 77: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Rate-Limiting external clients

AlicepasswordSECRET

23 of 26

Page 78: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Upgrade Path

• Both, salted hash and Phoenix need a database field to store data

• Algorithm-ID often already stored alongside the salt and hash

• Upgrade users once they log in

Username Password Data

Alice 12:PeADRGbk:gaG4s[...]2BwM= . . .Bob 12:q79JVDSo:IIRBz[...]/9L4= . . .Carol 5:3V+ToDHL:FCozKw/gxP/9YZ+Pdr7pcg== . . .

24 of 26

Page 79: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Upgrade Path

• Both, salted hash and Phoenix need a database field to store data

• Algorithm-ID often already stored alongside the salt and hash

• Upgrade users once they log in

Username Password Data

Alice 12:PeADRGbk:gaG4s[...]2BwM= . . .Bob 13:MxTfsL[...]phh+8i3DU== . . .Carol 5:3V+ToDHL:FCozKw/gxP/9YZ+Pdr7pcg== . . .

24 of 26

Page 80: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Concluding Remark

Summary

• Strengthened model of password-hardening

• Formal treatment to key-rotation

• Devastating attack to an existing scheme

• Phoenix: The most efficient scheme to date

On Going Projects

• Extended functionality – Derive key upon successful validation

• Anonymize end user while retaining rate-limiting

• Deployment by start-up company

25 of 26

Page 81: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Concluding Remark

Summary

• Strengthened model of password-hardening

• Formal treatment to key-rotation

• Devastating attack to an existing scheme

• Phoenix: The most efficient scheme to date

On Going Projects

• Extended functionality – Derive key upon successful validation

• Anonymize end user while retaining rate-limiting

• Deployment by start-up company

25 of 26

Page 82: Phoenix: Rebirth of a Cryptographic Password-Hardening Service · Problem I - Weak Passwords Worst Passwords of 2016 by TeamsID 4% of users use \123456" as password 25% of users use

Phoenix: Rebirth of a Cryptographic Password-Hardening Service Christoph Egger

Russell W. F. LaiFAU Nuremberg ←Chinese U. Hong Kong

Christoph EggerFAU Nuremberg

Dominique SchroderFAU Nuremberg

Sherman S. M. ChowChinese U. Hong Kong

26 of 26