TCP/IP协议的安全隐患
创新互联公司是一家专业提供尼元阳企业网站建设,专注与成都网站建设、网站制作、html5、小程序制作等业务。10年已为尼元阳众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
造成操作系统漏洞的一个重要原因,就是协议本身的缺陷给系统带来的攻击点。网络协议是计算机之间为了互联共同遵守的规则。目前的互联网络所采用的主流协议TCP/IP,由于在其设计初期人们过分强调其开发性和便利性,没有仔细考虑其安全性,因此很多的网络协议都存在严重的安全漏洞,给Internet留下了许多安全隐患。另外,有些网络协议缺陷造成的安全漏洞还会被黑客直接用来攻击受害者系统。本文就TCP/IP协议自身所存在的安全问题和协议守护进程进行了详细讨论,指出针对这些安全隐患的攻击。
TCP协议的安全问题
TCP使用三次握手机制来建立一条连接,握手的第一个报文为SYN包;第二个报文为SYN/ACK包,表明它应答第一个SYN包同时继续握手的过程;第三个报文仅仅是一个应答,表示为ACK包。若A放为连接方,B为响应方,其间可能的威胁有:
1. 攻击者监听B方发出的SYN/ACK报文。
2. 攻击者向B方发送RST包,接着发送SYN包,假冒A方发起新的连接。
3. B方响应新连接,并发送连接响应报文SYN/ACK。
4. 攻击者再假冒A方对B方发送ACK包。
这样攻击者便达到了破坏连接的作用,若攻击者再趁机插入有害数据包,则后果更严重。
TCP协议把通过连接而传输的数据看成是字节流,用一个32位整数对传送的字节编号。初始序列号(ISN)在TCP握手时产生,产生机制与协议实现有关。攻击者只要向目标主机发送一个连接请求,即可获得上次连接的ISN,再通过多次测量来回传输路径,得到进攻主机到目标主机之间数据包传送的来回时间RTT。已知上次连接的ISN和RTT,很容易就能预测下一次连接的ISN。若攻击者假冒信任主机向目标主机发出TCP连接,并预测到目标主机的TCP序列号,攻击者就能伪造有害数据包,使之被目标主机接受。
IP协议的安全问题
IP协议在互连网络之间提供无连接的数据包传输。IP协议根据IP头中的目的地址项来发送IP数据包。也就是说,IP路由IP包时,对IP头中提供的源地址不作任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。这样,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。其中最重要的就是利用IP欺骗引起的各种攻击。
以防火墙为例,一些网络的防火墙只允许网络信任的IP数据包通过。但是由于IP地址不检测IP数据包中的IP源地址是否为放送该包的源主机的真实地址,攻击者可以采用IP源地址欺骗的方法来绕过这种防火墙。另外有一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP源地址欺骗的方法获得特权,从而给被攻击者造成严重的损失。事实上,每一个攻击者都可以利用IP不检验IP头源地址的特点,自己填入伪造的IP地址来进行攻击,使自己不被发现。
六 TCP/IP协议安全问题的防范
TCP协议安全问题的防范
对于SYN Flood攻击,目前还没有完全有效的方法,但可以从以下几个方面加以防范:
1. 对系统设定相应的内核参数,使得系统强制对超时的SYN请求连接数据包的复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的SYN请求数据包。
2. 建议在该网段的路由器上做些配置的调整,这些调整包括限制SYN半开数据包的流量和个数。
3. 建议在路由器的前端多必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可以进入该网段,这样可以有效的保护本网段内的服务器不受此类攻击。
IP协议安全问题的防范
1. 抛弃基于地址的信任策略。这是最简单的方法。
2. 进行包过滤。如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。确认只有内部LAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。
3. 使用加密技术。阻止IP欺骗的一种简单的方法是在通信时要求加密传输和验证。当有多种手段并存时,加密方法可能最为适用。
七 TCP/IP各层的安全性和提高各层安全性的方法
1. 网络层的安全性
在过去的十年里,已经提出了一些方案对网络层的安全协议进行标准化。例如,安全协议3号(SP3)就是美国国家安全局以及标准技术协会作为安全数据网络系统(SDNS)的一部分而制定的。网络层安全协议(NLSP)是由国际标准化组织为无连接网络协议(CLNP)制定的安全协议标准。集成化NLSP(I-NLSP)是由美国国家科技研究所提出的包括IP和CLNP在内的统一安全机制。SWIPE是另一个网络层的安全协议,由Ioannidis和Blaze提出并实现原型。所有这些提案的共同点多于不同点。事实上,他们用的都是IP封装技术。其本质是,纯文本的包被加密,封装在外层的IP报头里,用来对加密的包进行Internet上的路由选择。到达另一端时,外层的IP报头被拆开,报文被解密,然后送到收报地点。
网络安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它最主要的缺点是:网络层一般属于不间进程和相应条例的包不做区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需要的功能,也会导致性能下降。针对面向主机的密钥分配的这些问题,RFC 1825允许(甚至可以说是推荐)使用面向用户的密钥分配,其中,不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核作比较大的改动。
简而言之,网络层是非常适合提供基于主机对主机的安全服务的。相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。例如,利用它对IP包的加密和解密功能,可以简捷地强化防火墙系统的防卫能力。RSA数据安全公司已经发起了一个倡议,来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网,该倡议被称为S-WAN(安全广域网)倡议,其目标是制定和推荐网络层的安全协议标准。
2. 传输层的安全性
在网络应用编程中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD、Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。Netscape通信公司遵循了这个思路,制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全接层协议(SSL)。
网络安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变。这对传输层来是说是做不到的。原则上,任何TCP/IP应用,只要应用传输层安全协议,比如说SSL或IPC,就必定要进行若干修改以增加相应的功能,并使用不同的IPC界面。于是,传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。可是,比起Internet层和应用层的安全机制来,这里修改还是相当小的。另一个缺点是,基于UDP的通信很难在传输层建立起安全机制来。同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。这一成就如果再加上应用级的安全服务,就可以再向前跨越一大步了。
3. 应用层的安全性
网络层的安全协议允许为主机(进程)之间的数据通道增加安全属性,这以为着真正的数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。比如说,如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上传输的IP包就到要自动的被加密。同样,如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道,那么两个进程间传输的所有消息就都要自动的被加密。
一般来说,在应用层提供安全服务有几种可能的做法,一个是对每个应用(及应用协议)分别进行修改。一些重要的TCP/IP应用已经这样做了。在RFC1421至1424中,IETF规定了私用强化邮件(PEM)来为基于SMTP的电子邮件系统提供安全服务。Internet业界采纳PEM的步子太慢的原因是PEM依赖于一个既存的、完全可操作的PKI(公钥基础结构)。建立一个符合PEM规范的PKI需要多方在一个共同点上达成信任。作为一个中间步骤,Phil Zimmermann开发了一个软件包,叫做PGP(Pretty Good Privacy)。PGP符合PEM的绝大多数规范,但不必要求PKI的存在。相反,它采用了分布式的信任模型,即由每个用户自己决定该信任哪些其他用户。因此,PGP不是去推广一个全局的PKI,而是让用户自己建立自己的信任之网。
如今大家每天浏览网页里的购物网站,使用各种网页工具生活和学习,都使用了网页架构依赖的基础——TCP协议,浏览网页时经常需要输入http网址,而http协议下层协议就是TCP协议,我们在浏览http链接访问到网页时,如果网速正常的话,我们基本不会有数据丢失的感觉,这就是TCP在为我们保驾护航。
TCP在工作中既要保证数据发送的可靠性,又要保证数据发送的效率,也就是单位时间内数据吞吐量,还要减少丢包率,同时要保证低延时。
TCP在我们日常生活中的广泛应用中,它的可靠性保证了我们最核心的诉求之一——数据不会轻易丢失。那么数据在网络中传输,面对日益复杂的通信网络环境,它是怎么保证数据发送和接收顺序的呢?
实际工作中TCP是按照需要的顺序发送数据的,但是,却不能保证接收的顺序就是发送的顺序,如果接收的顺序不对,是怎样恢复到我们想要的顺序的呢,接下来我探讨一下 TCP的拆包和粘包
TCP在传输数据时,我们通常是感觉不到的,只知道把需要传输的文件和主机链接传给TCP,它就会把文件发送到我们指定的接收方,那么如果我们给他一个20MB的文件,TCP是一次就传输一个大小20MB的数据包吗,通常受各种条件限制和各种系统工作的限制,TCP会将要传输的文件拆分为适合当下操作系统等受限条件的数据包大小。
那么拆分包的意义是什么呢,当我们运送大批货物时,如果超出一辆卡车的运力,我们就需要用一辆卡车分成很多次把货物从一个仓库运到接收方的仓库,而拆包也是这个道理。数据在网络中传输时,受物理条件,比如我们常说的带宽等的限制,肯定会不断的调整拆包的大小,那么影响拆包大小,或者是否拆包的因素有哪些呢?
拆包 就是在发送方把大数据拆分成小数据,传送到接收方,再组装起来,具体怎么操作我们后续分析。
当然既然有拆包的需求,那也会有粘包的需求, 粘包 就是数据包太小,不值得单独发送一次,这时还有其他待传输数据,可以把比较小的数据,放在一起传输到接收方,到达接收方后,我们再拆分为多个数据。
当然,无论拆包还是粘包的过程中,都需要计算出一个合适大小的数据包,我们管这个数据包称为 TCP段(TCP Segment)
下面是TCP的主要组成部分
从图中可以看出TCP的主要组成
MSS(Maximum Segment Size)
MSS是option中可选项,它用来控制TCP段大小,通过协商(Negotiate)来确定的,需要双方共同决定它最终的使用大小。
MSS是实际发送和缓冲区中TCP段的大小,是双方协商得来的,不是那一方决定的。
MSS不能设为太大的值,因为大会影响服务器的内存操作效率,也会占用过多的资源,影响其他用户请求的响应实效。
同时,传输层下层的网络层使用的IP层 也会受到影响,如果TCP协议不拆包,那么IP协议就得拆包,因为IP协议受限于网络物理条件的限制,每次传输的包需要在一定限度以下,同时拆分大量的包,会对资源和计算能力提出更高的要求,造成传输效率的延迟。
当然,也不能包越小越好,拆出的包都需要安装协议头,如果包太小,那么协议头就会占据包体积的很大比重,会成为负担,浪费资源利用率, 所以,我们需要协商解决包的大小 ,只有通过协商得到的,才是最优的解决方案。
TCP/IP协议主要安全隐患:
1、链路层上的攻击
在TCP/IP网络中,链路层这一层次的复杂程度是最高的。其中最常见的攻击方式通常是网络嗅探组成的TCP/IP协议的以太网。
以太网卡有两种主要的工作方式,一种是一般工作方式,另一种是较特殊的混杂方式。这一情况下,很可能由于被攻击的原因而造成信息丢失情况,且攻击者可以通过数据分析来获取账户、密码等多方面的关键数据信息。
2、网络层上的攻击
如果ARP识别链接错误,这样的话ARP直接应用可疑信息,那么可疑信息就会很容易进入目标主机当中。ARP协议没有状态,不管有没有收到请求,主机会将任何受到的ARP相应自动缓存。
如果信息中带有病毒,采用ARP欺骗就会导致网络信息安全泄露。因此,在ARP识别环节,应加大保护,建立更多的识别关卡,不能只简单通过IP名进行识别,还需充分参考IP相关性质等。
3、传输层上的攻击
在传输层还存在网络安全问题。如在网络安全领域中,IP欺骗就是隐藏自己的有效手段,主要是通过将自身IP地址进行伪造,并向目标主机发送恶意的请求,攻击主机,而主机却因为IP地址被隐藏而无法准确确认攻击源。或者通过获取目标主机信任而趁机窃取相关的机密信息。
4、应用层上的攻击
对于因特网而言,IP地址与域名均是一一对应的,这两者之间的转换工作,被称为域名解析。而DNS就是域名解析的服务器。DNS欺骗指的是攻击方冒充域名服务器的行为,使用DNS欺骗能将错误DNS信息提供给目标主机。所以说,通过DNS欺骗可误导用户进入非法服务器,让用户相信诈骗IP。
扩展资料
TCP/IP协议能够迅速发展起来并成为事实上的标准,是它恰好适应了世界范围内数据通信的需要。它有以下特点:
1、协议标准是完全开放的,可以供用户免费使用,并且独立于特定的计算机硬件与操作系统。
2、独立于网络硬件系统,可以运行在广域网,更适合于互联网。
3、网络地址统一分配,网络中每一设备和终端都具有一个唯一地址。
4、高层协议标准化,可以提供多种多样可靠网络服务。