购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 网络中计算机之间的通信及安全威胁

本节首先介绍网络中不同计算机之间进行通信涉及的两种重要的网络体系模型OSI和TCP/IP的基础知识,然后介绍网络信息流动过程中面临的安全威胁。

1.1.1 网络体系结构

计算机网络系统可以看成是一个扩大了的计算机系统,在网络操作系统和网络协议(如TCP/IP)的支持下,位于不同主机内的操作系统进程可以像在一个单机系统中一样互相通信,只不过通信时延稍大一些而已。

在这种情况下,相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的,于是人们提出了“分层”的处理方法。

1.开放系统互连参考模型OSI

国际标准化组织(International Organization for Standardization,ISO)于1977年成立了专门的机构研究异构网络系统互连的问题。不久,它们提出了一个试图使各种计算机在世界范围内互连成网络的标准框架,即著名的开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM)。“开放”是指只要遵循OSI标准,一个系统就可以和位于世界上任何地方的、也遵循同一标准的其他任何系统进行通信。“系统”是指在现实的系统中与互连有关的各部分。

OSI参考模型采用结构描述方法将整个网络的通信功能划分为7部分(层次),在每个协议层中完成一系列的特定功能。两台网络主机之间进行通信时,发送方将数据从应用层向下传递到物理层,每一层协议模块为下一层进行数据封装,数据流经网络到达接收方,再由下而上通过协议栈传递,并与接收方应用程序进行通信。

OSI参考模型的最大优点是将服务、接口和协议这3个概念明确地区分开来。服务说明某一层提供什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现该层的服务。各层采用什么样的协议是没有限制的,只要向上层提供相同的服务并且不改变相邻层的接口即可。这种思想同现代的面向对象的编程思想是完全一致的,一层就是一个对象,服务实现的细节完全被封装在层内,因此各层之间具有很强的独立性。

2.TCP/IP结构

事实上,得到广泛应用的不是OSI参考模型,而是TCP/IP参考模型。OSI的7层协议体系结构虽然概念清楚,但是复杂又不适用。TCP/IP得到了全世界的承认,成为因特网使用的参考模型。

TCP/IP协议簇可以看作是一组不同层的集合,每一层负责一个具体任务,各层联合工作以实现整个网络的通信。每一层与其上层或下层都有一个明确定义的接口来具体说明希望处理的数据。一般将TCP/IP协议族分为4个功能层:应用层、传输层、网络层和网络接口层。这4层概括了相对于OSI参考模型中的7层。TCP/IP与OSI这两种体系结构的对比如图1-2所示。TCP/IP参考模型如图1-3所示。

图1-2 TCP/IP与OSI体系结构对比

图1-3 TCP/IP参考模型

(1)应用层

应用层包含应用程序实现服务所使用的协议。用户通常与应用层进行交互。

●HTTP:超文本传输协议,提供浏览器和WWW服务间有关HTML文件传递服务。

●SMTP:简单消息传输协议,提供发送电子邮件服务。

●DNS:域名系统,提供域名解析服务。

●FTP:文件传输协议,提供主机间数据传递服务。

●Telnet:虚拟终端协议,提供远程登录服务。

●DHCP:动态主机配置协议,完成IP地址的配置。

此外,还有POP3、TFTP、RIP、OSPF等其他一些应用协议。

(2)传输层

传输层响应来自应用层的服务请求,并向网络层发出服务请求。传输层提供两台主机间透明的传输,通常用于端到端连接、流量控制或错误恢复。这一层的两个最重要协议是TCP和UDP。TCP提供可靠的数据流通信服务。TCP的可靠性由定时器、计数器、确认和重传机制来实现。与TCP处理不同的是,UDP不提供可靠的服务,主要用于在应用程序间发送数据。UDP数据包有可能丢失、复制和乱序。

(3)网络层

网络层负责处理网络上的主机间路由及存储转发网络数据包。IP是网络层的主要协议,提供无连接、不可靠的服务。IP还给出了因特网地址分配方案,要求网络接口必须分配独一无二的IP地址。同时,IP为ICMP、IGMP以及TCP和UDP等协议提供服务。

(4)网络接口层

网络接口层有时又称数据链路层,一般负责处理通信介质的细节问题,如设备驱动程序、以太网(Ethernet)和令牌环网(Token Ring)。ARP和RARP负责IP地址和网络接口物理地址的转换工作。

IP、TCP和UDP是必须了解的协议,下面进行简要介绍。

(1)IP

IPv4是一个面向数据的协议,设计用于分组交换网络(如以太网),是一个尽最大努力完成交付的协议。这意味着它并不保证一台主机发送的IP数据包能够被目的主机接收到。此外,它并不能保证IP数据包被正确接收(一个数据包可能会被乱序接收或根本接收不到)。这些问题由传输层协议解决,特别是TCP实现的几个机制保证了在IP之上的可靠数据传输。

