Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: curiosity81 on December 30, 2017, 03:28:22 PM



Title: stringwallet
Post by: curiosity81 on December 30, 2017, 03:28:22 PM
Hi guys,

during christmas I was thinking about a way to produce my own brainwallets. You find the code below

https://github.com/curiosity81/stringwallet.

Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.

Edit: to prevent confusion, I renamed the project to stringwallet.


Title: Re: Brainwallet history
Post by: curiosity81 on December 30, 2017, 03:55:11 PM
If you can reproduce your own brainwallet and the string is short or common and only hashed once, then I would recommend, that you move your founds to a new more secure address!!!


Title: Re: Brainwallet history
Post by: HeRetiK on December 30, 2017, 05:06:31 PM
Is anyone still using brainwallets in earnest? I always assumed that anyone that used a brainwallet effectively got robbed by now. Then again, any brainwallet that was sufficiently secure wouldn't be identifiable as such.


[...]
Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.

You'll likely have to use a combination of different hashes in varying rounds (eg., 10x Sha256 => 2x Scrypt => Bcrypt => etc) requiring an attacker to reproduce your exact hashing steps. Let's not forget that anyone who is scanning for brainwallets has a lot of time to do so and thus can account for multiple hashing rounds as well.


Title: Re: Brainwallet
Post by: colatkinson on December 30, 2017, 11:56:45 PM
The problem is ultimately that the randomness of a brain wallet is only as good as the randomness of the underlying passphrase i.e. terrible. Humans are not good at making random passphrases, and so the search space for an attacker is massively reduced. Instead of searching through every possibility, using a dictionary to search for common words, etc. would likely lead to cracking the wallet relatively quickly.

Is this better than a single iteration of sha256? Probably. Is this a secure key derivation function in any way? Absolutely not.


Title: Re: Brainwallet history
Post by: piotr_n on December 31, 2017, 05:19:59 AM
Is anyone still using brainwallets in earnest?
yes.

i don't trust stored data to stay secret.


Title: Re: Brainwallet
Post by: hopeAo on December 31, 2017, 05:32:13 AM
Hi guys,

during christmas I was thinking about a way to produce my own brainwallets. You find the code below

https://github.com/curiosity81/brainwallet.

Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.

A Brain Wallet is the one when user remembers their mnemonic phrase or the private key and never writes it down. That is, all is stored in the brain only for security reasons.

So why have a brain wallet and still write you private key or mnemonic phrase down on a piece of paper?

To me brain wallet is not good because it is difficult to manage in case the user forgets his/her mnemonic paraphrase or private key due to any mishap such as  accidents, brain diseases/ damage or even mental stress, he /she will lose his/her crypto-coins and funds.


Title: Re: Brainwallet
Post by: alphaomega.f on December 31, 2017, 08:59:30 AM
How safe is it to use brainwallet? Clearly, its helpful but is it that safe? I want to try it too since I have trouble memorizing stuffs.

But its quite crucial specially when you forgot your mnemonic phrase. It cannot be recovered.


Title: Re: Brainwallet
Post by: curiosity81 on December 31, 2017, 09:00:31 AM
Hi guys,

during christmas I was thinking about a way to produce my own brainwallets. You find the code below

https://github.com/curiosity81/brainwallet.

Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.

A Brain Wallet is the one when user remembers their mnemonic phrase or the private key and never writes it down. That is, all is stored in the brain only for security reasons.

So why have a brain wallet and still write you private key or mnemonic phrase down on a piece of paper?

To me brain wallet is not good because it is difficult to manage in case the user forgets his/her mnemonic paraphrase or private key due to any mishap such as  accidents, brain diseases/ damage or even mental stress, he /she will lose his/her crypto-coins and funds.

The idea is actually, that you need no backup!

With a brainwallet in the worst case, you must write the passphrase down. Clearly, you should write it down several times and hide the passphrase at different places. You can even cut the paper into two or more pieces and hide the pieces at different places so that it is unlikely for an attacker to have access to the full passphrase. There are variations of this method which seem more elegant. But everyone can make his/her own thoughts.

It is a pain in the ass to get access to the master key in core. Imho it is much too complex for a simple but secure brainwallet. And if you do not use an HD-Wallet, you have to backup your wallet anyway. But hardware can be lost (on a dump) or the hardware breaks one day. Moreover, one can lose the passphrase for the hardware.

With a brainwallet, the danger of breaking or losing hardware is not existent. Provided the passphrase for the brainwallet is good enough, for a cold wallet, this method seems more secure to me.

There are more passphrases built by 20 words from a dictionary with more than 10.000 words than ECDSA private keys, and assuming that hashing those passphrases several times (> 10.000), distributes the resulting values evenly between 0 and 2^256, this should be secure enough. Especially, since there are only 2^160 adresses, that is many private keys map to the same address anyway.



Title: Re: Brainwallet
Post by: curiosity81 on December 31, 2017, 09:05:52 AM
How safe is it to use brainwallet? Clearly, its helpful but is it that safe? I want to try it too since I have trouble memorizing stuffs.

But its quite crucial specially when you forgot your mnemonic phrase. It cannot be recovered.

There is no script for generating a passphrase yet. But I plan to add a simple script which uses aspell to sample 20 or more random words from a dictionary. Four additional words, selected from the 20, will be used as checksum. Security I discussed in my post above.

However, I am not a cryptographer. So beware! I do this for fun and educational purposes. And because I did not find corresponding code I understand.


Title: Re: Brainwallet history
Post by: HeRetiK on December 31, 2017, 09:08:33 AM
Is anyone still using brainwallets in earnest?
yes.

i don't trust stored data to stay secret.


Fair enough.

If you don't mind me asking: Do you (a) harden your brainwallet using a script, similar to OP, or do you (b) rely on a technique that you can apply off the top of your head, without relying on a computer? (eg. a long passphrase that is not part of a known body of literature, changing / shifting letters around in a way that can be easily remembered...)

Both make sense when trying to avoid storing data outside your head, but (a) seems more secure while (b) gives you full flexibility regardless of whether you have access to your hardening script.


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 05:07:45 PM
If you don't mind me asking: Do you (a) harden your brainwallet using a script, similar to OP, or do you (b) rely on a technique that you can apply off the top of your head, without relying on a computer? (eg. a long passphrase that is not part of a known body of literature, changing / shifting letters around in a way that can be easily remembered...)

Both make sense when trying to avoid storing data outside your head, but (a) seems more secure while (b) gives you full flexibility regardless of whether you have access to your hardening script.

What does it matter?

However I hardened my passphrase, I'm not going to unharden it now by telling you about this. :)


Title: Re: Brainwallet history
Post by: Spendulus on January 01, 2018, 06:37:20 PM
If you don't mind me asking: Do you (a) harden your brainwallet using a script, similar to OP, or do you (b) rely on a technique that you can apply off the top of your head, without relying on a computer? (eg. a long passphrase that is not part of a known body of literature, changing / shifting letters around in a way that can be easily remembered...)

Both make sense when trying to avoid storing data outside your head, but (a) seems more secure while (b) gives you full flexibility regardless of whether you have access to your hardening script.

What does it matter?

However I hardened my passphrase, I'm not going to unharden it now by telling you about this. :)


Although (brain wallet produced by human) --> seed key

is recognized and accepted as a bad idea,

    f(brain wallet produced by human) --> seed key

where f is a easily remembered math procedure such as modulo(x), may form an acceptable key


Title: Re: Brainwallet history
Post by: HeRetiK on January 01, 2018, 06:59:06 PM
If you don't mind me asking: Do you (a) harden your brainwallet using a script, similar to OP, or do you (b) rely on a technique that you can apply off the top of your head, without relying on a computer? (eg. a long passphrase that is not part of a known body of literature, changing / shifting letters around in a way that can be easily remembered...)

Both make sense when trying to avoid storing data outside your head, but (a) seems more secure while (b) gives you full flexibility regardless of whether you have access to your hardening script.

What does it matter?

However I hardened my passphrase, I'm not going to unharden it now by telling you about this. :)


Although (brain wallet produced by human) --> seed key

is recognized and accepted as a bad idea,

    f(brain wallet produced by human) --> seed key

where f is a easily remembered math procedure such as modulo(x), may form an acceptable key

Question being, whether a simple obfuscation algorithm that can be done in your head or with a piece of paper is sufficient, as opposed to a computer-supported one. Unless you can mentally sha256 :P

Given the amount of possible simple obfuscation algorithms I guess one can achieve sufficient security without computer support, assuming you don't rely on any well known methods (rot13 anyone?). In other words, this could be a use case where rolling your own "crypto" and security by obscurity might be a good thing.


Title: Re: Brainwallet
Post by: Hexah on January 01, 2018, 07:28:48 PM
I think it is good to use some brainwallet but I think it is more good to those people who can grasp easily about their passwords made or the people who have good memories in terms of it. It would be nice if that brainwallet has some hints options so that slow grasp individual can easily manage on the wallet.


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 07:45:18 PM
Although (brain wallet produced by human) --> seed key

is recognized and accepted as a bad idea,

    f(brain wallet produced by human) --> seed key

where f is a easily remembered math procedure such as modulo(x), may form an acceptable key
:)

that's ridiculous as f() is also produced by human.

Not to mention that in order to get a 256 private key value from the memorable passphrase,  you need some kind of f() anyway.

WTF does it even mean that something 'is recognized and accepted as a bad idea'?
Sounds to me like an argument brought by someone who has no arguments


Title: Re: Brainwallet history
Post by: HeRetiK on January 01, 2018, 08:22:18 PM
Although (brain wallet produced by human) --> seed key

is recognized and accepted as a bad idea,

    f(brain wallet produced by human) --> seed key

where f is a easily remembered math procedure such as modulo(x), may form an acceptable key
[...]

WTF does it even mean that something 'is recognized and accepted as a bad idea'?
Sounds to me like an argument brought by someone who has no arguments

I think what Spendulus is referring to is that brainwallets that are derived from human generated passphrases tend to get bruteforced sooner or later. At least those that are purely based on words that can be found in dictionaries and quotes that stem from books and song lyrics.

There are many examples of brainwallets that got swiped by attackers, however it is of course impossible tell what percentage of brainwallets is affected since the total number of brainwallets is unknown. Nonetheless the general recommendation on these forums and other social platforms has been to stay clear of brainwallets (whether justified or not).


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 08:37:50 PM
I think what Spendulus is referring to is that brainwallets that are derived from human generated passphrases tend to get bruteforced sooner or later. At least those that are purely based on words that can be found in dictionaries and quotes that stem from books and song lyrics.

There are many examples of brainwallets that got swiped by attackers, however it is of course impossible tell what percentage of brainwallets is affected since the total number of brainwallets is unknown. Nonetheless the general recommendation on these forums and other social platforms has been to stay clear of brainwallets (whether justified or not).

yeah.. I've read that "general recommendation" and none of the people who stand behind them is actually able to give me an answer on how exactly would they approach a brute forcing of a complex passphrase - one that is not just a word or a phrase from a dictionary.

they don't give the answer because they don't have any - that's the kind of 'experts' they are.
for me, they are just full of shit - what they do has zero to do with science and 100% to do with their beliefs driven by a subjective perception.

seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die.

if I wanted to crack brain wallets, I'd rather put my effort in finding a way to calculate the EC-private key from the EC-public, rather than try to brute force a creativity (or insanity) of a human brain. the first one not only seems less complex and more straight forward to me, but (most of all) it would then crack all the wallets :)


Title: Re: Brainwallet history
Post by: HeRetiK on January 01, 2018, 08:55:33 PM
[...]

yeah.. I've read that "general recommendation" and none of the people who stand behind them is actually able to give me an answer on how exactly would they approach a brute forcing of a complex passphrase - one that is not just a word or a phrase from a dictionary.

[...]

seriously, I am not aware of any hacking tool, or even a solid theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die.

