查看原文
其他

网络协议安全

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


微信公众号:计算机与网络安全

ID:Computer-network

网络协议(Network Protocol)定义了网络上所有设备之间相互通信和进行数据管理、数据交换的整套规则,它还规定了通信时信息必须采用的格式和这些格式的意义。协议的3个关键要素是语法、语义和时序。正如2个人之间的交流必须通过使用一种双方都能理解的语言,网络中2台设备之间进行通信也必须确定一种互相能够理解的语言,网络协议就是网络的语言,只有遵循同一种语言规范的计算机才能与其他计算机彼此通信,形成网络。


网络空间是人造虚拟化空间。从网络空间的结构及形成来看,网络空间事实上是被各种各样大量的网络协议定义出来的。互联网的缔造者之一,在1981年~1989年领导了TCP/IP架构开发的大卫·克拉克提出了一个网络空间结构模型。这个分层模型使我们可以更好地理解网络空间的基本构成。在这个模型中,可以看到网络空间被分成四层,包括物理层、逻辑层、信息内容层和人类社会层。


在这里,物理层具体是指网络的基本硬件物理设施,包括PC、平板电脑、智能手机等终端设备,服务器、同轴电缆、双绞线、光纤等传输设备,以及路由器、交换机等连接集中器。终端设备负责数据的生成、存储、接收和发送,传输设备负责实现数据的传输,连接集中器负责寻址和建立网络连接;逻辑层是网络空间服务构造的基础逻辑模块,就是指形成各种服务的网络协议等计算机网络技术和软件;信息层则是人们通过社交媒体、网站或电子邮件发送的信息,网络新闻,在线消费信息、音乐、视频、图片等信息内容;在这之上是所有使用和塑造网络空间特征的人和各类社会组织。其中,逻辑层的网络协议、软件以及物理层的硬件物理设施提供了网络的基本机制和基础设施。而逻辑层又是网络空间的基础和核心,正是逻辑层的代码和协议构造并定义了网络空间的本质。


克拉克这个模型很抽象,但是说明了问题本质,可以看到网络协议和网络安全协议在构成网络空间中发挥着十分基础和本质的作用。网络空间是一个复杂系统。网络空间中的网络端到端如何连接、数据怎么传输,也需要一套规则定义下来。全世界无论哪个计算机、服务器、哪台设备只要接入网络都要按照这样一套规则设计,网络才能连通、数据才能在网络上传输流动。网络协议就是定义网络如何连接和数据怎么传输的一整套规则。


20世纪80年代,人们意识到只有一台孤立的计算机构成的“孤岛”没有太大意义,于是就利用网络协议把这些孤立的系统组在一起形成网络。到了90年代,人们又逐渐认识到这个封闭的“较大一点的孤岛”同样意义不大,于是人们又把多个网络连在一起形成一个“网络组成的网络”,即互联网(Internet)。网际互联(Internetworking)技术提供了异构网络互联的方法,这种技术隐藏了网络硬件的细节,允许计算机独立于它们的物理网络连接进行通信,从而形成互联网。领导开发出互联网的美国著名计算机科学家大卫·克拉克(David Clark)在Characterizing cyberspace: past, present and future中表示:“并不是计算机创造了我们称之为网络空间的现象,是‘互连’成就了网络空间”。最著名的互联网就是因特网(Internet),有时也被人们称为“全球互联网”,它由成千上万互连的网络所组成,Internet几乎已经成为互联网的代名词。Internet上的计算机使用的就是TCP/IP,任何使用TCP/IP的计算机或网络都可以连到Internet上。

一、TCP/IP


TCP/IP也被称为TCP/IP栈,它包含了一系列构成Internet基础的网络协议。TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。


(一)TCP/IP的起源


TCP/IP起源于美国国防部高级研究规划署(DARPA)在20世纪60年代后期发起的一项研究计划。该计划的目的是实现若干台主机之间的相互通信。由于早期使用的以点对点通信为主的线路不适应网络发展的需求,TCP/IP在后续经历了一系列的改进,以适应Internet互联互通的需要。


1983年,在Internet的前身——美国国防部ARPANET中,TCP/IP取代旧的网络控制协议(NCP,Network Control Protocol)成为ARPANET正式的网络协议。


