Pages:
Author

Topic: $250 Bounty Offered (Was $2000-$2500) - page 2. (Read 6656 times)

legendary
Activity: 1596
Merit: 1100
January 29, 2011, 03:42:33 PM
#27
SSL is (a) a good additional to the bitcoin P2P protocol, even if anonymous, and (b) easy to integrate into the existing protocol.

As others have pointed out, SSL will not give you authentication, because you're still connecting to an untrusted party.  However, it will give you obfuscation, which has value.

Modern protocols implement SSL by including a "start SSL" message in their plaintext, unencrypted protocol.  That eliminates the need for multiple TCP ports as in the HTTP/HTTPS design.  bitcoin can implement SSL obfuscation by adding a start-ssl message immediately after the version message.  The version message will tell us whether or not the node supports SSL, making it easy to integrate SSL in a backwards-compatible manner.

Thus, bitcoin P2P nodes that wish SSL may request it, just like SMTP nodes that wish to use SSL for transiting email between untrusted nodes.

It is a step forward for the Internet, when most protocols use SSL by default, even if obfuscation is the only added value.
sr. member
Activity: 252
Merit: 250
January 29, 2011, 03:34:07 PM
#26
Just use Tor with Bitcoin, then. They've already got this stuff solved.

99.99% of average people have no clue how to setup Bitcoin to use Tor.

Assuming that other people know as much as you/I/us know will kill this project. If we want mass adoption this software has to be robust, simple to use, and "just work". This includes when China/North Korea/"Insert bad government" blocks it.

We need to be proactive here. Not reactive. Telling people to install another program and educate them on how to chain them together is not a fix. It's a giant ugly "hack".

I agree with your concern about people not knowing how to protect themselves, but then, I think that better than adding unnecessary features to the main software, we should just offer preconfigured bundles, as I said on my last post.

An "anonymous bitcoin" bundle to be downloaded from the main project page, that would include the bitcoin software + an embedded tor proxy, everything preconfigured... this is better, imho, than adding SSL support to the bitcoin client.

I agree, and this is more along the Unix "philosophy" that I mentioned earlier. The less code within bitcoin itself, the better. You can't exploit code that doesn't exist.
legendary
Activity: 1106
Merit: 1004
January 29, 2011, 03:10:13 PM
#25
Just use Tor with Bitcoin, then. They've already got this stuff solved.

99.99% of average people have no clue how to setup Bitcoin to use Tor.

Assuming that other people know as much as you/I/us know will kill this project. If we want mass adoption this software has to be robust, simple to use, and "just work". This includes when China/North Korea/"Insert bad government" blocks it.

We need to be proactive here. Not reactive. Telling people to install another program and educate them on how to chain them together is not a fix. It's a giant ugly "hack".

I agree with your concern about people not knowing how to protect themselves, but then, I think that better than adding unnecessary features to the main software, we should just offer preconfigured bundles, as I said on my last post.

An "anonymous bitcoin" bundle to be downloaded from the main project page, that would include the bitcoin software + an embedded tor proxy, everything preconfigured... this is better, imho, than adding SSL support to the bitcoin client.
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:53:35 PM
#24
Fair enough. I haven't heard of fidonet for a long, long time.

 Cheesy I used to run FidoNet BBSes where I live.
Activity: -
Merit: -
January 29, 2011, 02:52:43 PM
#23
So is the bounty for these features to be added to the official client, or would an alternate client that's 100% compatible with the official client while having these additional features count?
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:51:10 PM
#22
Bear in mind that quite a few oppressive regimes actually own or can probably obtain SSL root certificates. I don't think of SSL as protecting me from governments and I'd suggest nobody else does either.

Yes. I understand what you are saying here. We should be at least obfuscating Bitcoin connections as FF+Apache connections. China, for example, can easily block Bitcoin at the moment - just filter one port: 8333. How sad.

China can't block every SSL connection. Commerce relies on SSL connections too heavily.

I understand and agree with what you're trying to do here. I also give you massive credit for being willing to put money where your mouth is. But beating an adversary with DPI isn't going to be easy - at the very least, somebody should put together a design doc or paper explaining their threat model and solution before you pay for it.

