Stuart Schechter Cormac Herley Michael Mitzenmacher Why are we - - PowerPoint PPT Presentation

stuart schechter cormac herley michael mitzenmacher why
SMART_READER_LITE
LIVE PREVIEW

Stuart Schechter Cormac Herley Michael Mitzenmacher Why are we - - PowerPoint PPT Presentation

Your email address: Choose a password: Stuart Schechter Cormac Herley Michael Mitzenmacher Why are we doing this to our users? Threat 1: Password file compromised stus, 0xCF832A834 0xC86A00386 cormac, michaelm, 0x0DB015528 helenw,


slide-1
SLIDE 1

Stuart Schechter Cormac Herley Michael Mitzenmacher

Choose a password: Your email address:

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5

Why are we doing this to our users?

slide-6
SLIDE 6

Threat 1: Password file compromised

stus, cormac, michaelm, helenw, wdcui, dmolnar, alexmos, bparno, 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481 0x88B330

slide-7
SLIDE 7

Threat 1: Password file compromised

h

“stus,abc123” 0xD1F7255CA

stus, cormac, michaelm, helenw, wdcui, dmolnar, alexmos, bparno, 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481 0x88B330

slide-8
SLIDE 8

Threat 1: Password file compromised

stus, cormac, michaelm, helenw, wdcui, dmolnar, alexmos, bparno, 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481 0x88B330

h

“stus,asdf” 0xCF832A834

=

cost of one guess = cost to compute h

slide-9
SLIDE 9

Threat 1: Password file compromised

slide-10
SLIDE 10

Threat 1: Password file compromised

stus, cormac, michaelm, helenw, wdcui, dmolnar, alexmos, bparno, asdf 123456 password1 rockyou princess abc123 qwerty monkey

slide-11
SLIDE 11

Threat 2: Online dicTonary aUack

stus, cormac, michaelm, helenw, wdcui, dmolnar, alexmos, bparno, 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481 0x88B330 “stus,abc123” Sorry!

slide-12
SLIDE 12

Threat 2a: Online staTsTcal guessing

“stus,password1” Sorry! Common passwords (sorted by popularity) password1 password abc123 asdf 1234568 p@ssword iloveyou “cormac,password1” Sorry! “michaelm,password1” Welcome!

slide-13
SLIDE 13

Threat 2a: Online staTsTcal guessing

  • User‐based lockout ineffecTve

– 300m users * 10 guesses per user = 3 billion guesses

  • IP lockout slightly less ineffecTve

– 10m node botnet * 10 guesses per IP = 100M guesses

  • Some accounts will be compromised

– Frequency of most popular password * guesses – 100k accounts if 0.1% use most popular password

slide-14
SLIDE 14

Here comes the big idea of the talk…

*yet low carbon *

slide-15
SLIDE 15

Replace composiTon rules with one new rule

Your may not choose a popular password (one already in use by n% of other users.)

slide-16
SLIDE 16

Don’t password rules already accomplish this?

hUp://failblog.org/2008/01/03/fail‐camera/

slide-17
SLIDE 17

Expected password choices… without rules

0.0% 0.5% 1.0% 1.5% 2.0%

password <> asdf 1234 qwert iloveyou fuckyou asdFkl;

Percent of users with password

Password Example based on real data… but not real data! I’m so clever!

slide-18
SLIDE 18

Rule 1: At least 8 characters

0.0% 0.5% 1.0% 1.5% 2.0%

password asdFkl; 12345678 iloveyou fuckyou! baseball football nothanks

Percent of users with password

Password

SomeTmes rules have unintended consequences

slide-19
SLIDE 19

Rule 2: At least 1 number

0.0% 0.5% 1.0% 1.5% 2.0%

password1 12345678 blink182 trustno1 no1knows hard2forget answeris42 ih8rules

Percent of users with password

Password

slide-20
SLIDE 20

Rule 3: At least 1 “special” character

0.0% 0.5% 1.0% 1.5% 2.0%

p@ssword1 p@$$word1 p@ssword0 1p@assword givememy$ p@ssword0? password1! mk1#ofit

Percent of users with password

Password I sure know how to obfuscate! I’m so original!

slide-21
SLIDE 21

P@ssword

Large sites favor strength meters over rules

slide-22
SLIDE 22

P@ssword password1

slide-23
SLIDE 23

P@$$word1

slide-24
SLIDE 24

ComposiTon rules stronger passwords

‘password’  ‘P@$$word1’

 

slide-25
SLIDE 25

Back to our desired policy

Your may not choose a popular password (one already in use by n% of other users.)

slide-26
SLIDE 26

If we enforced “no popular passwords”…

0.0% 0.5% 1.0% 1.5% 2.0%

p1 p2 p3 p4 p5 p6 p7 p8

Percent of users with password

Password 0.0% 0.5% 1.0% 1.5% 2.0%

p@ssword1 p@$$word1 p@ssword0 1p@assword givememy$ p@ssword0? password1! mk1#ofit

Percent of users with password

Password

slide-27
SLIDE 27

Enforcing the “no popular passwords” rule

P@$$word1

Sorry! At least 100 other users are already using this password. You’ll need to choose another

  • ne.
slide-28
SLIDE 28

We must track popularity to prevent it

Common passwords (sorted by popularity) password1, 2805 password, 2280 abc123, 1568 asdf, 1375 1234568, 583 p@ssword, 390 Iloveyou, 334

slide-29
SLIDE 29

Dangers of tracking popular passwords

  • AUackers will use this data for staTsTcal guessing

– Against you – Against other sites

slide-30
SLIDE 30

Tracking popular passwords

Common passwords (sorted by popularity) password1, 2805 password, 2280 abc123, 1568 asdf, 1375 1234568, 583 p@ssword, 390 Iloveyou, 334 100 100 100 100 100 100 100

slide-31
SLIDE 31

Dangers of tracking popular passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Crack using only passwords in the popularity list

slide-32
SLIDE 32

Common passwords (sorted by popularity) password1, 2805 password, 2280 abc123, 1568 asdf, 1375 1234568, 583 p@ssword, 390 Iloveyou, 334

Tracking popular passwords

100 100 100 100 100 100 100

slide-33
SLIDE 33

Common passwords (sorted by popularity) 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481

Tracking populra passwords

100 100 100 100 100 100 100 0xA82C010D48 1 … …

slide-34
SLIDE 34

Dangers of tracking popular passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Crack using only passwords in the popularity list

slide-35
SLIDE 35

Common passwords (sorted by popularity) 0xCF832A834 0xC86A00386 0x0DB015528 0x5723B9291 0x24BF98902 0x23482AA83 0x1B200D481

How can we track popular passwords?

100 100 100 100 100 100 100 0xA82C010D48 1 … …

Crack popular password file (once for all accounts) to idenWfy passwords to use against salted password file entries Salt free

slide-36
SLIDE 36

Dangers of tracking popular passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Crack using only passwords in the popularity list – Crack popularity list entries (which are unsalted) to idenTfy passwords in password file (which is salted) – Filter candidate password list (with access to oracle)

These seem unavoidable

slide-37
SLIDE 37

Requirements for popularity‐tracking data structure add(p) Adds the occurrence (use) of a password p count(p) Returns # of Tmes p has been added Need not be exact count(p)  number of Wmes p added a few false posi2ves are OK

slide-38
SLIDE 38

We’ll implement a probabilis*c oracle

  • False posiTves (falsely popular), no false negaTves
  • Count‐min sketch

– RelaTve of bloom filter (and counTng bloom filter)

slide-39
SLIDE 39

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

password

h1 h2 h3 h4

Base case (single table) of a count‐min sketch

slide-40
SLIDE 40

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

password

h1 h2 h3 h4

0xA5F6 0x8D94 0x25CC 0xF303

1 1 1 1

Count‐min sketch: add(“password”)

slide-41
SLIDE 41

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

password

h1 h2 h3 h4

0xA5F6 0x8D94 0x25CC 0xF303

1 1 1 1

Count‐min sketch: count(“password”)

count(“password”) = min(1,1,1,1) = 1

slide-42
SLIDE 42

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

ih8rules

h1 h2 h3 h4

0x0B44 0x8D94 0x922A 0x9359

1 1 2

add(“ih8rules”)

1 1

Hash collision with “password”

slide-43
SLIDE 43

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

password

h1 h2 h3 h4

0xA5F6 0x8D94 0x25CC 0xF303

1 2 1 1 2 2 2

Count‐min sketch: add(“password”)

count(“password”) = min(1,2,1,1) = 1 count(“password”) = min(2,2,2,2) = 2

Need not be incremented (conservaWve add)

slide-44
SLIDE 44

0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF 0x0000 0xFFFF

password

h1 h2 h3 h4

0xA5F6 0x8D94 0x25CC 0xF303

100 100 100 100 100 100 100

Count‐min sketch: add(“password”)

count(“password”) = min(1,2,1,1) = 1 count(“password”) = 100 = MAX_ALLOWED

100

slide-45
SLIDE 45

Dangers of tracking popular passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Crack using only passwords in the popularity list – Crack popularity list entries (which are unsalted) to idenTfy passwords in password file (which is salted) – Filter candidate password list (with access to oracle)

slide-46
SLIDE 46

False posiTves to the rescue!

  • Randomly generated password x likely to have

count(x) > 0

h1

0x?????

3

slide-47
SLIDE 47

Dangers of tracking user passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Crack using only passwords in the popularity list – Crack popularity list entries (which are unsalted) to idenTfy passwords in password file (which is salted) – Filter candidate password list (with access to oracle)

slide-48
SLIDE 48

False posiTves to the rescue, again!

  • AssumpTons

– 2% false posiTve rate for count‐min sketch – 20% of user password choices are too popular

  • ImplicaTons

– 9% of the passwords rejected as too popular were actually false posiTves – DicTonary of 260 10 char passwords, filtered to 254 (2% of 260) If dicTonary cracked, force all passwords to be changed.

slide-49
SLIDE 49

Dangers of tracking popular passwords

  • AUackers will use for staTsTcal guessing aUacks

– Against you – Against other sites

  • AUackers will use for offline staTsTcal guessing

– Walk the password list (if popularity list is plaintext) – Crack popularity list entries (which are unsalted) to idenTfy passwords in password file (which is salted) – Filter candidate password list (with access to oracle)

slide-50
SLIDE 50

One last warning

Popular strategies can be dangerous even if passwords are unique

slide-51
SLIDE 51

Unique passwords, dangerously popular strategies

  • Passwords with derivaTve of username

– “stuspassword”, “sutspassword”

  • Passwords containing text that can be found on

web search of user

– hUp://google.com/?q=stus popularityiseverything bing

slide-52
SLIDE 52

Backup Slide for Responding to QuesTons

You didn’t expect we’d believe this… did you?

slide-53
SLIDE 53

QuesTons?

I’m sorry dear, but if this represents the best presentaWon we’ll be capable of, even with millions of addiWonal years to evolve, maybe it’s best that we not reproduce.