Honeywords - BSides London 2014
Upcoming SlideShare
Loading in...5
×
 

Honeywords - BSides London 2014

on

  • 259 views

 

Statistics

Views

Total Views
259
Views on SlideShare
250
Embed Views
9

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 9

https://twitter.com 9

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Honeywords - BSides London 2014 Honeywords - BSides London 2014 Presentation Transcript

  • Honeywords: Detectable Password Theft Gavin Holt Abertay University
  • whoami Gavin Holt (@GavinHolt) Fourth Year Honours Student at Abertay University One of the organisers of Securi-Tay 3 Vice President of Abertay Ethical Hacking Society (@AbertayHackers)
  • What are we covering today? Why is password theft so dangerous? How are passwords currently being stored? (The good, the bad and the plain stupid) What are Honeywords? How Honeywords can be implemented The benefits of Honeywords What Honeywords won’t save you from Summary Questions
  • Why is password theft so dangerous?
  • Obvious Answer: Because then someone has your password
  • Less Obvious Answer: Because then someone has your password…for everything
  • 60%+ of users use the same password across multiple sites (PayPal Report)
  • 300% Increase in a single quarter (Experian Report)
  • LinkedIn – 6.5 Million Passwords Zappos.com – 12 Million Passwords eHarmony – 1.5 Million Passwords Adobe – 38 Million Passwords Evernote – 50 Million Passwords
  • But when you analyse a dump, you have to wonder why you bother…
  • A lot of usernames and passwords out there.
  • But Gavin, People don’t store passwords in the plain anymore, right?
  • http://plaintextoffenders.com/
  • Oh okay, but the big guys are doing it right?
  • LinkedIn’s 6.5 Million Passwords were unsalted.
  • Even if they salt the passwords, they aren’t always per user salts.
  • Salting doesn’t stop a targeted attack
  • Password Cracking is getting faster!
  • Making the Hashing more complex and resource intensive is only part of the solution.
  • How do I even know if my password has been stolen?
  • You might not!
  • Some sneaky SysAdmins might put some fake accounts in.
  • So if the User “Rory” logs in, they can assume they have been compromised.
  • Pretty useful idea – Honeypot accounts.
  • Hackers are sneaky
  • Can potentially spot these fake accounts by looking at their activity and permissions.
  • So fake user accounts aren’t fool proof.
  • But we like the idea of making it a high-risk guessing game for the attacker.
  • Why not have fake Passwords?
  • Introducing: Honeywords
  • First discussed by Jules and Rivest of MIT in May 2013.
  • If for every user account, we have multiple passwords, with only one legit password, can we detect password theft by watching for our known entries?
  • An unsalted MD5 example (Don’t throw things) Traditional DBUID Username Password (Hashed, For Security obv) 1 Gavin 565E15D84CC59763D13D58B5F66C967F 2 Rory AD7FADB59974D0C2E66E628C0485F9C9 3 Tiago AA177EC5DCBF88CA5EDF17236C1981E8
  • A plain text example (Don’t throw things) Traditional DB Attacker Gets a hold of the database Fires up John or Similar Tool Gets Plain Text Passwords Back
  • Lets implement Honeywords…
  • How do we make Honeywords?
  • How do we make Honeywords? We need believable words We need some low hanging fruit We need some tough passwords We need to ensure we don’t use the users PW We need to be able to identify HoneyWords internally!
  • How do we make Honeywords? Start with a dictionary Select a handful of words of varying length Depending on how hard we want to make the password to crack we can: Mangle for Upper and Lower Case Prepend and Append numbers Substitute Symbols Concatenate Words Make sure it doesn’t make our users PW!
  • How do we make Honeywords? We need to make a correct Checksum for our users password We also need to make some fake checksums for the honeywords we have generated
  • An unsalted MD5 example Using Honeywords UID Username 1 Gavin 2 Rory 3 Tiago UI D Password Hash Checksum 1 565E15D84CC59763D13D58B5F66C 967F TU32R781V346R7ETV81ERTGE7RT8EV4 1 AD7FADB59974D0C2E66E628C0485 F9C9 SVEVREVR6571654SF7CEWF7E1FC51W 1 AA177EC5DCBF88CA5EDF17236C1 981E8 BCN7GHER17G8J7678A78W81CDFCTHY871 1 DC5F61F959F188478982A9DBB153 EWFFFFSEESYUUTRYER87F1S67F1S5E7F1SCE
  • An unsalted MD5 example Using Honeywords Attacker Gets a hold of the database Fires up John or Similar Tool Gets Plain Text Passwords Back Has a 20% chance of picking the correct password
  • 1/5 Chance of getting it right
  • Can greatly decrease this chance by adding more Honeywords!
  • How would I even authenticate against that?
  • Authentication Process Web Server • Takes Password and Hashes It • Passes to DB Server DB Server • Retrieves Checksum where UID and Hash match and passes to Auth Server Auth Server • Performs additional secret cryptographic function on hash and compares to Passed Check Sum • Returns True or False to Web Server Web Server • Either: • Logs user in because they have a correct password • Doesn’t log user in and flags that a known “Honeyword” was used • Doesn’t log in due to incorrect password
  • In order to gain 100% certainty that they have the correct password, they attack would need to compromise all 3 boxes.
  • So we now know when a password we have purposely added to the DB is used.
  • We can detect password theft!
  • What else can we do with it?
  • Time based detection?
  • Change the fake passwords periodically to pinpoint when they were stolen?
  • Alerting other services that passwords have been stolen
  • Central API for Services to use
  • Pass UIDs of known compromised accounts to a central service to alert users across platforms they may be vulnerable?
  • The Benefits of Honeywords
  • The benefits of Honeywords Can be used to detect password theft Can be used to prevent the usage of stolen credentials Can provide warnings to other services that users may reuse passwords on Can be used to deter attackers from trying to compromise accounts
  • What Honeywords won’t do
  • What Honeywords won’t do Honeywords won’t stop your service being compromised If they have your Password file, you have problems to begin with Honeywords won’t stop the hashes from being cracked Only per hash salting and intensive hashing functions will slow that down Honeywords won’t stop attackers from gaining a users password by another method Social Engineering, Key Logger, or simply guessing a rubbish password
  • Honeywords are not a replacement to a strong password policy and user awareness
  • In Summary Honeywords allow for detectable password theft by seeding a database with known “wrong” passwords. Watching for these passwords allows Systems to detect when they have had their password DB stolen. Honeywords should be of varying difficulty in order to disguise themselves Honeywords are not a replacement for: A strong password policy A strong password storage mechanism End Point Security
  • Any Questions? Tweet me @GavinHolt later if you think of any