TCP/IP是一组网络协议的代名词,其字面上代表的是TCP/IP族最早也最重要的2个协议:传输控制协议(TCP,Transmission Control Protocol)和网际协议(IP,Internet Protocol),它们由文顿·瑟夫(Vint Cerf)和罗伯特·卡恩(Robert Kahn)两位开发。1973年,Cerf和Kahn在其发表的里程碑式论文中阐述了实现分组的端到端交付的协议,这篇源于传输控制协议(TCP)的论文提出的概念有封装、数据分组以及网关的功能。1977年10月,由3个不同网络(ARPANET、分组无线电网、分组卫星网)组成的互联网问世了,网络之间的通信成为可能。不久之后,当局决定将TCP划分为2个协议:传输控制协议(TCP ,Transmission control Protocol)和网际协议(IP,Internet Protocol),IP处理数据分组的路由选择,而TCP负责一些高层的功能,如分段、重装和差错监测。


TCP/IP从出现到现在,一共出现了6个版本。如今使用的是已经成为Internet通信标准的第四个版本(IPv4)。随着互联网的发展,目前,流行的IPv4已经接近它的功能上限,而将来的趋势则是使用第六个版本(IPv6)来取代第四个版本。


(二)TCP/IP的特点


Internet上的TCP/IP之所以能够得到迅速发展,不仅因为它是美国军方指定使用的通信协议,更重要的是它满足了世界范围内的数据通信的需要。综合来看,TCP/IP具有以下特点:


(1)基于开放的协议标准,可以免费使用;

(2)其实现独立于特定的计算机硬件、网络硬件与操作系统,可以运行于局域网、广域网,并且更适用于互联网;

(3)使用统一的网络地址分配方案,使每个TCP/IP设备在网络中都具有唯一的地址;

(4)具备标准化的高层协议,可以提供可靠的多样化用户服务。


(三)OSI网络分层参考模型


为了便于模块划分和分工协作,网络协议一般是通过结构化的层次结构来进行分类和组织的。因此,网络协议实质上是针对某一具体结构层次的,而每个层次又具体负责实现某一特定的功能。相邻的层次之间通过接口进行通信,每个层次既依赖于其下层提供的服务,同时又为其上层提供必要的服务。


1978年,国际标准化组织(ISO, International Organization for Standardization)制定了开放系统互连参考模型(OSI/RM , Open System Interconnect Reference Model),如图1所示。该模型采用分层结构化技术,将网络通信分成7个层次,自下往上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。各层次的功能如表1所示。


图1  OSI参考模型

表1  OSI/RM层次结构的功能说明

在数据的实际传输中,发送端设备将数据送到自己的应用层,增添该层的控制信息后,继续将数据传递给表示层;表示层如法炮制,再将数据加上自己的标识传递给会话层;以此类推,每一层次都会在收到的数据上加上本层的控制信息并传给下一层次;最后到达物理层时,数据通过实际的物理媒体传到接收端设备。当数据发送到接收端设备时,接收端设备则执行与发送端设备相反的操作,由下往上,再逐层地将标识去掉,重新还原成最初的数据。由此可见,数据通信双方在对等层次上必须采用相同的协议,定义同一种数据标识格式,这样才能保证数据的正确传输而不至于出现错误解析。


(1)OSI模型的物理层


物理层主要负责将信息编码成电流脉冲或其他用于网上传输的信号。它定义了通信网络之间物理链路的电气或机械特性,以及激活、维护和关闭这条链路的各项操作。物理层的特征参数包括电压、数据传输率、最大传输距离以及物理连接媒介等。


(2)OSI模型的数据链路层


数据链路层负责通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。物理编址定义了设备在数据链路层的编址方式。网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构等。错误校验负责向发生传输错误的上层协议进行告警。数据帧序列负责重新整理并传输除了序列以外的帧。流控可以延缓数据的传输,以使接收端设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。


TCP/IP的链路层有时也被称为网络接口层,大致对应于OSI的数据链路层和物理层。这一层包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,处理数据的格式化并将其传输到网络电缆(或者传输媒介)上。链路层的主要协议有无线局域网协议(IEEE 802.11)、以太网协议等。


(3)OSI模型的网络层


网络层负责在发送端设备和接收端设备之间建立连接。它一般包括网络寻径,还可能包括流量控制和错误检查等功能。网络层将数据分成一定长度的分组,并在分组头中标识发送端设备和接收端设备的逻辑地址。这些逻辑地址类似于现实生活中的街道、门牌号,可以作为每个节点的标识。网络层的核心功能就是根据这些逻辑地址来获得从发送端设备到接收端设备的路径。如果有多条路径存在,网络层还需要负责进行路由选择。


TCP/IP的网络层等价于OSI模型的网络层。该层有4个主要协议,包括网际协议(IP)、地址解析协议(ARP)、互联网组管理协议(IGMP)和互联网控制分组协议(ICMP)。IP是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据分组传递服务。IP负责按地址在计算机之间传输信息,即处理节点间的寻址问题。


(4)OSI模型的传输层


