2015年12月29日星期二

5个常用的PDF在线转换网站全在这了!

       5个常用的PDF在线转换网站全在这了!
   今天这五个在线神器,可以帮你把 PDF 转换成Word、PPT、Excel、JPG、XLS等等,反过来转成 PDF 也完全没问题。是从20个类似网站中挑选出来的精品,界面好看功能好用,不用多说就是一个大写的赞。大学生和上班族们,是时候来一发Ctrl+D了!

Smallpdf  – 最全最好看,木有之一!

有这个感觉下边的都不用介绍了呢。昨天@曹将PPTao的长微博中看到的,功能超多,界面也非常友好,鉴于这个网站的转换成功率没有试过,所以下边有几个成功率不错的网站也一并推荐。

ConvertPDFtoWord  –  将 PDF 转 Word 档最简单的方法!

功能:将 PDF 格式转为 Word 格式。推荐原因:无须下载软件,跨平台、任何浏览器都能使用,对于中文支持佳。
此在线工具能将 PDF 档案转为 Word 格式,无须安装任何软件。使用方式很简单,只要进入网站,按下浏览,选择要转档的 PDF 文件,转文件程序就会自动转文件。对于中文的支持也相当不错,测试过几个档案都没发现乱码或转档失败的问题,而且上传下载速度都很不错。
此外,该网站还有提供其他功能:

PDFConverter – 在线 PDF 转 DOC、XLS、PPT 及建立 PDF 文件服务

功能:将 PDF 格式转为 Word、Excel、PowerPoint 等格式。推荐原因:只要三个简单步骤即可完成,能把 PDF 转为 DOC、XLS、PPT 格式,亦能在在线建立 PDF 文件,不过最大档案大小不能超过 2 MB。

PDF to Excel – 在线 PDF 转 Excel

功能:将 PDF 格式转为 XLS 格式推荐原因:免安装、无须注册、能转换带有表格的文件
能将 PDF 内的表格转为 Excel 的转档工具,只要三个步骤:上传、转档、寄回 Email 信箱,可以快速把 PDF 转档为 Microsoft Excel, OpenOffice 和 Google Docs 等程序可编辑的 XLS 文件。不过 PDF to Excel 只能拿来转含有表格(Table)内容的文件。

PDFmyURL – 在线将网页转为 PDF,输入网址立即用

功能:将网页转为 PDF 文件推荐原因:使用简单,只要输入网址就能立即转文件,还能将功能加入网站
透过 PDFmyURL,只要输入网址就能轻松将网站作成一个 PDF 档案,你也可以把这项功能加入网站里,每个页面放个”将网页储存为 PDF”的连结,使用者就能够在点击后自动将网页存成 PDF 。
转载:http://www.meowfly.info/?p=48

2015年12月16日星期三

资源

记录一些自己在使用的服务,备忘
DNS
阿里云
223.5.5.5
223.6.6.6
114DNS
114.114.114.114
114.114.115.115
更多
http://www.ip.cn/dns.html
Google搜索
(含网页、网盘,学术,翻译,图书搜索)
http://www.glgoo.com/
(含网页、图片、视频、学术搜索)
http://www.fqgoogle.com/
(含网页、图片、视频、google和bing和yahoo三种引擎英文版)
https://search.disconnect.me
各类搜索
http://so.chongbuluo.com/
图床
http://moefq.com/ (来自V2EX @Andy1999 据他本人表示“完全永久免费无广告无水印不限制流量”)
http://sm.ms (来自Showfom 图片的网址为这个开头 http://ooo.0o0.ooo/ 支持https )
http://x.mouto.org/wb/ (传到新浪微博)
http://x.mouto.org/wb/rar.html (上传rar文件和gif文件拼在一起,拓展名改回rar可以解压)
http://upload.otar.im/ (传到新浪微博、贴图库、imgur)
bt离线下载(限制1G)
https://put.io
http://zbigz.com
便宜vps存货状态
http://lowendstock.com
各种专用链转换
http://www.txqqwaigua.info/
10分钟匿名邮箱
http://www.10minutemail.com/10MinuteMail/
多引擎在线查毒
http://www.virscan.org/
http://www.virustotal.com/zh-cn/
可执行文件在线行为分析
http://habo.qq.com/
https://fireeye.ijinshan.com/
https://malwr.com/submission/
EXE文件在线分析(恶意软件分析,含屏幕截图,dll导入导出,访问文件等信息)
https://malwr.com/submission/
哼唱搜索音乐
http://www.midomi.com/
WebFTP/AjaxXplorer(支持远程上传)
https://webftp.dreamhost.com/
免费ftp空间
lokad.com (host:files.lokad.com,name:email,password:password)
cdn加速
http://www.incapsula.com (有日本节点,免费版不支持HTTPS,不限站点数量,每月50G,使用cname记录即可无需修改DNS,支持免费域名)
https://cn.cloudflare.com (免费用户无限流量,需要修改NS记录,其他限制不明)
https://orca.io (每天免费1G流量,支持cname,有国内节点)
https://developers.google.com/speed/pagespeed/service (Google PageSpeed Service)
支持PHP的免费PaaS
AppFog (2G内存,50G流量,6大机房可选,支持https,速度不错)
BAE (流量不限,其他限制不明)
cloudControl
dotCloud
Fortrabbit
Heroku
PagodaBox (200M内存,数据库10M,1G流量,支持https)
PHPCloud (Zend提供,空间500M,流量不限,支持https)
PHPer.jp
Orchestra
OpenShift (RedHat提供的云空间,支持https,1.5G内存,免费3G存储空间,无限流量,限制每月5万次点击)
RSS托管
https://feedburner.google.com/
RSS阅读器
http://www.feedly.com/ (不错)
http://www.inoreader.com/ (功能强大,甚至还能调整抓取频率等一系列功能)
网页转RSS
https://www.kimonolabs.com/ (功能强大,支持多种格式)
http://feed43.com/ (功能强大 匹配内容时{*}通配符(无用){%}是内容部分(要用){%N}调用第几个内容[N是数字])
http://feedity.com/ (更新慢,RSS链接带广告)
http://page2rss.com/ (检测任何网页的更新时间,每次页面更新创建一次RSS条目)
http://www.feedyes.com/ (似乎对中文会乱码)
http://fivefilters.org/ (特征选择使用css的class名或目标页面的链接部分字符串,支持合并多个rss并且能通过关键词过滤内容)
https://www.google.com/#q=webpage+into+rss+feed (网页生成RSS)
https://www.google.com/#q=rss+feed+mix (合并多个rss,一般都带过滤功能)
RSS转email订阅
http://www.feedblitz.com/ (免注册)
http://www.feedmailer.net/ (频率:每日/每周)
在线贴代码文本分享
https://code.csdn.net/explore/snippets (csdn code 代码片)
http://www.codepad.org/
http://www.pastebin.com/ (已经bye)
http://code.bulix.org/
http://www.fpaste.org/ (fedora提供,最长保留一天)
http://paste.debian.net/ (debian提供)
免费邮件数字证书
http://www.comodo.com/home/email-security/free-email-certificate.php
免费MYSQL数据库
http://www.db4free.net
获取当前时间
http://cgi.im.qq.com/cgi-bin/cgi_svrtime
网盘
http://www.mediafire.com/ 10G,可任务到50G,支持本地和网络上传(URL上传,离线下载,可获取外链直链用下载软件下载,速度快)
http://yun.baidu.com/ 2T免费,离线下载免费,bt离线下载
http://yunpan.360.cn/ 36T 容量不明,堪称无限,支持URL离线下载,有文件分享群系统
http://www.dbank.com 2T 支持云下载HTTP/BT/磁力链(稳定)
http://www.115.com/ 好像是100G容量了现在,支持离线下载BT和HTTP协议。(付费)
https://www.fileswap.com/ 15G 单文件250M 支持FTP,HTTP离线,邮件上传,下载超慢
http://www.adrive.com/ http远程上传(需装java插件,注册后免费60天)
dropbox外链改直链(?dl=1的话就会出现下载框,比如图片文件就会有所区别)
https://www.dropbox.com/s/zzdaet9j7lf534c/Ri2Vp.jpg?dl=0
https://dl.dropbox.com/s/zzdaet9j7lf534c/Ri2Vp.jpg?dl=0
开启公共文件夹
https://www.dropbox.com/enable_public_folder
Chrome 离线版
https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi
https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise64.msi
https://dl.google.com/update2/installers/ChromeStandaloneSetup.exe
https://dl.google.com/update2/installers/ChromeStandaloneSetup64.exe
https://dl.google.com/update2/installers/ChromeSetup.exe (在线安装版)
https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B88D62F46-324D-0C4A-1862-BC1FB51AD6DB%7D%26lang%3Dzh-CN%26browser%3D4%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26installdataindex%3Ddefaultbrowser/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi
http://www.google.com/chrome/eula.html?system=true&standalone=1 安装到所有用户版
http://www.google.com/chrome/eula.html?standalone=1 最新稳定版(stabel)安装到单用户版
https://www.google.com/chrome/browser/index.html?hl=zh-CN&standalone=1&extra=betachannel 最新测试版(beta)
https://www.google.com/chrome/browser/index.html?hl=zh-CN&standalone=1&extra=devchannel 最新开发版(dev)
https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg mac稳定版
http://apkleecher.com/?id=chrome 安卓版下载
https://support.google.com/installer/answer/126299?hl=zh-Hans Chrome备用离线安装程序引导网址
http://www.henkexue.com/ced.php Chrome Extension Downloader
SSL数字签名证书
https://letsencrypt.org/ 目前兼容性最好
http://www.startssl.com/ 最早进入信任列表的免费SSL证书
https://buy.wosign.com/free/ 根证书StartSSL SSL1年 EMAIL证书3年
http://www.cacert.org/ 只在Linux平台为信任列表
SSL证书链补全工具
https://certificatechain.io/
网盘共享
http://pan.baidu.com/s/1jGiNMC2#path=%252F%25E5%2585%25B1%25E4%25BA%25AB
网赚
YunFile
2345
杀毒
诺顿企业版
麦咖啡企业版-离线病毒库(升级镜像搭建,只要新建一个镜像任务就可以了,然后其他机器设置升级地址)
http://www.mcafee.com/apps/downloads/security-updates/security-updates.aspx
七牛邀请链接
https://portal.qiniu.com/signup?code=3lho3l2wgfzo2
验证邮箱地址是否有效
http://verify-email.org/
软件更新信息存放可以放在,论坛,博客,qq说说,记得编码成字母数字,加强兼容性问题,为了安全性,签名是有必要的