[...]


Very true.

I'd still argue that this recommendation was aimed at the general populace that is notoriously bad at creating sufficiently secure passwords and passphrases. And I think there's enough evidence for that :)


Title: Re: Brainwallet history
Post by: Spendulus on January 01, 2018, 09:02:26 PM
Although (brain wallet produced by human) --> seed key

is recognized and accepted as a bad idea,

    f(brain wallet produced by human) --> seed key

where f is a easily remembered math procedure such as modulo(x), may form an acceptable key
:)

that's ridiculous as f() is also produced by human.

Not to mention that in order to get a 256 private key value from the memorable passphrase,  you need some kind of f() anyway.

WTF does it even mean that something 'is recognized and accepted as a bad idea'?
Sounds to me like an argument brought by someone who has no arguments

No, please try to think through these things.

Your arguments say are A B C.

A is not "ridiculous" because issue is discoverable key, and f() moves the human-phrase from determinable low entropy to high entropy difficult to determine. Yes I can pick method which is simple yet generates huge difficulty. (see EX f() )

B this f() is common knowledge, so an attacker always applies it as part of his algorithm. I refer to an f() which the attacker can only guess at.

C Human phrases are in fact recognized and accepted as bad idea. Time to break these phrases is the proof not opinion

EX f()
Require user of a brain wallet to a four digit base 58 value "c"
To increase entropy of the phases strip spaces from the phrase, than
Apply simple function based on "c" to characters of the brain wallet.

Brute force attack is now 58^4 or 10M times harder. And that's the "best case," where the attacker knew some sort of human-generated brain wallet was used. If attacker did not know that, he's out of luck.

But show me wrong. I'm certainly not expert at this.


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 09:03:10 PM
I'd still argue that this recommendation was aimed at the general populace that is notoriously bad at creating sufficiently secure passwords and passphrases. And I think there's enough evidence for that :)
sure, I understand that.

but we are abstracting here from the fact that if the "general populace" is bad at creating sufficiently secure passwords, then it is quite likely also bad at securing the copies of their wallet's secret files.

so if they were consistent in heir recommendations, they should basically recommend everyone to stay away form bitcoin. but they don't - they only recommend to not use brain wallets, like it was the very thing that is going to save an idiot from loosing his coins.


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 09:07:53 PM
C Human phrases are in fact recognized and accepted as bad idea. Time to break these phrases is the proof not opinion

Sorry. You're obviously not going to change your dogmatic rhetoric, whilst I am not interested in debating non science on this forum.


Title: Re: Brainwallet history
Post by: Spendulus on January 01, 2018, 09:12:18 PM
....

they don't give the answer because they don't have any - that's the kind of 'experts' they are.
for me, they are just full of shit - what they do has zero to do with science and 100% to do with their beliefs driven by a subjective perception.

seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die......

That's your subjective perception.

Try this view.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Now take the results, the 1000 sentences, and submit them to brute force attacks using English grammar and a million or so common phrases. I wager we break 10 within a couple of weeks.

That's unacceptable, right?





Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 09:19:24 PM
....

they don't give the answer because they don't have any - that's the kind of 'experts' they are.
for me, they are just full of shit - what they do has zero to do with science and 100% to do with their beliefs driven by a subjective perception.

seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die......

That's your subjective perception.

Try this view.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Now take the results, the 1000 sentences, and submit them to brute force attacks using English grammar and a million or so common phrases. I wager we break 10 within a couple of weeks.

Give them some time (e.g. one week) to create this password.

That's unacceptable, right?

How about you try this.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Tell them that the sentence may be as long as they like, but you have a very powerful computer that will try to guess the password they came out with.

Also tell them that if the computer will not guess their password in 1 year, but they still remember it, then they will be rewarded with $1000000.

Now, good luck with cracking that! :)


Title: Re: Brainwallet
Post by: piotr_n on January 01, 2018, 09:25:41 PM
Also, I would like to say once again that when you say "submit them to brute force attacks using English grammar and a million or so common phrases", you don't really know what you are saying.

I mean "million or so common phrases" - fine, you can probably find "million or so common phrases", from books, magazines, news articles, and films..
But WTF does it mean "brute force attacks using English grammar"? It is a meaningless term. There is no such thing!


Title: Re: Brainwallet history
Post by: HeRetiK on January 01, 2018, 09:50:49 PM
I'd still argue that this recommendation was aimed at the general populace that is notoriously bad at creating sufficiently secure passwords and passphrases. And I think there's enough evidence for that :)
sure, I understand that.

but we are abstracting here from the fact that if the "general populace" is bad at creating sufficiently secure passwords, then it is quite likely also bad at securing the copies of their wallet's secret files.

so if they were consistent in heir recommendations, they should basically recommend everyone to stay away form bitcoin. but they don't - they only recommend to not use brain wallets, like it was the very thing that is going to save an idiot from loosing his coins.

The most common recommendation nowadays is to just get a hardware wallet. Which in my opinion offer an excellent combination of security and usability. They are fairly idiot-safe, so to speak :)


[...]

But WTF does it mean "brute force attacks using English grammar"? It is a meaningless term. There is no such thing!

I guess Spendulus refers to using machine learning and / or neural networks trained on English syntax and semantics for creating lists of phrases that are more likely to be used for a brain wallet than others. Seems unviable without a sufficiently large set of existing passphrases to train the network on though.


Title: Re: Brainwallet history
Post by: piotr_n on January 01, 2018, 09:55:30 PM
The most common recommendation nowadays is to just get a hardware wallet. Which in my opinion offer an excellent combination of security and usability. They are fairly idiot-safe, so to speak :)
they also need backups.
and can be hacked (private key extracted) once the attacker gets his hands in the physical device itself.


Title: Re: Brainwallet
Post by: Spendulus on January 01, 2018, 09:56:36 PM
Also, I would like to say once again that when you say "submit them to brute force attacks using English grammar and a million or so common phrases", you don't really know what you are saying.