传输层负责保证发送端设备和接收端设备上的对等实体可以进行会话,其功能包括流控、多路传输、虚电路管理及差错校验和恢复。流控用于管理设备之间的数据传输,确保发送端设备不发送比接收端设备处理能力大的数据。多路传输可使多个应用程序的数据传输到一个物理链路上。虚电路由传输层建立、维护和终止。差错校验包括为检测传输错误而建立的各种不同结构。差错恢复包括所采取的行动,如请求数据重发,以便解决发生的任何错误。


TCP/IP的传输层大致对应于OSI模型的传输层,包括TCP和UDP等,提供了流控制、错误检查以及定序机制。TCP负责保证传输信息的正确性,它提供了端对端的可靠的进程间通信,要传送的数据首先存放在缓冲区中,然后由 TCP 将数据分成若干段发送出去。TCP提供的是一种可靠的、面向连接的数据传输服务;而UDP提供的是不可靠的、无连接的数据传输服务。


(5)OSI模型的会话层


会话层用于建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答。这些请求与应答通过会话层的协议实现。它还包括创建检查点,可以使通信发生中断的时候返回到之前的一个状态。


(6)OSI模型的表示层


表示层定义了一系列代码和代码转换功能,以保证发送端的数据在到达接收端时能够被识别出来。比如大家所熟悉的文本数据的 ASCII 码、表示图像的 JPEG 或表示动画的MPEG等。


(7)OSI模型的应用层


用操作系统的术语来讲,彼此之间进行通信的实际不是软件部件(即程序)本身,而是进程,可以把进程看成是在系统中运行着的程序。运行在同一个系统上的进程彼此间通过使用进程间通信手段来进行通信。进程间通信的具体规则由操作系统决定。运行在不同系统上的进程则是通过网络交换消息来彼此通信的。发送进程首先创建消息,并将之传入网络,接收进程则收取这些消息,并可能发送消息作为响应。同时,每个网络应用都有各自遵循的应用层协议,它定义在进程间交流的消息的格式和顺序,以及在送出或收到消息时应当采取的行动。


应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。


(四)TCP/IP参考模型


TCP/IP参考模型首先是由ARPANET所使用的网络体系结构。这个体系结构在它的2个主要协议出现以后被称为TCP/IP参考模型(TCP/IP Reference Model)。这一网络协议共分为四层,自下而上分别为网络访问层、网际层、传输层和应用层。


如图2所示,在TCP/IP的4个概念层次中,有三层对应了OSI参考模型中的相应层次。其中,TCP/IP的多数应用协议将OSI应用层、表示层、会话层的功能聚集到一起,构成其应用层,典型协议有HTTP、FTP和TELNET等。TCP/UDP对应于OSI的传输层,负责提供上层数据传输保障。IP则对应于OSI的网络层,它定义了众所周知的IP地址格式,作为网络中查找路径的依据。TCP/IP栈本身并不包含物理层和数据链路层。为此,它必须与其他协议协同工作,才能完成整个计算机网络系统的功能。TCP/IP栈的最底层功能由网络访问层实现,相当于OSI的物理层和数据链路层。实际上,TCP/IP对网络访问层并未做严格定义,而是应用已有的底层网络来实现传输,这就是它得以广泛应用,适用不同类型底层网络的原因。


图2  TCP/IP与OSI模型的对应关系

(1)TCP/IP的网络访问层


网络访问层的主要功能是负责通过网络发送和接收IP数据分组。网络访问层包括用于协作IP数据在已有网络介质上传输的协议。TCP/IP标准并不定义与OSI数据链路层和物理层相对应的功能。相反地,它定义了诸如地址解析协议(ARP)这样的协议,提供TCP/IP的数据结构和实际物理硬件之间的接口。


(2)TCP/IP的网际层


网际层的主要功能是寻找一条能够把数据分组送到目的地的路径。其主要协议包括IP、ICMP、ARP和RARP。IP(Internet Protocol)负责提供无连接的传输服务(不保证送达,不保证分组顺序)。ICMP(Internet Control Message Protocol)提供控制和传递消息的功能。ARP (Address Resolution Protocol)负责为已知的IP地址确定相应的MAC地址。反之,RARP (Reverse Address Resolution Protocol)负责根据MAC地址确定相应的IP地址。


(3)TCP/IP的传输层


传输层的主要功能是流量控制和可靠传输。其中,流量控制是通过滑动窗口实现的,可靠传输是通过序号和确认来实现的。主要的传输层协议包括TCP和UDP。TCP是面向连接的、可靠的传输协议,它把分组分解为多个分片进行传输,在接收端设备上再重新装配这些分片,必要时会重新发送没有收到的分片;UDP是无连接的,由于对发送的分组不进行校验和确认,因此它是“不可靠”的。


(4)TCP/IP应用层


应用层包含了所有的高层协议,支持文件传输、电子邮件、远程登录、网络管理、Web浏览等应用。其中,FTP(File Transfer Protocol)是文件传输协议,用于文件上传下载;Telnet服务是用户远程登录服务,使用明码传送,但保密性差;DNS(Domain Name Service)是域名解析服务,负责提供域名到IP地址之间的转换;SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用来控制信件的发送、中转;NFS(Network File System)是网络文件系统,用于网络中不同主机间的文件共享;HTTP(Hyper Text Transfer Protocol)是超文本传输协议,用于实现互联网中的WWW服务。


二、TCP/IP安全性分析


由于TCP/IP是Internet的基础协议,所以,对TCP/IP的完善和改进是非常必要的。TCP/IP 在开始设计的时候并没有考虑到现在网络上如此多的安全威胁,由此导致了许多利用协议漏洞的攻击方法的出现。协议体系本身的安全缺陷(主要是明文传输和缺乏强认证)能够被恶意者利用来对网络进行攻击,进而引发了一系列网络安全问题。例如,超文本传输协议(HTTP,Hyper Text Transfer Protocol)作为互联网上最重要的应用层网络协议之一。由于当初设计HTTP的时候,在安全性方面考虑不充分,导致HTTP存在严重安全缺陷。其数据的明文传送和消息的完整性检测的缺乏,导致服务器易被入侵、传输信息易被截取、客户端易被攻击、服务易被拒绝等安全问题的产生。甚至有专家认为如今互联网面临的各种各样的安全问题大多数都能最终归结到TCP/IP族中各个协议存在的先天固有安全缺陷。


(一)TCP/IP攻击的分类


如果按照攻击所属的网络层次进行分类,TCP/IP攻击方法可以分为针对物理层的攻击、针对数据链路层的攻击、针对网络层的攻击、针对传输层的攻击以及针对应用层的攻击。


(1)针对物理层的攻击


此类攻击手法主要是对网络硬件和基础设施进行物理破坏或者强行改变路由器路由。例如,将一个公司的出口线路断掉,使其无法访问外部网络。


(2)针对数据链路层的攻击


TCP/IP 在该层次上有 2 个重要的协议,即地址解析协议(ARP)和反地址解析协议(RARP)。ARP欺骗和伪装就是发生在该层次上的攻击行为。


(3)针对网络层的攻击


网络层的重要协议包括ICMP(Internet Control Message Protocol)、IP(Internet Protocol)和IGMP(Internet Group Management Protocol)。著名的网络攻击方式大多是在该层次上进行的。例如,Smurf攻击、IP碎片攻击和ICMP路由欺骗等。


(4)针对传输层的攻击


TCP/IP传输层有2个重要的协议,即TCP和UDP。发生在该层次上的著名攻击手法非常多,常见的有Teardrop攻击(Teardrop Attack)、Land攻击(Land Attack)、SYN洪水攻击(SYN Flood Attack)以及TCP序列号欺骗和攻击等。此外,会话劫持和中间人攻击也属于这一层次的攻击行为。


(5)针对应用层的攻击


该层次上面有许多不同的应用协议。例如,DNS、FTP、SMTP 等。针对该层次的攻击数量庞大,但是主要攻击的方式还是针对一些软件实现中的漏洞进行的。针对协议本身的攻击主要是DNS欺骗和窃取。常见的应用层攻击包括恶意蠕虫、病毒、缓冲溢出代码、后门木马等,最典型的应用攻击莫过于“蠕虫”。蠕虫有多种形式,包括系统漏洞型蠕虫、群发邮件型蠕虫、共享型蠕虫、寄生型蠕虫和混合型蠕虫。其中,最常见、变种最多的蠕虫是群发邮件型蠕虫,它是通过E-mail进行传播的。


造成应用攻击的根本原因在于软件开发人员编写程序时没有充分考虑异常情况的处理过程。当系统处理某些特定输入时,系统出现内存溢出或流程异常,因此,形成了系统漏洞。黑客利用系统漏洞可以获得对系统非授权资源的访问。


此外,如果按照攻击者的目的进行分类,攻击方式还可以被划分为拒绝服务攻击(DoS)和分布式拒绝服务攻击(DDoS)、Sniffer监听、会话劫持与网络欺骗,以及获得被攻击设备的控制权,针对应用层协议的缓冲区溢出攻击等。


(二)TCP/IP攻击利用的常见协议漏洞


(1)ARP协议漏洞


ARP是“Address Resolution Protocol”的缩写,即地址解析协议。它是一个链路层协议,在本层和硬件接口之间进行联系,同时对网络层提供服务。