Check out the newer videos by Roger Dingledine. They explain the lessons they learned about keeping Tor from being blocked in China/Iran.

UPnP support on the other hand is a no brainer. I'd also be willing to contribute some coin (dollars/bits) towards implementation of that in the official client. The P2P network needs to be as dense as possible and using UPnP to reconfigure WiFi NATs is the best way to achieve a quick boost.

Totally. I think that UPnP should be on by default.

hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:45:20 PM
#21
We should identify what core functionality bitcoin needs and use existing tools to extend how we use it, the way Unix tools do.

Less than 0.25% of the population uses *NIX. If we want mass adoption we need to focus more on the end user operating systems.
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:42:42 PM
#20
Agree. However, that random port stuff you are proposing with all the windows specific UPnP BS is probably not such a great idea. I, personally would prefer that client simply takes on command line IP address and port to listen. Simple, easy and portable solution.

It should choose a random port upon install. If you have a port specified in the bitcoin.conf, it will use that explicitly. Us smarter folks would likely specify a port. (I'd use 443). Smiley

Think about the average Joe. They never toy with the defaults. If we want the network to be resistant to DPI filtering we need this.
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:39:49 PM
#19
This is a deficiency in the official client, and should be fixed.

+1

I'd like to run bitcoind on port 443. I want it to look like Apache/SSL.
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:38:33 PM
#18
Bitcoin is entirely different. Tor has a few centralized servers that can distribute certificates, but Bitcoin does not. You could use encryption without authentication, but this would not prevent men-in-the-middle from intercepting your traffic: it would just be obfuscation. Including secure encryption might be impossible without some sort of friend-to-friend system.

Ahem.. Key exchange. Generate a cert upon install.

The official client won't make outgoing connections to non-standard ports, so this would not be good for the network.

I want this bundled with the official client. I'm not looking for a fork.

Just use Tor with Bitcoin, then. They've already got this stuff solved.

99.99% of average people have no clue how to setup Bitcoin to use Tor.

Assuming that other people know as much as you/I/us know will kill this project. If we want mass adoption this software has to be robust, simple to use, and "just work". This includes when China/North Korea/"Insert bad government" blocks it.

We need to be proactive here. Not reactive. Telling people to install another program and educate them on how to chain them together is not a fix. It's a giant ugly "hack".

Edit: A key cache similar to how SSH handles keys could be added to Bitcoin to prevent MITM attacks.
hero member
Activity: 490
Merit: 511
My avatar pic says it all
January 29, 2011, 02:30:48 PM
#17
1) SSL would require all clients to upgrade.

How so? The current build links against openssl already. Preserving the existing port 8333 listener thread would maintain backward compatibility for some time.

2) Random TCP ports could be annoying for users running other services on their computers on certain ports when Bitcoin decides to use them.

It's random selection upon install. The user can, of course, change the port. Look at how I2P works upon first install.

3) UPnP would really be useful with all those NAT gateways.

Uh huh. Smiley
legendary
Activity: 1106
Merit: 1004
January 29, 2011, 01:16:49 PM
#16
May I ask why do you want public data to be exchanged through encrypted connections? I don't see the gain in that. If it's anonymity you want, encryption won't help you...

So ISP's can't target and block Bitcoin as easily?

What's the incentive for ISPs to do that, despite government pressure?
Because if it's the government who's after you, they can do just like hadopi in France. Encryption alone won't help you, you need something like Tor.

Maybe a better thing would be to offer a bundle Bitcoin client + tor proxy with everything already configured, for those who aren't geek enough to configure it by themselves. Just like the firefox bundle that torproject offers.

I don't see a need to add encryption to the core bitcoin software.
sr. member
Activity: 252
Merit: 250
January 29, 2011, 12:33:13 PM
#15
Yep, it is basically deep packet inspection evasion technique. I wonder how long it would take them to ban all encrypted packets  Angry

As long as businesses need to run VPNs and SSL websites, I think crypto will remain legal. Mimicking traffic patters in another matter, though.
?
Activity: -
Merit: -
January 29, 2011, 12:13:09 PM
#14
May I ask why do you want public data to be exchanged through encrypted connections? I don't see the gain in that. If it's anonymity you want, encryption won't help you...

So ISP's can't target and block Bitcoin as easily?
legendary
Activity: 1106
Merit: 1004
January 29, 2011, 11:51:15 AM
#13
May I ask why do you want public data to be exchanged through encrypted connections? I don't see the gain in that. If it's anonymity you want, encryption won't help you...
?
Activity: -
Merit: -
January 29, 2011, 11:41:53 AM
#12
On my networks, one of the first things I do when setting up a router is disable UPnP due to security concerns (malware often likes to open ports on UPnP enabled routers to further expose the network and help keep their botnet alive).  However, I think UPnP support would be great for non-techie home users that don't know enough to disable UPnP on their router's in the first place...If they're going to have UPnP enabled, we might as well take advantage of it.

I think some sort of built-in encryption would be really good to have, but obviously a central authority is obviously out of the question...hmmm...unless that central authority happens to be Bitcoin (or a similar system).  IDEA: User/node generates a key pair for encryption between nodes, the node creates a special transaction to "register" the public key, user pays a transaction fee or 0 or more, and then if/when it gets added to a block, the entire network has your public key for encrypted communications.  Obviously there's a lot more details to work out on this, and barriers for non-technical users, etc, but it's something to start brainstorming around.  (This is very similar to what's been on my list of things to think about for a Bitcoin-based DNS to have SSL certs associated with domains as well so people don't need to buy them from a "trusted" third-party like Verisign, etc.)  (EDIT: For communication between nodes, just generating key pairs for encryption and sharing the public keys upon first contact with the network and then spreading them via the 'addr' message (assuming a sufficiently bootstrapped Bitcoin network) would probably be enough for encrypting the traffic, and a central public key registry is probably unnecessary for this purpose.)

I would like ports other than 8333 to be supported, as well.  Also IPv6.
legendary
Activity: 2576
Merit: 1186
January 29, 2011, 11:35:00 AM
#11
UPnP is only a "security" issue if you're treating hacks like NAT as some kind of a firewall (which it's not intended to be). NAT is a hack to allow multiple computers/devices to access the WAN from a single WAN address. It isn't supposed to block anything. Blocking incoming connections has merely been a bug in the NAT implementations. UPnP fixes this bug by giving endpoints the ability to tell the router what ports it expects a connection on, so the router can correctly pass that traffic through.

If you want a firewall, go ahead and get one (or install it as software). But that is unrelated to the bug that UPnP fixes.
legendary
Activity: 1526
Merit: 1134
January 29, 2011, 11:01:06 AM
#10
The point of UPnP is to help users who are running the software at home. It's got nothing to do with server deployments of bitcoind. I guess the command line UI would have it switched off by default the and Win/Mac GUIs would have it switched on.
sr. member
Activity: 252
Merit: 250
January 29, 2011, 10:44:02 AM
#9

I am maybe behind the curve on this one, but I would not let any of this UPnP anywhere near my servers. If "all the major Linux router platforms", whatever that means, implemented UPnP it's their problem.

My point is that, the first things first, start with IP and port in command line, than maybe optional and turned off by default UPnP or whatever.

I know that this thread is not a place for this, but one feature I would love to see is to have an option for bitcoind to work in foreground while printing logs to sdout. I hate to hack this thing up every time to have it running under djb's daemontools.

I feel that we are hijacking this thread. Better to get back on topic.


It seems fair to discuss the merits of UPnP inclusion here. I tend to agree with you, just because of potential security issues.
legendary
Activity: 2576
Merit: 1186
January 29, 2011, 10:23:29 AM
#8
However, that random port stuff you are proposing with all the windows specific UPnP BS is probably not such a great idea.
Random ports might be a problem if they conflict with other services, but UPnP never hurt anyone. What do you mean Windows-specific? UPnP is implemented by all the major Linux router platforms, and is a very nice way to avoid manual setup of port forwarding.
Pages:
Jump to: