Pages:
Author

Topic: Blockchain.info security [FUNDS STOLEN] - page 3. (Read 28111 times)

newbie
Activity: 7
Merit: 0
August 20, 2013, 12:37:17 PM
#39
Jesse James has informed me of a problem with the rng used by blockchain.info javascript clients being poorly seeded when initialised in a background webworker task. In some browsers this could lead to duplicate R values being used when signing transactions (Firefox is likely to be particularly vulnerable). This issue effects the transaction signing code only, not the generation of private keys.

Was this an issue related to a problem with window.crypto.getRandomValues when webworkers are used? If so, please inform so that I can make Firefox aware of the problem.

I am working on Coinpunk, which is (like blockchain.info) using bitcoinjs-lib as a sort-of ancestor of the current code base. After the Android vulnerability was disclosed, I started looking at the existing RNG code and I was not impressed: https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/jsbn/rng.js

You can see where the RNG gets fed in here: https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/src/ecdsa.js#L237

I wanted to split the RNG code out into something that would use the best-available approach for its platform, so I put this together, which is the current development version, and has tests you can run in the browser: https://github.com/kyledrake/randjs.

I would really appreciate an audit and feedback on this code, as I intend to eventually use this in production. My e-mail is [email protected] if you want to IM/email me directly. Thanks!
legendary
Activity: 1554
Merit: 1009
August 20, 2013, 12:25:54 PM
#38
All affected users will be refunded in full, please PM me or email [email protected].

Customer service win!
member
Activity: 108
Merit: 100
sr. member
Activity: 426
Merit: 250
August 20, 2013, 11:40:36 AM
#36
Can someone please run the script on these two addresses and determine if this theft was caused by the bad signatures and comment in this thread:

https://bitcointalksearch.org/topic/my-wallets-were-stolen-just-now-can-any-one-help-me-277601

afaik these addresses were not compromised by non-random numbers. But my script is not really sophisticated, so I might be wrong.
legendary
Activity: 1694
Merit: 1024
August 20, 2013, 11:38:46 AM
#35
I have a few questions:
1. I've only used Google Chrome with my blockchain wallet, and haven't installed the blockchain extensions, only used the website. I've also cleared my cache just a minute ago, am I vulnerable?
2. Were paper wallets at risk with this? Like, just an imported public address, with no private key.
3.) After clearing my cache, is there anything else I should do to make sure I'm secure?
legendary
Activity: 2646
Merit: 1131
All paid signature campaigns should be banned.
August 20, 2013, 11:25:26 AM
#34
However, at this point I'm thinking of augmenting it so that it snatches weak funds immediately so I can return funds to peeps who are able to prove ownership of the victim address by signing a message with a bunch of keys with a 1-degree relationship to that address.
I believe that if you can prove that change was sent to the address in a transaction from an address you can prove ownership to (by signing a message) then that should good enough.  However, this obviously does not work if no change was ever sent to the address in question.
newbie
Activity: 8
Merit: 0
August 20, 2013, 11:14:08 AM
#33
Patches have now been deployed, Please ensure you upgrade to the latest version of your Blockchain.info client.

Chrome extension - v2.85
Fixefox extension - v1.97
Mac client - v0.11

Here's how to manually force the update in Chrome.

1. Go to "chrome://extensions"
2. Select "developer mode"
3. Click "update extensions now"
legendary
Activity: 2646
Merit: 1131
All paid signature campaigns should be banned.
August 20, 2013, 11:11:26 AM
#32
Can someone please run the script on these two addresses and determine if this theft was caused by the bad signatures and comment in this thread:

https://bitcointalksearch.org/topic/my-wallets-were-stolen-just-now-can-any-one-help-me-277601
hero member
Activity: 686
Merit: 500
Bitbuy
August 20, 2013, 11:06:51 AM
#31
I've been using blockchain.info wallet directly in my Firefox, without installing any browser extension. Am I vulnerable to this bug?

You are vulnerable, yes. But since no funds were stolen from you (I presume?), the bug luckily wasn't triggered (it didn't use the same R value twice) as it seems some people are actively scanning the blockchain and stealing whenever the bug happens. The bug is already fixed according to Piuk. Just clear your browser cache and you should be safe again.
legendary
Activity: 1036
Merit: 1000
DARKNETMARKETS.COM
August 20, 2013, 09:14:28 AM
#30
I've been using blockchain.info wallet directly in my Firefox, without installing any browser extension. Am I vulnerable to this bug?
hero member
Activity: 924
Merit: 502
August 20, 2013, 09:01:56 AM
#29
Is it possible for a bitcoin wallet to scan all previous transactions to check that the r value isn't being reused before broadcasting the new transaction? I appreiciate it might be expensive to calculate if you have a lot of transactions in your wallet O(n^2)? but for most wallets that's a small enough number I'd have thought?
vip
Activity: 1302
Merit: 1042
👻
August 20, 2013, 07:22:35 AM
#28
Nice speedy fix Smiley

