<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sadegh Hayeri</title>
    <description>The latest articles on DEV Community by Sadegh Hayeri (@sadeghhayeri).</description>
    <link>https://dev.to/sadeghhayeri</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F361986%2F44672986-045e-4ab1-bd00-9e67e4bb218c.jpeg</url>
      <title>DEV Community: Sadegh Hayeri</title>
      <link>https://dev.to/sadeghhayeri</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sadeghhayeri"/>
    <language>en</language>
    <item>
      <title>[GreenTunnel] is an anti-censorship utility designed to bypass the DPI systems
</title>
      <dc:creator>Sadegh Hayeri</dc:creator>
      <pubDate>Mon, 06 Apr 2020 20:30:55 +0000</pubDate>
      <link>https://dev.to/sadeghhayeri/greentunnel-is-an-anti-censorship-utility-designed-to-bypass-the-dpi-systems-pp2</link>
      <guid>https://dev.to/sadeghhayeri/greentunnel-is-an-anti-censorship-utility-designed-to-bypass-the-dpi-systems-pp2</guid>
      <description>&lt;p&gt;GreenTunnel bypasses DPI (Deep Packet Inspection) systems without changing IP or server endpoints. (Linux, macOS, and Windows + docker)&lt;/p&gt;

&lt;p&gt;The entire project is open source and you can check out the source code on my &lt;a href="https://github.com/SadeghHayeri/GreenTunnel"&gt;sadeghhayeri/greentunnel&lt;/a&gt; repo.&lt;/p&gt;

&lt;h4&gt;
  
  
  How does it work?
&lt;/h4&gt;

&lt;p&gt;There are gaps in providers in DPI.  They happen from what the DPI rules write for ordinary user programs, omitting all possible cases that are permissible by standards.  This is done for simplicity and speed.&lt;br&gt;
Some DPIs cannot recognize the HTTP request if it is divided into TCP segments.  For example, a request of the form&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET / HTTP/1.0&lt;br&gt;
Host: www.youtube.com&lt;br&gt;
...&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;we send it in 2 parts: first comes &lt;code&gt;GET / HTTP/1.0 \n Host: www.you&lt;/code&gt; and second sends as &lt;code&gt;tube.com \n ...&lt;/code&gt;. In this example, ISP cannot find blocked word &lt;strong&gt;youtube&lt;/strong&gt; in packets and you can bypass it!&lt;/p&gt;

&lt;p&gt;Or for HTTPS, Server Name Indication (SNI) is an extension to TLS (Transport Layer Security) that indicates the actual destination hostname a client is attempting to access over HTTPS. For this Web Filter feature, SNI hostname information is used for blocking access to specific sites over HTTPS. For example, if the administrator chooses to block the hostname &lt;strong&gt;youtube&lt;/strong&gt; using this feature, all Website access attempts over HTTPS that contain &lt;strong&gt;youtube&lt;/strong&gt; like &lt;strong&gt;&lt;a href="http://www.youtube.com"&gt;www.youtube.com&lt;/a&gt;&lt;/strong&gt; in the SNI would be blocked. However, access to the same hostname over HTTP would not be blocked by this feature. GreenTunnel tries to split first &lt;strong&gt;CLIENT-HELLO&lt;/strong&gt; packet into small chunks and ISPs can't parse packet and found SNI field so bypass traffic!&lt;/p&gt;

&lt;p&gt;We'd love to hear what you think about GreenTunnel, ideas for improvement, and features you want to see! Please, don't hesitate to open an issue.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>node</category>
      <category>security</category>
      <category>github</category>
    </item>
  </channel>
</rss>
