Thanks. Brainwallet.io is open source, and provided as a self-contained, single HTML file that you can download from GitHub in the event that my site goes down. The links are at the bottom of the website.I checked out your creation at brainwallet.io and I do like what I see, good job. Should I be concerned that this is proprietary, or is the software open source and can be easily saved or recreated?
Brainwallets should almost have a meeting where all of them are upgraded to something similar to this, yet continue to be backward compatible for original users. I guess my biggest concern would be inconsistency and the loss of the ability to decrypt my passphrase if there isn't a standard across all the brainwallets.
Is there a backup plan or system for if this webpage you created disappeared?
I like this one I just generated on the brainwallet.io site mentioned above:I think it's probably more likely that you will forget the seed and lose your coins than it is for someone to "guess" it and steal the coins.
Now all I need is an annoying aunt who died in the cold and this one is a winner!throughout guess mourn freeze frost search aim flight aunt lot sure annoy
That's what we need, brainwallet seeds based on annoying family members!I like this one I just generated on the brainwallet.io site mentioned above:I think it's probably more likely that you will forget the seed and lose your coins than it is for someone to "guess" it and steal the coins.
Now all I need is an annoying aunt who died in the cold and this one is a winner!throughout guess mourn freeze frost search aim flight aunt lot sure annoy
LOL well you can input your own info, but then that is the human element that makes it weak. I think the "salting" of adding a username/password makes it added extra security. That's unique to that website, which makes it pretty cool.That's what we need, brainwallet seeds based on annoying family members!
I like this one I just generated on the brainwallet.io site mentioned above:
Now all I need is an annoying aunt who died in the cold and this one is a winner!
Some may think so, but take a look at the math: if you chose ONLY from the top 200 most popular words in the English language and made a 7-word sentence, it would still take 405 years to try all possibilities by guessing 1 million guesses per second.The only reason a password such as, "I love eating popcorn in the sun" isn't secure, is due to the fact that people can try millions of passwords a second.
(note - the article you reference is based on my research)However, this doesn't sound quite right to me. Although there are more than one million words in the English language, and the Oxford dictionary has 600,000 words, let's be generous and say you use an easy-to-find list of only 300,000 words. If you had a computer guessing 4-word combinations at 150,000 guesses/second, it would take 1.7 billion years to guess every possible combination. Even a botnet of one million machines would take 1700 years. We can even upgrade your botnet to 1.5 million guesses per second and assume the majority of hits will be found within the first half of your guesses, and it will still take 85 years. That's pretty different from checking "every bitcoin address that has ever received funds in a single day."
Code: Select all
chromatophilic
tetradactyly
autoskeleton
aluminothermics
I'm kinda curious how the difficulty of learning a weird new word compares with remembering something that came out of a pronounceable password generator.I agree, the majority of words in the dictionary are going to be obscure and hard to remember. I personally would be willing to learn 4 new words for the sake of securing my savings (and if I can just remember the pronunciation, the spelling can be confirmed by looking it up in the dictionary!), but it might be hard for some people.
Four words from a list of 4000-5000 still won't be secure even with the modifications you suggest here - you're only adding 2-3 bits per word.Although choosing 4 words from the standard wordlist is not very secure, I think things can be added which make the possibilities grow quite quickly. Nouns can be made plural, and verbs can have multiple tenses. That alone grows a 2000 word list to 4000-5000. Words could have spaces between them, be capitalized or not, or use different punctuation. A complex combination of these variations is hard to remember, but something simple like "in all caps, with spaces, ending with a period" is easy enough to remember.
A lot of people don't think about this stuff, and don't realize how insecure their brainwallet might be. I think your work is great for showing the dangers of weak brainwallets, but it also shows what types of brainwallets can be secure, which I think most people overlook. The article I linked had a sensationalist title, saying your tool "exposed a major flaw", but it was always apparent to anyone willing to do the math! I still think there is a place for brainwallets if done correctly.
Yes, that would be very safe as long as your 12 words were randomly generated.Is it safe to have a 12-word deterministic wallet with a 20 to 30 characters password? How long can the passphrase be?
When you have time, can you write a tutorial on how you scanned 743 billion passwords? I am interested in studying this and will give you a +1 + coin for a drink or 2.(note - the article you reference is based on my research)However, this doesn't sound quite right to me. Although there are more than one million words in the English language, and the Oxford dictionary has 600,000 words, let's be generous and say you use an easy-to-find list of only 300,000 words. If you had a computer guessing 4-word combinations at 150,000 guesses/second, it would take 1.7 billion years to guess every possible combination. Even a botnet of one million machines would take 1700 years. We can even upgrade your botnet to 1.5 million guesses per second and assume the majority of hits will be found within the first half of your guesses, and it will still take 85 years. That's pretty different from checking "every bitcoin address that has ever received funds in a single day."
The English word list sizes you mention are unrealistic - the figures cited were assuming a 2,048 entry wordlist. The diceware list, which is the largest one I'm aware of being promoted as a wordlist for random passphrases, is only 7,776 words, and calling many of them "words" is a stretch. Most of the other common tools use a wordlist of 2,048 or 1,626 words. A typical adult native English speaker's vocabulary is somewhere in the vicinity of 20,000 words.
As an example of why using an entire dictionary is a problem, here's four random words from the system dictionary on my linux box (containing 234,937 words) produced with shuf /usr/share/dict/words | head -n 4:
I think I'd have a hard time remembering those.Code: Select all
chromatophilic tetradactyly autoskeleton aluminothermics
If you are using random words, it's fairly easy to calculate the security - you compute "work" as log2(list size) * nWords + hardening then compare against your desired security margin (96 bits is probably fine for at least a decade). With diceware and brainwallet.io or warpwallet (both use scrypt(218, 8, 1)), each word is a little shy of 13 bits, and scrypt is providing at least 20 bits of hardening, so 6 random diceware words should get you past the 96 bit security level. If you're really paranoid use 8 random diceware words for a ~123 bit security level.
Using a hardened kdf with your email as a salt shaves off a random word or two from what you need for good security, and requires anyone trying to steal your money to target you directly (unless you have a *trivially* weak password) at almost no cost.
Several performance improvements have been made to Brainflayer since DEFCON, and I was recently able to scan for ~743 billion passwords at a cost of $52 using EC2 spot instances.
Return to “Development & Technical Discussion”
Users browsing this forum: No registered users and 1 guest