stuart schechter cormac herley michael mitzenmacher why
play

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,


  1. Your email address: Choose a password: Stuart Schechter Cormac Herley Michael Mitzenmacher

  2. Why are we doing this to our users?

  3. Threat 1: Password file compromised stus, 0xCF832A834 0xC86A00386 cormac, michaelm, 0x0DB015528 helenw, 0x5723B9291 wdcui, 0x24BF98902 0x23482AA83 dmolnar, alexmos, 0x1B200D481 bparno, 0x88B330

  4. Threat 1: Password file compromised stus, 0xCF832A834 cormac, 0xC86A00386  michaelm, 0x0DB015528 0xD1F7255CA “ stus,abc123 ” h 0x5723B9291 helenw, wdcui, 0x24BF98902 dmolnar, 0x23482AA83 alexmos, 0x1B200D481 0x88B330 bparno,

  5. Threat 1: Password file compromised = 0xCF832A834 “ stus,asdf ” h cost of one guess = cost to compute h stus, 0xCF832A834 cormac, 0xC86A00386 0x0DB015528 michaelm, helenw, 0x5723B9291 wdcui, 0x24BF98902 dmolnar, 0x23482AA83 0x1B200D481 alexmos, bparno, 0x88B330

  6. Threat 1: Password file compromised

  7. Threat 1: Password file compromised stus, asdf 123456 cormac, michaelm, password1 helenw, rockyou wdcui, princess abc123 dmolnar, alexmos, qwerty bparno, monkey

  8. Threat 2: Online dicTonary aUack stus, 0xCF832A834 0xC86A00386 cormac, michaelm, 0x0DB015528 helenw, 0x5723B9291 wdcui, 0x24BF98902 0x23482AA83 dmolnar, alexmos, 0x1B200D481 bparno, 0x88B330 “ stus,abc123 ” Sorry!

  9. Threat 2a: Online staTsTcal guessing Common passwords (sorted by popularity) password1 password abc123 asdf 1234568 p@ssword iloveyou “ stus,password1 ” “ cormac,password1 ” “ michaelm,password1 ” Welcome! Sorry! Sorry!

  10. 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

  11. * Here comes the big idea of the talk… *yet low carbon

  12. Replace composiTon rules with one new rule Your may not choose a popular password (one already in use by n% of other users.)

  13. Don’t password rules already accomplish this? hUp://failblog.org/2008/01/03/fail‐camera/

  14. Expected password choices… without rules Example based on real data… but not real data! 2.0% I’m so clever! Percent of users with password 1.5% 1.0% 0.5% 0.0% password <> asdf 1234 qwert iloveyou fuckyou asdFkl; Password

  15. Rule 1: At least 8 characters SomeTmes rules have unintended consequences 2.0% Percent of users with password 1.5% 1.0% 0.5% 0.0% password asdFkl; 12345678 iloveyou fuckyou! baseball football nothanks Password

  16. Rule 2: At least 1 number 2.0% Percent of users with password 1.5% 1.0% 0.5% 0.0% password1 12345678 blink182 trustno1 no1knows hard2forget answeris42 ih8rules Password

  17. Rule 3: At least 1 “special” character 2.0% Percent of users with password 1.5% 1.0% I sure know how to obfuscate! I’m so original! 0.5% 0.0% p@ssword1 p@$$word1 p@ssword0 1p@assword givememy$ p@ssword0? password1! mk1#ofit Password

  18. Large sites favor strength meters over rules P@ssword

  19. P@ssword password1

  20. P@$$word1

  21. ComposiTon rules stronger passwords   ‘password’  ‘P@$$word1’

  22. Back to our desired policy Your may not choose a popular password (one already in use by n% of other users.)

  23. If we enforced “no popular passwords”… 2.0% 2.0% Percent of users with password Percent of users with password 1.5% 1.5% 1.0% 1.0% 0.5% 0.5% 0.0% 0.0% p@ssword1 p@$$word1 p@ssword0 1p@assword givememy$ p@ssword0? password1! p1 p2 p3 p4 p5 p6 p7 mk1#ofit p8 Password Password

  24. 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 one.

  25. 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

  26. Dangers of tracking popular passwords • AUackers will use this data for staTsTcal guessing – Against you – Against other sites

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

  28. 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

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

  30. Tracking populra passwords Common passwords (sorted by popularity) 100 0xCF832A834 0xC86A00386 100 100 0x0DB015528 100 0x5723B9291 100 0x24BF98902 100 0x23482AA83 0x1B200D481 100 … … 1 0xA82C010D48

  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

  32. How can we track popular passwords? Common passwords (sorted by popularity) 100 0xCF832A834 0xC86A00386 100 100 0x0DB015528 100 0x5723B9291 Salt free 100 0x24BF98902 100 0x23482AA83 0x1B200D481 100 … … 1 0xA82C010D48 Crack popular password file (once for all accounts) to idenWfy passwords to use against salted password file entries

  33. 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

  34. 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

  35. 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)

  36. Base case (single table) of a count‐min sketch password h 1 0x0000 0xFFFF h 2 0x0000 0xFFFF h 3 0x0000 0xFFFF h 4 0x0000 0xFFFF

  37. Count‐min sketch: add(“password”) password 0xA5F6 h 1 0x0000 0xFFFF 0 1 0x8D94 h 2 0x0000 0xFFFF 0 1 0x25CC h 3 0x0000 0xFFFF 0 1 0xF303 h 4 0x0000 0xFFFF 0 1

  38. Count‐min sketch: count(“password”) password count(“password”) = min(1,1,1,1) = 1 0xA5F6 h 1 0x0000 0xFFFF 1 0x8D94 h 2 0x0000 0xFFFF 1 0x25CC h 3 0x0000 0xFFFF 1 0xF303 h 4 0x0000 0xFFFF 1

  39. add(“ih8rules”) ih8rules 0x0B44 h 1 0x0000 0xFFFF 0 1 0x8D94 h 2 0x0000 0xFFFF Hash collision with “password” 1 2 0x922A h 3 0x0000 0xFFFF 0 1 0x9359 h 4 0x0000 0xFFFF 0 1

  40. Count‐min sketch: add(“password”) password count(“password”) = min(2,2,2,2) = 2 count(“password”) = min(1,2,1,1) = 1 0xA5F6 h 1 0x0000 0xFFFF 1 2 0x8D94 h 2 0x0000 0xFFFF Need not be incremented 2 (conservaWve add) 0x25CC h 3 0x0000 0xFFFF 1 2 0xF303 h 4 0x0000 0xFFFF 2 1

  41. Count‐min sketch: add(“password”) password count(“password”) = 100 = MAX_ALLOWED count(“password”) = min(1,2,1,1) = 1 0xA5F6 h 1 0x0000 0xFFFF 100 100 0x8D94 h 2 0x0000 0xFFFF 100 100 0x25CC h 3 0x0000 0xFFFF 100 100 0xF303 h 4 0x0000 0xFFFF 100 100

  42. 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)

  43. False posiTves to the rescue! • Randomly generated password x likely to have count(x) > 0 0x????? h 1 3

  44. 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)

  45. 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 2 60 10 char passwords, filtered to 2 54 (2% of 2 60 ) If dicTonary cracked, force all passwords to be changed.

Recommend


More recommend