A questioned on how GreenTunnel and networking works ;D #185
|
"we send it in 2 parts: first comes GET / HTTP/1.0 \n Host: www.you and second sends as tube.com \n .... In this example, ISP cannot find blocked word youtube in packets and you can bypass it!" pls help :D |
Replies: 1 comment
The problemChina and Iran's GFW have a bunch of systems to detect and drop connections, one of which is the live packet sniffing system. TLS (SSL)Let's first see how a TLS handshake works The packet they are sniffing is the ClientHello packet. Which is structured like this: Plain HTTPThe same goes for plain HTTP, but this time, there is no SolutionThere is a big issue with these "live" systems. There are too many packets, and holding on to previous packets puts a huge toll on these systems as there are a lot of source-destination IP pairs. TLSThere is a solution for "large packets" is network layer 3 (IP Layer): Fragmentation Let's say I'm sending a packet of size Relying on GFW's inability to hold previous fragments of a ClientHello packet, we'll create artificial fragments from a ClientHello packet. Plain HTTPWhen the host header is seen, split the packet into 2 from the middle of the value of that host. DNSPlain DNS requests are sniffable (and hijackable). So we can use DNS over HTTPS and DNS over TLS to tackle this issue. ReferencesFragmentation image source: https://en.wikipedia.org/wiki/IP_fragmentation |



The problem
China and Iran's GFW have a bunch of systems to detect and drop connections, one of which is the live packet sniffing system.
It works on the 3rd layer of the network, the IP layer.
TLS (SSL)
Let's first see how a TLS handshake works
Those white boxes are not encrypted, so the only points they can sniff and make something out of what the connection is about are those parts.
The packet they are sniffing is the ClientHello packet. Which is structured like this:
As you can see, there are several extensions at the end.
One of these extensions is
server_namewhich for example could beyoutube.com.If the GFW sees a packet containing the
server_namewith unwanted values, it will d…