Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Criteria for inclusion of web wallets. #356
Comments
|
@carbonwallet Thanks for starting this discussion and for making concrete suggestions (let's see if any rough consensus can emerge from there). I'm interested in hearing other peoples thoughts as well. I'd personally like to add that web wallets owners' identity should be public, for minimum accountability (and recourse for the user). |
|
Hey @carbonwallet - Thanks for checking this out. I don't think wallet creators (including me or carbonwallet) should be part of defining criteria for inclusion in the list, especially retroactively. However, I do think it is fair that any wallet reply to inquiries about how bitcoins are kept safe with that wallet. To that end, here are a few qualifying points, which I hope do not sound defensive. I think all your questions are good ones. a) Can you trust BitGo? b) What about modified JS from server hacks? BitGo's approach is to constantly monitor every key file which is part of BitGo constantly, from around the world. If any changes are made to any file, we're notified instantly, and shutdown the service. The user exposure here is very small, and I'd argue that this constant monitoring is actually a safer way to deliver secure software than client wallets. c) What does BitGo do to secure it's servers?
d) Is M-of-N more secure than single key systems like blockchain.info? e) Is it less secure to store 1 key on the server for a M-of-N system? f) Regarding disallowing of username/password. Nonetheless, BitGo uses a heavy duty system here which is not "disallow", but hopefully more advanced than it seems on the surface. We use two passwords, one for login and one for making transactions, and both use 2-factor-auth on top of that. The reason for separating these two is for two reasons. First, it allows us to enforce much stronger passwords on transactions than we do for login. (Try it and let us know what you think!) But the second reason is to make phishing attacks much more difficult. With a single password/2FA system, the phisher lures the user to a site, collects credentials, and then runs off to the origin site to steal bitcoin (coinbase has fallen prey to this). With the BitGo system, the phisher must lure the user to the phished site, steal the login/password/2FA, then lure the user into making a transaction (much harder), and steal a second set of credentials. This is a very complex and active (not passive) attack. g) Recovery. |
ghost
commented
Mar 27, 2014
|
I hope the following is taken as constructive as that is the way it was intended. b) What about modified JS from server hacks? Although it's good you are monitoring your own JS and files, it would be even better if those files were available to the community for peer review and inspection. This wouldn't impact the quality of what you currently deliver. If a user is able to install a wallet checker locally, he can be sure that no-one has interfered with that javascript since it left your servers. i.e. Cloudflare. If a user has this facility, then I would agree we are more secure than the flat clients. d) Is M-of-N more secure than single key systems like blockchain.info? Correct me if I am wrong but if a users system is infected with Malware, the thief would be able to steal the BigGo email and password logon details. They would then be able to send Bitcoin from that account. Your proposals for limits and policies would give added security, but as far as I can see you don't have those policies at the moment. I believe 2FA gives more security against Malware and you don’t currently have that as far as I can see either. So I think my list stands. I think the next slot for a web wallet should go to the most secure web wallet we can possibly make. And if that web wallet doesn’t exist yet, then we need to build it. I will update my list, and hope for more feedback.
|
|
Also see my comments on the BitGo pull req. I think we should avoid, for now, trying to constantly raise the bar any time new wallets are submitted. If there is going to be an equivalent for the SSL "Baseline Requirements" in the Bitcoin wallet world, it needs to a hell of a lot more formal than random things thought up by random people on a pull request. The SSL BR's are phased in with many months of notice to allow the CA's (all of which have full time employees) time to adapt. There's also a voting process where the CA's (wallet authors in this case) can take part. BitGo is a more advanced web wallet than what has come so far. For that reason alone, it should go in. We should not start requiring threshold signing of updates until there's a real infrastructure for that in place and most wallets have already adopted it, at that point, requiring recommended wallets to meet existing best practices would be reasonable, but inventing "best practices" that nobody actually practices is not. So from me: let's put BitGo up on that page. Actually I'd like to see a more advanced page there that does a better job of promoting different wallets other than MultiBit and Bitcoin Wallet, even though they're based on my code and it's quite nice to have lots of users ;) But that's a topic for a different issue/pullreq. |
|
@mikehearn Any opinion on Greenaddress? Agreed on not enforcing made up requirements, that was not my intention either. I am actually more interested in having (at least) very minimum requirements, and promoting attributes of each wallet more transparently. But that will be a separate pull request. Re: formal process, I'm open to any suggestion on this. |
ghost
commented
Mar 27, 2014
|
@mikehearn BitGo is a more advanced web wallet than what has come so far. I don't think it is more secure than anything that has come so far, and this is much more important. For example, BitGo allows me to try multiple email/passwords without timing me out, even from the same IP address. This means any script kiddy can come along and run an email/password bot and open up users accounts. Big fail. This is why we have to be very careful with which wallets get promoted. Blockchain and Coinbase have already cut their teeth. However, I would be happy to contribute to base line requirements for wallets. |
|
@carbonwallet I don't really want to get into a he-said/she-said here (especially since we're both wallet makers). Please contact me offline and we can hash through any concerns you have before factually incorrect statements are made here. To correct a couple of statements: First, 2FA is required for all accounts that have wallets. We setup the 2FA when you create your wallet, not when you create your login, so you may not have seen it. Second, we do lock you out after 20 tries on the 2FA. If you don't have a wallet with any money in it, the security requirements are lower. This is our way of helping the user gradually step into higher security as they get deeper into bitcoin and need it. |
ghost
commented
Mar 27, 2014
|
@mbelshe I see, apologies for jumping the gun. |
|
Closing this issue as it has been addressed differently by the new page layout (by transparently displaying good and bad attributes of each wallets). |
ghost commentedMar 24, 2014
I'm seeing requests to add wallets, especially some of the newer M of N style wallets, but I'm concerned that both bitgo and greenaddress are deploying compressed javascript from their own servers. This means that we have to trust the wallet operator regardless of claims of M of N security.
I think we should assume that a wallet operator will be hacked (from inside or out) and then we asses the impact of this on the user base. For example...
The new M of N style wallets are claiming higher security than blockchain.info, however this is not the case. All the wallets I looked at are deploying compressed javascript from their own servers. This makes it difficult to detect if they are working honestly (I am sure they are with the wallets mentioned above but why take the risk.)
So perhaps we should outline the criteria for wallet inclusion and then implementers can meet or exceed that criteria.
Something like...
I'd be interested in hearing other peoples thoughts.