I mean "million or so common phrases" - fine, you can probably find "million or so common phrases", from books, magazines, news articles, and films..
But WTF does it mean "brute force attacks using English grammar"? It is a meaningless term. There is no such thing!

Such things as looking for the most common symbol, tagging it as the letter "e."
 
BTCrecover has many examples of incorporating English grammar into password cracking. How many examples would you like?


Title: Re: Brainwallet
Post by: bigvito19 on January 01, 2018, 10:02:51 PM
good luck with brainwallet


Title: Re: Brainwallet history
Post by: Spendulus on January 01, 2018, 10:04:24 PM
....

they don't give the answer because they don't have any - that's the kind of 'experts' they are.
for me, they are just full of shit - what they do has zero to do with science and 100% to do with their beliefs driven by a subjective perception.

seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die......

That's your subjective perception.

Try this view.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Now take the results, the 1000 sentences, and submit them to brute force attacks using English grammar and a million or so common phrases. I wager we break 10 within a couple of weeks.

Give them some time (e.g. one week) to create this password.

That's unacceptable, right?

How about you try this.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Tell them that the sentence may be as long as they like, but you have a very powerful computer that will try to guess the password they came out with.

Also tell them that if the computer will not guess their password in 1 year, but they still remember it, then they will be rewarded with $1000000.

Now, good luck with cracking that! :)
Well, now you are shifting the goal post from your prior argument of "some English sentence with 20 words."

It's easy to show that

So what is your argument?



A. That self-selected, human generated phrases within a certain length "might or could be" safe from attack?

B. Or that they "are safe from attack?"

(A) nobody would disagree.

(B) is not defensible without narrowly constricting the domain and the premises.


Title: Re: Brainwallet history
Post by: HeRetiK on January 01, 2018, 11:14:15 PM
The most common recommendation nowadays is to just get a hardware wallet. Which in my opinion offer an excellent combination of security and usability. They are fairly idiot-safe, so to speak :)
they also need backups.
and can be hacked (private key extracted) once the attacker gets his hands in the physical device itself.

The main objective when it comes to securing Bitcoin has been to be safe of online attacks. Hardware wallets are the most secure in this regard, even assuming physical backups. Which are not even necessary, should one memorize their seed.

Regarding physical attacks -- I'm not sure if you have followed Trezor, but they have a great track record of thwarting physical attack vectors. In other words, the physical extraction of private keys from a Trezor is currently a purely academic question. The many eyes principle has worked exceptionally well in this case. I reckon that Ledger is in a similar position, however I don't follow them quite as closely.

Even should an attacker get their hands on your wallet seed, there's still the user defined passphrase to break -- which in terms of complexity can be that of a brainwallet. So the security of a hardware wallet is that of a brainwallet -- plus 24 seed words.


Title: Re: Brainwallet history
Post by: piotr_n on January 02, 2018, 02:44:40 AM
Regarding physical attacks -- I'm not sure if you have followed Trezor, but they have a great track record of thwarting physical attack vectors. In other words, the physical extraction of private keys from a Trezor is currently a purely academic question. The many eyes principle has worked exceptionally well in this case. I reckon that Ledger is in a similar position, however I don't follow them quite as closely.

Nee. Who told you that?

Getting a private key out of trezor is kind of trivial as the device doesn't even use any kind of a secure hardware.
See here for example: https://jochen-hoenicke.de/trezor-power-analysis/ - this is without even opening the case!

Ledger is harder as it uses ST secure chip, and the cost of peeling the layers of silicon to get into the memory is estimated at $300k or so.
But it also can be done - it has been done. There are even videos on Youtube of people dumping the entire memory of the chip.

The science of hacking (secure) chips is an actual science and is far more advanced than the non existing science of hacking brain wallets.
Like take this presentation for instance - that's from 2010: https://www.youtube.com/watch?v=62DGIUpscnY - see what he has done here? This is what I call hacking, not the bloody brain wallet hacking charlatans who just make empty claims without proving shit.

Anyway.
If you think that a hardware wallet is secure but a brain wallet isn't - it only shows how much you have been brainwashed by the brain wallet pseudo-scientists and how much they made you to loose touch with the reality. In reality everything can be hacked. And personally I am quite sure that any of the hardware wallet on the market is easier/cheaper to hack than my brain. Can't speak for your though :)


Title: Re: Brainwallet
Post by: Yabuy92 on January 02, 2018, 06:27:15 AM
Hi guys,

during christmas I was thinking about a way to produce my own brainwallets. You find the code below

https://github.com/curiosity81/brainwallet.

Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.
Is it true....
as much as using the brain wallet is not safe, research on the implementation of brain wallet and find a gap in the brain wallet. because the process to make the brainwallet itself is quite simple.


Title: Re: Brainwallet history
Post by: LoyceV on January 02, 2018, 10:22:36 AM
yeah.. I've read that "general recommendation" and none of the people who stand behind them is actually able to give me an answer on how exactly would they approach a brute forcing of a complex passphrase - one that is not just a word or a phrase from a dictionary.
~
seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die.
A agree with you, but I also agree with the general statement that most users should stay away from brainwallets. If you know what you're doing, it can be safe. All that's left is to keep your identity secret, so the passphrase can't be tortured out of you.

Take 1000 humans, ask each of them to generate some phrase / sentence that will be used for "a password."

Tell them that the sentence may be as long as they like, but you have a very powerful computer that will try to guess the password they came out with.

Also tell them that if the computer will not guess their password in 1 year, but they still remember it, then they will be rewarded with $1000000.
I expect most of those 1000 humans to quickly write down their phrase the moment you stop observing them in your little experiment. Your powerful computer won't find it, but a neighbour can.

From my own experience, I can remember some very long passwords, and I've known them for many years. But adding a new password to my "brain list" is very difficult and takes a very long time to completely rely on my memory to reproduce it. It gets even worse if I want to use 10 different wallets.


Last year user ArcCsch had an idea for brainwallets: Brain wallet, step-by-step guide (FIXED!)[Mod note: DO NOT USE BRAINWALLETS] (https://bitcointalk.org/index.php?topic=1719563.0). He uses a two-step brainwallet with BIP38 in between. Even though the title got adjusted to a big fat warning, the very heavy BIP38 encryption makes it much harder to brute-force than normal brain wallets.


Title: Re: Brainwallet
Post by: curiosity81 on January 02, 2018, 10:54:49 AM
Probably the expression "brainwallet" is badly chosen anyway. Because a good brainwallet is similarly bad to remember like a complex password. Nevertheless, it might be possible to generate a story around the words so that they become more easily to remember.

Clearly, using a sentence from a book or similar and adding or replacing characters can make the brainwallet harder to break. Combined with a weird and high number of hashing rounds. Even though keys can be collected in each round.

Using a hardware wallet is a good idea for speculation, I think, if you need to store and shift around funds. But also those wallets implement brainwallets / seed sentences. So the difference is not big.

If you are paranoid enough, you would never use a hardware wallet from some manufacturer. Firstly, the hardware can break. Secondly, the hardware can be manipulated. Not necessarily by the manufacturer, but during shipment (except you buy it directly in a shop without providing your identity). Thirdly, the seed sentence can be stolen.

I do not claim, that my code is fast / perfect / bug free. Keep that in mind!

But for a coldwallet, I would claim that a "brainwallet" with a complex passphrase / seed is the best choice. Clearly, it is a method not suitable for the average user. Users should know what they do. And I admit, that I am not fully sure, that everything is implemented correctly. Therefore, the project is open source for erveryone. So that it can be corrected.


Title: Re: Brainwallet
Post by: LoyceV on January 02, 2018, 11:52:47 AM
Clearly, using a sentence from a book or similar and adding or replacing characters can make the brainwallet harder to break. Combined with a weird and high number of hashing rounds. Even though keys can be collected in each round.
Speed Optimizations in Bitcoin Key Recovery Attacks (https://eprint.iacr.org/2016/103.pdf) gives examples of the passwords the researchers cracked. I think most people would consider {1summer2leo3phoebe to be quite strong.

Quote
If you are paranoid enough, you would never use a hardware wallet from some manufacturer. Firstly, the hardware can break. Secondly, the hardware can be manipulated. Not necessarily by the manufacturer, but during shipment (except you buy it directly in a shop without providing your identity). Thirdly, the seed sentence can be stolen.
I don't worry about your First concern, because of the recovery seed. The Third concern is a risk similar to paper wallets, but it's the Second concern that has until now stopped me from getting a hardware wallet. No matter how much the manufacturer is trusted, a hardware wallet is a black box to me, and I can't possibly check how it generates it's seed phrases.

Quote
But for a coldwallet, I would claim that a "brainwallet" with a complex passphrase / seed is the best choice.
I wouldn't trust my own memory to be able to reproduce the password after (say) 20 years. Most of my long passwords are used on a daily basis, so they're easy to remember. The brainwallet needs to have a unique password, and if I don't use a password for a very long time, chances are I forget part of it.


Title: Re: Brainwallet history
Post by: HeRetiK on January 02, 2018, 01:07:41 PM
Regarding physical attacks -- I'm not sure if you have followed Trezor, but they have a great track record of thwarting physical attack vectors. In other words, the physical extraction of private keys from a Trezor is currently a purely academic question. The many eyes principle has worked exceptionally well in this case. I reckon that Ledger is in a similar position, however I don't follow them quite as closely.

Nee. Who told you that?

Getting a private key out of trezor is kind of trivial as the device doesn't even use any kind of a secure hardware.
See here for example: https://jochen-hoenicke.de/trezor-power-analysis/ - this is without even opening the case!

That's actually one of the physical attacks that I was referring to, and it is one of the vulnerabilities that got fixed early on. It even says so in the conclusion.


Ledger is harder as it uses ST secure chip, and the cost of peeling the layers of silicon to get into the memory is estimated at $300k or so.
But it also can be done - it has been done. There are even videos on Youtube of people dumping the entire memory of the chip.

The science of hacking (secure) chips is an actual science and is far more advanced than the non existing science of hacking brain wallets.
Like take this presentation for instance - that's from 2010: https://www.youtube.com/watch?v=62DGIUpscnY - see what he has done here? This is what I call hacking, not the bloody brain wallet hacking charlatans who just make empty claims without proving shit.

I'm not saying it's impossible to extract the private key from a hardware wallet, I'm just saying it's an academic exercise rather than a practical attack. If you have videos / articles on data extraction at the hardware level for current generations, or more precisely the chips that Trezor / Ledger are using, I'd love to see them (not being sarcastic, just being honestly curious). Smartcard hacks from 2010 are interesting for historical purposes, but likely not as relevant today.

And as mentioned above, this is ignoring the custom passphrase that acts as the 25th seed word. Which by itself already can have the complexity of a brainwallet passphrase. And that this passphrase can be hardly be extracted from your biological brain is something we both agree on. Apart from the $5 wrench attack (https://xkcd.com/538/) of course ;)


Anyway.
If you think that a hardware wallet is secure but a brain wallet isn't - it only shows how much you have been brainwashed by the brain wallet pseudo-scientists and how much they made you to loose touch with the reality. In reality everything can be hacked. And personally I am quite sure that any of the hardware wallet on the market is easier/cheaper to hack than my brain. Can't speak for your though :)

I never said that brain wallets aren't secure if you know what you're doing :)

All I'm saying is that hardware wallets are easier to secure for the average user, which makes them the better recommendation for the general populace.

(and that hardware wallets are more secure than brainwallets in that they extend the passphrase that is stored in your brain by 24 randomly selected seed words)


Title: Re: Brainwallet
Post by: curiosity81 on January 02, 2018, 02:49:04 PM
Clearly, using a sentence from a book or similar and adding or replacing characters can make the brainwallet harder to break. Combined with a weird and high number of hashing rounds. Even though keys can be collected in each round.
Speed Optimizations in Bitcoin Key Recovery Attacks (https://eprint.iacr.org/2016/103.pdf) gives examples of the passwords the researchers cracked. I think most people would consider {1summer2leo3phoebe to be quite strong.

I do not think, that this is a secure seed. Take numbers from 1 to 1000 and 100.000 possible words. Then you have roughly 100*(1000^3)*(100.000^3) = 10^26 = 2^86 possibilites if you sample with replacement (I count the "{" as character from the set of all printable character using a standard keyboard, I think there were roughly 100). And in this example the order and alternation is not considered. This is definitely too few. Especially, since you can order the words in a dictionary by their usage since some words are more likely to be used by humans. Moreover, an attacker would compute the key pairs once, maybe with optimized hardware. Each such brainwallet would be robbed in no time.

Quote
Quote
If you are paranoid enough, you would never use a hardware wallet from some manufacturer. Firstly, the hardware can break. Secondly, the hardware can be manipulated. Not necessarily by the manufacturer, but during shipment (except you buy it directly in a shop without providing your identity). Thirdly, the seed sentence can be stolen.
I don't worry about your FIrst concern, because of the recovery seed. The Third concern is a risk similar to paper wallets, but it's the Second concern that has until now stopped me from getting a hardware wallet. No matter how much the manufacturer is trusted, a hardware wallet is a black box to me, and I can't possibly check how it generates it's seed phrases.

ACK. But, even if your hardware wallet almost never breaks, the law of big numbers dictates, that one will break within a few years, provided enough such wallets exit. My concern is, that at some point in time, the hardware is not supported anymore. What, if someone passes the hardware wallet to his / her children or grandchildren, but the computers have no usb-port anymore. Today, who has a working floppy disk drive at home. And floppy disk drives were relatively common around 2000, even though not state of the art these days. Even today CD/DVD-devices are not standard anymore.

I would prefer a system which follows the KISS-principle (KISS = Keep It Simple Stupid) for long term archiving: Firstly, the code should reproducible easily. I am not sure, if the bash is perfect for this. But I like it, since most algorithms are already developed by experts and available on a standard linux system. They only have to be plugged together. Secondly, code should be easy to understand (which might be a little bit contradictory with respect to bash-syntax). (In my case, comments are still missing in some scripts in the moment. And code is not uniformly yet with respect to mathematical computations.) But it should be possible to print out the scripts and the linux version used and archive it in a bookcase or similar. Much better would it be if it can be carved in stone or glas.

Yes, one could argue, that Bitcoin might be obsolescent in a few years. But this is no counter-argument against secure long term archiving.

Quote
Quote
But for a coldwallet, I would claim that a "brainwallet" with a complex passphrase / seed is the best choice.
I wouldn't trust my own memory to be able to reproduce the password after (say) 20 years. Most of my long passwords are used on a daily basis, so they're easy to remember. The brainwallet needs to have a unique password, and if I don't use a password for a very long time, chances are I forget part of it.

I think, that it is not possible to remember a strong passphrase, if you do not use it daily. Thus, you must think about a secure way to archive it. Some non digital method similar to 2FA.


Title: Re: Brainwallet
Post by: HeRetiK on January 02, 2018, 05:33:32 PM
[...]

ACK. But, even if your hardware wallet almost never breaks, the law of big numbers dictates, that one will break within a few years, provided enough such wallets exit. My concern is, that at some point in time, the hardware is not supported anymore. What, if someone passes the hardware wallet to his / her children or grandchildren, but the computers have no usb-port anymore. Today, who has a working floppy disk drive at home. And floppy disk drives were relatively common around 2000, even though not state of the art these days. Even today CD/DVD-devices are not standard anymore.

I would prefer a system which follows the KISS-principle (KISS = Keep It Simple Stupid) for long term archiving: Firstly, the code should reproducible easily. I am not sure, if the bash is perfect for this. But I like it, since most algorithms are already developed by experts and available on a standard linux system. They only have to be plugged together. Secondly, code should be easy to understand (which might be a little bit contradictory with respect to bash-syntax). (In my case, comments are still missing in some scripts in the moment. And code is not uniformly yet with respect to mathematical computations.) But it should be possible to print out the scripts and the linux version used and archive it in a bookcase or similar. Much better would it be if it can be carved in stone or glas.

Yes, one could argue, that Bitcoin might be obsolescent in a few years. But this is no counter-argument against secure long term archiving.

[...]

Regarding hardware breakage and obsolescence: Hardware wallets follow an industry standard (or whatever you may call it in our ecosystem) as far as seed words and private key derivation is concerned. This enables recovery of hardware wallets using software wallets such as Electrum.

Worst case you can still run a virtual machine / emulator once Electrum reaches end of life and is not supported by modern operating systems anymore. Best case you have other implementations to choose from, which will likely be the case since the private key derivation scheme used by current hardware wallets is an open standard.

Granted, it requires more code than just deriving a single private key from a complex passphrase, but at least to me this looks like a reasonable approach at securing Bitcoin wallets for the foreseeable future.

Mnemonic recovery seeds:
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki

Deterministic private key derivation:
https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki


Title: Re: Brainwallet
Post by: nullius on January 02, 2018, 05:35:37 PM
Preface

Brainwallet fans, I’ll tell you what:  Why don’t you generate a 12-word BIP 39 mnemonic representing a piddling 128 bits off /dev/urandom, then “secure” it with a BIP 39 passphrase consisting of the very mostest unguessablist sentence your oh so creative mind can imagine.  You will feel better; and yet despite your own desire for foot-shooting, you will be secured by 128 bits of entropy.  Sound fair?

On second thought, no.  Don’t do what I just said.  If you are so stupid as to use a “brainwallet”, then others deserve that money more than you do.  My sincere advice is to use the brainwallet.



curiosity81, it seems (at a glance) that you are deploying a word generator generated from a decent (i.e. non-human) source of randomness.  Not a syntactically valid phrase, not something the user comes up with, not something from a book you cross your fingers and hope to be really obscure.  Not what most people call a “brainwallet”.

That raises an obvious question, which I must ask out of—curiosity:  Why don’t you simply use BIP 39?  It was developed by the same experts whose security acumen you trust when you use Bitcoin anyway.  Its wordlists were developed with human use in mind, e.g., all words on the English wordlist are unique within the first four characters.  And it will perfectly encode 128–256 bits of randomness in 12–24 words, without any of the pitfalls of trying to develop your own word randomization scheme.

With your wordlist, I presume not tuned to a power of 2, did you avoid the common mistake of introducing modulo bias?  (I did not review your code.)  Does your wordlist exclude similar, confusable words?  (I am guessing not.)  Etc.

In that context, this:

I would prefer a system which follows the KISS-principle (KISS = Keep It Simple Stupid) for long term archiving: Firstly, the code should reproducible easily. I am not sure, if the bash is perfect for this. But I like it, since most algorithms are already developed by experts and available on a standard linux system. They only have to be plugged together. Secondly, code should be easy to understand (which might be a little bit contradictory with respect to bash-syntax). (In my case, comments are still missing in some scripts in the moment. And code is not uniformly yet with respect to mathematical computations.) But it should be possible to print out the scripts and the linux version used and archive it in a bookcase or similar. Much better would it be if it can be carved in stone or glas.

...makes it irresistable for me to plug my own utility (red highlight added):

I have released an initial version of the easyseed(1) utility (https://github.com/nym-zone/easyseed) for secure generation of BIP 39 (https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seed phrases.  As any worthwhile software, it comes replete with a manpage (https://raw.githubusercontent.com/nym-zone/easyseed/master/easyseed.1.txt), q.v.  It generates mnemonic phrases in these languages and writing systems:

  • Chinese (Simplified) (汉语)
  • Chinese (Traditional) (漢語)
  • English [default]
  • French (Français)
  • Italian (Italiano)
  • Japanese (日本語)
  • Korean (한국어)
  • Spanish (Español)

My original motivation for writing this was that I needed a lightweight, reliable BIP 39 seed phrase generator with easily auditable sources and minimal dependencies for use on a stripped-down airgap machine.  The source code is short, easy to read, and lovingly commented; it can be readily understood by anybody with a basic knowledge of the C programming language.  Its only dependencies are cc(1), make(1), and a library SHA256 implementation—available on most platforms via libcrypto or otherwise.

It’s admittedly growing a little bit more complex—with much of the complexity being in self-testing code.  However, I have a priority to keep it auditable and avoid external dependencies.  I still need to add the seed output, which per BIP 39 requires normalization of phrases to Unicode NFKD; no, I will not link ICU!  I’m working on a solution to that.


Quick comments on a skim down the thread:

seriously, I am not aware of any hacking tool, or even a serious theoretical paper, that would successfully address a problem of brute forcing original sentences made by a human brain. make an original sentence (one that you can't just google) of ~20 words and I am betting all my bitcoins that no man armed with the fastest computer is going to brute force it before we both die.

if I wanted to crack brain wallets, I'd rather put my effort in finding a way to calculate the EC-private key from the EC-public, rather than try to brute force a creativity (or insanity) of a human brain. the first one not only seems less complex and more straight forward to me, but (most of all) it would then crack all the wallets :)

C Human phrases are in fact recognized and accepted as bad idea. Time to break these phrases is the proof not opinion

Sorry. You're obviously not going to change your dogmatic rhetoric, whilst I am not interested in debating non science on this forum.

(And more posts like this.)

piotr_n, you have no idea what you’re talking about.  A human-made natural language phrase is a horrible, stupid idea.  I don’t care how creative you claim to be, or how much you bluster about how amazingly scientific you are (versus all the people who know more than you about this subject).

You are giving bad advice which will get somebody hurt; and from how you’re talking, it’s evident that you will then turn around and say they didn’t do it right, like you could.  How very kind of you.


You'll likely have to use a combination of different hashes in varying rounds (eg., 10x Sha256 => 2x Scrypt => Bcrypt => etc) requiring an attacker to reproduce your exact hashing steps. Let's not forget that anyone who is scanning for brainwallets has a lot of time to do so and thus can account for multiple hashing rounds as well.

Question being, whether a simple obfuscation algorithm that can be done in your head or with a piece of paper is sufficient, as opposed to a computer-supported one. Unless you can mentally sha256 :P

Given the amount of possible simple obfuscation algorithms I guess one can achieve sufficient security without computer support, assuming you don't rely on any well known methods (rot13 anyone?). In other words, this could be a use case where rolling your own "crypto" and security by obscurity might be a good thing.

Using the word “algorithm” loosely, if you can’t design an algorithm which remains secure when your adversary knows it, then you will certainly be unable to design an algorithm which is secure when “unknown”.

Note the subtle difference from what you usually hear.


Title: Re: Brainwallet
Post by: xcoinbrkr on January 02, 2018, 06:06:18 PM
No data stays secret for ever.


Title: Re: Brainwallet history
Post by: cellard on January 02, 2018, 06:34:52 PM
Is anyone still using brainwallets in earnest?
yes.

i don't trust stored data to stay secret.


Why would anyone trust something that can spawn all of your private keys ever out of nowhere? Im still using the old wallet.dat format because im paranoid of the HD format of the new wallet.dat, imagine if I had to trust any of these brainwallets. Why expect your seed isn't going to eventually get bruteforced?

I personally feel safer by holding private keys locally which could never be accessed unless you actually had access to the files and you could always host your file somewhere in an encrypted SHA512 file with a strong password or something, if you really needed to for example move somewhere without carrying your private keys physically.

I just don't like the idea of "you need a couple of data here and there to derive all of you private keys", doesn't sound like a strong model to trust.


Title: Re: Brainwallet history
Post by: piotr_n on January 02, 2018, 06:46:27 PM
Why expect your seed isn't going to eventually get bruteforced?
Well... don't mean to be mean, but the answer is pretty obvious who anyone who isn't an idiot.

Because brute forcing of such a complex seed would require more computing than brute forcing of a standard bitcoin address.


Title: Re: Brainwallet
Post by: curiosity81 on January 02, 2018, 08:53:38 PM
curiosity81, it seems (at a glance) that you are deploying a word generator generated from a decent (i.e. non-human) source of randomness.  Not a syntactically valid phrase, not something the user comes up with, not something from a book you cross your fingers and hope to be really obscure.  Not what most people call a “brainwallet”.

True. That's why I mentioned above that "brainwallet" might be the wrong term.

I have to stress again, that I wanted simple code for generating key pairs from strings, either from a concatenated complex list of words (kind of brainwallet) or a complex set of characters (kind of passphrase). And I want to understand the code. A kind of finger exercise. And maybe some of the code is simple enough to be useful for others.

For instance, to derive the public key of a private key is the only piece of code, which is not a bash script. I found this code somewhere at stackoverflow (the link is given in the source). It is c, but relatively easy to compile. If I remember correctly only libssl-dev is necessary for compilation. This is the only simple (!) piece of code I found! Another example is the bash script for computing base58. The code you can find online uses a lot of bash magic, so that it is virtually impossible for a normal guy to understand. At least I learned what bc is. So it was easier to write the code by myself with the benefit, that I now know how it works.

Quote
That raises an obvious question, which I must ask out of—curiosity:  Why don’t you simply use BIP 39?  It was developed by the same experts whose security acumen you trust when you use Bitcoin anyway.  Its wordlists were developed with human use in mind, e.g., all words on the English wordlist are unique within the first four characters.  And it will perfectly encode 128–256 bits of randomness in 12–24 words, without any of the pitfalls of trying to develop your own word randomization scheme.

With your wordlist, I presume not tuned to a power of 2, did you avoid the common mistake of introducing modulo bias?  (I did not review your code.)  Does your wordlist exclude similar, confusable words?  (I am guessing not.)  Etc.

Honestly, I did not take care of the random generator's entropy yet. But I can assure you, that I am paranoid enough to invest (and already invested) a lot of energy to get the maximum entropy into my systems. In the current version, one bash script simply shuffles (shuf) a complete aspell dictionary and takes the head (the n first words) of the output. That's it. Clearly I have to figure out in detail how shuf works and where it gets its entropy. Entropy pool could be filled with additional entropy via randomsound or similar. But how to connect shuf to /dev/random or /dev/urandom is a question for the future. And should be as simple as possible.

I did not wrote my own BIP39 generator, even though I am aware of the proposal. Maybe I even stole some ideas (checksum). Maybe I used them wrongly.

I have released an initial version of the easyseed(1) utility (https://github.com/nym-zone/easyseed) for secure generation of BIP 39 (https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) mnemonic seed phrases.

Thanks for the suggestion. I will take a look.


Title: Re: Brainwallet
Post by: seoincorporation on January 02, 2018, 09:28:34 PM
Hi guys,

during christmas I was thinking about a way to produce my own brainwallets. You find the code below

https://github.com/curiosity81/brainwallet.

Clearly, code can also be used to produce more secure brainwallets. E.g. hashing a string more than once and a brute force approach is virtually useless.

Nice codes, i just take a looks and is a great code, i have done my bash to brain wallet codes in the past, will search them, and if i can find them, i will post it here.

Thanks for share.


Title: Re: Brainwallet
Post by: Spendulus on January 02, 2018, 10:54:13 PM
No data stays secret for ever.
The most glaring error with "brain wallet" is the many various ways we have of spelling virtually identical words, capitalizing or not, hyphenating, punctuating...

This makes it possible to "remember" a brain wallet and still not be able to type it in and get it right. What is "remembered" is fundamentally imprecise.

Hence I think a predefined word list is a Very Good Idea with anything that would have the beginnings of BrainWalleticity.

Next I'm going to say the last word needs to be a checksum.

Keeping on going, looking like I'm reinventing Bitcoin Improvement Protocols, doesn't it?



Title: Re: Brainwallet
Post by: HeRetiK on January 03, 2018, 12:06:16 AM
You'll likely have to use a combination of different hashes in varying rounds (eg., 10x Sha256 => 2x Scrypt => Bcrypt => etc) requiring an attacker to reproduce your exact hashing steps. Let's not forget that anyone who is scanning for brainwallets has a lot of time to do so and thus can account for multiple hashing rounds as well.

Question being, whether a simple obfuscation algorithm that can be done in your head or with a piece of paper is sufficient, as opposed to a computer-supported one. Unless you can mentally sha256 :P

Given the amount of possible simple obfuscation algorithms I guess one can achieve sufficient security without computer support, assuming you don't rely on any well known methods (rot13 anyone?). In other words, this could be a use case where rolling your own "crypto" and security by obscurity might be a good thing.

Using the word “algorithm” loosely, if you can’t design an algorithm which remains secure when your adversary knows it, then you will certainly be unable to design an algorithm which is secure when “unknown”.

Note the subtle difference from what you usually hear.

Maybe I misunderstand you, but the obfuscation algorithm itself doesn't need to be secure. After all the attacker doesn't want to derive the original message from your obfuscated passphrase. That's were "security by obscurity" would fail.

Instead, my rationale is based on the potential attacker having two choices:

a) Derive your obfuscated passphrase from either your BTC address or your public key -- obviously unviable right now, otherwise we'd have other problems.

b) Brute force your original passphrase AND the correct steps with which you obfuscated it -- the latter of which there are effectively infinite possibilities, even when limiting yourself to pen-and-paper algorithms (eg. uppercase every nth letter, insert a special character according to the fibonacci sequence, apply multiple rounds of rot26... etc etc).

Combine a strong passphrase with some layered weird-ass obfuscation steps and you should get yourself enough entropy for decades to come.

On the other hand I just stumbled upon a fairly recent Def Con talk about cracking brainwallets, maybe it makes me rethink my assumptions.

Here's the link, without knowing yet whether it's going to be any good:
https://www.youtube.com/watch?v=foil0hzl4Pg

Edit: The talk above covers nothing that hasn't been discussed in this thread already. Keeping the link for reference though.