第二层的以太网交换设备并不能识别32 bit的IP地址,它们使用48 bit的以太网地址传输以太网数据分组。也就是说,IP数据分组在局域网内部传输时,并不是通过IP地址而是通过MAC地址来识别目标设备的。因此,IP地址与MAC地址之间必然存在着一种映射关系。ARP就是用来确定这种映射关系的协议,通过ARP,设备可以查询和获取目的IP地址所对应的MAC地址。


在TCP/IP网络环境下,一个IP数据分组传输到哪里以及如何传输,是靠路由表定义的。但是,当IP数据分组到达局域网后,哪台设备响应这个IP数据分组却是通过该IP数据分组中所包含的MAC地址来识别的。换句话说,只有MAC地址和该IP数据分组中的MAC地址相同的目标设备才会应答这个IP数据分组。


因为在网络中,每台设备都能够发送IP数据分组。所以,每台设备的内存中都有一个 IP地址与MAC 地址的转换表。这个转换表通常是动态的(在路由器中,该转换表可以被设置成静态的)。也就是说,在需要的时候,该对应表会被设备进行更新。如果你在命令行下输入arp -a,其回显输出看起来应该是如图3所示的样子。其中,第一列显示的是IP地址;第二列显示的是和IP地址对应的网卡的MAC地址;第三列是该IP地址和MAC地址的对应关系类型。


图3  arp–a命令回显结果示例

为了提高处理效率,ARP使用了缓存机制,即在设备中专门有一个内存缓冲区,保存设备最近获得的IP/MAC地址对。在发送数据分组之前,系统首先会在内存缓冲区中查找数据分组接收对象IP地址所对应的MAC地址。如果在内存缓冲区中没有找到,设备会对外发送一个FF:FF:FF:FF:FF:FF(即广播地址)的ARP请求数据分组,对外请求地址解析。


然而,ARP缓存的实现机制中存在缺陷。当设备收到一个ARP的应答数据分组后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答数据分组里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。基于此缺陷,攻击者可以精心构造中间人攻击或者拒绝服务(DoS)攻击。


(2)ICMP漏洞


ICMP是TCP/IP族的子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络是否通畅、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递却起着重要的作用。


我们在网络中经常会使用到 ICMP,只不过并未特意察觉。比如经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP工作的过程。还有其他的网络命令(如跟踪路由的Tracert命令)也是基于ICMP的。


一些系统和防火墙并不会拦截ICMP数据分组,这给攻击者带来了可乘之机。攻击者可以向一个有大量主机和外网连接的网络广播地址发送一个欺骗性的Ping分组(ECHO请求),这个目标网络通常被称为反弹点,而欺骗性的Ping分组源地址就是要攻击的目标主机。由于几乎所有的系统都会尽快地回复ICMP数据分组,因此,目标主机会被大量的ECHO应答信息淹没,这样可以造成拒绝服务攻击并瘫痪网络。


(3)TCP漏洞


TCP漏洞是网络协议中的最大缺陷,也经常成为攻击者尝试攻击方式的思想源泉。其主要问题存在于TCP的三次握手机制上。


正常的TCP三次握手过程是这样的:发送端设备A发送一个SYN数据分组;接收端设备B收到A的SYN数据分组后,发送给A自己的SYN+ACK数据分组;接下来,A对SYN+ACK数据分组进行确认,同时将自己的ACK数据分组发送给B。在此之后,TCP连接便建立了。


当TCP三次握手没有完成的时候,接收端设备B一般都会重试(即再给A发送SYN+ACK数据分组)并等待一段时间(SYN Timeout)。这常常被用来利用进行Do S、LAND和SYN Flood攻击。另外,TCP三次握手并没有对参与通信的双方进行身份认证,因此,还有可能被用来进行会话劫持。


“会话劫持”(Session Hijack)是一种结合了嗅探技术以及欺骗技术在内的攻击手段。从广义上说,会话劫持就是在一次正常的通信过程中,攻击者作为第三方参与到其中,或者是在数据分组里加入其他信息,甚至将双方的通信模式暗中改变,即从直接联系变成有攻击者参与的联系。简单地说,会话劫持就是攻击者把自己插入到受害者和目标机器之间,并设法让受害者和目标设备间的数据通道变为受害者和目标设备之间存在一个看似“中转站”的代理(攻击者的设备)的数据通道,从而干涉2台机器之间的数据传输(例如,监听敏感数据、替换数据等)。当攻击者介入其中后,就能够轻易知晓双方传输的数据内容,还能根据自己的意愿去改变它。


典型的会话劫持就是利用TCP/IP的工作原理来设计攻击的。在介绍TCP/IP会话劫持前,先解释一下TCP/IP用于确认数据传输的判断机制。


