网络安全基础之网络协议与安全威胁

OSI(OpenSystem Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。

网络协议的简介:

定义:协议是网络中计算机或设备之间进行通信的一系列规则集合。

什么是规则?

交通中的红黄绿灯:红灯停,绿灯行就是规则。

我国汽车靠右行就是规则。

OSI七层模型

OSI(OpenSystem Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。

(1)物理层(Physical Layer)

物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理连接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。

(2)数据链路层(Data Link Layer)

数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。

(3)网络层(Network Layer)

网络层是为传输层提供服务的,传送的协议数据单元称为数据包或分组。

(4)传输层(Transport Layer)

传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。

传输层传送的协议数据单元称为段或报文。

(5)会话层(Session Layer)

会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。

(6)表示层(Presentation Layer)

表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据表示格式转换成网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

(7)应用层(Application Layer)

应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。

TCP/IP协议

译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

OSI模型与TCP/IP协议的对应

左边是OSI模型,右边是TCPIP协议栈分层模型,可以看得出,两个模型有很清晰的对应关系。

两个模型的下四层是一一对应的,而OSI模型的上三层对应到TCPIP协议的应用层,所以在谈论"应用层"概念的时候,要注意讨论的是哪个模型。

数据传输的协议单元

依据标准的OSI术语,每层间对应的"协议数据单元"(Protocol Data Unit,简称PDU)的名称都是不同的

物理层为"位"(bit),即平常讲的二进制数位流,在物理传输介质上以二进制数字信号传输(简单的如高电平代表"1",底电平代表"0")。

物理层的传输介质包括:

同轴电缆(coaxical cable):细缆和粗缆,目前已经不常用;

双绞线(twistedpair):UTP(Unshielded Twisted Paired , 非屏蔽双绞线),这种即平时常用的网线;STP (Shielded Twisted Pair,屏蔽双绞线),这种线适用于电磁干扰恶劣的工业环境;(这两种线使用铜线做介质,到用户家虽然看起来就一两根,但在运营商的管线里是几千条几百条线在一起的大对线缆,经常是偷铜者的目标)

光纤(OpticalFiber):使用光信号来传播数字信号的介质,坐火车到处看到路边写的大标语:"光纤没铜,挖了没用"就是指这个;

无线电波(wirelessradio);

数据链路层PDU名称叫数据帧"Frame",例如帧中继技术名称叫Frame Relay ,其数据单元名字叫"帧",对以太网来说是以太帧。

网络层PDU的名称叫数据包Packet, 因为IP协议在这一层,所以互联网上的数据一般被称为IP数据包。

传输层PDU的名称叫数据段Segment ,这个层面最著名的是传输控制协议TCP和用户数据报协议UDP。

会话层Session 的PDU叫SPDU,会晤协议数据单元;

表示层Presentation的PDU叫PPDU,表示协议数据单元;

应用层Application的PDU叫APDU,应用协议数据单元;

数据封包和解包过程

用户数据报文的一个封装过程,应用程序的数据使用TCP协议进行传输,用户数据被切割成合适的数据片段后,被加上网络层协议IP的首部字节,成为IP数据包,然后被加上数据链路层的以太网首部,成为以太网数据帧,再由以太网驱动程序将帧转化为二进制位流,在物理层面传送。

数据包传输过程

上图是两个主机通过一台交换机和一台路由器通信的示意图。二层交换机仅跨越OSI模型的物理层和数据链路层,所以称为二层交换机,仅为所有连接的主机提供数据链路层间的互通功能。

路由器是跨越物理层、数据链路层、网络层的设备。

最简单的路由器的概念是一台装有两块网卡的主机,主机内部安装的路由软件可以根据IP地址在两块网卡间转发IP数据包,两块网卡各有一个IP地址,具有两个物理接口的路由器同这个道理是类似的。

由上图图四可以看到,IP地址的概念是属于IP协议,IP协议是属于OSI模型第三层网络层的,所有跨越网络层的设备都需要有IP地址。最左边的主机同路由器的左侧接口各有一个IP地址,使用IP协议通信;最右边的服务器和路由器右侧接口各有一个IP地址,使用IP协议通信;路由器的不同接口的IP地址是属于不同的IP子网的,路由器就是在不同IP子网间传送IP数据包的设备,路由是根据IP数据包里的地址选择正确传递路径的过程。

TCP/IP 四层模型

ARP协议:

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

原理:

主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。

网络接口层的安全威胁

在网络中,flooding是指从任何节点通过一个路由器发送的信息包会被发送给与该路由器相连的所有其他节点(除了发送信息包出来的那个节点)。

在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不同源MAC地址的数据包,导致交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。如果攻击成功,交换机会进入failopen模式,所有新进入交换机的数据包会不经过交换机处理直接广播到所有的端口(类似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内所有用户的信息进行捕获,从而能得到机密信息或者各种业务敏感信息。

损坏:自然灾害、动物破坏、老化、误操作

干扰:大功率电器/电源线路/电磁辐射

电磁泄漏:传输线路电磁泄漏

搭线窃听:物理搭线

欺骗:ARP欺骗

嗅探:常见二层协议是明文通信的(以太、arp等)

拒绝服务:macflooding,arpflooding等

arp欺骗:

攻击者在局域网网段发送虚假的IP/MAC对应信息,篡改网关MAC地址,使自己成为假网关

受害者将数据包发送给假网关(攻击者)

假网关(攻击者)分析接收到的数据包,把有价值的数据包记录下来(比如QQ以及邮箱登录数据包)

假网关再把数据包转发给真正的网关

互联网网络层

译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

IP协议简介:

IP协议是用于将多个包交换网络连接起来的,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。

IP实现两个基本功能:寻址和分段。IP可以根据数据包包头中包括的目的地址将数据报传送到目的地址,在此过程中IP负责选择传送的道路,这种选择道路称为路由功能。如果有些网络内只能传送小数据报,IP可以将数据报重新组装并在报头域内注明。IP模块中包括这些基本功能,这些模块存在于网络中的每台主机和网关上,而且这些模块(特别在网关上)有路由选择和其它服务功能。对IP来说,数据报之间没有什么联系,对IP不好说什么连接或逻辑链路。

互联网层网络安全威胁

传输层

IP分片技术

以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。

IP分片攻击

如果有意发送总长度超过65535的IP碎片,一些老的系统内核在处理的时候就会出现问题,导致崩溃或者拒绝服务。另外,如果分片之间偏移量经过精心构造,一些系统就无法处理,导致死机。所以说,漏洞的起因是出在重组算法上。pingo' death是利用ICMP协议的一种碎片攻击。攻击者发送一个长度超过65535的EchoRequest数据包,目标主机在重组分片的时候会造成事先分配的65535字节缓冲区溢出,系统通常会崩溃或挂起。ping不就是发送ICMPEcho Request数据包的吗?让我们尝试攻击一下吧!不管IP和ICMP首部长度了,数据长度反正是多多益善,就65535吧

IP数据包

数据包的结构:数据包的结构非常复杂,不是三言两语能够说清的,在这里主要了解一下它的关键构成就可以了,这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由"目的IP地址"、"源IP地址"、"净载数据"等部分构成,包括包头和包体,包头是固定长度,包体的长度不定,各字段长度固定,双方的请求数据包和应答数据包的包头结构是一致的,不同的是包体的定义。数据包的结构与我们平常写信非常类似,目的IP地址是说明这个数据包是要发给谁的,相当于收信人地址;源IP地址是说明这个数据包是发自哪里的,相当于发信人地址;而净载数据相当于信件的内容。正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中其实传递的就是数据包。理解数据包,对于网络管理的网络安全具有至关重要的意义。

我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。"包"听起来非常抽象,那么是不是不可见的呢?通过一定技术手段,是可以感知到数据包的存在的。 就是用数据包捕获软件Iris捕获到的数据包的界面图,在此,大家可以很清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分析这些数据,网管员就可以知道网络中到底有什么样的数据包在活动了。

TCP/UDP协议

面向连接的TCP协议:

TCP(TransmissionControl Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次"对话"才能建立起来,也就是所谓的"TCP的三次握手"。

面无连接的UDP协议:

UDP(UserData Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

"面向连接"就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。

TCP的三次握手:

其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:"我想给你发数据,可以吗?",这是第一次对话;主机B向主机

A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:"可以,你什么时候发?",这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:"我现在就发,你接着吧!",这是第三次对话。三次"对话"的目的是使数据包的发送和接收同步,经过三次"对话"之后,主机A才向主机B正式发送数据。

"面向非连接"就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。

TCP:FTPHTTP POP IMAP SMTP TELNET SSH

UDP

Q聊天,在线视频RTSP,网络语音电话VoIP

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据。

传输层的安全威胁

在网络中,flooding是指从任何节点通过一个路由器发送的信息包会被发送给与该路由器相连的所有其他节点(除了发送信息包出来的那个节点)。

在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不同源MAC地址的数据包,导致交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。如果攻击成功,交换机会进入failopen模式,所有新进入交换机的数据包会不经过交换机处理直接广播到所有的端口(类似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内所有用户的信息进行捕获,从而能得到机密信息或者各种业务敏感信息。

拒绝服务:syn flood/udp flood/Smurf欺骗:TCP会话劫持窃听:嗅探伪造:数据包伪造

应用层的安全威胁

域名解析:DNS电子邮件:SMTP/POP3文件传输:FTP网页浏览:HTTP......

拒绝服务:超长URL链接欺骗:跨站脚本、钓鱼式攻击、cookie欺骗窃听:嗅探伪造:应用数据篡改暴力破解:应用认证口令暴力破解等......

相关推荐
Joshua-a5 小时前
macOS下arm编译缺少stdint.h等问题
arm开发·macos
蚂蚁舞8 小时前
在arm架构的Debian系统手动安装和卸载Mysql8的操作
arm开发·debian·安装mysql·mysql8·卸载mysql
m0_571372828 小时前
嵌入式学习——ARM 体系架构1
arm开发·学习
生涯にわたる学び13 小时前
自旋锁/互斥锁 设备树 iic驱动总线 day66 67 68
arm开发
李小白2020020218 小时前
windows 10系统安装arm虚拟机
arm开发
亿道电子Emdoor3 天前
【ARM】PACK包管理
arm开发
wypywyp3 天前
基于arm芯片的驱动开发——温湿度传感器dht11
arm开发·驱动开发
亿道电子Emdoor4 天前
【ARM】MDK如何实现使用Hex文件完成程序烧录
arm开发·stm32·单片机
彻骨寒风4 天前
在麒麟 ARM (aarch64)安装OpenJDK11和elasticsearchkibana
运维·arm开发·jenkins
2301_1472583694 天前
ARM - GPIO 标准库开发
arm开发