西西河

主题:【原创】it科普二 蛋疼向研究之GFW -- 浩瀚星辰

共:💬52 🌺62
全看树展主题 · 分页首页 上页
/ 4
下页 末页
家园 这个还真不太了解,请教一下

1.用专用的硬件芯片做Snort,是否适合于做这种关键字字符串匹配,开发成本有多高?我个人理解是Snort在做字符串扫描的时候效率不会太高,更适合做固定位置特征字匹配。当年和人考虑过是否用FPGA和CPLD来做应用层识别,对方表示开发成本太高,而且FPGA也不适合做这个,就算了。

2.应用层网关识别主要的问题是需要根据每一种你需要监控的协议去根据它的协议流程来编码,比如某协议控制流Client发起Create,被Server Accept后,分配一个专用的TID,然后数据流全部用TID来标识,在控制流Client Delete,Server Accept后这个TID在数据流上就作废了,象这种流程,用专用硬件,比如tilera,能用比较低的成本来开发吗?而且能够不断的增加这种协议流程?这个,我估计成本很高吧,比如内存分配,多线程处理,如果tilera很容易做到,估计MS,Intel和AMD就不用混了,就好比视频的硬解和软解一样。

家园 你们公司大概走错路了

100万个包,每包500个字节,也就是1000000*8*500=4000000000bps,大概4G的流量。

用CPU以软件方法处理是吃力点。但用FPGA或者ASIC方式实现就能够大规模并行处理。实现10G以上,10万条关键字不是很困难的事情。

举个早期的例子:

用FPGA将流按一定长度算出Hash值,如果与预设的值匹配则到内存中的关键字表相应的地址进一步确认,否则放行,由于关键字匹配是一次性的,只要内存支持的并发访问足够,关键字多少不会影响系统效率。多个处理单元并行可以轻松达到10G以上的吞吐量。

现在更是用ASIC以DFA的方式实现正则表达式,这样可以进行初步的智能匹配了。

家园 不成吧

比如这两个包 “西西河西西关键字12345”和“西河关键字西河”,要找到“关键字”怎么个Hash法?

如果用FPGA,在HTTP的头里面,如果解析到ContentType为类型A,那么按协议A解析,后面有一系列A的流程,如果解析到ContentType为类型B,那么按协议类型B解析,后面一系列B的流程,等等等等,这个,用FPGA或ASIC做起来很费劲吧

家园 你可以去看看这个公司的产品

外链出处

他的T2000片子号称能达到20G的速率,支持1M的规则

家园 多谢,这玩意是有点意思,不定那天能用上某些特性

现在是指望不上了,硬件是好,就是实现慢了点

5年前用软件实现在运营商那已经大规模应用的东西,在它的Key Technologes for future里,还不一定能满足需要

家园 这篇文章说得比较详细

外链出处

其实没有你想象得那么麻烦,他只是在里面找特征字而已。并不需要走完协议的整个状态机。

像“关键字”,就是由三字节的处理机去处理。如果按设定得Hash算法算出来是3,这个处理机在任何时候发现通过自己的数据流里面连续三个字节算出来的Hash值是三就认为是可疑的串,把它丢出去进一步检验。

家园 没那么简单吧

关键字的长度应该在2-N之间,每个连续2-N个字节都要算根据1个字,2个字,..N个字去算Hash,然后再去和关键字比较,同时随着这个值的增大,Hash的重复率也会增高,可能到到最后和没比一样

字符串的查找算法,无数人研究过来研究过去就那么多,没听说革命性的东西。

家园 明白了,应用的出发点有点不一样

我以前一直做的是要从传输层中精确的还原业务,所以要保证匹配的准确性,BLOOM Filter是不成的,它可杀掉1000,不可放掉一个。

家园 shhtp对话也能过滤?
家园 不是这么简单绕过的

