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

Muddy Boots TLS #574

Open
dnwiebe opened this issue Jan 19, 2025 · 1 comment
Open

Muddy Boots TLS #574

dnwiebe opened this issue Jan 19, 2025 · 1 comment

Comments

@dnwiebe
Copy link
Collaborator

dnwiebe commented Jan 19, 2025

An evil exit Node can't penetrate TLS encryption, but it can add large amounts of garbage ("mud") to the end of each TLS response packet, which the browser will discard, forcing the originating Node to pay too much money for exit and routing services. However, it can't disturb the packet-length field in the fourth and fifth bytes of the packet (16-bit big-endian), or the signature validation will fail.

In the Proxy Server, before relaying a TLS packet to the client, check its length against the length field in the packet. If the actual packet length is longer than the advertised packet length, malefactor-ban the exit Node and remove the route. Make sure this change is isolated to TLS-handling code only: we also handle other protocols that put other things in those two bytes.

Since this probably means the user will lose any application sessions he had going with the server (because different exit Node), provide some kind of alert so that the user knows why the session was broken.

@dnwiebe dnwiebe converted this from a draft issue Jan 19, 2025
@dnwiebe dnwiebe mentioned this issue Jan 19, 2025
@kauri-hero kauri-hero moved this from 🆕 New to 📋 Backlog in MASQ Node v2 Feb 2, 2025
@kauri-hero
Copy link
Contributor

Consider this across a risk-basis.

Could be an "easier-type" of attack vector to perform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📋 Backlog
Development

No branches or pull requests

2 participants