转载 http://www.x2009.net/res

免费智能DNS解析,DNSPOD & 阿里云解析

免费智能DNS解析,DNSPOD & 阿里云解析

随着原中国电信集团按南北地域分家,新的中国电信和网通集团随即成立,互联网的骨干网也被一分为二了,北有网通、南有电信。导致电信与网通之间的互连一直存在问题,智能DNS解析,是针对电信和网通互联互通不畅的问题推出的一种DNS解决方案。
一般情况如果网站访问量不大,我们很少会用到智能DNS解析这个功能,但是个人觉得还是有必要介绍一下,目前国内比较大的DNS服务提供商DNSPOD和阿里云解析均支持免费的智能DNS解析服务。
智能DNS解析的主要功能就是让电信用户解析到电信的线路,联通用户解析到联通线路,从而解决互联互通问题,但是一般我们的网站都只是默认解析到一个IP(当然某些IP具有BGP效果列外),因此就有部分用户反应网站打开慢的现象。

一、使用DNSPOD

1)首先注册一个DNSPOD注册一个DNSPOD账号那是必须的。
2)注册成功后,我们在控制台中添加一个自己的域名,以下使用yige.win作为演示。
add_domain
3)添加完成后,还没完事儿,需要您在域名注册商处将DNS修改为DNSPOD的DNS服务器,分别为:
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net,然后保存,假如我的域名yige.win在西部数码注册,那么就在西部数码修改域名的DNS服务器,注意不同注册商可能后台修改的地方不同,具体可以联系域名注册商。
edit_dns
4)保存之后等待DNSPOD检测生效,即可在DNSPOD中进行管理域名解析操作。
yige

一、使用阿里云解析

如果您的域名是在阿里云阿里云注册,那么默认就是使用的阿里云解析,无需做任何操作,如果您的域名不是在阿里云注册那么同理,按照上面使用DNSPOD的流程一样。
net_xiaoz
总结:通常情况我们注册域名后,域名注册商会提供默认的DNS服务器来解析,但是一些小的DNS服务商极不稳定,生效时间慢,解析故障等情况,如果您是面向国内用户,我个人是比较推荐使用DNSPOD或阿里云解析的。
另外DNSPOD和阿里云解析分免费版和收费版,一般情况免费版完全满足我们的需求,从功能上来说个人感觉DNSPOD更加强大一些,毕竟从一开始就是做DNS解析这块儿的,解析线路也比阿里云解析多一点。从稳定性上来说都比较好,还没遇到过这两家DNS出现出现故障。

本文永久链接: http://www.xiaoz.me/archives/6416

Nginx 反向代理的简单配置

Nginx 反向代理的简单配置


博客一直是放在DigitalOcean旧金山数据中心,可能近期部分朋友也发现电信线路到DigitalOcean旧金山疯狂的丢包,导致惨不忍睹,为了保证网站能正常访问,这么卡的速度怎么办?于是想到了使用Nginx反向代理。
什么是反向代理,下面是度娘的解释。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
nginx_fd
其实小z对nginx配置也并不是很了解,不过参考网上相关的文档,实现基本的反向代理还是没有多大问题,下面就来分享一下。此方法适用于军哥的LNMP一键包、AMH主机面板(当然AMH自带了反代模块)下面就开始。
下面是一段非常简单的反向代理配置:
1
2
3
4
5
6
7
8
9
10
11
server
        {
        listen          80;
        server_name     xiaoz.me www.xiaoz.me;
        location / {
           proxy_pass http://www.baidu.com;
           proxy_redirect off;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

字段解释:

  • server_name:您自己的域名
  • proxy_pass:需要反代的域名,这里填写的百度地址,那么效果就是访问www.xiaoz.me的时候会请求百度的内容并返回到客户端。
将上面的代码另存为”您的域名.conf”,比如xiaoz.me.conf,然后将这个配置文件放置到服务器的”/usr/local/nginx/conf/vhost”,然后重启下nginx服务,LNMP 1.2输入命令”lnmp nginx restart”,AMH 4.2输入命令”amh nginx restart”重启生效。
最后将您的域名解析到所在服务器进行访问即可,上面的规则只是实现了最基本的反向代理,另外还可以通过nginx规则实现关键词替换、缓存目录等,有兴趣的童鞋可以网上查找下nginx的更多相关资料。

本文永久链接: http://www.xiaoz.me/archives/6376

17monipdb实用的Tracert(路由跟踪)工具

17monipdb实用的Tracert(路由跟踪)工具


Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP数据包访问目标所采取的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
通常情况我们追踪路由一般是通过系统自带的Tracert命令来完成,无需安装额外的软件,不过这里介绍一款更加简单方便的路由追踪工具17monipdb,此工具是由ipip.net提供,个人感觉测试数据在国内比较精准。
这个工具到底有什么用?简单来说假设您的网站存放在国外服务器,您可以通过此工具来追踪路由,从您本地网络到国外服务器所经过的任何一个路由节点,通常我们也可以使用此工具来测试您本地网络到机房网络是否绕路。

特色功能:

  • 显示每个节点的路由位置
  • 带有地图显示功能,路线清晰明了
  • 可自由切换DNS服务器
tracert_xiaoz
下载地址:
17monipdb.zip [适用于Windows]
Best Trace for Mac [适用于Mac]

本文永久链接: http://www.xiaoz.me/archives/6343 

2015年12月9日星期三

tor的使用心得

tor的使用心得

这篇文章是网友Fang Tao写的tor使用心得,美博 园转载于此,与大家分享。原文为:写点简单的东西,也可以将它做为tor的使用教程看。因为我前几天说tor的速度也挺快,很多人并不相信。所以,写点东西出来,证明一下它并不是太慢,完全可以正常应用。
众所周知,Tor是个非常古老的软件,相比于xx-net,lantern,GoAgent等免费工具,它的岁数偏大一点。而且,因为它是三级跳的设置,所以,比那些仅一次中继的软件延迟要多一些。其入口和出口是可以设置的,但中间的一个无法设置,应该是出于安全考虑。我通过固定出口中继和不固定出口中继对比,发现固定出口中继的速度并不能提升多少,因为中间的middle relay同样无法设置,所以,要保证TOR速度的关键就是选择好入口。
按官方文件描述,对于象中国这一类有网墙的国家来说,选择的网桥连接的网桥就是入口。
目前在软件的设置中有两种网桥设置方式,一种是使用它内置的,因为内置的网桥公开了,所以被BAN的可能性基本是99.9%。这里面的meek除外。二种是设置自定义网桥。这基本决定了软件的速度。
1、找网桥
邮件或者直接在bridges.torproject.org上查询都可以。因为网桥不在官方的公开数据库内,所以在一些relay list网站或官方的atlas网站,不能按带宽寻找到满意的网桥,按官方的说法,一是保护二是防止滥用。
2、检验和积累
将网桥做一下检验,可以在官方atlas(https://atlas.torproject.org/)或者globe(https://globe.torproject.org/)上做检验。找带宽大的,标着stable和fast的网桥。同时,在有条件的情况下,仔细研究它的速度图表,应该能找到满意的。一般来说,我们通过官方的手段,一次能获得三个网桥(用obfs3,obfs4,scramblusuit),这三个中基本就有大于512K的,6个中一般会有大于1M带宽的。正常的浏览或youtube已经足够。将条件好的网桥放到TOR软件中,可以多放。按官方文件的说法,即使网桥不通也可以放在里面。经过我的长时间使用,发现TOR有一个连接规则,好像定期检验链接,并自动使用最快的连接。所以,不好的网桥放到里面也不影响速度,也不是默认使用自定义网桥里的第一个网桥,最起码我的第一个网桥带宽在600K左右的,就基本没被用过。
3、修改重建连接的时间
通过上面的设置,再经过几天的使用后,TOR的速度一般没啥问题了。但我们可以继续优化,在隐匿性和连接速度上做平衡。因为缺少的设置,tor的连接30秒就要切换,也就是说每一个链路不会保持在30秒以上,可以想见会有大量的时间浪费在链路的重建上。所以,使用NewCircuitPeriod参数,对torrc做一下修改,让它的链接重建间隔拉长一点,会发现浏览同一网站时,它的速度已经足够了。
4、固定出口
如果想再快一点,可以固定出口。理论上是减少了一个出口的选择时间。当然,出口的选择也很重要,我是选择了一个40M带宽的做为出口。
固定出口或者不固定出口,自己选择。
因为我是在十多年前用过TOR,最近一直没用过了,目前使用的是收费SS,也使用lantern或goagent,自9月发生突变以来,逐渐关注各类公益翻墙软件的进展。最近一个月才开始在TOR上下功夫。读了些官方的文档,也看了一些前人的设置指南。
因为隐匿性的要求,TOR的链接不会保持较长时间,同时,每次打开新网页或新链接,必定会重建链路,而且用过的链路10分钟内还不会再用,造成延迟过长。
通过前面的一个参数设置,可以使得TOR在同一页面(同标签,同网站)的延迟大大减少,但如何做到打开新页面(新标签,新网站)时也延迟减少,即不再重建链路呢?请明白人解惑。
另外,能否固定自己的链路呢?即从网桥、middle relay到出口节点,三个节点都可以自己设定。如果能做到这一点,相信其速度没任何问题。以前的时候可以设置,现在在软件的内置设置中找不到了,可以是考虑到安全性吧,特别是middle relay,不让固定,随机的。
这个软件在国外用的多,国内用的人基本没有吧。
前段时间新闻上说TOR在技术上有重大突破,使得连接速度真正有P2P的优势,但是还需要在隐匿性做均衡,如果真的如新闻上所说,那它的速度基本会秒杀目前市面上大部分免费和收费翻墙软件。

ShadowsocksR 3.6.3.2 版 发布,相当稳定的客户端版本

ShadowsocksR 3.6.3.2 版 发布,相当稳定的客户端版本

更新记录:

版本3.6.3 2015-11-10
1.实现CONNECT方法的http代理,减少访问https站的连接数
2.实现基本的http代理支持,更少资源占用(但存在BUG,试用阶段)
3.内置http代理启用开关(开启后privoxy不会运行)
4.修改生成链接格式,与SSR android兼容
5.在服务器配置的“备注”前打钩则把备注加在链接(二维码)内
6.支持前置socks5代理地址填写域名
7.增加一个常见域名列表(即白名单),foxyproxy可使用此列表替代,
    因foxyproxy使用绕过大陆IP列表访问facebook等站会很卡
其它说明:对于https站点,不管启不启用内置http代理,均无影响,
启用内置http代理会影响http站点,目前发现的问题是页面元素较多时有部分请求不正常,用chrome打开时有一定概率变成空白页。
版本3.6.2 2015-11-02
1.插件分类,独立出TCP协议字段(旧配置部分节点需要修改配置)
2.稳定性增强
3.更详细的log输出

2015年10月11日星期日

TOR与GFW的PK(1) ——MEEK,让Tor复活的英雄!

TOR与GFW的PK(1)
                          ——MEEK,让Tor复活的英雄!

最近对于我们翻墙党来说最好的消息就是TOR复活了。从2010年开始,GFW逐渐把绝大部分TOR中继节点和目录服务器的IP都列入了黑名单,导致TOR无法在墙内独立联网,只能靠网桥,但不少网桥IP也被GFW加入了黑名单,导致这几年TOR的翻墙效果一直都不好。

不过最近出的meek插件和obfs4网桥又成功让TOR复活了,除了这两种,TOR团队还开发了几种流量混淆插件:FlashProxy,FTE(Format-Transforming Encryption,格式转换加密),FTE-IPv6,ScrambleSuit,还有几种停止开发了。

obfs4我已经介绍过了[1],这次我具体说说MEEK,在以后的系列里具体介绍一下其他插件。

先插一件事:我一直在强调当使用TOR+前置代理时,前置代理看到的是强加密的TOR流量,但有些人就想到了一个问题:从前置代理服务器到出口节点,自然是强加密的TOR流量(此时可以把前置代理服务器理解为本机,入口节点只知道代理服务器的IP地址),但从本机到代理服务器的这段路呢?是不是只有翻墙工具提供的加密处理,而对于代理服务器而言能看到明文呢?

答案是:不是,从本机到代理服务器的这段路也是强加密的TOR流量。

这里要引入一个概念:”原生支持HTTPS“。我曾经多次提过不原生支持HTTPS的翻墙工具(如goagent)无法成为TOR的前置代理,为什么呢?

所谓”原生支持HTTPS“简单来说就是当单独使用某一翻墙工具时,你可以直接连接到被墙的HTTPS网站而不用对操作系统做任何改动。对,像goagent那样要导入自己的数字证书就是在对操作系统进行改动(关于这一点,我会在接下来分析各翻墙手段原理及安全性时进行详细说明)。
或者说连接到HTTPS网站时,从本机到目标网站服务器都是TLS强加密[2](我用流程图说明一下这段过程)

对于原生支持HTTPS的翻墙软件来说,在连接HTTPS网站时远程服务器只知道用户连接了哪个网站以及真实IP(一重代理),而完全不知道传输内容(关于这一点,我以后会具体说明其中的原理,现在只要知道这个结论就行了)。

那么TOR+前置代理时情况也是一样的,TOR从设计上就保证了从本机到出口节点都是HTTPS强加密,中间不会有任何解密过程,自然远程服务器也不会知道你的传输内容(前提是翻墙工具要支持原生HTTPS,所以不支持原生HTTPS的GAE类翻墙工具无法成为TOR的前置代理)。


明白了这些,就可以开始说MEEK了。MEEK的原理是将TOR流量伪装成普通的云计算流量从而骗过GFW,成功翻墙。
具体来说就是这样一个过程:本机上的TOR客户端与云计算平台服务器进行通信(GAE,amazon,azure),再与MEEK SERVER进行通信,再先与目录服务器通信获得中继节点信息再连接到入口节点,搭建TOR环路(我在下面给出原理图)。这一段路也是原生支持HTTPS的(TOR自带的流量混淆插件都原生支持HTTPS),而且直到出口节点,你的数据都是被TLS强加密着的,如果目标网站支持HTTPS,还会一直强加密到目标网站服务器为止,除非进行中间人攻击,否则没人知道你干了什么。

MEEK高明的地方就在于GFW无法区分被混淆过的TOR流量和普通云计算流量,但又不敢封杀云计算IP,因为不少墙内公司都依赖这些云计算服务,贸然封封锁会造成严重的经济损失。

(不过事实上已经封杀了GAE,但有解决方案:
1,从这里https://gitweb.torproject.org/pluggable-transports/meek.git/tree/HEAD:/appengine下载app,然后修改google ID(就像修改goagent的proxy.ini一样),然后像goagent一样的方法上传[3]。
2,在https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Go下载go_appengine与python,然后修改app.yaml中的google id号(替换里面的“meek-reflect”),然后再上传(运行go_appengine/goapp deploy)。可以像goagent一样上传多个,反正每个ID就1G的流量。
3,最后修改torrc文件,写上: UseBridges 1
 Bridge meek 0.0.2.0:1 url=https://yourapphere.appspot.com/front=www.google.com
ClientTransportPlugin meek exec ./meek-client --log meek-client.log申请GAE账号是需要手机号的,不过可以绕过[4]

*或者可以直接修改host填上可用的google IP,meek-google就复活了。*)

其他两种meek插件(amazon和azura)分别依赖于amazon和微软的云平台,也是可以自行搭建后给自己用的,不过操作复杂不适合小白,有兴趣的技术党可以看这里[5],里面描述了搭建过程,可以自己试试。

下一篇我会讲讲ScrambleSuit,obfs4和ScrambleSuit的原理有相通之处,诸位就把下一篇当成对于这篇[6]的补充好了。

补充说明:后来Tor开发者又专门叙述了如何应对MEEK被屏蔽,请看https://plus.google.com/109790703964908675921/posts/26zCmDmjYXP

最后照例附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about

参考资料:
1,TOR网桥,主动探测攻击和烧钱的GFW
https://plus.google.com/109790703964908675921/posts/aLcyVfcH7mP
2,SSL/TLS的原理以及互联网究竟是如何工作的(3)
                                    ————TLS的专场!
https://plus.google.com/109790703964908675921/posts/NwWoGQ9mcDY 
3,http://allinfa.com/goagent-v322-gae.html
4,http://blog.sina.com.cn/s/blog_4c451e0e01018rdx.html
5,MEEK设计文档https://trac.torproject.org/projects/tor/wiki/doc/meek#Distinguishability
6,TOR网桥,主动探测攻击和烧钱的GFW
https://plus.google.com/109790703964908675921/posts/aLcyVfcH7mP

Ghost Assassin的TOR与GFW的PK系列文章


Ghost Assassin的TOR与GFW的PK系列文章


TOR网桥,主动探测攻击和烧钱的GFW
随着GFW的不断升级,goagent以及其他基于GAE开发的翻墙软件越来越不好使,自由门和无界还有赛风在很多地方也瘫痪了,VPN的PPTP协议与L2TP协议也不再安全[1](PPTP很容易被 暴力破解,L2TP很容易被干扰成明文),OPENVPN被特征检测搞得半残了,其他手段基本上是要花钱或者进行复杂配置,所以TOR又成了很多人的选择,特别是TOR最新出了MEEK插件和obfs4网桥。
MEEK插件我曾经介绍过[2],这次就来聊聊obfs4网桥究竟有什么特别之处以及GFW是如何屏蔽TOR的。
2011年有中共匪国的TOR用户报告说一个网桥在使用几分钟之后就被GFW屏蔽了[3](当时是obfs2网桥,后来TOR官方正式宣布放弃对obfs2网桥的技术支持),GFW究竟是如何做到的呢?
注意我前面提到的一个词:特征检测。简单来说,很多互联网连接建立时都会有着某些特征(可以想象成他们都是一些有个性的人,打招呼时用的是自己的方式,从而很容易被别人从人堆里认出来),这些特征在一大堆流量里是很容易被认出来的(例如一大堆明文流量里的加密流量就非常显眼,TOR也有一样的问题,所以墙内使用TOR的人越多,诸位TOR用户和我就越安全,请为了自己的安全推广TOR),而GFW就是利用了这一点:众所周知墙内无法直连TOR(不过前段时间有份实验报告中提到在教育网TOR还是可以直连的,有条件的人可以试一下,不过即使是能直连也建议不要直连,因为TOR流量实在是太特别了,一定会成为重点监控对象,最好通过网桥或者前置代理掩盖TOR流量),因为GFW一是把绝大部分中继节点和目录服务器的IP都加入了黑名单(TOR要先与目录服务器连接获取节点信息再与节点连接建立环路,TOR中继的信息都是公开的[4],GFW的走狗们去网站就能把中继节点的IP放到黑名单里了),二是利用特征检测识别出了TOR流量并在TOR请求连接时进行阻断,具体来说就是放过走到墙外的TCP请求流,阻断返回的TCP数据流,这样TOR就无法正常建立连接了。
为了对付封锁,TOR团队就开发出了网桥,不过obfs2网桥依旧是在连接时会表现得很特别[3](具体来说GFW用了DPI(Deep Packet Inspection,深度包检测[5])检测到当一个天朝用户试图连接网桥或中继节点时,TOR客户端会发送一个密码列表进行TLS连接(TLS hello,为了与网桥建立HTTPS连接,TOR连接直到出口节点都是HTTPS强加密连接),这一过程非常独特,只有TOR会这么表现,那么GFW就会意识到这是在与TOR网桥进行通信),GFW意识到这一点后就进行了主动探测攻击(我试着用流程图表示出攻击过程),从而将网桥废掉。
obfs3比起obfs2改进了不少,但依旧可以被GFW用主动探测攻击屏蔽,于是为了应对GFW,obfs4横空出世了[6]。

看看obfs4的配置:Bridge obfs4 178.209.52.110:44367E72FF33D7D41BF11C569646A0A7B4B188340DF cert=Z+cv8z19Qb8RxWlkagp7SxiDQN++b7D2Tntowhf+j4D15/kLuj3EoSSGvuREGPc3h60Ofw iat-mode=0
比起obfs3,后面多了一大堆:“67E72FF33D7D41BF11C569646A0A7B4B188340DF”是建立连接时的验证密码,和后面的证书“cert=Z+cv8z19Qb8RxWlkagp7SxiDQN++b7D2Tntowhf+j4D15/kLuj3EoSSGvuREGPc3h60Ofw”一起建立了一个严格的连接验证机制,这样一来GFW就没办法伪装成TOR客户端与网桥进行连接了,而且也改进了连接时所用的协议,GFW要想进行特征检测很困难。

但其实还有一个问题没有解决:网桥不是公开的,但可以去网站或者通过邮件获取网桥[7],那么,GFW的走狗们也可以这么做,然后把获取到的网桥加入黑名单,从而使得诸位找网桥变得困难。

关于如何解决这一点我有一个想法:网桥中继也许可以采取像自由门一样的动态IP技术(很多人以为自由门就是简单的连接代理服务器然后翻墙,但如果就是如此,那么自由门早就废掉了,我打开资源监视器之后发现自由门同时与不少IP进行连接,而且不断在变动,还与两个后面相同的域名一直连接着:111-252-81-24.dynamic.hinet.net61-230-111-251.dynamic.hinet.net,我打不开这两个域名对应的网页,但应该是动态网公司的服务器域名,可能自由门就是从这里即时更新代理服务器IP,使共匪无法封锁;还有一个61-67-165-host139.kbtelecom.net.tw,依旧是打不开,这三个域名应该对应的都不是网页,而是IP地址库),每个网桥都拥有IP地址库,当第一次用网桥连上TOR后就即时变换IP,如果发现网桥被封锁就自动与IP地址库连接(我不知道动态网公司是怎么做到不让共匪全面封锁他们的主机的,也许是在重要的平台上搭建的地址库(例如云计算平台,例如电子商务平台。解说一下:为了节省成本,不少网站都采用了在同一台服务器主机上搭建VPS共用IP的策略,所以GFW的IP屏蔽误伤率非常高))更新网桥IP从而重新连接上。但自由门一直都不开源,动态网公司也一直不肯说明技术细节,所以要实现这一想法非常困难:(

论技术,GFW没有多高明,特征检测IP屏蔽之类早就不是新领域了,要不是该死的思科(卖给共匪核心技术和大量设备),GFW都不见得能搭建起来,但GFW通过砸了N多天朝屁民们的血汗钱,硬是将95%的流量困在了墙内!共匪倒台之后,建立维护GFW的钱一定要回到我们每个人手上!

最后照例附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about
附录:
补充一下torrc文件设置方法(网桥版本):
AvoidDiskWrites 1
SocksListenAddress 127.0.0.1
ControlPort 9151
SocksPort 9150
HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
UpdateBridgesFromAuthority 1
DirReqStatistics 0
ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu},{br},{kz},{kw},{lk},{ci},{tk},{tw},{kp},{sy}
ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu},{br},{kz},{kw},{lk},{ci},{tk},{tw},{kp},{sy}
StrictNodes 1
==========
TOR与GFW的PK(1)
最近对于我们翻墙党来说最好的消息就是TOR复活了。从2010年开始,GFW逐渐把绝大部分TOR中继节点和目录服务器的IP都列入了黑名单,导致TOR无法在墙内独立联网,只能靠网桥,但不少网桥IP也被GFW加入了黑名单,导致这几年TOR的翻墙效果一直都不好。
不过最近出的meek插件和obfs4网桥又成功让TOR复活了,除了这两种,TOR团队还开发了几种流量混淆插件:FlashProxy,FTE(Format-Transforming Encryption,格式转换加密),FTE-IPv6,ScrambleSuit,还有几种停止开发了。
obfs4我已经介绍过了[1],这次我具体说说MEEK,在以后的系列里具体介绍一下其他插件。
先插一件事:我一直在强调当使用TOR+前置代理时,前置代理看到的是强加密的TOR流量,但有些人就想到了一个问题:从前置代理服务器到出口节点,自然是强加密的TOR流量(此时可以把前置代理服务器理解为本机,入口节点只知道代理服务器的IP地址),但从本机到代理服务器的这段路呢?是不是只有翻墙工具提供的加密处理,而对于代理服务器而言能看到明文呢?
答案是:不是,从本机到代理服务器的这段路也是强加密的TOR流量。
这里要引入一个概念:”原生支持HTTPS“。我曾经多次提过不原生支持HTTPS的翻墙工具(如goagent)无法成为TOR的前置代理,为什么呢?
所谓”原生支持HTTPS“简单来说就是当单独使用某一翻墙工具时,你可以直接连接到被墙的HTTPS网站而不用对操作系统做任何改动。对,像goagent那样要导入自己的数字证书就是在对操作系统进行改动(关于这一点,我会在接下来分析各翻墙手段原理及安全性时进行详细说明)。
或者说连接到HTTPS网站时,从本机到目标网站服务器都是TLS强加密[2](我用流程图说明一下这段过程)
对于原生支持HTTPS的翻墙软件来说,在连接HTTPS网站时远程服务器只知道用户连接了哪个网站以及真实IP(一重代理),而完全不知道传输内容(关于这一点,我以后会具体说明其中的原理,现在只要知道这个结论就行了)。
那么TOR+前置代理时情况也是一样的,TOR从设计上就保证了从本机到出口节点都是HTTPS强加密,中间不会有任何解密过程,自然远程服务器也不会知道你的传输内容(前提是翻墙工具要支持原生HTTPS,所以不支持原生HTTPS的GAE类翻墙工具无法成为TOR的前置代理)。
明白了这些,就可以开始说MEEK了。MEEK的原理是将TOR流量伪装成普通的云计算流量从而骗过GFW,成功翻墙。
具体来说就是这样一个过程:本机上的TOR客户端与云计算平台服务器进行通信(GAE,amazon,azure),再与MEEK SERVER进行通信,再先与目录服务器通信获得中继节点信息再连接到入口节点,搭建TOR环路(我在下面给出原理图)。这一段路也是原生支持HTTPS的(TOR自带的流量混淆插件都原生支持HTTPS),而且直到出口节点,你的数据都是被TLS强加密着的,如果目标网站支持HTTPS,还会一直强加密到目标网站服务器为止,除非进行中间人攻击,否则没人知道你干了什么。
MEEK高明的地方就在于GFW无法区分被混淆过的TOR流量和普通云计算流量,但又不敢封杀云计算IP,因为不少墙内公司都依赖这些云计算服务,贸然封封锁会造成严重的经济损失。

(不过事实上已经封杀了GAE,但有解决方案:
1,从这里
https://gitweb.torproject.org/pluggable-transports/meek.git/tree/HEAD:/appengine下载app,然后修改google ID(就像修改goagent的proxy.ini一样),然后像goagent一样的方法上传[3]。
2,在
https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Go下载go_appengine与python,然后修改app.yaml中的google id号(替换里面的“meek-reflect”),然后再上传(运行go_appengine/goapp deploy)。可以像goagent一样上传多个,反正每个ID就1G的流量。
3,最后修改torrc文件,写上: UseBridges 1
Bridge meek 
0.0.2.0:1 url=https://yourapphere.appspot.com/front=www.google.com
ClientTransportPlugin meek exec ./meek-client –log meek-client.log申请GAE账号是需要手机号的,不过可以绕过[4])

其他两种meek插件(amazon和azura)分别依赖于amazon和微软的云平台,也是可以自行搭建后给自己用的,不过操作复杂不适合小白,有兴趣的技术党可以看这里[5],里面描述了搭建过程,可以自己试试。
下一篇我会讲讲ScrambleSuit,obfs4和ScrambleSuit的原理有相通之处,诸位就把下一篇当成对于这篇[6]的补充好了。

最后照例附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about
13
47
=================
                  TOR与GFW的PK(3)————披着羊皮的狼

话说可恶的共匪GFW对于加密流量那是特别关照啊,特别是对于出入443端口的HTTPS流量严加监视,一发现有异常就阻断,很多时候还故意随机丢包劣化传输质量,google2010年退出天朝市场之后就是遭到了此等待遇从而使自己在天朝的市场份额由30%多降到了不足3%[1]。

至于Tor,那更加是一直被GFW恨之入骨杀之而后快的,尤其是在GFW引入了基于DPI(Deep Packet Inspection,深度包检测)[2]的IDS(Intrusion Detecting System,入侵检测系统)[3]之后,特别的加密流量如Tor流量可以说被完全封杀了。怎么办呢?

英勇的Tor团队的成员们开始想办法了:“据研究大部分企业级和国家级的DPI都采用基于正则表达式[4]的检测算法,GFW很可能也是如此。”“对,天朝曾经向伊朗出口GFW技术[5],而伊朗采用的DPI—X就是采用基于正则表达式的检测算法的[6],那么天朝应该也一样。”

“GFW通过DPI识别协议并对“非法”协议进行封锁,阻断相应连接,但常用的合法协议(例如HTTP)只能放行,要是封锁了,那就等于直接断网了。”“那么就把狼披上羊皮吧!”

看上去正常的流量,看上去不正常的流量;可恶的GFW,杀死了加密的流量;穿上羊皮,恶狼变成了小羊;出入80端口的Tor,蒙在鼓里的GFW;冲向自由的互联网,对GFW宣战!试问,谁是幕后英雄?

FTE(Fomat-Transforming Encryption,格式转换加密)[7]!FTE成功把特别的加密Tor流量伪装成了明文的HTTP流量!事实上,FTE可以把输入的协议转换为任意指定的目标协议从而欺骗GFW!

“究竟是怎么一回事?加密流量变成非加密流量?”“不,不是变成非加密流量,而是进行格式转换把基于正则表达式的DPI检测算法给耍了,让基于DPI的IDS认为传输的是非加密流量。”

这么说吧,FTE实际上是这么一个工作流程:密钥生成,加密和解密。实际上,整个FTE就是在常规对称加密算法(基于AES的CTR模式[8])的基础上叠加了格式转换编码算法,加密时输入随机生成(实际上是通过精心设计的伪随机算法生成)密钥,数据和想要转换的数据包格式格式并将相应数据包先加密再转换为对应的格式,然后传输到FTE网桥(即服务器端)之后再进行解密得到数据。当然客户端并不是支持所有的格式的,所以输入的格式必须在客户端支持的格式集合当中。

“但是在加密之前必须要先协商好使用哪种格式以及进行密钥交换,要不然无法正常传输数据啊!”“没错,但很显然不能明文协商,否则直接被DPI了。”“那怎么办呢?”

FTE采用了这样一种协商策略:客户端将密钥和接下来的连接里采用的格式打包之后加密(这里存疑,密钥交换应该是和格式协商一起进行的,但我看了好几遍论文[7]里描述FTE记录层工作过程的部分都没有找到对密钥交换的说明,但密钥交换也只能和协商过程一起进行了,其他时候没有机会的),这种加密算法将massage伪装为任意一种合法格式,传输到服务器端之后服务器再一个个格式试着解密过去(服务器事先放置了解密密钥),直到成功解密为止。FTE特别的一点是上行(客户端到服务器端)流量和下行(服务器端到客户端)流量可以采用不同的伪装格式,协商的时候就可以选择好想要使用的格式。

“好像还有个中间人攻击的问题。”其实没有了,GFW拿不到服务器端事先放置好的解密密钥,没法获得后来的加密过程中使用的密钥,根本就无法进行中间人攻击。而且客户端还会进行数字签名(采用HMAC-SHA256签名算法[9]),GFW更是无从下手了”“对,同时还可以保证数据包不被篡改。”

说起来也没什么特别的:GFW用正则表达式识别谁是狼谁是小羊,那么FTE就把恶狼(Tor流量)给披上羊皮(进行格式转换,简单来说就是在加密数据的基础上重新构造数据包,让数据包的结构看起来像是被合法协议处理过的数据包),从而成功把GFW给耍了。

实验结果[7]表明FTE成功把那些基于DPI的IDS们耍的团团转,一个个的正则表达式检测算法全都失效了,不过GFW却没那么好对付:实验发现如果被FTE处理过的流量走443端口,就会遭到GFW的主动探测攻击[10],而FTE没有对于客户端的身份认证机制,无法对抗主动探测攻击,就这么被屏蔽了。不过,如果走80端口(也就是伪装成HTTP流量),GFW是无法识别的,可以成功突破封锁。

就像007一样,总是伪装成平民;就像英勇的47(玩过hitman系列的应该清楚),“喂喂,我是自己人”!对抗肮脏的DPI,需要勇气更要智慧;专心于一点,单调但聪明,耶耶,这就是对抗封锁的幕后英雄——FTE!

下一篇,Flashproxy!

最后附上科普文链接集合:
https://plus.google.com/u/0/109790703964908675921/about

参考资料:
1,谷歌退出中国大陆事件
https://zh.wikipedia.org/zh/%E8%B0%B7%E6%AD%8C%E9%80%80%E5%87%BA%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E4%BA%8B%E4%BB%B6
2,Firewall Evolution – Deep Packet Inspectionhttp://leetupload.com/database/Misc/Papers/Web%20Papers/Firewall-Evolution-deep-packet-inspection.pdf
3,网络安全入侵检测 A 研究综述http://www.jos.org.cn/1000-9825/11/1460.pdf
4,正则表达式https://zh.wikipedia.org/zh/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
5,http://www.chinagfw.org/2014/03/blog-post_12.html
6,Iran Vows to Unplug Internethttp://www.wsj.com/news/articles/SB10001424052748704889404576277391449002016?mg=reno64-wsj&url=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052748704889404576277391449002016.html
7,Protocol Misidentification Made Easy with Format-Transforming Encryptionhttps://kpdyer.com/publications/ccs2013-fte.pdf
8,Comments to NIST concerning AES Modes of Operations:CTR-Mode Encryptionhttp://web.cs.ucdavis.edu/~rogaway/papers/ctr.pdf
9,https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
10,TOR网桥,主动探测攻击和烧钱的GFWhttps://plus.google.com/109790703964908675921/posts/aLcyVfcH7mP
======================
TOR与GFW的PK(4)
————“快来我这里,冲向自由世界!”
开始之前先和大家说一个坏消息:今天翻墙项目fqrouter关闭了[1],很可能是因为GFW对google IP的疯狂封锁导致项目难以继续。在此,本幽灵向fqrouter的作者致敬,同时表示惋惜,毕竟fqrouter迄今为止是移动端最优秀的翻墙工具了。希望fqrouter早日有继承者,继续与该死的GFW战斗直至GFW倒塌!
说起来,GFW可是越来越疯狂了啊,而普通的翻墙工具基本上都是依赖于一个或少数几个长期运行的代理服务器的,这样真的很容易被封锁:代理服务器的IP地址是固定的,GFW只要将这个IP地址加入黑名单中就能让翻墙工具失效。怎么办呢?
你应该猜到了:耶,咱们英勇的Tor团队又想出新招数了!
“既然长期运行的少数代理服务器容易被封锁,那么我们就准备大量的代理服务器吧!”“可是租用服务器的价钱可不低,而且说起来地址还是固定的,不能有效对抗封锁,要知道google那么多IP都被GFW封掉了大半呢!被封锁之后,服务器就没用了!”“哎呀,我们干嘛要去租服务器?我们直接让用户的PC变成服务器不就行了吗?”“你是说网桥中继?我们早就想到这一点了啊,但GFW也封锁了很多网桥啊,被封锁的网桥就起不到突破封锁的作用了啊。”“不,不是长期生存着的网桥中继,而是寿命短暂但数量极多,GFW封锁不过来的代理服务器。”“有这种代理服务器?”
当然有了,就是flash proxy!基于浏览器的短寿但数量极多的代理服务器!(这个flash的意思可不是flash插件,而是“闪现”(游戏迷应该很熟悉这个技能),或者说顿悟)
从这里瞬移到那里,连接自由的英雄;摆脱服务器的束缚,游荡在自由之地;Flash和JavaScript,是侠客也是恶棍[2];向两边发出邀请,一起来玩吧!存在一瞬间,却拥有永远,这就是——flash proxy!(这里面每一句都对应着flash proxy的特性,看完你就会明白的)
flash proxy可不是一般意义上的代理服务器:一般意义上的代理服务器可以主动发起一个连接,也可以监听等待其他主机的连接请求再被动建立连接;而flash proxy只能主动发起连接,无法被动建立连接。[3]
“为什么?”“因为flash proxy是一个依赖于浏览器的存在,所有在浏览器内运行的程序都无法被动建立连接。”“依赖于浏览器的存在?”
flash proxy的实质是网页程序的一部分:最早是Adobe Flash,后来改用JavaScript,只要事先在网页上嵌入这段程序,当任意用户用自己的浏览器访问对应的网站时,浏览器内就会同时开始运行flash proxy,此时这个用户就成了代理服务器了。[3]
“等一下,这需要对应网站的配合吧?”“当然需要了。”“那么,如果GFW封锁了对应网站呢?”“没有关系,因为并不是网站服务器在充当flash proxy,而是访问网站的用户浏览器在充当flash proxy。那么多分散的个人用户,GFW封锁得过来吗?”“GFW一定很生气:)”
“喂喂,有新问题啦!一般的翻墙工具都是客户端发起连接,代理服务器被动建立连接,可是现在flash proxy无法被动建立连接,那么该怎么办啊?”“这还不好办,让flash proxy主动发起连接吗!”“我说,该怎么主动发起连接?你丫上哪知道客户端IP地址去?”
当一个flash proxy开始运行之后,它首先会与一台特别的服务器建立连接(就叫这台服务器“主持人”吧!),采用的是轮询的方式:每隔一段时间就去问一下“喂,主持人,有客户端想要建立连接吗?”如果主持人回答“有,某某(客户端IP地址)想要建立Tor电路,快去帮忙吧”,那么flash proxy就会主动发起并建立与对应的客户端连接(准确来说,是与对应Tor客户端的传输插件建立连接),接着主动发起并建立与任意的Tor中继节点(准确来说也是与安装在节点上的传输插件建立连接),然后就开始代理客户端与Tor中继之间的通信了。此时flash proxy还起到了目录服务器的作用,所以这种情景下客户端不用与目录服务器建立连接了。[3]
“刚刚我想到一个问题:这种基于浏览器的flash proxy寿命可是很短的,用户只要关闭对应网页就会停止运行,那么根本就无法支撑起长时间的Tor电路吧?”“没错,但别忘了有很多这样的proxy呢,事实上每次都会有五个活动的flash proxy同时与一个客户端传输插件建立连接(但其中四个都是空连接,只有一个是真正在代理Tor流量的),如果其中那个真正工作的flash proxy下线了,那么客户端传输插件就会马上切换到其他任意一个上面重新建立Tor电路的,同时一个新的flash proxy就会在主持人的命令下前来建立连接,从而长期保持着(在Tor用户看来)稳定的连接。[3]”
主持人服务器……主持人服务器是怎么知道客户端信息的?
“这么说,客户端在一开始是要和主持人服务器建立连接了?”“没错,这个主持人服务器和Tor网络的目录服务器是有着类似之处的,只不过目录服务器存储节点IP而主持人服务器存储客户端IP。客户端在一开始就会与主持人服务器建立连接,把自己注册进去,然后主持人服务器就可以将客户端地址提供给flash proxy了。”
GFW:“哈哈,我终于找到封锁你们的办法了!只要在客户端一开始和主持人服务器建立连接时切断连接不就可以了吗?主持人服务器也就那么几台,要封锁太容易啦!”
GFW,不要笑得太早!我们早就想到你会用这一招了!
“我们怎么会傻到直接与主持人服务器建立连接呢?看看Rendezvous Protocol的威力吧!”“这什么?会合协议?这些都是什么啊?”
两个人为了避开第三方的追踪,选择了去一个安全的第三方场所会合并交换信息,而不是直接去对方家里,这样第三方就没法知道其中某人的家的位置了,这就是会合的真正含义啊。在这里,会合协议有两种实现形式[3]:
1,借助云存储服务器的力量:这种思路其实就是MEEK[4]的基本思路,客户端先与亚马逊等云服务器建立连接并将自己的IP地址发过去暂时存储起来,主持人服务器再读取存储在云服务器中的IP地址。通常过程是这样的:主持人服务器注册一个云平台账号,申请到存储空间,任何人都可以在这个空间进行写操作,但只有主持人服务器可以进行读操作。云平台太重要,GFW不敢随便封,而封锁主持人服务器的IP地址也没有意义,因为主持人服务器根本就不需要与GFW内的客户端建立连接。(这一过程中云平台就是客户端与主持人服务器的会合处)
2,借助愿意帮忙的网站的力量:客户端首先随机向一个愿意帮忙的网站的服务器发起连接请求(请求一个不存在的页面),将特殊的会合信息嵌入标准HTTP请求中(信息是被加密的,格式为0^32||IP地址,嵌入到会话cookie头部中,GFW根本就无法分辨)。当目标网站服务器接收到这一信息后,就会试图对会话cookie进行解密,如果发现有0^32,就直接把被编码的IP地址传送给主持人服务器,同时向客户端响应200(HTTP服务器头文件响应码之一,表示连接正常)以告知客户端已成功将IP地址注册到主持人服务器上(或者叫做会合请求成功)
现在总结一下整个过程:首先,客户端把自己的IP地址传输给主持人服务器;然后,主持人服务器在flash proxy前来询问时告知目标客户端IP;接着,flash proxy同时向客户端传输插件和中继节点传输插件发起并建立连接,最后开始代理Tor流量,建立Tor环路。(我这回直接偷懒一下,把Tor官网上的原理图[5]搬过来了:)解说一下:第一步,客户端使用安全会合协议将IP地址注册到主持人服务器上;第二步,flash proxy轮询;第三步,主持人服务器通知flash proxy去帮助对应IP地址的客户端;第四步,flash proxy发起并建立与客户端传输插件的连接;第五步,发起并建立与Tor中继节点的传输插件的连接,最终成功建立Tor电路。当一个flash proxy下线之后,客户端传输插件马上切换到另一个flash proxy上继续连接。)
flash proxy在发起连接的时候协议指纹还是比较明显的,不过随着主流浏览器普遍开始支持WEBsocket(flash proxy通信使用的API(应用程序编程接口))后这一点会得到改善,越多普通浏览器流量使用WEBsocket,GFW越不敢进行特征检测。
我们寿命很短,可是我们人多;藏在合法流量中,GFW你快来找啊!主动发起连接,突破该死的封锁;都是英雄啊,flash proxies!
这是该系列的最后一篇了,到此所有流量混淆插件均介绍完毕(我手头还有一份论文,不过那个插件已经停止开发了,而且原理与FTP[6]类似,暂时先不介绍了)!(小声)可能还会进行一些补充吧:)

最后附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about
参考资料:
1,
http://www.chinagfw.org/2015/01/fqrouter.html#links
2,Tor Browser的秘密(1)
                                    ——”Big Friend is watching you!”
https://plus.google.com/109790703964908675921/posts/MfMqFXmGMQk
3,Evading Censorship with Browser-Based Proxieshttps://crypto.stanford.edu/flashproxy/flashproxy.pdf
4,TOR与GFW的PK(1)https://plus.google.com/109790703964908675921/posts/CCS4c7jn3t9
5,https://crypto.stanford.edu/flashproxy/
6,TOR与GFW的PK(3)
                         ————披着羊皮的狼
https://plus.google.com/109790703964908675921/posts/WDD6U3k5EGm
======================
最新版Tor Browser Bundle使用教程
最详细的TBB使用教程出炉了!欢迎诸位提出宝贵意见和建议,尤其是小白,哪里看不懂一定要说啊:)
照例附上科普文链接集合:
https://plus.google.com/u/0/109790703964908675921/about

====================
关于TOR使用问题的补充

我写过一堆关于TOR的文章(链接集合
https://plus.google.com/u/0/109790703964908675921/about),现在发现有一些遗漏,特此写一个FAQ供大家参考:

1,如何获得TOR软件?
答:
https://www.torproject.org/download/download-easy.html.en这是官网下载地址,有些人的PC不能翻墙,那么就先百度“代理服务器”找一个代理临时翻一下墙,就可以去下载了,或者百度“科学上网”或“VPN”找一个翻墙工具凑合一下,先出来再下载;一定要去官网,别的地方的软件有可能是被伪装的木马。

2,TOR BROWSER需要安装吗?
答:不需要安装,只有一个解压过程,这是绿色软件,不需要管理员权限就可以运行。

3,TOR可以直接连接吗?
答:墙内无法直接连接,必须加上前置代理或者利用网桥中继或新出的MEEK插件才能连接上。

4,为什么我设置了前置代理还是连不上?
答:设置前置代理之前需要保证这个前置代理是可用的(也就是可以单独拿来翻墙的),如果前置代理是VPN,那就无需任何设置,直接在第一步设置时选择连接即可;如果不是,那么就要选择“配置”选项,在下一步选择设置前置代理,然后填上相应的端口号,自由门是127.0.0.1 8580(HTTP/HTTPS)无界是127.0.0.1 9666(HTTP/HTTPS) shadowsocks是127.0.0.1 1080(SOCKS5)(也可能有服务器的本地端口是自定义的,那么就填写自定义端口)SSH 是127.0.0.1 7070(SOCKS5) 赛风三是127.0.0.1 1080(SOCKS5),GAE类(goagent,wallproxy,还有一些一键翻墙包)翻墙工具没法成为TOR的前置代理,lantern大家自己试吧,我不清楚他的原理,不想贸然使用。
设置之前前置代理就要开着,设置好连接成功后就要和TOR一起一直开着,还有就是不能关闭那个TOR BROWSER(如果你想用其他浏览器的话),关闭了Tor Browser,TOR也会随之关闭。

4,最新版TOR Browser为什么不能编辑删除证书?
答:这是最新版的BUG,迄今为止还没能被修复,大家可以去TOR官网反映BUG,除此之外只能等待了,考虑到共匪的中间人攻击越来越疯狂(这几个月都发生五次国家级中间人攻击了,分别针对google,github,微软hotmail,yahoo以及苹果icloud),建议大家暂时改用没有BUG的firefox或chrome,同时轰走所有天朝证书
https://plus.google.com/109790703964908675921/posts/XfgEeXNQAJy

5,我可以使用其他浏览器,是吧?
答:的确可以,但你需要进行一些相应的隐私设置:首先,firefox下载autoproxy,chrome下载proxyswitchysharp扩展,然后新建情景模式,填上127.0.0.1 9150,选择socksv5,再保存,激活扩展,点击选择刚刚新建的情景模式(名字随便取,建议用TOR),然后再安装上这几款扩展:NoScript(chrome中叫ScriptSafe,激活后请默认禁止加载所有JavaScript,网页要是显示不正常再一个个放行),disconnect,PrivacyBadger,User-Agent Switcher(或者名字类似的,能切换User-agent的),Ghostery,Notify Headers(或者名字类似的,能修改HTTP Headers的),EditThisCookie(方便及时删除cookie),adblock plus,都要启用,同时禁止所有插件运行(chrome在选项里可以禁用插件,firefox直接点击附加组件,在里面可以禁用插件),禁止第三方cookie(都是在选项里选择禁止)以上工作做好之后就能够在很大程度上躲避追踪保护隐私了。

6,为什么你不推荐Vadalia(TOR的图形界面,带有显示节点所在地的功能?)
答:因为Vadalia从2012年开始就再也没有更新过了,只有TOR Browser一直更新着,不过我想推荐一下两个基于TOR的即时更新的项目:Tor Ranger(
http://allinfa.com/toranger-177-tor.html)和BlackBeltPrivacy(http://allinfa.com/blackbelt-privacy-v3201410-tor-waste.html)。还有个Advanced Onion Router(http://allinfa.com/advanced-onion-router-v03020.html),有段时间没更新了,但比Vadalia要新不少,可以代替Vadalia。

7,我想用网桥中继,该怎么设置?
答:前置代理和网桥中继只能二选一,否则很大可能无法正常连接。如果选了网桥中继,那么前一步就不能设置前置代理。在下一步选择“我的ISP封锁了TOR”,进入网桥设置界面,最新版推荐首先尝试那三个MEEK插件,大部分都能连上,如果不行,尝试集成的obfs3网桥,再不行就要想办法获取网桥,看这里
http://allinfa.com/tor-links.html

8,怎样设置torrc文件?
答:打开TOR Browser文件目录下的torrc(Browser->Tor Browser->data->tor,就能看到torrc文件),在最后添加如下语句(一句一行,括号里的是我的解说,不要加进去):
AvoidDiskWrites 1(减少硬盘读写)
SocksListenAddress 127.0.0.1
ControlPort 9151
SocksPort 9150(前面三个分别是本机监听地址,控制端口与本机端口)
HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C(控制端口密码验证)
DirReqStatistics 0(防止默认写入相关数据)
ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu},{br},{kz},{kw},{lk},{ci},{tk},{tw},{kp},{sy}
ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu},{br},{kz},{kw},{lk},{ci},{tk},{tw},{kp},{sy}(上面两行都是排除可疑国家的蜜罐节点)
StrictNodes 1(强制执行)
如果使用网桥中继,那么还要加上: UpdateBridgesFromAuthority 1

9,我只用TOR就能保持匿名了吗?
答:不行,使用TOR只是保持匿名的重要手段之一,要想真正做到匿名还要做不少工作,可以好好看看
https://plus.google.com/u/0/109790703964908675921/about里面匿名和浏览器安全与隐私保护这两个分类下的科普。

10,TOR支持移动端吗?
答:android平台上有一个Tor Orbot,墙内无法直连,链接
https://guardianproject.info/apps/orbot/,但我建议对于移动端采取完全不信任的态度,因为移动端在安全领域成熟度远不如PC端,而且墙内移动硬件有后门的可能性很大。不过还是可以想办法提升安全性:不要用国产App,选择国外大品牌的水货。
https://plus.google.com/109790703964908675921/posts/Pt8stBEGX8



https://xijie.wordpress.com/2015/01/11/ghost-assassin%E7%9A%84tor%E4%B8%8Egfw%E7%9A%84pk%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0/