TCP采用了2种条件来确认每条已经建立连接的TCP通道。①“基础连接确认”,即TCP连接中的四大必备条件:源IP、源TCP端口、目标IP、目标TCP端口。②“序号标识”(SEQ,Sequence Numbers),它们是成对出现的,分为序号字段(SEQ,Sequence)和确认序号字段(ACK SEQ,Acknowledgement Sequence)。序号字段指出了本数据分组中传送的数据在发送端设备所要传送的整个数据流中的顺序号;而确认序号字段指出了发送本数据分组的设备希望接收对方设备中下一个八位组的顺序号。


这样的设计,目的是为了避免出现前面提到的会话劫持情况。然而,不幸的是,由于TCP必须遵从下面的规则,这对序号是可预测的。


一台设备即将发出的分组中的SEQ值应等于它所刚收到的数据分组中的ACK SEQ值,而它所要发送数据分组中的ACK SEQ值应为它所收到数据分组中的SEQ值加上该数据文中所发送的TCP数据的长度。即两者存在“本次发送的SEQ =上次收到的ACK SEQ;本次发送的ACK SEQ = 上次收到的SEQ + 本次发送的TCP数据长度”的关联。


由此,攻击者只需要设法监听到受害者TCP连接中的第一个条件(源IP、源TCP端口、目标IP、目标TCP端口),就可以得知其中一台设备对将要收到的下一个TCP数据分组中SEQ和ACK SEQ值的要求。这样,攻击者就能在原来的合法设备收到另一台合法设备发送的TCP数据分组前根据所截获的信息向该设备发出一个符合序号标识条件的TCP数据分组。


如果该设备先收到了攻击数据分组,就会受到欺骗,从而把合法的TCP会话建立在攻击设备与被攻击设备之间,而且攻击数据分组会让被攻击设备对下一次要收到的TCP数据分组中的确认序号值的要求发生变化,最终使另一台合法的设备向被攻击设备发出的数据分组被拒绝,这种模式被称为“主动劫持”。


换句话说,就是其中一方合法设备被攻击者掠夺了连接的权限,而攻击者却成为了合法的连接方之一。这种会话劫持让攻击者避开了被攻击设备对访问者的身份验证和安全认证,从而使攻击者直接进入对被攻击设备的访问状态,因而危害非常严重。


三、网络安全协议


为了弥补TCP/IP族的安全缺陷,人们开始研发各种各样的安全技术。其中,最基础的就是从协议层面加强网络的安全性。要想在互联互通的基础上保证计算机和通信网络的安全连接和数据安全传输,必须依托于链路层、网络层、传输层、应用层的网络安全协议才能实现。例如,文件传输协议(FTP,File Transfer Protocol)位于TCP/IP的第四层,是被广泛使用的应用层网络协议。但是FTP的一个重要安全问题,就是它使用明文传输文件,即直接发送未经过加密的文件。攻击者通过数据分组嗅探或其他方式就可以轻易拦截到流量并查看文件内容。相较而言,安全文件传输协议(SFTP,Secure File Transfer Protocol)是更加安全的传输方式,SFTP通常建立在安全协议——安全外壳协议(SSH,Secure Shell)之上,加密命令和数据传输,减少类似的拦截攻击。


可以说,网络安全协议是定义网络安全连接及数据安全传输的基本格式和规则,是构成网络空间安全保障能力的基础构成要素,是芯片、操作系统、计算机、网络设备基本安全能力的支撑,也是赖以建立网络信任的基础。网络安全协议通常以协议栈软件代码形态嵌入操作系统中间功能层中形成基础的安全功能。具备安全功能的计算机、网络设备或专用的网络安全设备部署在网络环境中,网络空间的安全、健壮才成为可能。网络安全协议及其代码也是定义各种网络服务、网络行为的基本技术规范,是网络空间安全治理的核心着眼点和关键技术手段,是网络信任赖以建立的基础。


依据业内公认的互联网四层模型,网络安全协议通常分为链路层、互联网层、传输层、应用层等四层安全协议,四层网络安全协议在网络空间中发挥的安全作用各有不同。


其中,链路层安全协议直接作用在计算机和网络设备之上,通过用户鉴别、访问控制、数据机密性验证等安全机制保证了互联互通的网络设备之间点对点的安全;互联网层安全协议通过鉴别、加密等安全机制,提供了路由网络间端对端的安全;传输层安全协议利用身份认证、加密通信实现互联网数据安全传输,为网站、电子邮件、电子商务等互联网业务的数据传输提供安全保障;应用层安全协议利用鉴别、加密等相关安全机制,实现了应用层资源安全访问,能够为网页浏览、电子邮件等各种网络应用服务提供安全保障。


