TCP/IP协议分析(网络接口层安全缺陷)

(1)TCP/IP概述

一、计算机网络的体系结构

1、计算机网络体系结构定义

  • 计算机网络体系结构是关于层、协议和层间接口的集合总称。或者说:计算机网络体系结构包括三个内容:分层结构与每层的功能服务与层间接口协议
  • 国际化标准组织(ISO)在IBMSAN基础上制定了网络体系结构国际标准是OSI/RM
  • DARPADefense Advanced Research Projects Agency)的卡恩和斯坦福的瑟夫所提出的TCP/IP体系结构成为事实上的标准。

2OSI/RMTCP/IP对应关系

3、名词释义

协议数据单元(Protocol Data UnitPDU)是网络体系结构中对等层之间交换的信息报文的统称。在TCP/IP中,各层PDU的称谓包括:

  • 报文(Message):应用层使用的数据报文格式,通常由具体应用层协议制定格式。
  • 段(Segment):传输层协议使用的数据报文格式。其中,UDP协议的报文也常常称为数据包。
  • 包(Packet):网际层协议使用的数据报文格式,常称为IP包、IP分组。
  • 帧(Frame):网络接口层协议使用的数据报文格式,与使用的网络形式有关,如以太网、ATM、令牌网等使用完全不同的帧。

4TCP/IP协议主要构成和功能

TCP/IP

主要协议

主要功能

应用层

Http Telnet FTP email

负责将数据发送到传输层或者从传输层接收数据

传输层

TCPUDP

为通信双方主机上的应用程序提供端到编的通信。TCP提供高可靠性的数据通信,将来自应用层的数据分块打包交给网络层进行传输,以及确认接收到的分组等。UDP则为应用层提供不可靠的数据通信,只是把数据包的分组从一台主机发送到另一台主机,不进行接收数据的确认。

网际层

IPICMPIGMPARPRARPOSI中属于链路层)

为来自传输层的数据包选择传输路由。IPTCP/IP 协议族中最核心的协议。所有的 TCP UDPICMPIGMP 数据都以IP数据包格式传输。

网络接口层

PPP, Ethernet, Token ring, ATM

发送时将IP包作为帧发送,接收时把收到的位组装成帧同时提供链路管理 、错误检测等。

5、各层次间调用关系 

二、TCP/IP工作原理 

主机间的数据通信模型

数据从信源传输到信宿的过程可描述如下:

1、信源侧

  • 应用层程序将需传输数据流封装成规定的报文格式传送给传输层。
  • 传输层将来自应用层数据报文进行分割,对于TCP协议,按照规定的格式封装成TCP段;对于UDP协议,封装成UDP数据包。最后,将封装后的数据传送给网络层。
  • 网络层给来自传输层的数据按照规定的格式封装成分组(也称为IP包),并将分组报传送给接口层 。
  • 接口层在收到来自网络层上的IP报后,按照规定的格式封装成帧,并将帧传送给路由器。 

2、路由器侧

路由器是一个具有多个接口的网络互连设备。在路由器上运行有TCP/IP的下两层协议和路由选择协议。

路由选择协议的功能是根据传输数据的目的地以及当前网络各链路的状况,选择一条适当的传输路径,从而实现将数据从一个网络转发到另一个网络。

比较常见的路由选择协议有:RIPOSPF等。

  • 接口层在接收到来自物理链路上的数据后,将数据帧的首部和尾部丢弃,并把由此获得的IP数据包传送给网(际)层。
  • 网络(际)层收到来自接口层的IP数据报后,解析数据包,取出包首部中的目的IP地址,并由路由选择协议根据目的IP地址进行计算,选择一条适当的传输路径,再将IP数据包传送给接口层。
  • 接口层再重新按照规定的格式将IP包封装成帧,并通过物理链路将帧发送到目的IP地址所在的网络。 

3、信宿侧

信宿侧按照信源侧的反方向进行工作。

  • q接口层丢弃从链路上传来的数据帧的帧头和帧尾,获得IP数据包并将其传送给网络层。
  • q网络层首先计算来自接口层的IP报的校验和,并与存放在IP包首部中校验和进行比较,若不一致,则丢弃该 IP数据报;若一致,则丢弃IP 包首部,将获得的TCP段传送给传输层 。
  • q传输层检查来自网络层的TCP段中的顺序号,判断是否正确的TCP段 ,并检查TCP首部。若正确,则向信源发确认消息;若不正确或丢包,并向信源要求重发信息。
  • q对于正确的TCP段,传输层将丢弃TCP首部,按照顺序将TCP段组装成应用层报文,并将其传送给应用层。
  • q应用层在收到来自传输层的报文后,可以直接丢弃报文首部,也可以按照要求进行必要的检查,最后将获得的数据流直接传送给应用程序,从而完成一次数据传输。

 

数据从信源传输到信宿的过程示例:

 

三、Internet安全缺陷的位置 

Internet是以TCP/IP技术为基础的互联网络,TCP/IP的安全缺陷是先天因素,是由于TCP/IP设计时所在的时代与技术局限造成的。我们现在能做的就是认识和设法弥补这些缺陷,并在设计新的互联网技术时克服这些缺陷。

TCP/IP的安全缺陷存在于TCP/IP的各个层次,包括:

 

 

网络接口层安全缺陷

TCP/IP中并没有定义数据链路层(网络接口层)的协议,而是设计了面向现有数据链路层协议的接口,以便兼容包括以太(Ethernet)协议在内的第三方数据链路层协议。

以太网络技术是应用最广泛的局域网技术,其基础是IEEE802.3协议,定义了CSMA/CD标准的媒体访问控制(MAC)子层和物理层规范。

共享通信媒介是以太网的基础,凡是连接在同一个局域网内的主机都可以接受到在公共媒介上传输的信息。

以太网包括:标准以太网(10M bit/s)、快速以太网(100M bit/s)、千兆以太网(1000M bit/s)和10G10Gbit/s)以太网,以及无线以太网等,并都符合IEEE802.3

一、以太网基本原理

1、以太网协议及格式

目的地址和源地址都是指数据链路层(网络接口层)网络中节点的标识,由IEEE管理和负责分配,也称为MAC地址。MAC地址有48位,前24位由相关设备生产厂商向IEEE申请,后24位由设备生产厂商自主设定,但需保证不发生冲突。

由于通常都是预先写进硬件设备中且修改相对困难,所以也常被称为硬件地址或物理地址。

通常,48MAC地址按照每4位用1个十六进制数表示,共有12个十六进制数。如:00 07 e9 53 87 d9

若某个帧的目的MAC地址为ff ff ff ff ff ff,则表示此帧为广播帧

2、以太网交换机工作原理

1)公共媒介的缺陷

2)交换机工作原理

1:一个已知节点向另一个已知节点发生信息:

 A主机连接在交换机的1号接口,已经在交换表登记

E主机连接在交换机的2号接口,已经在交换表中登记

2:一个未知节点向另外一个未知节点发生信息:

C主机连接在交换机的1号接口,尚未在交换表中登记。

D主机连接在交换机的2号接口,尚未在交换表中登记。

3:向同一个接口号下的节点发生信息:

交换完成后,交换表中新增了C主机表项。 

A主机和B主机在交换机的同一个接口号下,交换机丢弃数据帧。

二、交换式以太网的安全缺陷

1MAC地址泛洪攻击

交换机解决了共享媒介(HUB)同时只能一对主机进行通信的问题,而且还做到了既减少广播风暴,又防止了网络嗅探。

然而,如果黑客连续不断向交换机发送垃圾帧,结果会怎样?

1MAC地址泛洪攻击原理

由于交换表空间有限,新的来源MAC地址不断的填写交换表项,当表被填满后,新的表项将会替代旧的表项。

如果攻击者发送大量的具有不同伪造源MAC地址的帧,由于交换机的自学习功能,整个交换表将会被垃圾表项填满。当有正常的数据帧到达时,由于交换表不再有正常的MAC地址表项,交换机完全退化为广播模式,从而使得攻击者又可以用嗅探的方式窃听数据。

 

2MAC地址泛洪攻击预防

本质上,针对MAC地址泛洪攻击没有理想的预防方法。

MAC地址-接口号绑定

固化MAC地址-接口号表项,即为每个接口号设置固定的MAC地址,只接收和转发这些固定MAC地址的数据帧。

这种方法有极大的网络维护工作量,不适用大型,并且一旦更换了网卡,必须重新绑定。

限制MAC地址数量

为每个交换机接口下可以连接的MAC地址数量进行限制,如交换表中每个接口只能与一个MAC地址构成表项,从而防止交换表溢出。这种方法可以防止交换表溢出,但并没有解决广播通信方式可能带来的数据窃听问题。

2、假冒生成树攻击

生成树协议 (Spanning Tree ProtocolSTP)是交换机常用的协议,该协议可以修剪冗余链路,从而达到避免环路的目的。

1)攻击原理

多个交换机运行生成树协议后,会选举一个根交换机。如果攻击者向广播域发送一个生成树消息,让交换机重新选举,并选择攻击者的交换机为根交换机,则该攻击者就达到了伪装根交换机的目的,从而获得各种数据帧或致使网络运行混乱,并使网络瘫痪。  

2)生成树攻击预防

生成树攻击相对比较容易预防,已经在大部分交换机上配备了相应的功能,即spanning-tree root guard功能。 

根交换机如果发现了比自己优先级更高的交换机后,则端口会被置为root-inconsistent状态,这种状态类似于listen状态,忽略任何优先级更高的生成树报文,这样可以阻止连接在此端口的交换机成为根交换机。只要在3个周期(6秒内)没有再接收到优先级更高的生成树报文,可自动恢复,担当起根的责任。