[原创干货] 域名解析/内容审查/封锁原理 这是 - Assbbs
原创干货 域名解析/内容审查/封锁原理 这是一篇科普文,用通俗易懂的语言像大家解释一下,当今世界上通用的域名解析/内容审查/封锁原理。 很多过程被精简,例如SSL握手流程,仅供参考不要当真。 1. 最初我们的网络是明文传输的,当时也没有墙,网络访问类似: 用户输入网址 DNS解析域名并返回IP(如果没有设置DNS则使用ISP默认DNS) 浏览器带网址和请求访…
原创干货 域名解析/内容审查/封锁原理 这是一篇科普文,用通俗易懂的语言像大家解释一下,当今世界上通用的域名解析/内容审查/封锁原理。 很多过程被精简,例如SSL握手流程,仅供参考不要当真。 1. 最初我们的网络是明文传输的,当时也没有墙,网络访问类似: 用户输入网址 DNS解析域名并返回IP(如果没有设置DNS则使用ISP默认DNS) 浏览器带网址和请求访问服务器IP 浏览器返回内容 2. 后来各国官老爷们发现某些内容不能让人查看,于是设置了几道枷锁: 用户输入网址 【ISP检测网址并封锁】 DNS解析域名并返回IP(如果没有设置DNS则使用ISP默认DNS) 【国内DNS检测域名并返回错误IP】 浏览器带网址和请求访问指定IP 【ISP屏蔽IP】 浏览器返回内容 【ISP检测内容并封锁】 3. HTTPS SSL 开始普及后,传输内容被加密,无法检测和封锁: 用户输入网址 【ISP检测网址并封锁】 DNS解析域名并返回IP(如果没有设置DNS则使用ISP默认DNS) 【国内DNS检测域名并返回错误IP】 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 浏览器带证书加密的网址和请求访问指定IP 【ISP屏蔽IP】 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 4. 官老爷们发现内容无法被审查,于是给SSL增加了证书封锁: 用户输入网址 【ISP检测网址并封锁】 DNS解析域名并返回IP(如果没有设置DNS则使用ISP默认DNS) 【国内DNS检测域名并返回错误IP】 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP 【ISP屏蔽IP】 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 5. 民间通过使用海外DNS(如8.8.8.8)解析域名解决DNS封锁: 用户输入网址 【ISP检测网址并封锁】 使用海外DNS解析域名并返回IP 海外DNS不会检测域名 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP 【ISP屏蔽IP】 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 6. 安全机构推出了 DNS OVER HTTPS DOH 来加密DNS解析过程:(新标准未普及) 用户输入网址 浏览器与DNS建立加密通讯 ISP无法检测传输的网址 使用海外DNS解析域名并返回IP 海外DNS不会检测域名 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP 【ISP屏蔽IP】 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 7. 后来人们发现使用动态IP可解决IP被屏蔽问题: 用户输入网址 浏览器与DNS建立加密通讯 ISP无法检测传输的网址 使用海外DNS解析域名并返回IP 海外DNS不会检测域名 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP ISP无法屏蔽不固定的IP 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 8. 但是官老爷学会了追踪IP并屏蔽,比如用于Google: 用户输入网址 浏览器与DNS建立加密通讯 ISP无法检测传输的网址 使用海外DNS解析域名并返回IP 海外DNS不会检测域名 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP 【ISP追踪不固定IP见一个屏蔽一个】 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 9. 用户发现修改HOSTS并自行指派IP可解决问题,比如从Cloudflare任播网络中随意选择IP: 用户输入网址 用户修改HOSTS指派IP 不走DNS不会检测网址 浏览器与指定IP服务器握手并获取TLS生成的证书(带域名) 【ISP检测证书中的域名并阻断传输】 浏览器带证书加密的网址和请求访问指定IP ISP无法追踪用户指派的IP 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 10. TLS生成的证书包含域名,ISP传输中可被检测和阻断,于是人们推出了 TLS1.3+ESNI Encrypted SNI 把证书中的域名也加密:(新标准未普及) 用户输入网址 用户修改HOSTS指派IP 不走DNS不会检测网址 浏览器与指定IP服务器握手并获取TLS1.3+ESNI生成的加密证书 ISP无法检测证书中的域名 浏览器带证书加密的网址和请求访问指定IP ISP无法追踪用户指派的IP 浏览器返回证书加密的内容 ISP无法检测证书加密的内容 浏览器用证书解密内容 前面标注“新标准未普及”的会随着网络更新换代逐步解决,但有几个问题在当今局面是无解的。 国内DNS主动屏蔽:绝大部分脑残用户不知道使用海外DNS。 海外DNS遭遇封杀:海外DNS服务器IP未来可能被封,只能通过修改HOSTS来解决域名屏蔽。 HOSTS不会修改:绝大部分脑残用户不知道如何修改HOSTS。 HOSTS地址匮乏:网站无法向用户提供充足的自选IP地址。 不过目前已经有情色网站给出了折中的解决方案,那就是制作网址发布器。 原理是解析国内网页(比如某Lofter帖子),获取最新(未被封锁)的服务器IP。 然后网址发布器自动修改HOSTS,绑定域名和最新的服务器IP,这样用户就可以访问了。 首发于屌丝论坛:https://assbbs.com/post-update-20920.htm