Password Encryption

06/27/2012 09:18 Sion~#1
Here's a quick explanation on passwords and the various mechanisms used to protect them.

Method 1: Plain Text Passwords

The most simple way of storing a password is... well exactly as it is. What this means is that the string "password" is stored somewhere in a database in it's same human readable form "password". Whenever your credentials are entered to login a server they are verified against the database to ensure that they match. If your thinking it.. you aren't being bias at all.. This is the worst possible method, in terms of security and most reputable servers do not store passwords in plain text. If this database was to be hacked, everyone's password is immediately compromised.

METHOD: UNSAFE.

Method 2: Basic Password Encryption

Encryptions are used to add more protection to your passwords. Encryption, for those of you that don't know, uses a special key to turn your password into a random string of text. If a hacker were to obtain this string of random text, it would be useless unless they were to have the key, which they could then use to decrypt the encrypted password.

The problem is, the key is often stored on the very same server that the passwords are, so if the servers get hacked, a hacker doesn't have to do much work to decrypt all the passwords, which means this method is still wildly insecure.

METHOD: UNSAFE.

Method 3: Hashed Passwords

Hashed Passwords can be considered the same as encryption in the sense that it turns your password into a long string of letters and numbers to keep your password hidden. However unlike encryption the algorithm cannot be ran backwards to obtain the password. A hacker would now have to obtain the hash and then try a different number of password combinations until one works.

However as we all know... to every rule there is an exception. A hacker may not be able to decode a hash back to the original password but they can try many different passwords until one matches the hash they have. As we know computers are very fast and hence; computers can do this very fast, especially because to something called rainbow tables they can just look up the hash to see if it's already been discovered.

Try typing e38ad214943daad1d64c102faec29de4afe9da3d into Google. You'll quickly find that it's the SHA-1 hash for "password1". For more information on how rainbow tables work, check out this article by coding guru Jeff Atwood on the [Only registered and activated users can see links. Click Here To Register...].

METHOD: UNSAFE.

Method 4: Hashed Passwords with a Dash of Salt

A Salt is a random string of characters.

Salting a password means adding a random string of characters (salt) to the beginning or end of your password before hashing it. A different salt is used for each password, and even if the salts are stored on the same servers, it will make it very hard to find those salted hashes in the rainbow tables, since each one is long, complex, and unique.

METHOD: SECURE.

Method 5: Slow Hashes

Hash functions like MD5, SHA-1, and SHA-256 are relatively fast: if you type in a password, it will return the results fairly quickly. In a brute force attack, time is the most important factor. By using a slower has like the bcrypt algorithm brute force attacks take much, much longer, since each password takes more time to compute.

METHOD: EXTREMELY SECURE.

Why does the length of my password matter?

Strong passwords are harder to brute force. A long password can definitely help you out here. Once your password is strong, it should take a very, very long time to discover with a slow hash.
06/27/2012 10:57 Korvacs#2
Nice post, personally SHA-2 + salt is the most realistic implementation for Conquer's needs.
06/27/2012 15:51 Zeroxelli#3
Very nice post indeed. This should give a little bit of insight to people obsessing over password encryption.

Also, a salted SHA2 is pretty damn safe, it's what I used for the login and mission systems back when I worked with HackThisSite! Over 7 years later, hasn't been cracked.
06/27/2012 20:40 Sion~#4
I haven't implemented the bcrypt algorithm, but it seems worth the try.
06/27/2012 21:18 Korvacs#5
Actually SHA-2 refers to these hashing methods - SHA-224, SHA-256, SHA-384, SHA-512.
06/27/2012 21:47 Zeroxelli#6
Korvacs is right. SHA2 simply refers to the 3rd generation (or Series 2) of SHA encryption methods. SHA256 is just the 256bit method.
06/27/2012 23:02 Sion~#7
I stand corrected.
*edits post.. Sorry to go off topic, but seriously where is everyone who took part in this community? Did someone make a new forum or something? It's saddening how little activity goes on here.
06/27/2012 23:17 Captivate#8
Quote:
Originally Posted by Sion~ View Post
I stand corrected.
*edits post.. Sorry to go off topic, but seriously where is everyone who took part in this community? Did someone make a new forum or something? It's saddening how little activity goes on here.
Either the Underground or gone.
06/28/2012 00:00 Zeroxelli#9
Actually, the underground seems to be dead. (I'm not in the group, as I'd need to get someone to make a thread requesting I be invited, which I wouldn't ask for. But I heard this from one of the leaders of the UG group)
06/28/2012 00:44 Sion~#10
Packet busters must be revived.. seriously.
06/28/2012 00:50 Zeroxelli#11
Quote:
Originally Posted by Sion~ View Post
Packet busters must be revived.. seriously.
Packet busters..? Proxies?

Haven't heard that term before lol
06/28/2012 02:22 Silent-Death#12
i like it a tad more salty tho [Only registered and activated users can see links. Click Here To Register...]

Nice post! got me thinking about something..

Cheers.
06/29/2012 12:36 Korvacs#13
Quote:
Originally Posted by Zeroxelli View Post
Packet busters..? Proxies?

Haven't heard that term before lol
It was a separate forum setup primarily for CO developers, by CO developers with restricted access, i helped moderate the CO part of it untill i was booted out by Sparkie/unknownone because i didnt want to make my public wiki in such a way that it was unreadable, but could be used as a farm for packets by an automated system...lol :rolleyes:.

The UG is dead as i predicted a complete waste of time...
06/29/2012 14:19 InfamousNoone#14
In regards to where "where has everyone gone", I'm back, left e*pvp until my new computer parts came in due to the fact I could no longer do any major work on Conquer since I couldn't run Conquer or even debug on VS without a crash/over-heating.

I just need a wireless network adapter and I can cont. working again.
I will likely be publishing my newest public project (CSV3) public soon as an open-source implementation of Conquer on the newest patch. Aiming to finish the majority of it by the end of summer.
06/29/2012 16:13 Zeroxelli#15
Actually, I'm rather surprised that the UG died out, though Conquer development has been dying out slowly for the past year or two. It makes me regret leaving for as long as I did, because [maybe] I could have contributed to keeping alive for a little bit longer. But I do believe that this community will come back to life, and fairly soon at that.

As for PacketBusters, Sion linked me to it, and it looks like that forum has died out too...