IP通过所谓的IP地址实现寻址,互联网中的每台主机都有一个IP地址,可以把它想象为一个地址,在这一地址下主机是可达的。通常,一个IP地址用点分十进制法表示——也就是4个十进制表示的字节用圆点分隔,如192.0.2.1。通过这个IP地址,网络中的其他主机可以联络这个主机。

此外,IP实现了分片概念。由于不同类型的网络发送数据包有不同的最大数据量限制,可能需要将一个包分解成若干较小的包,这就是IP分片。而且由于接收端主机不得不将不同分片重新组装起来,因此需要IP重组。

在TCP/IP的标准中,各种数据格式常常以32bit(4Byte)为单位来描述。图1-4所示是IP数据包头部结构的完整格式。

图1-4 IP数据包头部结构

图1-5给出了一个数据包的简单表示法,即只画出IP头部最重要的两个字段:源IP地址和目的IP地址。数据包中的数据可以是传输层的TCP报文或UDP报文,也可以是ICMP报文等。

(2)TCP

TCP是面向连接的,通过所谓的数据流,在两个网络主机之间提供一个可复用的、可靠的通信信道。TCP保证数据从发送者到接收者可靠和有序地交付,而UDP不能保证这些属性。TCP从应用层接收字节流,把它们分成适当大小的片段,然后这些片段被交给网络层(通常为IP),对它们进行进一步的处理。TCP给每个报文一个序列号,通过检查序列号以确保没有报文丢失。运行在接收主机上的TCP,为所有已成功接收到的报文返回一个确认号。与序列号一起,这个确认号用于检查是否收到所有报文,如果需要,则可以对它们重新排序。如果在合理的时间范围内没有接收到确认号,发送主机上的定时器将产生一个超时信息,根据这一信息,如果有需要,则可以重传丢失报文。同时,TCP使用校验和来控制是否正确接收一个给定的报文。此外,TCP应用拥塞控制实现高性能和避免网络链路拥塞。

图1-5 数据报的简单表示

如上所述,TCP有些复杂,但与UDP相比它有很多优势。如果两台主机需要可靠的网络通信,通常使用TCP。例如,对于万维网使用的HTTP、电子邮件相关应用程序使用的SMTP和POP3/IMAP,以及数据传输使用的FTP,可靠传输是必要的。

下面介绍TCP报文的头部结构,并解释如何建立TCP连接。图1-6所示为TCP头部结构。

图1-6 TCP头部结构

一开始,两个16bit字段指定源端口和目的端口,在传输层中端口用于多路复用,通过网络端口使不同的应用程序在一个IP地址上监听成为可能。例如,一个Web服务器监听TCP端口80,而一个SMTP服务器使用TCP端口25,通过复用,两个服务器“共享”主机IP地址。TCP头接下来的两个字段包含32bit的序号和确认号。序号用于配置连接时设置初始序号。当连接建立后,序号字段的值就是有效载荷中的第一个数据字节的序号。如果ACK标志被设置,则确认号指定发送者期望的下一个序号。

6bit的标志位用于提供有关当前TCP报文状态的信息。窗口大小字段用于指定发送者希望接收的从确认号开始的字节数。TCP头部结构还包含一个校验和,用于在目的地检验到达的报文是否被篡改。对于紧急指针字段,只有设置了URG标志时才使用,它指定了从序号开始的偏移量,指明TCP有效载荷中从哪个点开始的数据应立即移交给应用层。TCP头部结构还有其他可选字段,这里不再讨论。

发送方和接收方需要在通信刚开始时创建一个连接。这是通过TCP握手协议完成的,这个握手协议主要通过交换序号和确认号在两个主机之间同步状态,用于确认目的主机是否正确收到给定的报文,以及重传和拥塞控制。TCP握手过程需要在发送为(S)和接收为(R)之间交换三个协议消息,如图1-7所示。

图1-7 TCP在发送者和接收者之间建立一个连接

1)S→R:发送方发送一个带有SYN标志位(置1)和一个序号为x的报文。

2)S←R:接收方应答一个带有SYN和ACK标志位(都置1)的TCP报文,确认号被设置为主机希望接收的下一个序号(本例是x+1)。此外,接收方将它的序号设置为y,因为它也希望与另一方同步这个序号。

3)S→R:发送方发送一个带有ACK标志位(置1)的TCP报文,它响应的报文序号为x+1,同时增加确认号为 y +1。

经过这一握手过程之后,双方都知道对方的序号和确认号的当前值,之后,此信息被用于TCP所有目标,例如,无差错数据传输和拥塞控制。

(3)UDP

用户数据报协议(UDP)在IP上面一层,如图1-8所示。UDP有两个部分:头部和数据。

图1-8 UDP数据报结构

