TCP协议安全
TCP协议安全
1.概述:
TCP协议安全
TCP是TCP/IP体系中一个重量级的传输层协议。提供面向连接的,可靠的,面向字节流的全双工传输服务。
HTTP、FTP、TELNET、SMTP、POP3等应用层协议都工作于传输层的TCP之上。
TCP协议的安全问题是TCP/IP协议安全的重中之重。
2.TCP工作过程
因为是安全方面,所以只关注连接建立、数据传输、连接释放三个阶段。
- TCP建立连接的过程叫做握手。握手需要在客户和服务器之间交换三个TCP报文段。称之为三报文握手。
通过三次握手,序列号同步,开始数据传输。 - TCP的连接释放
TCP连接释放过程比较复杂。数据传输结束后,通信的双方都可释放连接。
TCP连接释放过程是四报文握手。
3.TCP安全问题(D人家网站是损人不利己)
TCP SYN泛洪攻击。
在第一次握手过程中,源主机A向目的主机B发送大量的伪造源端IP地址的SYN报文段。
目的主机B的SYN+ ACK确认报文段全部得不到回复。
在目的主机B的队列中存在大量的”半开放状态”的连接,最终将队列
的存储空间填满,并因资源耗尽而瘫瘓。
4.TCP SYN泛洪攻击的防范方法
- 优化主机系统设置
- 合理地采用防火墙等外部网络安全设施
5.具体方法
(1)缩短SYN Timeout (连接等待超时)时间
SYN泛洪攻击的基本原理就是耗尽主机的半开放连接资源。
最简单的方法便是减少TCP握手的超时,让攻击包消耗的资源尽量稍微快点释放。这样能将系统抵抗能力提高几倍。
要是量大的话,提高的这几倍也没啥大用处。
(2)SYN Cookie
原理:收到第一个SYN包,不分配资源,返回一个经过构造的ACK序号,然后看回复的ACK序号能不能匹配,若匹配再分配资源,否则那个SYN包便是攻击包了,果断放弃。
SYN cookie是linux内核的一部分.
(3)根据源IP记录SYN连接
对每一个请求连接的IP地址都进行记录。
如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,从这个IP地址来的包会被丢弃。
(4)容忍策略
基于SYN泛洪攻击代码的一个缺陷。
基于IP的是攻击者自己进行域名解析,并将IP传给攻击程序。
基于域名的是攻击程序自己进行域名解析。
假设一台服务器在受到SYN flooding攻击后迅速更换自己的IP地址。
攻击者仍在不断攻击的只是-一个空的IP地址,并没有任何主机。
防御方只要将DNS解析更改到新的IP地址,就能在很短的时间内(取决于DNS的刷新时间)恢复用户通过域名进行的正常访问。
为了迷惑攻击者,甚至可以放置一台"牺牲”服务器。器让攻击者满足于攻击的效果”,
(5)利用防火墙的带宽控制技术
近年来,国外和国内的一些防火墙厂商开始研究带宽控制技术,如果能真正做到严格控制分配带宽,就能很大程度上防御SYN泛洪攻击。
很多人认为带宽控制技术是对付SYN泛洪等拒绝服务攻击的最终解决方法。
6.TCP协议的其它安全问题
TCP初始序号预测、TCP欺骗、TCP会话劫持、RST攻击、FIN攻击等等。