Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Protocol Encryption (PE/MSE) #69

Open
transitive-bullshit opened this issue May 29, 2014 · 10 comments
Open

Implement Protocol Encryption (PE/MSE) #69

transitive-bullshit opened this issue May 29, 2014 · 10 comments

Comments

@transitive-bullshit
Copy link
Member

@transitive-bullshit transitive-bullshit commented May 29, 2014

Protocol encryption (PE) aka message stream encryption (MSE) is a bittorrent extension to enhance privacy and confidentiality, effectively making bittorrent traffic harder to identify and throttle by ISPs.

Note that there is no official BEP describing protocol encryption, but it is widely supported by all the top clients.

At a high level, there are two different levels of bittorrent encryption that exist, namely those which only encrypt bittorent headers, and stronger encryption such as RC4 which encrypts the entire stream. I'm guessing that webtorrent will want to eventually support both, but I'd recommend implementing the header-level encryption first since webtorrent is already heavily burdened by all the SHA1 hashes going on.

bittorrent-clients should accept encryption options similar to those described here; e.g., encrypted connections should be either disabled, enabled and optional (e.g. prefer encryption but fallback to unencrypted if the remote peer doesn't support encryption), or enabled and forced (e.g., only connect to peers supporting encryption).

Resources:

@feross

This comment has been minimized.

Copy link
Member

@feross feross commented Jun 4, 2014

This is important for webtorrent.app, but less important for webtorrent.js since WebRTC already automatically encrypts data streams. I don't think ISPs will be throttling WebRTC any time soon.

@transitive-bullshit transitive-bullshit changed the title Implement Protocol Encryption (PE/MSE) Implement Protocol Encryption (PE/MSE) [$50] Jul 25, 2014
@feross feross changed the title Implement Protocol Encryption (PE/MSE) [$50] Implement Protocol Encryption (PE/MSE) Aug 10, 2014
@feross feross removed the bounty label Aug 12, 2014
@feross feross added the help wanted label Nov 29, 2014
@Persei08 Persei08 mentioned this issue Apr 13, 2017
@NumDeP

This comment has been minimized.

Copy link

@NumDeP NumDeP commented Apr 1, 2018

I don't mean to come across as rude but how is it that this has taken around 4 years?

@feross feross added accepted and removed accepted labels May 3, 2018
bricewge pushed a commit to bricewge/webtorrent that referenced this issue May 11, 2018
…rrent-6.0.0

Update parse-torrent to the latest version 🚀
@feross

This comment has been minimized.

Copy link
Member

@feross feross commented May 23, 2018

@NumDeP We are an all-volunteer team with limited time. In open source, if you see a problem that needs fixing, it's your job to fix it! No whining, please.

As it turns out, some nice folks have submitted PRs to fix this:

#1384
webtorrent/bittorrent-protocol#36

@NumDeP

This comment has been minimized.

Copy link

@NumDeP NumDeP commented May 23, 2018

Hi @feross

When I initially came across this issue and wanted to continue using the product as I liked it's functionality compared to others (not to mention the partnership with Brave), I wanted to very briefly discuss with you something I had in mind with a freelance cryptographer surrounding the encryption feature and propose whether you like Tribler or Joystream and perhaps contemplate combining the solution/s because other torrent clients that have been for quite a while such as Bitcomet and Deluge are good services but don't receive the support they deserve and there's way too many services available which unlike Webtorrent are feature heavy and I thought it would have been an excellent way to support Webtorrent in the end.

I'm sorry to say that my earlier comment wasn't meant to be jaded at all :(

@feross

This comment has been minimized.

Copy link
Member

@feross feross commented May 25, 2018

@NumDeP Thanks for explaining, no worries. It's hard to read tone of voice over text. I'm sorry for assuming your tone was rude. No hard feelings ❤️

@heri16

This comment has been minimized.

Copy link

@heri16 heri16 commented Apr 29, 2019

Any reason why the PRs have not been merged?

@fijiwebdesign

This comment has been minimized.

Copy link

@fijiwebdesign fijiwebdesign commented Apr 30, 2019

I don't think ISPs will be throttling WebRTC any time soon.

UAE blocks WebRTC to control the Voip. I think encryption will NOT mitigate it since I vaguely remember peers not able to establish connections. This went on and off in the few years I was there.

I can't remember but there was 1 other country I had the same issue. It would be nice if a reproducible test could be put in place either using proxies? or tested by users on different ISPs?

This is important for webtorrent.app, but less important for webtorrent.js since WebRTC already automatically encrypts data streams.

Would be beneficial since there are a lot more countries monitoring/filtering/throttling BitTorrent traffic.

@jimmywarting

This comment has been minimized.

Copy link
Contributor

@jimmywarting jimmywarting commented Apr 30, 2019

UAE blocks WebRTC

That's stupid. Nobody should be allowed to control the internet. Damm those who go against net neutrality.

@NumDeP

This comment has been minimized.

Copy link

@NumDeP NumDeP commented Jul 10, 2019

Shadowsocks is a feature in this service https://mullvad.net/en/guides/intro-shadowsocks/ I wonder if it would it be possible to implement into webtorrent when it becomes obvious that the software, either standalone or in Brave-Browser isn't working due to ISP or nation states.

In addition, @figiwebdesign why didn't you just utilise a VPN to mitigate this yourself?

Here's the open source link to the feature - https://github.com/mullvad/shadowsocks-rust

@fijiwebdesign

This comment has been minimized.

Copy link

@fijiwebdesign fijiwebdesign commented Jul 11, 2019

In addition, @figiwebdesign why didn't you just utilise a VPN to mitigate this yourself?

@NumDeP Sure, but isn't really a solution for everyone. Baking something into WebTorrent is much better.

Note:

VPNs are banned in some countries - https://thebestvpn.com/are-vpns-legal-banned-countries/

For UAE specifically here is an extract:

A punishment of temporary imprisonment and a fine of not less than AED 500,000 and not more than AED 2,000,000, or either of these two penalties, shall be imposed on whoever uses a fraudulent computer network protocol address by using a false address or a third-party address or by any other means for the purpose of committing a crime or preventing its discovery.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants
You can’t perform that action at this time.