UDP只在IP的数据包服务之上增加了很少的功能,也就是端口和差错校验的功能。有了端口,就能为应用程序提供多路复用,换言之,能够为运行在同一台计算机上的多个并发应用程序产生的多个连接区分数据。因此,虽然UDP数据报只能提供不可靠的交付,但在许多方面还必须使用UDP数据报。表1-1给出了使用UDP和TCP的多种应用和应用层协议。

表1-1 使用UDP和TCP的多种应用和应用层协议

(续)

UDP最主要的缺点是,它不提供任何的可靠性和有序性,数据报到达时可能是无序的、重复出现的,甚至根本没有到达目的主机。它不直接处理报文丢失或报文重新排序,没有检查每一个数据报是否都到达的开销。对许多轻量级或时间敏感的应用来说,UDP更快、更有效。因此,这一协议通常用于流媒体(如IP语音或视频聊天)和在线游戏。对于这些应用,丢失一些数据报不是至关重要的。UDP另一个重要应用是域名系统(DNS),用它来把一个给定的URL解析为一个IP地址。

TCP/IP协议簇的另一个重要方面是IP路由。理解IP路由的重要性有多种原因:它是主机之间可以相互通信的基本方法,并提供对互联网拓扑结构和小型网络(一个企业网络)拓扑结构的深入理解。为了成功地应用防火墙,了解互联网路由也是很重要的。

拓展阅读

读者要想了解计算机网络基本原理,可以阅读以下书籍。

[1] 谢希仁. 计算机网络[M]. 7版. 北京:电子工业出版社,2017.

[2] 竹下隆史,村山公保,荒井透,等. 图解TCP/IP [M]. 5版,乌尼日其其格,译. 北京:人民邮电出版社,2013.

[3] 韩立刚,王艳华,潘刚柱,等. 奠基·计算机网络[M]. 修订版. 北京:清华大学出版社,2013.

【应用示例1】网络中数据包传输分析

本例通过嗅探工具Wireshark捕获实际的数据包来分析网络中数据包传输的细节。

Wireshark是一个开源免费的网络和协议分析工具,支持各种平台,可以从http://www.wireshark.org下载。Wireshark首先通过网卡捕获数据,通常将网卡设置成promiscuous模式(混杂模式或称为监控模式)以捕获网段中的所有数据包,然后把捕获的内容按层级解析为帧、段和数据包等。Wireshark根据地址、协议和数据等上下文信息解析和呈现数据。

说明:

报文(Message)、分组(Packet)、数据包(Data Packet)、数据报(Datagram)、帧(Frame)这些概念是网络中传输的数据在不同网络层次中的形态和叫法。本书没有进行严格区分。

拓展资料

容易混淆的几个概念:报文、分组、数据包、数据报、帧。

来源:本书整理。

数据在传输过程中,必须先被分解成一个个的数据包才能被传输,然后一层层地传送。这就如同我们在运送大批的货物时,因为每辆卡车所能运载的货物量是有限的,必须使用多辆卡车来执行这项任务一样。在网络世界里也是同样的道理,因为不同的网络实体层技术,其每次所能承载的数据量不同。

例如,当使用者在计算机上运行某一网络应用程序(如IE浏览器)时,该应用程序一定会先定义一种数据交换方法(应用层通信协议),接着确定数据传输方式,比如,数据在传输过程中是不可丢失或者错误的,那么就需要使用TCP作为数据传输的方法;接着,为了能将数据正确地传输到目的端,使用网络上每台计算机唯一的识别码——IP地址,作为发送端和接收端的地址,但由于IP地址属于逻辑信息,无法以光电信号呈现,而实体层的寻址方式是用MAC地址来识别(假设实体层是以太网)的,因此,当数据发送到实体层时,会在该数据中附加发送端和接收端的MAC地址,这样便可以将数据传输到正确的目的地了。

使用嗅探工具Wireshark来截取网络上所传输的数据包,即可了解整个数据包传输的过程,如图1-9所示。以图中编号322的数据包为例,中间的窗体部分就是数据包的结构。

图1-9 Wireshark截取的数据包

●Frame 322/Ethernet II:网络接口层(实体层)。

●Internet Protocol:网络层。

●Transmission Control Protocol:传输层。

●Hypertext Transfer Protocol:应用层。

接下来继续分析每层的内容及用途。首先看应用层,把应用层的结构展开可看到整个应用层的数据内容,如图1-10所示。从数据内容中可以看到,客户端使用HTTP1.1中的GET方法来获取Web服务器根目录的HTML文档。

图1-10 应用层数据包内容

传输层要选择一种数据传输方法,将这些数据正确地传输到目的地。因为HTTP的数据包是不允许有任何一个包丢失的,所以选用TCP来传输这个数据包,而这个数据包随即被加上一个TCP头部,以表明这个数据包是要使用TCP来传输的。图1-11所示是传输层的数据内容,称为TCP头部,从TCP头部中可以看到两个很重要的内容:“Source port:49265(49265)”及“Destination port:http(80)”,这两个字段表示发送端计算机使用TCP端口49265连接到目的计算机的TCP端口80。

在选择好数据传输方法后,接下来需要对数据包进行定位操作,而这个定位操作在网络层中完成。图1-12所示是IP头部的数据内容,其中最重要的是“Source:211.87.100.12(211.87. 100.12)”及“Destination:202.119.104.28(202.119.104.28)”这两个字段,它们表示这个数据包是由211.87.100.12这台计算机所发送出来的,而接收端的计算机IP地址是202.119.104.28。

图1-11 TCP头部内容

图1-12 IP头部内容

不过,由于IP是一个逻辑概念,而数据在网络上是以光电信号来传输的,因此,还需要在数据包上标明“实体层”的地址。以太网中实体层的地址是网卡地址,即MAC地址(Media Access Control Address),如图1-13所示。在实体层,数据包被加上MAC地址,图中“Source:Fujitsu_69:67:33(00:23:26:69:67:33)”以及“Destination: Cisco_3a:38:00(00:16:9c:3a:38:00)”括号中的即为MAC地址,它们分别代表该数据包是由笔者的笔记本式计算机的网卡发送出来的,并发送到Cisco交换机的网卡。有了这些完整的机制之后,就可以在网络上正常传输数据包了。

图1-13 以太网数据包头部内容

示例小结

从上面的例子可知,嗅探工具Wireshark可以捕获数据包并能够清晰地展示其中的内容,如果在这样一种工具的基础上再增加相应的判别规则对数据包进行允许通过、丢弃等处理,就可对网络通信进行基本的安全管理了,当然,这样的工具必须成为网络通信的唯一通道。这种工具就是本书要介绍的网络安全防护设备——防火墙。

拓展阅读

读者要想了解网络抓包工具的基本原理及应用,可以阅读以下书籍。

[1] 肖佳. HTTP抓包实战[M]. 北京:人民邮电出版社,2018.

[2] 布洛克,帕克. Wireshark与Metasploit实战指南[M]. 朱筱丹,译. 北京:人民邮电出版社,2019.

[3] 李华峰,陈虹. Wireshark网络分析从入门到实践[M]. 北京:人民邮电出版社,2019.

1.1.2 网络信息流动过程中面临的安全威胁

网络通信中,不同计算机系统之间正常的信息流向应当是从合法发送源端流向合法接收目的端,如图1-14所示。然而,正常的信息流动面临着许多安全威胁,通常可以将网络通信中面临的安全威胁分为中断、截获、篡改和伪造4类。

(1)中断威胁

如图1-15所示,中断(Interruption)威胁使得在用的信息系统毁坏或不能使用,即破坏可用性。

图1-14 正常的信息流向

图1-15 中断威胁

攻击者可以从下列几个方面破坏信息系统的可用性:

●拒绝服务攻击或分布式拒绝服务攻击。使合法用户不能正常访问网络资源,或是使有严格时间要求的服务不能及时得到响应。

●摧毁系统。物理破坏网络系统和设备组件使网络不可用,或者破坏网络结构使之瘫痪等。例如,硬盘等硬件的毁坏、通信线路的切断、文件管理系统的瘫痪等。

(2)截获威胁

如图1-16所示,截获(Interception)威胁是指一个非授权方介入系统,使得信息在传输中丢失或泄露的攻击。它破坏了保密性。非授权方可以是一个人、一个程序或一台计算机。

这种攻击主要包括:

●在信息传递过程中利用电磁泄漏或搭线窃听等方式截获机密信息,或是通过对信息流向、流量、通信频度和长度等参数的分析,推测出有用信息,如用户口令、账号等。

●在信息源端利用恶意代码等手段非法复制敏感文件。

(3)篡改威胁

如图1-17所示,篡改(Modification)威胁是指以非法手段窃得对信息的管理权,通过未授权的创建、修改、删除和重放等操作使信息的完整性受到破坏。

这种攻击主要包括:

●改变数据文件,如修改数据库中的某些值等。

●替换某一段程序使之执行另外的功能。

(4)伪造威胁

如图1-18所示,在伪造(Fabrication)威胁中,一个非授权方将伪造的客体插入系统中,破坏信息的可认证性。例如,在网络通信系统中插入伪造的事务处理或者向数据库中添加记录。

图1-16 截获威胁

图1-17 篡改威胁

图1-18 伪造威胁 rXaYKBmGrj0WzQ/p5YO8QhY9E2S3UJrYWOx6+WyeVZOhfnCC4bXJwpHZQTVSfF7l

点击中间区域
呼出菜单
上一章
目录
下一章
×