RodeoX (OP)
Legendary
Offline
Activity: 3066
Merit: 1147
The revolution will be monetized!
|
|
August 16, 2011, 08:08:58 PM |
|
A quick tip for creating long passwords in Linux.
Open a terminal window and type in the following command:
rodeox@Linux-ThinkPad:~$ echo -n test |md5sum
The part in red will be your user and computer name. The part in purple will be your easy to remember password. Now hit enter and your computer will create an Md5 key for you.
Example for the word "test": 098f6bcd4621d373cade4e832627b4f6
Now any time I want to remember that long string of numbers and letters I just go to my terminal and enter my easy password. Each time it will give the same answer.
|
|
|
|
sd
|
|
August 16, 2011, 08:32:26 PM |
|
RodeoX,
My guess is if I take the MD5 hash of every word in an English wordlist, plus every word with a single number after it I will have your passwords in that list. It should not take long to do that amount of hashing on a modern CPU.
Your scheme is better than using dictionary words but not by much.
I normally generate passwords with something like: dd if=/dev/urandom bs=1 count=6 2>/dev/null | base64
One password per account as password reuse is evil. Adjust the count to your liking and use /dev/random instead of urandom if you are feeling truly paranoid.
Store passwords with something trustworthy.
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
August 16, 2011, 08:36:38 PM |
|
RodeoX,
My guess is if I take the MD5 hash of every word in an English wordlist, plus every word with a single number after it I will have your passwords in that list. It should not take long to do that amount of hashing on a modern CPU.
Your scheme is better than using dictionary words but not by much.
I normally generate passwords with something like: dd if=/dev/urandom bs=1 count=6 2>/dev/null | base64
One password per account as password reuse is evil. Adjust the count to your liking and use /dev/random instead of urandom if you are feeling truly paranoid.
Store passwords with something trustworthy.
BUT, that assumes that the password hacker knows that he is using an md5 hash for his password. So few people would actually store their passwords in such a manner that it would not be worth it for a generic brute-force program to attempt to break into a passwords list by using a prehashed list like that. The only way it would be insecure is if it was a targeted attack against a known subject who was known to be using such a password storage method. Like the OP. Basically, it's very secure (IMO), as long as you don't announce to the world that you're using it.
|
|
|
|
nmat
|
|
August 16, 2011, 09:45:17 PM |
|
BUT, that assumes that the password hacker knows that he is using an md5 hash for his password. So few people would actually store their passwords in such a manner that it would not be worth it for a generic brute-force program to attempt to break into a passwords list by using a prehashed list like that. The only way it would be insecure is if it was a targeted attack against a known subject who was known to be using such a password storage method. Like the OP.
Basically, it's very secure (IMO), as long as you don't announce to the world that you're using it.
You are right, but I wouldn't use this with simple english words. Adding md5 of dictionary words to a wordlist is easy and it doesn't take that long to test. It is a nice method, but use a fairly good password with it. Anyway, I propose an improvement because some stupid websites still require that you use a password with upper letters, lower letters, numbers and signs regardless of how long your password is: $ echo -n c00l_password! | md5sum | awk '{printf $1}' | base64 NWY0ZWVmMzRmZTM3YmU5MDlhNmRiNzc1NWFkMzk2NDA=
- Using base64 after md5 guarantees the = sign at the end
- It is a little longer and it is more unlikely that it will be at included in any wordlist
- md5sum outputs '-' so I have to use that ugly awk
|
|
|
|
herzmeister
Legendary
Offline
Activity: 1764
Merit: 1007
|
|
August 16, 2011, 10:39:53 PM |
|
BUT, that assumes that the password hacker knows that he is using an md5 hash for his password.
[...]
Basically, it's very secure (IMO), as long as you don't announce to the world that you're using it.
Such an approach is known as Security through obscurity and not very recommended.
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
August 16, 2011, 11:04:00 PM |
|
BUT, that assumes that the password hacker knows that he is using an md5 hash for his password.
[...]
Basically, it's very secure (IMO), as long as you don't announce to the world that you're using it.
Such an approach is known as Security through obscurity and not very recommended. That's like saying your password isn't secure if you post it on a forum. I HIGHLY doubt any hackers are seriously going to add MD5 hashes (or other hashes) of dictionary words to their "check if this is their password" list, much less an even longer list of all of the typical dictionary items that they probably use to check password lists, much less an even longer list of all of those typical dictionary items that they use in all known hashed forms. I'd give far better chances to me forgetting my own password because it is too complex than a hacker finding out what it is. I mean, would you go to the MtGox password list and attempt to find someone who used an MD5 hash of a dictionary word as their password (which would have subsequently been stored as md5(md5(word)))? Probably not. You'd probably start with dictionary words, then go with dictionary words + numbers, then go with dictionary words + dictionary words, etc. There's going to be a lot better chances of going through a lot of other lists (heck, even random alphanumeric characters) of finding the correct password than there would be of going through an MD5 hash list. Now I'm not saying one should use a simple MD5-hashed dictionary word as their password, but perhaps whatever is the most complicated "memorable" password with an MD5 hash would be best. Something like Tails4Thew1n, in MD5 hash form, and no dictionary attack is going to get it. Call it security through obscurity all you want, but it would work, and it would work a heck of a lot better than people using (and losing) their 64 random character combinations.
|
|
|
|
captainteemo
|
|
August 16, 2011, 11:16:58 PM |
|
Use bcrypt()+SHA512 or something. MD5 is far too short.
|
|
|
|
RodeoX (OP)
Legendary
Offline
Activity: 3066
Merit: 1147
The revolution will be monetized!
|
|
August 16, 2011, 11:20:24 PM |
|
Good points all around. My method assumes no one knows you are encoding a simple password. And yes, it would be better to use a non-word. Then an attacker must go the brut force route. The Md5 is long and complex enough to avoid being in the "low hanging fruit" category.
The main advantage is ease of use and relatively strong protection using an easy to remember PW. With a little creativity you can go further. Suppose I used the Md5 result string to hash it again?
|
|
|
|
ffuentes
Member
Offline
Activity: 70
Merit: 10
Only a curious passer-by / FirstBits: 13zsc1
|
|
August 16, 2011, 11:20:58 PM |
|
That trick is ok, but your easy password should not be a dictionary word. Dictionary words, specially english words are very well knowed.
|
|
|
|
captainteemo
|
|
August 16, 2011, 11:23:42 PM |
|
Good points all around. My method assumes no one knows you are encoding a simple password. And yes, it would be better to use a non-word. Then an attacker must go the brut force route. The Md5 is long and complex enough to avoid being in the "low hanging fruit" category.
The main advantage is ease of use and relatively strong protection using an easy to remember PW. With a little creativity you can go further. Suppose I used the Md5 result string to hash it again?
It's still lowercase az09 of the same length. Run a SHA512 string through base64 or something, or even gzip it and use that as a completely untypable password
|
|
|
|
SgtSpike
Legendary
Offline
Activity: 1400
Merit: 1005
|
|
August 16, 2011, 11:57:04 PM |
|
That trick is ok, but your easy password should not be a dictionary word. Dictionary words, specially english words are very well knowed.
c2e055acd7ea39b9762acfa672a74136 GO! EDIT: Lol, I googled it and the first result was correct. Point taken. Good points all around. My method assumes no one knows you are encoding a simple password. And yes, it would be better to use a non-word. Then an attacker must go the brut force route. The Md5 is long and complex enough to avoid being in the "low hanging fruit" category.
The main advantage is ease of use and relatively strong protection using an easy to remember PW. With a little creativity you can go further. Suppose I used the Md5 result string to hash it again?
It's still lowercase az09 of the same length. Run a SHA512 string through base64 or something, or even gzip it and use that as a completely untypable password I suppose it depends what sort of item/object/etc you are securing. Not everything needs to be fort knox...
|
|
|
|
helloworld
|
|
August 18, 2011, 07:44:29 AM |
|
Good points all around. My method assumes no one knows you are encoding a simple password. And yes, it would be better to use a non-word. Then an attacker must go the brut force route. The Md5 is long and complex enough to avoid being in the "low hanging fruit" category.
The main advantage is ease of use and relatively strong protection using an easy to remember PW. With a little creativity you can go further. Suppose I used the Md5 result string to hash it again?
Also a brute force attacker would have to know exactly how many iterations you used... what if you put that md5 back in 2 or 3 times for a new md5?
|
|
|
|
sd
|
|
August 18, 2011, 08:18:47 AM |
|
Also a brute force attacker would have to know exactly how many iterations you used... what if you put that md5 back in 2 or 3 times for a new md5?
Yes, it would be impractical to perform multiple rounds of MD5 hashing due to the computational difficulty of MD5. Lets just check that: function md5 { echo -n $1 | md5sum | awk '{print $1}' } $ time md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 'password' ))))))))) e36b70041d8f1609aa40b9ebba4363cf real 0m0.084s user 0m0.004s sys 0m0.008s That's on a laptop with the CPU throttled down to 800Mhz and coded in bash.
|
|
|
|
RodeoX (OP)
Legendary
Offline
Activity: 3066
Merit: 1147
The revolution will be monetized!
|
|
August 18, 2011, 01:32:53 PM |
|
Also a brute force attacker would have to know exactly how many iterations you used... what if you put that md5 back in 2 or 3 times for a new md5?
Yes, it would be impractical to perform multiple rounds of MD5 hashing due to the computational difficulty of MD5. Lets just check that: function md5 { echo -n $1 | md5sum | awk '{print $1}' } $ time md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 $(md5 'password' ))))))))) e36b70041d8f1609aa40b9ebba4363cf real 0m0.084s user 0m0.004s sys 0m0.008s That's on a laptop with the CPU throttled down to 800Mhz and coded in bash. It's not even that hard. There are like 80k words in common use in English. You could just create dictionaries that contain the Md5 values in advance. so six dictionaries could cover words plus up to five sums. But again, you now have a targeted attack. That is a different beast. You would likely be hit by an additional targeted dictionary with your birthday, dog's name ect. This method is for the person about to choose "password" as their password.
|
|
|
|
nmat
|
|
August 18, 2011, 02:00:31 PM |
|
Maybe I should create my own hash function... Just in case
|
|
|
|
wknight
Legendary
Offline
Activity: 889
Merit: 1000
Bitcoin calls me an Orphan
|
|
August 18, 2011, 05:15:02 PM |
|
If your looking for a great way to do passwords.. Password Haystacks is a great way to start. This way you can use something you can remember and salt it to make it long enough to make it hard to figure out. https://www.grc.com/haystack.htm
|
Mining Both Bitcoin and Litecoin.
|
|
|
jackjack
Legendary
Offline
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
|
|
August 18, 2011, 05:34:34 PM |
|
sha256 of a file, nothing to remember, impossible to find
|
Own address: 19QkqAza7BHFTuoz9N8UQkryP4E9jHo4N3 - Pywallet support: 1AQDfx22pKGgXnUZFL1e4UKos3QqvRzNh5 - Bitcointalk++ script support: 1Pxeccscj1ygseTdSV1qUqQCanp2B2NMM2 Pywallet: instructions. Encrypted wallet support, export/import keys/addresses, backup wallets, export/import CSV data from/into wallet, merge wallets, delete/import addresses and transactions, recover altcoins sent to bitcoin addresses, sign/verify messages and files with Bitcoin addresses, recover deleted wallets, etc.
|
|
|
|
helloworld
|
|
August 19, 2011, 01:55:25 AM |
|
Whenever someone mentions 'password' and links to xkcd, I expect to see the $5-wrench comic.
|
|
|
|
fiatpirate
Newbie
Offline
Activity: 12
Merit: 0
|
|
August 19, 2011, 02:35:57 AM |
|
For those suggesting multiple hashes and such, I would think that a good phrase with mixed case and symbols may be easy enough and secure enough. You need supercomputers greater than are made today to crack a password constructed that way.
Just be smart, do it unexpected. Don't use a common phrase (use a derivative of it instead).
|
|
|
|
|