SNI阻断技术

CDN测评 0 55

SNI(Server Name Indication)

Server Name Indication(SNI)

SNI (Server Name Indication)是用来改善服务器与客户端 SSL (Secure Socket Layer)和 TLS (Transport Layer Security) 的一个扩展。主要解决一台服务器只能使用一个证书(一个域名)的缺点,随着服务器对虚拟主机的支持,一个服务器上可以为多个域名提供服务,因此SNI必须得到支持才能满足需求。


SNI产生背景

SSL以及TLS(SSL的升级版)为客户端与服务器端进行安全连接提供了条件。但是,由于当时技术限制,SSL初期的设计顺应经典的公钥基础设施 PKI(Public Key Infrastructure)设计,PKI 认为一个服务器只为一个域名提供服务,从而一个服务器上也就只能使用一个证书。这样客户端在发送请求的时候,利用DNS域名解析,只要向解析到的IP地址(服务器地址)发送请求,然后服务器将自身唯一的证书返回回来,交给客户端验证,验证通过,则继续进行后续通信。然后通过协商好的加密通道,获得所需要的内容。这意味着服务器可以在 SSL 的启动动阶段发送或提交证书,因为它知道它在为哪个特定的域名服务。


随着HTTP 服务器开启虚拟主机支持后,每个服务器通过相同的IP地址可以为很多域名提供服务。这种为虚拟主机提供通信安全的简单途径,却经常导致使用了错误的数字证书,因为服务器端无法知道客户端到底请求的是哪个域名下的服务,从而导致浏览器对用户发出警告。


不幸的是,当设置了 SSL加密,服务器在读取HTTP请求里面的域名之前已经向客户端提交了证书,也就是已经为默认域提供了服务。但是,一个服务器可能为上千个域名提供服务,不可能将所有证书都发送给客户端,让客户端一一验证,找到与请求域名对应的证书。SNI的设计目的是为了让服务器根据请求来决定为哪个域服务,这个信息通常从HTTP请求头获得。

 

这里不得不说一条阻断技术,其名为SNI。这个SNI封锁,在国内是不怎么被广泛讨论的封锁技术,但并不是代表着是莫须有的,而是互联网上在删除相关信息。他是基于服务器应答名的一种阻断技术。


当我们连接网络的时候,我们会发送IP帧来指定IP并得到路由器的寻址和指定IP服务器的回答,进而建立起网络连接,服务器会传输给你相关内容。


一般被大众所知的网络隔离手段有GFW(长城防火墙)+DNS污染(错误指定国外域名解析),而对SNI这个技术讨论较少。只是因为SNI是更加严苛的网络封锁和阻断技术,它通过侦测你访问的服务器应答名并比对网络服务商(国家网络安全处)内部的白名单进行放行。如果是不希望你建立起链接的服务器名,他们会直接进行屏蔽(丢帧操作),从而让你的设备无法得到服务器的回答帧,进而判断丢失链接,进而阻断网络访问。


而这SNI,升级型的互联网封锁技术应用在哪里呢?答案是上海。是的,就是网络主出入口的上海,并且逐渐向着全国蔓延普及中


通过SNI阻断,国家完全有能力让你断掉任何和国外的连接。但这并不是保险的,因为众所周知的隧道服务协议(VPN),隧道服务是通过将原有访问IP帧进行加壳的操作让数据层上的路由器判断错误,无法明文解析来绕过网络封锁的,所以可以访问外网。


但SNI的白名单模式之后,只要不是国家允许你访问的网站,你都得不到可靠链接,虽然理论上UDP协议可以绕过SNI封锁,但一般没有网站会用这种协议做网站,因为不可靠。


那么,为了绕过SNI封锁应该怎么做呢?国外的大厂和国内的大厂已经给出答案了,那就是代理服务器。换言之,虽然国内会直接封锁,但是通过国内访问能够联通的第三方在白名单上的服务器的话,也可以借此为跳板的访问目标服务器。


Good Luck!


也许您对下面的内容还感兴趣:

留言0

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。