网络安全协议与现有的四层网络通信协议在技术层面虽为2个不同的专业领域,但同为网络基础设施的核心构成部分;二者协同发挥作用,但保持松耦合关系,网络安全协议既被网络通信协议调用、服务于网络协议又保持一定的独立性。


从微观的技术构成关系来看,网络安全协议又是由更细化的技术组件形成的一组技术组合,其中包括安全机制、安全管理机制以及密码算法。各种组件通常不直接面向用户的安全需求,而是通过安全协议在实际应用中发挥作用。


网络安全协议通常要通过一定的安全机制和安全管理机制调用某种密码算法来实现某种特定安全功能,比如实体间的鉴别、安全地分配密钥、确认消息发送的真实性、防止消息被篡改以及在网络交易中的抗抵赖性等。因此,有学者从密码学的角度出发,将密码算法、安全机制以及密码算法赖以实现其功能和作用的安全协议均笼统地概称为“密码协议”。这种划分方式单方面强调了密码算法的重要性。事实上,单纯的密码算法如果不与安全机制结合实现在安全协议中,是无法在网络安全中独立发挥作用的。在实际的技术研发及工程实现逻辑中,网络安全协议范畴的外延较密码协议更广泛、内涵所指更具体,因此被业内广泛接受。


具体而言,网络安全协议通常是作为安全协议组件,以“协议栈软件代码模块、IP核等形态”嵌入在操作系统中间功能层中,或者根据效率要求被集成实现在芯片内,被上层应用所调用,从而形成操作系统、芯片最基础的安全能力;随着芯片、操作系统在产品集成开发中的应用,网络安全协议也被集成到计算机、网络设备中去,进而形成了这些设备的安全能力;具备安全能力的计算机、网络设备或专用的网络安全设备部署在网络环境中,网络的安全连接和数据安全传输才成为可能。


这种情况下,如果仅仅在计算机、网络设备和安全应用软件层面关注网络安全,而不对网络安全能力赖以形成的网络安全协议等基础安全技术实现自主可控,就无法战略性地从基础和核心层面保障网络安全。


全球范围内对网络安全协议的研究是伴随着计算机、互联网技术的演进和产业成熟程度逐步发展的。该领域的研究始于20世纪80年代初,在这方面,美国得益于其计算机、网络产业的先发优势,较早地涉足网络安全协议设计领域。


美国官方很早就开始关注网络协议的安全性问题。早在1986年,面对计算机和通信技术快速发展带来的安全风险,NSA 和 NBS(NIST前身)、国防通信局(DCA, Defense Communications Agency)以及AT&T、BBN、IBM等12家美国通信与计算机公司合作发起了一个特殊的研发项目“安全数据网络体系”(SDNS,Secure Data Network System)。该项目的四大目标之一就是开发安全网络协议,在实现互操作性的基础上实现通信网络的安全连接。


SDNS计划始于1986年夏天,在1987年夏天就完成了第一阶段开发任务,提出了基于OSI 七层模型的SDNS安全架构,主要为OSI模型中第二、三、四、七层(链路层、网络层、传输层、应用层)提供机密性、完整性、身份认证和访问控制等基本安全服务。


SDNS计划的工作成果在1988年之后陆续公开发表。在SDNS安全架构下开发的“网络、传输与消息安全协议”(NISTIR 90−4250)、“访问控制”(NISTIR 90−4259)、“密钥管理”(NISTIR 90−4262)等底层安全机制构成了当今网络安全协议的基础。IPSec、TLS等目前最常用的网络层和传输层安全协议,都是受SDNS计划影响的产物。例如, SDNS的网络层传输协议SP3(Security Protocol 3)后来被提交至ANSI和ISO形成网络层安全协议标准NLSP。SP3和NLSP共同成为1992年 IETF IPSec工作组制定IPSec标准的基础。有专家明确指出,IPSec使用的ESP和AH协议基本是直接源于SP3。SP3等协议技术后来被提交至ANSI和ISO,成为美国国家标准和ISO国际标准。此后,以此为基础,在美国主导下,逐步形成了802.11i、IPSec、SSL、TLS等一系列构成当今互联网安全基础设施的网络安全协议技术及国际标准。


在这些安全协议及标准的形成过程中,美国政府机构、学术研究机构和高科技公司做了大量的工作,保持着对网络空间基础设施以及关键技术的绝对控制权和领先优势,在网络安全协议的研究领域居于相对领先地位。


