Skip to Main Content
Talk Intermediate First Talk

Challenges in building an MITM Proxy

Proposal status is Rejected
Session Description

0. Brief of basic features that MITM Proxy tools provide


1. Getting your requests to our proxy!

1.1 Brief about how a proxy works

1.2 Intercepting your requests - not as simple as just setting the proxy variables somewhere.

1.2.a. isolated browsers

1.2.b. ios and android

1.2.c. Terminal - Every language has their own convention

1.3 Proxy debugging tools are always flagged by MITM safegaurds.

1.3.a Serving our custom CA

1.3.b Making your browsers trust our custom CA

1.3.c Even harder for mobile devices

- VPNs and other network configurations


2. Handling all kinds of requests on www - wild-west-web

2.1 encoding (not everything is utf-8)

2.2 compression and chunking

2.3 The web is way more than just http (websockets, graphql, grpc, etc)


3. Building a performant traffic table

3.1 virtualize, virtualize, virtualize

- we still break on fast.com (i still don't know why)


4. Debugging customer issues

4.1 Debugging on call with breakpoints

4.2 Architecture - nodejs in electron renderer => Chrome devtools!

- How do you even get on a call when customer's proxy is having problems sending webrequests

Session Categories

FOSS

Speakers

Navdeep Singh Rathore
Navdeep Singh Rathore Software engineer | Requestly

I am a recent post-graduate but have been working as a founding engineer for almost 4 years now.

Have a huge interest in the web, especially all things related to networks.


I have been the main maintainer of our electron app for the past two years and it has been an interesting experience trying to build a useful client side proxy for developers just like me.