TL;DR: different passwords have different protection requirements, and different attackers using various attacks can only be prevented through different prevention methods. Password security is not simple. For real advise, checking the second post (in progress).

Are you sick of password advices like "change your password regularly" or "if your password is password change it to pa$$w0rd"? This post is for you!

The news sites are full of password advises nowadays due to recent breaches. When I read/watch these advise (especially on CNN), I am usually pissed off for a lot of reasons. Some advises are terrible (a good collection is here), some are good but without solutions, and others are better, but they don't explain the reasons. Following is my analysis of the problem. It works for me. It might not work for you. Comments are welcome!

Password history

Passwords have been used since ancient times.


Because it is simple. When I started using the Internet, I believe I had three passwords. Windows login, webmail, and IRC. Now I have ~250 accounts/passwords to different things, like to my smartphone, to my cable company (this password can be used to change the channels on the TV), to my online secure cloud storage, to full disk encryption to start my computer, to my nude pictures, to my WiFi router, to my cloud server hosting provider, etc etc etc. My money is protected with passwords, my communication is protected with passwords/encryption, my work is protected with passwords. It is pretty damn important. But yet people tend to choose lame passwords. Pretty lame ones. Because they don't think it can be significant. But what is not essential today will be relevant tomorrow. The service you used to download music (iTunes) with the lame password will one day protect all your Apple devices, where attackers can download your backup files, erase all your devices, etc. The seven-character and one capital rule is not enough anymore. This advice is like PDF is safe to open, Java is secure. Old, outdated, untrue.

Now, after this lengthy prologue, we will deep dive into the analysis of the problem, by checking what we want to protect, against whom (who is the attacker), and only after that, we can analyze the solutions. Travel with me, I promise it will be fun! ;)

What to protect?

There are different services online, and various services need different ways to protect. You don't use the same lock on your Trabant as you do on your BMW.

Internet banking, online money

For me, this is the most vital service to protect. Luckily, most of the internet banking services use two-factor authentication (2FA), but unfortunately, not all of them offer transaction authorization/verification with complete transactions. 2FA is not effective against malware, it just complicates the attack. Transaction authorization/verification is better, but not perfect (see Zitmo). If the access is not protected with 2FA, better choose the best password you have (long, real random, sophisticated, but we will get to this later). If it is protected with 2FA, it is still no reason not to use the best password ;) This is what I call the "very high-level password" class.


Credit card data

This system is pretty fucked up bad. Something has to be secret (your credit card number), but in the meantime that is the only thing to identify your credit card. It is like your username is your password. Pretty bad idea, huh? The problem is even worse with a lot of different transaction types, especially when the hotel asks you to fax both sides of your CC to them. Unfortunately, you can't change the password on your credit card, as there is no such thing, but Verified by VISA or 3-D Secure with 2FA might increase the chances your credit card won't get hacked. And on a side note, I have removed the CVV numbers from my credit/debit cards. I only read it once from the card when I received it, I don't need it anymore to be printed there.
And sometimes, you are your own worst enemy. Don't do stupid things like this:


Work related passwords (e.g. Windows domain)

This is very important, but because the attack methods are a bit different, I created this as a different category. Details later.

Email, social sites (Gmail/Facebook/Twitter), cloud storage, online shopping

This is what I call the "high level password" class.
Still, pretty important passwords. Some people don't understand "why would attackers put any energy to get his Facebook account?" It is simple. For money. They can use your account to spread spam all over your Facebook wall. They can write messages to all of your connections and tell them you are in trouble and send money via Western Union or Bitcoin.


They can use your account in Facebook votes. Your e-mail, cloud storage is again very important. 20 years ago you also had letters you didn't want to print and put in front of the nearest store, neither want you to do that with your private photo album. On a side note, it is best to use a cloud storage where even the cloud provider admin can't access your data. But in this case, with no password recovery option, better think about "alternative" password recovery mechanisms.

Other important stuff with personal data (e.g. your name, home address)

The "medium level password" class. This is a personal preference to have this class or not, but in the long run, I believe it is not a waste of energy to protect these accounts. These sites include your favorite pizza delivery service, your local PC store, etc.

Not important stuff

This is the category other. I usually use one-time disposable e-mail to these services. Used for the registration, get what I want, drop the email account. Because I don't want to spread my e-mail address all over the internet, whenever one of these sites get hacked. But still, I prefer to use different, random passwords on these sites, although this is the "low level password" class.

Attackers and attack methods

After categorizing the different passwords to be protected, let's look at the different attackers and attack methods. They can/will/or actively doing it now:

Attacking the clear text password 

This is the most effective way of getting the password. Bad news is that if there is no other factor of protection, the victim is definitely not on the winning side. The different attack methods are:

  • phishing sites/applications,


  • social engineering,
  • malware running on the computer (or in the browser), 
  • shoulder surfing (check out for smartphones, hidden cameras), 
  • sniffing clear-text passwords when the website is not protected with SSL,
  • SSL MiTM,
  • rogue website administrator/hacker logging clear text passwords,
  • password reuse - if the attacker can get your password in any way, and you reuse it somewhere else, that is a problem,
  • you told your password to someone and he/she will misuse it later,
  • hardware keyloggers,
  • etc.

The key thing here is that no matter how long your passwords are, no matter how complex it is, no matter how often do you change it (except when you do this every minute ... ), if it is stolen, you are screwed. 2FA might save you, or might not.

Attacking the encrypted password 

This is the usual "hack the webserver (via SQL injection), dump the passwords (with SQLMap), post hashes on pastebin, everybody starts the GPU farm to crack the hashes" scenario. This is basically the only scenario where the password policies makes sense. In this case the different level of passwords need different protection levels. In some cases, this attack turns out to be the same as the previous attack, when the passwords are not hashed, or are just encoded.

The current hash cracking speeds for hashes without any iterations (this is unfortunately very common) renders passwords like Q@tCB3nx (8 character, upper-lowercase, digit, special characters) useless, as those can be cracked in hours. Don't believe me? Let's do the math.

Let's say your password is truly random, and randomly choosen from the 26 upper, 26 lower, 10 digit, 33 special characters. (Once I tried special passwords with high ANSI characters inside. It is a terrible idea. Believe me.). There are 6 634 204 312 890 620 different, 8 character passwords from these characters. Assuming a 2 years-old password cracking rig, and MD5 hash cracking with 180 G/s speed, it takes a worst case 10 hours (average 5) to crack the password, including upgrading your bash to the latest, but still vulnerable bash version. Had the password been 10 characters long, it would take 10 years to crack with today hardware. But if the password is not truly random, it can be cracked a lot sooner.

A lot of common hashing algorithms don't use protections against offline brute-force attacks. This includes LM (old Windows hashes), NTLM (modern Windows hashes), MD-5, SHA1-2-512. These hashing algorithms were not developed for password hashing. They don't have salting, iterations, etc. out of the box. In the case of LM, the problem is even worse, as it converts the lowercase characters to uppercase ones, thus radically decreasing the key space. Out of the box, these hashes are made for fast calculation, thus support fast brute-force.


Another attack is when the protected thing is not an online service, but rather an encrypted file or crypto-currency wallet.

Attacking the authentication system online

This is what happened in the recent iCloud hack (besides phishing). Attackers were attacking the authentication system, by either brute-forcing the password, or bypassing the password security by answering the security question. Good passwords can not be brute-forced, as it takes ages. Good security answers have nothing to do with the question in first place. A good security answer is as hard to guess as the password itself. If password recovery requires manual phone calls, I know, it is a bit awkward to say that your first dog name was Xjg.2m`4cJw:V2= , but on the other hand, no one will guess that!


Attacking single sign on

This type of attack is a bit different, as I was not able to put the "pass the hash" attacks anywhere. Pass the hash attack is usually found in Windows domain environments, but others might be affected as well. The key thing is single sign on. If you can login to one system (e.g. your workstation), and access many different network resources (file share, printer, web proxy, e-mail, etc.) without providing any password, then something (a secret) has to be in the memory which can be used to to authenticate to the services. If an attacker can access this secret, he will be able to access all these services. The key thing is (again) it does not matter, how complex your passwords are, how long it is, how often do you change, as someone can easily misuse that secret.

 

Attacking 2FA

As already stated, 2 factor authentication raises the efforts from an attacker point of view, but does not provide 100% protection. 
  • one time tokens (SecurID, Yubikey) can be relayed in a man-in-the-middle attack
  • smartcard authentication can be relayed with the help of a malware to the attacker machine - or simply circumvented in the browser malware, 
  • text based (SMS) messages can be stolen by malware on the smartphone or rerouted via SS7, 
  • bio-metric protection is constantly bypassed,
  • SSH keys are constantly stolen,
  • but U2F keys are pretty good actually, even though BGP/DNS hijack or similar MiTM can still circumvent that protection,
  • etc. 


Others

Beware that there are tons of other attack methods to access your online account (like XSS/CSRF), but all of these have to be handled on the webserver side. The best you can do is to choose a website where the Bug Bounty program is running 24/7. Otherwise, the website may be full of low hanging, easy-to-hack bugs.

Now that we have covered what we want to protect against what, in the next blog post, you will see how to do that. Stay tuned. I will also explain the title of this blog post.

More information


  1. Hack Tools Download
  2. Pentest Tools Download
  3. Hacker Tools Apk
  4. Hack App
  5. Hacking Tools Software
  6. Pentest Tools Find Subdomains
  7. Hacking Tools For Windows 7
  8. Tools Used For Hacking
  9. Hacker Tools Free Download
  10. Pentest Recon Tools
  11. Hacking Tools Free Download
  12. Pentest Tools Bluekeep
  13. Pentest Tools For Ubuntu
  14. Hacker Tool Kit
  15. Hacks And Tools
  16. Hacking Tools Hardware
  17. Hack Website Online Tool
  18. Pentest Recon Tools
  19. Usb Pentest Tools
  20. Best Hacking Tools 2019
  21. Hacking Tools For Games
  22. Hacking Tools Windows 10
  23. Physical Pentest Tools
  24. Hack Tools Download
  25. Hacker Tools Hardware
  26. Pentest Tools Website
  27. Hacking Tools And Software
  28. Tools For Hacker
  29. Hacking Tools 2020
  30. Pentest Automation Tools
  31. Pentest Tools Alternative
  32. Hacker Search Tools
  33. Hacking Tools Online
  34. Kik Hack Tools
  35. Hacking Tools Windows
  36. Pentest Tools For Ubuntu
  37. Hack Apps
  38. Hack Tools For Ubuntu
  39. Nsa Hacker Tools
  40. Hack Tools For Ubuntu
  41. Hacking Tools Github
  42. Hacking Tools For Windows Free Download
  43. Hack Tools For Ubuntu
  44. Top Pentest Tools
  45. Best Pentesting Tools 2018
  46. Hacking Tools Windows
  47. Wifi Hacker Tools For Windows
  48. Hacker Tools
  49. Hack Tools
  50. Hacking Tools Hardware
  51. Pentest Tools For Mac
  52. Computer Hacker
  53. Pentest Tools Linux
  54. Tools For Hacker
  55. Hacking Tools Mac
  56. Hacker Tools Free
  57. Best Hacking Tools 2019
  58. Hack Tools 2019
  59. Hacking Tools Pc
  60. Hacking Tools Software
  61. Hackers Toolbox
  62. Pentest Tools Website Vulnerability
  63. Hacking Tools Github
  64. Beginner Hacker Tools
  65. Blackhat Hacker Tools
  66. New Hacker Tools
  67. Nsa Hacker Tools
  68. Hacker Tools Free
  69. Pentest Tools Android
  70. Wifi Hacker Tools For Windows
  71. Hacker Tools 2019
  72. Usb Pentest Tools
  73. Pentest Tools For Mac
  74. Hacker Tools Hardware
  75. Pentest Tools Open Source
  76. Hacker Tools Free
  77. Hack Tools
  78. Hacking Tools 2019
  79. Hacking Tools Windows 10
  80. Github Hacking Tools
  81. Hacking Tools Windows 10
  82. Best Hacking Tools 2020
  83. Hacker Tools Free Download
  84. Install Pentest Tools Ubuntu
  85. Hacking Tools Free Download
  86. Pentest Tools Subdomain
  87. Hacking Tools And Software
  88. Game Hacking
  89. Bluetooth Hacking Tools Kali
  90. Best Hacking Tools 2020
  91. Pentest Tools Framework
  92. Hack Tools Mac
  93. Hack Tools For Ubuntu
  94. Hack Tools Mac
  95. Hacker Tools Apk Download
  96. Pentest Recon Tools
  97. Hack And Tools
  98. Pentest Tools Linux
  99. Hacker Tools For Ios
  100. Tools Used For Hacking
  101. Hacker Techniques Tools And Incident Handling
  102. Hacker Tools For Ios
  103. Hacking Tools Software
  104. Wifi Hacker Tools For Windows
  105. Hacker Search Tools
  106. Hacking Tools And Software
  107. Pentest Tools Framework
  108. Pentest Tools Online
  109. Pentest Automation Tools
  110. Hacking Tools For Mac
  111. Hacker Tools Software
  112. Tools For Hacker
  113. Game Hacking
  114. Pentest Automation Tools
  115. Ethical Hacker Tools
  116. Hacker Tools Free
  117. Hacker Tools Github
  118. Blackhat Hacker Tools
  119. Hacking Tools For Mac
  120. Underground Hacker Sites
  121. Pentest Tools
  122. Pentest Tools Online
  123. Kik Hack Tools
  124. Pentest Tools Bluekeep
  125. Pentest Tools Port Scanner
  126. Pentest Tools Android
  127. Hacker Tools Linux
  128. Hack Tools 2019
  129. New Hacker Tools
  130. Pentest Box Tools Download
  131. Hacking Tools Github
  132. Best Pentesting Tools 2018
  133. Hacker Tools Mac
  134. Pentest Tools Github
  135. Hacking Tools For Beginners
  136. Hacker Search Tools
  137. Pentest Tools Kali Linux
  138. Hack Tools 2019
  139. New Hack Tools
  140. Hacker Tools For Windows
  141. Hackrf Tools
  142. Hacker Tools Github
  143. How To Hack
  144. New Hack Tools
  145. Hacker Security Tools
  146. Hacker Tools For Windows
  147. Pentest Tools Kali Linux
  148. Pentest Tools For Android
  149. Hack Tools For Pc
  150. Hacking Tools 2020
  151. Pentest Automation Tools
  152. Hack Tools Download
  153. Hack Website Online Tool
  154. Hack Tools Download
  155. Hacker Hardware Tools
  156. Termux Hacking Tools 2019
  157. Easy Hack Tools
  158. Hacker Tools 2020
  159. Hacker Tools Free
  160. Blackhat Hacker Tools
  161. Hacker Tools Online
  162. Hacker Tools Windows
  163. Hacker Tools Online
  164. Pentest Tools Port Scanner
  165. Hack Tools For Windows
  166. Hacker Tools Free Download
  167. What Is Hacking Tools
  168. Hacker Tools For Mac
  169. Hacker Tools Free Download
  170. Hacking Tools For Games
  171. Pentest Tools For Android
  172. Blackhat Hacker Tools
  173. Hacking Tools 2020
  174. Hack Tools Pc
  175. Hacker Tools For Mac
  176. Wifi Hacker Tools For Windows
  177. Hacker Tools For Windows
  178. Bluetooth Hacking Tools Kali

Leave a Reply