2011年3月13日星期日

免封TWIP API制作方法


当然最佳方案还是HTTPS 但是由于有些客户端(手机)不接受非法的证书,这需要一定成本,我这里提出一个无成本的方案
需求:
自己的空间或VPS
添加域名的权限
更改客户端路由表的权限
描述:
目前升级过的GFW似乎会检测HTTP包的前面一小段,从而辨别出推特的请求,我们常用的如TWIP(包括客户端形式登录的)HTTP请求例如:(客户端 tweetdeck)
2113 "app:/TweetDeck.swf" "Mozilla/5.0 (Windows; U; zh-CN) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"
****(IP地址) - ******(推特ID号)  [09/Mar/2011:12:30:19 +0800] "GET /statuses/mentions.xml?
 count=100&since%5Fid=  ************* HTTP/1.1" 200 2951 "app:/TweetDeck.swf" "Mozilla/5.0 (Windows; U; zh-CN) 
AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"
如果对前1KB内容进行检测,很容易发现特征。
目前墙的运作模型似乎是,你使用明文API会被记录,但是不会马上被封,一段时间以后被封,这可能是人工复核的结果。封锁方式目前DNS污染和敏感词(RST)均有。
* 从这点上看,GFW已经具备了检测明文条件下API的能力,并可依据记录抓出推友(IP与ID号是对应的),因此我建议对安全需求高的推友使用HTTPS
方案:针对DNS污染和敏感词检测,我们建议采取“无域名方式”+HOSTS本地路由
即在你的服务器或空间上,把API设置为一个不存在的域名,或是一个其他的域名,然后在本地修改路由强制指定IP到该域名上。 这样对于墙来说,你是在访问一个不存在的网站,即无法拦截了。
api1.jpg
如把API的域名设置为“人民网” 并在自己的终端设备上把人民网的地址指定为API的地址。这样墙就无能为力了。上面的那个域名则是被检测出来并被封锁的,可以看到只进行了0.2M的流量,就被流量分析抓出来了。
*怎么改HOSTS? 请自己学习。
*终端如果是手机,还需要搞到HOSTS的权限,这里不讨论了。
其他问题?
1,会不会封IP?很可能。但是IP并不贵,你可能需要花钱经常换IP,所以有条件的还是买SSL最好。
2, 如果设置一个不存在的域名,如 www.notexist.com,仍有可能被墙,因为墙可以把notexist作为关键词来过滤,你的HTTP HEAD里面有这个关键词则还是会被拦截,好在没有成本,立即换一个就是了。 因此建议设置一个国内的网站地址如新华网人民网之类的,他无论如何不可能拦截。
3,怕跨省?怕跨省就别上推,或使用SSL VPN等。

没有评论:

发表评论