我国早在20世纪90年代末就已开始关注这一领域的研究,并展开无线局域网、有线局域网、IP网络通信领域的安全协议研究与设计。在2000年左右,我国相关企业和研究机构,针对国际标准ISO/IEC 8802−11中存在的安全缺陷,在三元对等安全思想基础上提出了我国首个无线安全协议 WAPI,为保障无线局域网安全提供了一种新的技术方案。由于其技术的先进性和有效性,WAPI被采纳进无线局域网国家标准体系,并于2003年5月12日由国家质检总局颁布为国家标准GB 15629.11−2003和GB 15629.1102−2003,此即公众所知的中国WAPI标准,这一进程比美国同类标准美国IEEE 802.11i标准颁布早一年多。中美网络安全协议架构对比如表2所示。


表2  中美网络安全协议架构对比

WAPI作为中国提出的可信赖的无线安全技术标准,是目前全球范围内唯一与美国IEEE 802.11i标准(也就是目前的“Wi-Fi”)相竞争的无线局域网安全标准。2003年一经颁布就遭遇到美国动用国家机器在标准、知识产权、技术贸易等多重层面的全方位遏制,其用意就在于维护其主导的有缺陷IEEE 802.11i标准(经ISO/IEC发布为国际标准ISO/IEC 8802−11)在全球的实施,用以维护和巩固其在全球网络空间的掌控力和主导地位。


但在此之后,我国在网络安全协议领域的研究从深度和广度上都取得积极的进展和关键突破,不仅在无线移动网络安全、有线网络安全、近距离通信安全、IP安全可信、传输安全可信等相关领域形成了数十项网络安全协议,而且形成一体化三元对等网络安全技术架构(Te PA),并以此为基础逐步形成一系列国家标准、行业标准。与此同时,在构成网络安全协议基本组件的鉴别、访问控制等基础安全机制领域也有重大创新,形成一系列关键基础安全技术,其中“实体鉴别”和“匿名实体鉴别”等四项基础安全技术已获ISO/IEC国际标准组织采纳颁布,成为中国在基础性信息安全领域仅有的四项国际标准。


三元对等网络安全技术架构(TePA)中的所有安全协议均可在不改变现有网络体系结构的前提下与现有TCP/IP网络协议以及IPSec等网络安全协议兼容并存,在保证互联互通和互操作性基础上,采用自主创新的基础安全机制实现网络安全的自主可控。这些网络安全协议创新成果对增强我国网络基础安全防御能力,实现网络安全自主可控,有着重要的战略价值和技术支撑作用,也为我国取得在网络安全基础技术领域的战略主动性奠定了坚实的基础。


然而,客观地看,我国在网络安全协议领域的自主创新尚处于早期发展阶段,仍然有很大的拓展空间,仍然需要花大力气构建并积极启用我国自主可控网络安全协议技术体系,并促进其在我国芯片、操作系统、计算机和网络设备的集成开发中的全面部署使用。


四、网络安全协议的安全问题


网络安全协议是用来弥补网络协议的安全缺陷的,但是网络安全协议并非坚不可摧。例如,用于构建无线局域网(WLAN,Wireless Local Area Network)的IEEE 802.11是如今被广泛使用的网络协议,其位于TCP、IP模型的第一层,定义了无线局域网网络接口层。但是由于IEEE 802.11本身在安全设计方面存在严重缺陷,802.11b标准定义了安全性协议WEP。然而,WEP自身也存在严重的设计缺陷(例如,其缺少密钥管理的方案等),会导致密钥流重用及消息更改等攻击。正是由于其严重的安全缺陷,曾一度影响IEEE 802.11的市场推广及使用。


互联网安全协议SSL的开源版本Open SSL漏洞爆发后,在全球互联网行业引发安全担忧,让人们进一步认识到网络安全协议对于网络的基础重要性以及其本身可能存在巨大安全隐患。随后,互联安全协议漏洞成为2014年巴西圣保罗召开的国际互联网治理大会的重要议题。对于中国应该采取的应对举措,与会的一些中国专家表示,深入全面掌握核心技术至关重要,并指出我国应该研发符合国情需要的网络安全协议。


总地来看,网络安全协议作为一种基础共性技术,在整个网络安全防护体系中居于基础核心地位。然而,由于其本身具有公共品属性和很强的政策属性,政府在其创新、供给和扩散过程中具有不可替代的主导性地位。这一点在美国政府积极主导一系列互联网安全协议的制定和推广过程中表现的非常明显。当前,我国政府需要着力解决长期困扰我们的网络安全协议创新与应用部署过程中存在的“组织缺位”“市场失灵”“激励不足”“创新动力不足”等问题。政府和企业、研究机构需要协同努力,积极加强顶层规划,积极展开科技政策和创新管理体制改革,通过这些积极的机制创新和技术政策,加快我国自主网络安全技术研发与应用部署的进程,以争取网络安全防御的战略主动。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存