比如访问被GFW封锁的xxx.com。GFW会伪装成xxx.com hijack一个RST的数据包给客户端,把要发送给xxx.com的数据包丢弃掉,然后关闭连接。即使搞定了网卡驱动,xxx.com后续也不会和客户端交换数据。。。实现这种功能的方法还有很多很多。。。

家园 【讨论】GFW断网的一些细节问题

关于GFW的原理,浩瀚星辰兄的帖子里面说的比较清楚,看了大家的讨论对于一些细节的问题可能还有些疑问,这里借浩瀚星辰兄的帖子简单的说说。

实现连接关闭的方法有很多很多,无非都是在TCP协议包上做手脚,这里只说一种GFW可能使用的方法。

client(ie, firefox, opera...) - GFW - server(www.xxx.com)

实际上GFW是双向工作,当收到client的数据包之后,GFW会伪装xxx.com的地址将RST数据包返回给client,并将访问xxx.com的数据包丢弃,同时伪装成client地址发送FIN ACK数据包关闭连接。后续的由xxx.com发来ACK数据包可以直接丢弃掉。

为什么使用RST而不使用FIN包?使用RST包的好处就是接收到RST数据包的一端会立刻重置连接(表现为网络断开),不会再发出后续响应数据包。

因此即使修改了tcp/ip的协议驱动仍然无法继续访问被GFW封锁的网站。唯一的方法是使用没有被GFW封锁的代理。

突破GFW的方法比较多。

1、找一些免费的代理服务器,google搜索“免费代理”会有很多,需要一个一个实验。

2、使用tor,jap等代理软件,不过网速会比较慢。

3、如果国外有没被GFW封锁的主机,可以使用ssh转socks5的方式。

4、使用国外一些免费的VPN,google搜索“free vpn”,免费的会有流量限制。

家园 谢谢补充

那么我老师的故事有问题?或者是gfw升级过?

顺便说句还有一种ipv6翻墙法

有兴趣的可以自己搜索ipv6翻墙

基本方法就是将下面东西扔到C:\WINDOWS\system32\drivers\etc\hosts里,注意这种方法适用范围有限,你连着的路由未必开着ipv6路由

# Twitter

2001:470:83f2::710:1 twitter.com

2001:470:83f2::710:1 www.twitter.com

2001:470:83f2::710:1 m.twitter.com #Twitter Mobile

2001:470:83f2::710:1 search.twitter.com #Twitter Serach

2001:470:83f2::710:1 integratedsearch.twitter.com #TimelineController?

2001:470:83f2::710:1 api.twitter.com

2001:470:83f2::710:1 s.twimg.com #Twitter Serach

2001:470:83f2::710:1 a0.twimg.com

2001:470:83f2::710:1 a1.twimg.com

2001:470:83f2::710:1 a2.twimg.com

2001:470:83f2::710:1 a3.twimg.com

2001:470:83f2::710:1 twitpic.com

2001:470:83f2::710:1 twitgoo.com

# Youtube

2001:4860:c004::68 www.youtube.com

2001:4860:c004::68 tw.youtube.com

2001:4860:c004::68 youtu.be

2001:4860:c004::68 gdata.youtube.com

2001:4860:c004::68 help.youtube.com

2001:4860:c004::68 upload.youtube.com

2001:4860:c004::68 insight.youtube.com

2001:4860:c004::68 img.youtube.com

2001:4860:c004::68 s2.youtube.com

2001:4860:c004::68 youtube.com

2001:4860:c004::68 apiblog.youtube.com

2001:4860:c004::68 clients1.youtube.com

2001:4860:c004::68 d.yimg.com

2001:4860:c004::68 s.ytimg.com

2001:4860:c004::68 i.ytimg.com

2001:4860:c004::68 i1.ytimg.com

2001:4860:c004::68 i2.ytimg.com

2001:4860:c004::68 i3.ytimg.com

2001:4860:c004::68 i4.ytimg.com

2001:470:83f2::710:1 v1.lscache1.c.youtube.com

2001:470:83f2::710:1 v1.lscache2.c.youtube.com

2001:470:83f2::710:1 v1.lscache3.c.youtube.com

2001:470:83f2::710:1 v1.lscache4.c.youtube.com

2001:470:83f2::710:1 v1.lscache5.c.youtube.com

2001:470:83f2::710:1 v1.lscache6.c.youtube.com

2001:470:83f2::710:1 v1.lscache7.c.youtube.com

2001:470:83f2::710:1 v1.lscache8.c.youtube.com

2001:470:83f2::710:1 v2.lscache1.c.youtube.com

2001:470:83f2::710:1 v2.lscache2.c.youtube.com

2001:470:83f2::710:1 v2.lscache3.c.youtube.com

2001:470:83f2::710:1 v2.lscache4.c.youtube.com

2001:470:83f2::710:1 v2.lscache5.c.youtube.com

2001:470:83f2::710:1 v2.lscache6.c.youtube.com

2001:470:83f2::710:1 v2.lscache7.c.youtube.com

2001:470:83f2::710:1 v2.lscache8.c.youtube.com

2001:470:83f2::710:1 v3.lscache1.c.youtube.com

2001:470:83f2::710:1 v3.lscache2.c.youtube.com

2001:470:83f2::710:1 v3.lscache3.c.youtube.com

2001:470:83f2::710:1 v3.lscache4.c.youtube.com

2001:470:83f2::710:1 v3.lscache5.c.youtube.com

2001:470:83f2::710:1 v3.lscache6.c.youtube.com

2001:470:83f2::710:1 v3.lscache7.c.youtube.com

2001:470:83f2::710:1 v3.lscache8.c.youtube.com

2001:470:83f2::710:1 v4.lscache1.c.youtube.com

2001:470:83f2::710:1 v4.lscache2.c.youtube.com

2001:470:83f2::710:1 v4.lscache3.c.youtube.com

2001:470:83f2::710:1 v4.lscache4.c.youtube.com

2001:470:83f2::710:1 v4.lscache5.c.youtube.com

2001:470:83f2::710:1 v4.lscache6.c.youtube.com

2001:470:83f2::710:1 v4.lscache7.c.youtube.com

2001:470:83f2::710:1 v4.lscache8.c.youtube.com

2001:470:83f2::710:1 v5.lscache1.c.youtube.com

2001:470:83f2::710:1 v5.lscache2.c.youtube.com

2001:470:83f2::710:1 v5.lscache3.c.youtube.com

2001:470:83f2::710:1 v5.lscache4.c.youtube.com

2001:470:83f2::710:1 v5.lscache5.c.youtube.com

2001:470:83f2::710:1 v5.lscache6.c.youtube.com

2001:470:83f2::710:1 v5.lscache7.c.youtube.com

2001:470:83f2::710:1 v5.lscache8.c.youtube.com

2001:470:83f2::710:1 v6.lscache1.c.youtube.com

2001:470:83f2::710:1 v6.lscache2.c.youtube.com

2001:470:83f2::710:1 v6.lscache3.c.youtube.com

2001:470:83f2::710:1 v6.lscache4.c.youtube.com

2001:470:83f2::710:1 v6.lscache5.c.youtube.com

2001:470:83f2::710:1 v6.lscache6.c.youtube.com

2001:470:83f2::710:1 v6.lscache7.c.youtube.com

2001:470:83f2::710:1 v6.lscache8.c.youtube.com

2001:470:83f2::710:1 v7.lscache1.c.youtube.com

2001:470:83f2::710:1 v7.lscache2.c.youtube.com

2001:470:83f2::710:1 v7.lscache3.c.youtube.com

2001:470:83f2::710:1 v7.lscache4.c.youtube.com

2001:470:83f2::710:1 v7.lscache5.c.youtube.com

2001:470:83f2::710:1 v7.lscache6.c.youtube.com

2001:470:83f2::710:1 v7.lscache7.c.youtube.com

2001:470:83f2::710:1 v7.lscache8.c.youtube.com

2001:470:83f2::710:1 v8.lscache1.c.youtube.com

2001:470:83f2::710:1 v8.lscache2.c.youtube.com

2001:470:83f2::710:1 v8.lscache3.c.youtube.com

2001:470:83f2::710:1 v8.lscache4.c.youtube.com

2001:470:83f2::710:1 v8.lscache5.c.youtube.com

2001:470:83f2::710:1 v8.lscache6.c.youtube.com

2001:470:83f2::710:1 v8.lscache7.c.youtube.com

2001:470:83f2::710:1 v8.lscache8.c.youtube.com

2001:470:83f2::710:1 v9.lscache1.c.youtube.com

2001:470:83f2::710:1 v9.lscache2.c.youtube.com

2001:470:83f2::710:1 v9.lscache3.c.youtube.com

2001:470:83f2::710:1 v9.lscache4.c.youtube.com

2001:470:83f2::710:1 v9.lscache5.c.youtube.com

2001:470:83f2::710:1 v9.lscache6.c.youtube.com

2001:470:83f2::710:1 v9.lscache7.c.youtube.com

2001:470:83f2::710:1 v9.lscache8.c.youtube.com

2001:470:83f2::710:1 v10.lscache1.c.youtube.com

2001:470:83f2::710:1 v10.lscache2.c.youtube.com

2001:470:83f2::710:1 v10.lscache3.c.youtube.com

2001:470:83f2::710:1 v10.lscache4.c.youtube.com

2001:470:83f2::710:1 v10.lscache5.c.youtube.com

2001:470:83f2::710:1 v10.lscache6.c.youtube.com

2001:470:83f2::710:1 v10.lscache7.c.youtube.com

2001:470:83f2::710:1 v10.lscache8.c.youtube.com

2001:470:83f2::710:1 v11.lscache1.c.youtube.com

2001:470:83f2::710:1 v11.lscache2.c.youtube.com

2001:470:83f2::710:1 v11.lscache3.c.youtube.com

2001:470:83f2::710:1 v11.lscache4.c.youtube.com

2001:470:83f2::710:1 v11.lscache5.c.youtube.com

2001:470:83f2::710:1 v11.lscache6.c.youtube.com

2001:470:83f2::710:1 v11.lscache7.c.youtube.com

2001:470:83f2::710:1 v11.lscache8.c.youtube.com

2001:470:83f2::710:1 v12.lscache1.c.youtube.com

2001:470:83f2::710:1 v12.lscache2.c.youtube.com

2001:470:83f2::710:1 v12.lscache3.c.youtube.com

2001:470:83f2::710:1 v12.lscache4.c.youtube.com

2001:470:83f2::710:1 v12.lscache5.c.youtube.com

2001:470:83f2::710:1 v12.lscache6.c.youtube.com

2001:470:83f2::710:1 v12.lscache7.c.youtube.com

2001:470:83f2::710:1 v12.lscache8.c.youtube.com

2001:470:83f2::710:1 v13.lscache1.c.youtube.com

2001:470:83f2::710:1 v13.lscache2.c.youtube.com

2001:470:83f2::710:1 v13.lscache3.c.youtube.com

2001:470:83f2::710:1 v13.lscache4.c.youtube.com

2001:470:83f2::710:1 v13.lscache5.c.youtube.com

2001:470:83f2::710:1 v13.lscache6.c.youtube.com

2001:470:83f2::710:1 v13.lscache7.c.youtube.com

2001:470:83f2::710:1 v13.lscache8.c.youtube.com

2001:470:83f2::710:1 v14.lscache1.c.youtube.com

2001:470:83f2::710:1 v14.lscache2.c.youtube.com

2001:470:83f2::710:1 v14.lscache3.c.youtube.com

2001:470:83f2::710:1 v14.lscache4.c.youtube.com

2001:470:83f2::710:1 v14.lscache5.c.youtube.com

2001:470:83f2::710:1 v14.lscache6.c.youtube.com

2001:470:83f2::710:1 v14.lscache7.c.youtube.com

2001:470:83f2::710:1 v14.lscache8.c.youtube.com

2001:470:83f2::710:1 v15.lscache1.c.youtube.com

2001:470:83f2::710:1 v15.lscache2.c.youtube.com

2001:470:83f2::710:1 v15.lscache3.c.youtube.com

2001:470:83f2::710:1 v15.lscache4.c.youtube.com

2001:470:83f2::710:1 v15.lscache5.c.youtube.com

2001:470:83f2::710:1 v15.lscache6.c.youtube.com

2001:470:83f2::710:1 v15.lscache7.c.youtube.com

2001:470:83f2::710:1 v15.lscache8.c.youtube.com

2001:470:83f2::710:1 v16.lscache1.c.youtube.com

2001:470:83f2::710:1 v16.lscache2.c.youtube.com

2001:470:83f2::710:1 v16.lscache3.c.youtube.com

2001:470:83f2::710:1 v16.lscache4.c.youtube.com

2001:470:83f2::710:1 v16.lscache5.c.youtube.com

2001:470:83f2::710:1 v16.lscache6.c.youtube.com

2001:470:83f2::710:1 v16.lscache7.c.youtube.com

2001:470:83f2::710:1 v16.lscache8.c.youtube.com

2001:470:83f2::710:1 v17.lscache1.c.youtube.com

2001:470:83f2::710:1 v17.lscache2.c.youtube.com

2001:470:83f2::710:1 v17.lscache3.c.youtube.com

2001:470:83f2::710:1 v17.lscache4.c.youtube.com

2001:470:83f2::710:1 v17.lscache5.c.youtube.com

2001:470:83f2::710:1 v17.lscache6.c.youtube.com

2001:470:83f2::710:1 v17.lscache7.c.youtube.com

2001:470:83f2::710:1 v17.lscache8.c.youtube.com

2001:470:83f2::710:1 v18.lscache1.c.youtube.com

2001:470:83f2::710:1 v18.lscache2.c.youtube.com

2001:470:83f2::710:1 v18.lscache3.c.youtube.com

2001:470:83f2::710:1 v18.lscache4.c.youtube.com

2001:470:83f2::710:1 v18.lscache5.c.youtube.com

2001:470:83f2::710:1 v18.lscache6.c.youtube.com

2001:470:83f2::710:1 v18.lscache7.c.youtube.com

2001:470:83f2::710:1 v18.lscache8.c.youtube.com

2001:470:83f2::710:1 v19.lscache1.c.youtube.com

2001:470:83f2::710:1 v19.lscache2.c.youtube.com

2001:470:83f2::710:1 v19.lscache3.c.youtube.com

2001:470:83f2::710:1 v19.lscache4.c.youtube.com

2001:470:83f2::710:1 v19.lscache5.c.youtube.com

2001:470:83f2::710:1 v19.lscache6.c.youtube.com

2001:470:83f2::710:1 v19.lscache7.c.youtube.com

2001:470:83f2::710:1 v19.lscache8.c.youtube.com

2001:470:83f2::710:1 v20.lscache1.c.youtube.com

2001:470:83f2::710:1 v20.lscache2.c.youtube.com

2001:470:83f2::710:1 v20.lscache3.c.youtube.com

2001:470:83f2::710:1 v20.lscache4.c.youtube.com

2001:470:83f2::710:1 v20.lscache5.c.youtube.com

2001:470:83f2::710:1 v20.lscache6.c.youtube.com

2001:470:83f2::710:1 v20.lscache7.c.youtube.com

2001:470:83f2::710:1 v20.lscache8.c.youtube.com

2001:470:83f2::710:1 v21.lscache1.c.youtube.com

2001:470:83f2::710:1 v21.lscache2.c.youtube.com

2001:470:83f2::710:1 v21.lscache3.c.youtube.com

2001:470:83f2::710:1 v21.lscache4.c.youtube.com

2001:470:83f2::710:1 v21.lscache5.c.youtube.com

2001:470:83f2::710:1 v21.lscache6.c.youtube.com

2001:470:83f2::710:1 v21.lscache7.c.youtube.com

2001:470:83f2::710:1 v21.lscache8.c.youtube.com

2001:470:83f2::710:1 v22.lscache1.c.youtube.com

2001:470:83f2::710:1 v22.lscache2.c.youtube.com

2001:470:83f2::710:1 v22.lscache3.c.youtube.com

2001:470:83f2::710:1 v22.lscache4.c.youtube.com

2001:470:83f2::710:1 v22.lscache5.c.youtube.com

2001:470:83f2::710:1 v22.lscache6.c.youtube.com

2001:470:83f2::710:1 v22.lscache7.c.youtube.com

2001:470:83f2::710:1 v22.lscache8.c.youtube.com

2001:470:83f2::710:1 v23.lscache1.c.youtube.com

2001:470:83f2::710:1 v23.lscache2.c.youtube.com

2001:470:83f2::710:1 v23.lscache3.c.youtube.com

2001:470:83f2::710:1 v23.lscache4.c.youtube.com

2001:470:83f2::710:1 v23.lscache5.c.youtube.com

2001:470:83f2::710:1 v23.lscache6.c.youtube.com

2001:470:83f2::710:1 v23.lscache7.c.youtube.com

2001:470:83f2::710:1 v23.lscache8.c.youtube.com

2001:470:83f2::710:1 v24.lscache1.c.youtube.com

2001:470:83f2::710:1 v24.lscache2.c.youtube.com

2001:470:83f2::710:1 v24.lscache3.c.youtube.com

2001:470:83f2::710:1 v24.lscache4.c.youtube.com

2001:470:83f2::710:1 v24.lscache5.c.youtube.com

2001:470:83f2::710:1 v24.lscache6.c.youtube.com

2001:470:83f2::710:1 v24.lscache7.c.youtube.com

2001:470:83f2::710:1 v24.lscache8.c.youtube.com

家园 GFW的脚步一直没有停下来

GFW一直都在改进中。早期的GFW情况不是太清楚,现在是工作在双向的。。。

家园 需要强调的是

需要强调的是,HTTPS不是100%安全的。

非对称密钥体系要求通信的双方可以相互认证(信任基于第三方的CA)。但是,由于便捷性和费用等种种原因,大部分HTTPS/VPN/SSH仅仅要求单方身份认证。这就导致了经典的中间人攻击。

要做中间人,就必须要求数据从中间人节点路由(GFW很合适),中间人对CLIENT伪装成目标SERVER,对SERVER伪装成发起连接的CLIENT;截获并且中继CLIENT和SERVER的通信。

目前还没有见过GFW使用中间人攻击,不过同样原理的安全产品(关键字 HTTPS扫描)已经在市场上存在很久了。

家园 如果更改HTTP协议能否穿墙?

https的协议比较麻烦,需要证书啊认证啊什么的。从穿墙的角度看,需要攻击的就是墙本身,我们并不需要保密,而是为了让墙不work。

如果更改HTTP协议,要求每个HTTP请求时浏览器和服务器都作一次DH握手,决定一个较短的密钥,比如64-bits的,这样的计算量对双方都能接受,但是对于GFW来说,如果进行中间人攻击,它就需要记住所有请求的密码。

另一种方式是服务器单方面的加密。服务器在回应每个请求时,将传送结果以随机选择的密钥加密,并在传送完加密内容后发出密钥。这样的话,如果GFW需要分析传送的内容,就必须保存前面所有的包。

当然这必须大规模应用才行,否则GFW可以简单地阻挡这样的网站。

全看树展主题 · 分页首页 上页
/ 4
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河