Could you push out the source code changes to https://github.com/blockchain/My-Wallet-Chrome-Extension ? It hasn't been updated for 3 months.
hero member
Activity: 910
Merit: 1005
August 20, 2013, 07:11:40 AM
#27
Jesse James has informed me of a problem with the rng used by blockchain.info javascript clients being poorly seeded when initialised in a background webworker task. In some browsers this could lead to duplicate R values being used when signing transactions (Firefox is likely to be particularly vulnerable). This issue effects the transaction signing code only, not the generation of private keys.

Patches have now been deployed, Please ensure you upgrade to the latest version of your Blockchain.info client.

Chrome extension - v2.85
Fixefox extension - v1.97
Mac client - v0.11

Users of the web interface should clear their browsers cache before next login.

Only a handful of addresses are known to be affected thus far. Likely if you have been affected by this problem your coins will have been taken already. All affected users will be refunded in full, please PM me or email [email protected].
staff
Activity: 4158
Merit: 8382
August 20, 2013, 06:21:48 AM
#26
Careful with that "move all at once". If your move transaction reveals your private key it may be the case that people are attacking in realtime now and might beat you w/ a double spend.

I would prefer to move the keys into something that doesn't have known DSA nonce concerns and send that movement transaction from there, if at all possible.
newbie
Activity: 29
Merit: 0
August 20, 2013, 06:16:12 AM
#25
After reviewing the blockchain.info wallet source code, I can not recommend using it at the moment.  I had a full monty write-up on this earlier, but as I've dug deeper I've decided to take it down so I can communicate my findings to blockchain.info exclusively first.  Stay tuned.

Do you advise to meanwhile sweep funds to a fresh new address with blockchain wallet?  Is the blockchain wallet safe to make transactions with manual key rotation?

If you are feeling careful, IMHO it would be wise to move to a non-javascript wallet for the time being ... and when you move, do it with a single transaction ... that way even if your signature(s) expose the private key you're moving from, they'll be nothing there left to spend.
VTC
member
Activity: 84
Merit: 14
August 20, 2013, 05:47:31 AM
#24
After reviewing the blockchain.info wallet source code, I can not recommend using it at the moment.  I had a full monty write-up on this earlier, but as I've dug deeper I've decided to take it down so I can communicate my findings to blockchain.info exclusively first.  Stay tuned.

Do you advise to meanwhile sweep funds to a fresh new address with blockchain wallet?  Is the blockchain wallet safe to make transactions with manual key rotation?
legendary
Activity: 1526
Merit: 1129
August 20, 2013, 05:25:55 AM
#23
My understanding is that b.i uses the "web crypto" APIs when available, and they should be more or less a direct path through to the platform crypto RNG.

However if the browser does not support those APIs then it basically just invents its own RNG. I recall bringing this issue up before, a long time ago, but I don't remember what became of it.
newbie
Activity: 29
Merit: 0
August 20, 2013, 03:17:40 AM
#22
After reviewing the blockchain.info wallet source code, I can not recommend using it at the moment.  I had a full monty write-up on this earlier, but as I've dug deeper I've decided to take it down so I can communicate my findings to blockchain.info exclusively first.  Stay tuned.
legendary
Activity: 1204
Merit: 1002
Gresham's Lawyer
August 19, 2013, 09:31:45 PM
#21
I'm thinking of augmenting it so that it snatches weak funds immediately
The legal risk is too high.
On the other hand, I thought about writing and releasing such scanner without touching funds myself and letting people to catch and sue each other. I see every bitcoin-related court case as a good thing that make adoption of Bitcoin by business easier.

There's only one address implicated in all the recent thefts so I'm not sure how useful releasing a scanner would be ... other than increasing competition for snatching funds from weak addresses.

Although your first point brings up a larger legal question ... if someone makes their private key public (intentionally or non-intentionally) ... under what conditions (if any) and under what legal theory could a 3rd party be liable for signing with it?  Any lawyers out there?


In the USA?
You have a civil claim of course.  And for criminal, Wire Fraud.  If interstate or international, Federal rules apply:
http://www.law.cornell.edu/uscode/text/18/1343
newbie
Activity: 29
Merit: 0
August 19, 2013, 09:25:07 PM
#20
Holy shit ... I just re-examined my research on all repeated R-values in signatures made in July/Aug.  

I now suspect blockchain.info was responsible for all of these R repeats except the last .... (note this data is through today - block 253081).



The more serious of the 2 android SecureRandom bugs as detailed by the commenter Nikolay Elenkov, only could cause repeated R's across application invocations (and not in the same transaction), thus one would expect to see a R repeat from an android client spaced in time (across transactions) and not relayed directly through blockchain.info.  This fits the pattern of the last example.  

All the other R repeats happen within the same transaction and the transactions are relayed directly through blockchain.info.  Being relayed directly though blockchain.info means it was likely submitted by their wallet (or less likely but also possible ... another wallet that uses their API).  

Edit 1: Updated research to include repeats from recent blocks.
Pages:
Jump to: