zhuweisky

君子之行,静以修身,俭以养德。非淡泊无以明志,非宁静无以致远。

ESFramework,基于.NET的通信框架。DataRabbit,轻量的数据访问框架。Strive,游戏引擎。sky.zhuwei@163.com
posts - 196, comments - 1329, trackbacks - 101, articles - 1
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
    说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受“拒绝服务攻击”时表现出的脆弱性。
    当服务器以Tcp的方式提供服务时,客户端通过tcp连接上服务器。这时,恶意的程序,也可以通过tcp连接我们的服务器,如果恶意的程序采用循环与我们的服务器建立成千上万的连接,并在每个连接上都发送恶意的数据包给服务器,慢慢就会导致服务器资源耗尽而崩溃!
    为了增强Tcp服务器在遭受“拒绝服务攻击”时的稳定性,我采用的方案是这样的:

(1)通信协议的消息头增加Token字段,并且它是消息头的第一个字段。当服务器接收到一段数据,如果这段数据不是以Token打头,则关闭对应的TCP连接。这样,只要恶意程序连上服务器一发送数据,服务器就可以识别它。
    如果恶意程序只是与服务器建立成千上万个连接,而不发送任何数据,以此来耗尽服务器的可用Tcp连接数了?这就需要第二步。

(2)服务器可以设定,在客户端连上服务器后指定的时间内(比如50ms)不发送任何数据,则标志该连接为非法连接,马上关闭它。

(3)使用建立连接的“带外数据”存储标志,如果一个客户连接上来时,没有任何带外数据,或带外数据不正确,则关闭该连接。

(4)如果,如果,黑客破解了客户端和服务器的通信协议,并写了一个恶意客户端,那你的服务器就分辨不了哪个连接合法、哪个不合法了,这种情况下的唯一出路是,修改你的协议,并采用各种方式(如加密)使之更难破解!

    有更好方法的兄台请跟贴,谢谢!

Feedback

#1楼    回复  引用    

2006-02-10 15:01 by lovebanyi [未注册用户]
有还没有到这个层次的啊.通常ddos也不是在这个层次上攻击的.
你的哪个层次 可以直接判断IP如果是这个ip就拒绝了.

#2楼    回复  引用    

2006-02-10 17:03 by robin-hbifts [未注册用户]
ddos是在TCP/IP,不在应用层啊~
它是利用TCP的三次握手来让服务器资料浩光的....

你的这个,基本不会有任何作用!

#3楼    回复  引用  查看    

2006-02-10 17:07 by 补丁      
还是硬件防火墙立竿见影呵呵

#4楼    回复  引用    

2006-02-10 17:26 by robin-hbifts [未注册用户]
嗯.像绿盟的黒洞.

不过,最好的还是修改tcp/ip协议:)

#5楼    回复  引用    

2006-02-10 20:48 by marrabech [未注册用户]
你说的这个,和DDOS没有任何关系。你说的那些都是一个网络通迅程序能够运行起来基本的保证

#6楼    回复  引用    

2006-02-13 13:33 by 皎 [未注册用户]
没有什么终极的解决方法,只有发现弱点,再来改进.




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-05-15 12:36 编辑过
Google站内搜索

相关文章:

相关链接: