目录

  • 1 概论
    • 1.1 课程简介
    • 1.2 导入
    • 1.3 计算机安全概念
    • 1.4 OSI安全体系结构
    • 1.5 安全攻击
    • 1.6 安全服务
    • 1.7 安全机制
    • 1.8 网络安全模型
    • 1.9 讨论和作业
  • 2 对称加密和消息机密性
    • 2.1 对称加密原理
    • 2.2 对称分组加密算法
    • 2.3 随机数和伪随机数
    • 2.4 流密码和RC4
    • 2.5 分组密码工作模式
    • 2.6 讨论和作业
  • 3 公钥密码和消息认证
    • 3.1 消息认证方法
    • 3.2 安全散列函数
    • 3.3 消息认证码
    • 3.4 公钥密码原理
    • 3.5 公钥密码算法
    • 3.6 数字签名
    • 3.7 讨论和作业
  • 4 密钥分配和用户认证
    • 4.1 基于对称加密的密钥分配
    • 4.2 Kerberos
    • 4.3 基于非对称加密的密钥分配
    • 4.4 X.509证书
    • 4.5 公钥基础设施
    • 4.6 联合身份管理
    • 4.7 讨论和作业
  • 5 网络访问控制和云安全
    • 5.1 网络访问控制
    • 5.2 可扩展认证协议
    • 5.3 IEEE 802.1X基于端口的网络访问控制
    • 5.4 云计算
    • 5.5 云安全风险和对策
    • 5.6 云端数据保护
    • 5.7 云安全即服务
    • 5.8 讨论和作业
  • 6 传输层安全
    • 6.1 Web安全需求
    • 6.2 安全套接字层和传输层安全
    • 6.3 传输层安全
    • 6.4 HTTPS
    • 6.5 SSH
    • 6.6 讨论和作业
  • 7 无线网络安全
    • 7.1 无线安全
    • 7.2 移动设备安全
    • 7.3 IEEE 802.11无线局域网概述
    • 7.4 IEEE 802.11i无线局域网安全
    • 7.5 讨论和作业
  • 8 电子邮件安全
    • 8.1 引言
    • 8.2 PGP
    • 8.3 S/MIME
    • 8.4 DKIM
    • 8.5 讨论和作业
  • 9 IP安全
    • 9.1 IP安全概述
    • 9.2 IP安全策略
    • 9.3 IPSec通信协议
    • 9.4 安全关联组合
    • 9.5 因特网密钥交换
    • 9.6 密码套件
    • 9.7 讨论和作业
  • 10 恶意软件
    • 10.1 恶意软件类型
    • 10.2 传播-感染内容-病毒
    • 10.3 传播-漏洞利用-蠕虫
    • 10.4 传播-社会工程-垃圾邮件与特洛伊木马
    • 10.5 载荷-系统破坏
    • 10.6 载荷-攻击代理-僵尸病毒与机器人
    • 10.7 载荷-信息窃取-键盘监测器、网络钓鱼与间谍软件
    • 10.8 载荷-隐身-后门与隐匿程序
    • 10.9 防护措施
    • 10.10 分布式拒绝服务攻击
    • 10.11 讨论和作业
  • 11 入侵者
    • 11.1 入侵者
    • 11.2 入侵检测
    • 11.3 口令管理
    • 11.4 讨论和作业
  • 12 防火墙
    • 12.1 防火墙的必要性
    • 12.2 防火墙特征
    • 12.3 防火墙类型
    • 12.4 防火墙载体
    • 12.5 防火墙的位置和配置
    • 12.6 讨论和作业
  • 13 总结
    • 13.1 信息安全
    • 13.2 网络安全
    • 13.3 系统安全
    • 13.4 思维导图
网络安全

TCP/IP体系结构各层安全协议介绍



TCP/IP体系结构各层安全协议介绍

安全协议:

1. IPSEC——网络层

2. SSL/TSL——传输层

3. 应用层安全(WEB、远程应用、邮件)

 TCP/IP从字面上看是两个Internet上的网络协议(TCP是传输控制协议,IP是网际协议),通常包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SNMP、ARP、TFFP等协议。下面是OSI参考模型与TCP/IP参考模型对比。

 

TCP/IP协议栈


观察TCP/IP的协议栈,我么可以发现,在诸多协议中,并没有针对安全的协议,这时就需要安全协议来保证通信的安全


 


Internet安全性途径

应用层——S/MIME, PGP, PEM, SET, Kerberos, SHTTP, SSH

传输层—— SSL / TLS

网络层——IP 安全性(IPSec)

 


1.应用层安全

将安全服务嵌入在应用程序中(不透明),在相应的应用中提供机密性、完整性和不可抵赖性等安全服务,从而在应用层实现通信安全 这一层协议较多,如S/MIME、PGP是用于安全电子邮件的一种标准。 还有安全交易协议SET(Secure Electronic Transaction)等等 ;



 


2.传输层安全

在传输层之上实现数据的安全传输是另一种安全解决方案。一般SSL都是可执行协议软件包的一部分,从而对应用是透明的,也可以嵌入到特殊软件包中(IE浏览器都配置了SSL)。


传输层是解决端到端的数据传输问题。传输层提供TCP与UDP两种服务。TCP是可靠的面向连接的服务,UDP是无连接的数据包服务。确保传输层安全有相应的协议SSL、TLS、WTLS。


      SSL(Secure Sockets Layer 安全套接层协议)


      TSL(Transport Layer Security 传输层安全协议)


      WTLS(Wireless Transport Layer Security 无线传输层安全协议)


 


3.网络层安全

IPSec可提供端到端的安全性机制,可在网络层上对数据包进行安全处理。 可在路由器、防火墙、主机和通信链路上配置,实现端到端的安全、虚拟专用网络和安全隧道技术等。对终端用户和应用是透明的,提供了一种一般性的解决方案。

网络层是负责数据包路由的选择,网络层安全就是确保数据包能够顺利到达指定目的地。


 4.数据链路层安全

网络接口层安全:通常只链路层安全,可以通过加密方式确保数据不被窃听,通常依靠物理层加密。

 

————————————————

版权声明:本文为CSDN博主「Marvin_Huoshan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Marvin_Huoshan/article/details/83094716

TCP/IP层次安全性



TCP/IP层次安全性

TCP/IP的安全性可分为多层,各安全层是一包含多个特征实体。在不同层次,可增加不同安全策略和措施。如在传输层提供安全套接层服务SSL和其继任者传输层安全TLS,是为网络通信提供安全及数据完整性的一种安全协议,在网络层提供虚拟专用网VPN技术等。TCP/IP网络安全技术层次体系如图所示。



TCP/IP物理层的安全性


TCP/IP模型的网络接口层对应着OSI模型的物理层和数据链路层。物理层安全问题是指由网络环境及物理特性产生的网络设施和线路安全性,致使网络系统出现安全风险,如设备问题、意外故障、信息探测与窃听等。由于以太网上存在交换设备并采用广播方式,可能在某个广播域中侦听、窃取并分析信息。为此,保护链路上的设施安全极为重要,物理层的安全措施相对较少,最好采用“隔离技术”将每两个网络保证在逻辑上能够连通,同时从物理上隔断,并加强实体安全管理与维护。


TCP/IP网络层的安全性


网络层的主要功能主要用于数据包的网络传输,其中IP协议是整个TCP/IP协议体系结构的重要基础,TCP/IP中所有协议的数据都以IP数据包形式进行传输。


TCP/IP协议族常用的两种IP版本是IPv4和IPv6。IPv4在设计之初根本没有考虑到网络安全问题,IP包本身不具有任何安全特性,从而导致在网络上传输的数据包很容易泄漏或受到攻击,IP欺骗和ICMP攻击都是针对IP层的攻击手段。如伪造IP包地址、拦截、窃取、篡改、重播等。因此,通信双方无法保证收到IP数据包的真实性。IPv6简化了IPv4中的IP头结构,并增加了对安全性的设计。


TCP/IP传输层的安全性


TCP/IP传输层主要包括传输控制协议TCP和用户数据报协议UDP,其安全措施主要取决于具体的协议.传输层的安全主要包括:传输与控制安全、数据交换与认证安全、数据保密性与完整性等.TCP是一面向连接协议,用于多数互联网服务:HTTP、FTP和SMTP.为了保证传输层的安全设计了安全套接层协议SSL(Secure Socket Layer),现更名传输层协议TLS(Transport Layer Security),主要包括SSL握手协议和记录协议。


SSL协议用于数据认证和数据加密的过程,利用多种有效密钥交换算法和机制。SSL记录协议对应用程序提供的信息分段、压缩、认证和加密.此协议提供了身份验证、完整性检验和保密性服务,密钥管理的安全服务可为各种传输协议重复使用。


TCP/IP应用层的安全性


网络安全性问题主要重点解决的常用应用系统(协议),包括HTTP、FTP、SMTP、DNS、Telnet等。

(1) 超文本传输协议(HTTP)安全

HTTP是互联网上应用最广泛的协议。使用80端口建立连接,进行浏览、数据传输和对外服务.其客户端使用浏览器访问并接受从服务器返回的Web网页.下载破坏性的控件或插件,在用户的终端上运行并含有恶意代码、病毒或特洛伊木马,注意不下载未经过检验的程序。


(2) 文件传输协议(FTP)安全

FTP是建立在TCP/IP连接上的文件发送与接受协议。由服务器和客户端组成,每个TCP/IP主机都有内置的FTP客户端,且多数服务器都有FTP程序。FTP通常使用20和21两个端口,由21端口建立连接,使连接端口在整个FTP会话中保持开放,用于在客户端和服务器之间发送控制信息和客户端命令.在FTP主动模式下,常用20端口数据传输,在客户端和服务器之间每传输一个文件都要建立一个数据连接。


(3) 简单邮件传输协议(SMTP)安全

不法分子可以利用SMTP对E-mail服务器进行干扰和破坏。如通过SMTP对E-mail服务器发送大量的垃圾邮件和聚集数据包,致使服务器不能正常处理合法用户的使用请求,导致拒绝服务。目前,绝大部分的计算机病毒基本都是通过邮件或其附件进行传播的。因此,SMTP服务器应增加过滤、扫描及设置拒绝指定邮件等功能。


(4) 域名系统(DNS)安全

网络通过DNS在解析域名请求时使用其53端口。黑客可以进行区域传输或利用攻击DNS服务器窃取区域文件,并从中窃取区域中所有系统的IP地址和主机名。可采用防火墙保护DNS服务器并阻止各种区域传输,还可通过配置系统限制接受特定主机的区域传输。


(5) 远程登录协议(Telnet)安全

Telnet的功能是进行远程终端登录访问,曾用于管理UNIX设备。允许远程用户登录是产生Telnet安全问题的主要问题,另外,Telnet以明文方式发送所有用户名和密码,给非法者以可乘之机,只要利用一个Telnet会话即可远程作案,现已成为防范重点。

————————————————

版权声明:本文为CSDN博主「HSXaaa123」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_41924879/article/details/101363737

TCP协议的安全性分析

有算法就有破解法,因为它们都遵循了一定的数据结构和数学知识。所以网络安全是一个相对的概念,不可能出现绝对的安全!作为当今最流行的网络协议——TCP也是如此。那么TCP的安全问题究竟是哪些因素引起的呢?


一、TCP漏洞的来源

1.设计初心

我们知道TCP协议诞生于1973年,那时候计算机网络也是刚刚起步。在没有经验的前提下,开发者们主要的目标是为了实现网络的连通性。对于安全性,一是没有经验,二是设计的目的性就不在此。所以TCP协议的诞生之初就意味着它不可能在安全性方面有太高的造诣


2.TCP数据的传输形势——明文传输

不同于一些诞生比较晚的计算机网络协议——https和chap等等。TCP协议在传输数据的时候是明文传输的。这在一定程度上就导致数据安全存在很大的隐患。这也是很多md5等一些列加密算法产生的重要原因


3.TCP协议的首部字段缺乏安全性认证


TCP协议对于数据发送的源头是没有验证机制的,即使数据报中存在源端口字段(也包括网络层协议IP数据报中包含源IP字段)!也就是说,很多时候我们关系的问题是如何把该数据报准确无误的传给谁,但是却忘了这个数据报确实是源方(源IP字段指定的客户端)发送来的未经修改或未经窃取的数据报吗?


4.TCP的连接性是一把双刃剑

只要知道TCP协议的人就知道TCP的一个重要特点——它是面向连接的一个网络协议!更通俗的说就是TCP所进行的数据的交互都是在一个连接周期中进行的!还可以换句话说,如果你想对某个客户端的发起攻击,必须要做的一件事情就是劫持(或窃听)该客户端和某网络应用的一个TCP连接(当前计算机网络的半壁江山都是基于TCP的)!


所以如果我们的某个基于TCP协议进行连接的进程如果被劫持,也就等效于这次数据几乎全部遇难(除非全部关键数据都进行了相关的加密技术)。那么劫持TCP连接的关键在哪?


这个关键点就是报文首部的序号字段。我们知道,TCP的流量控制、数据失效重传功能、拥塞控制算法等等都与滑动窗口的大小(起始端点和窗口长度)有着密切的联系,而滑动窗口的大小取值恰恰依赖着这个 “序号” 字段。我们先回顾一下tcp首部中一些较为关键的字段及其分析:


序号 ===> 4byte;序号范围是[0,2^32 - 1]


序号增加到 2^32 - 1 后,下一个序号就又回到0。也就是说,序号使用mod 2^32 运算;由于序号字段有32位长,可对4GB的数据进行编号。在一般情况下可保证当序号重复使用时,旧序号的数据早已通过网络到达终点了


在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。字节流的起始序号必须在连接建立时设置。TCP数据报首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。

例如,一报文段的序号字段值是301,而携带的数据共有100字节。这就表明:本报文段的数据的第一个字节的序号是301,最后一个字节的序号是400。显然,下一个报文段(如果还有的话)的数据序号应当从401开始,即下一个报文段的序号字段值应为401。这个字段的名称也叫做“报文段序号”。


==========================================================================


确认号 ===> 4byte;即期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则表明:到序号N-1为止的所有数据都已正确收到。


例如,B收到了A发送的一个报文段,其序号字段值是501,而数据长度是200字节(序号501~700),此时,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701。


==========================================================================


数据偏移 ===> 4bit;单位为4byte即32bit;它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。(即TCP报文段的首部长度)。因为该字段长4bit,单位为4byte。所以数据偏移的最大值是60字节,这也是TCP首部的最大长度(即选项长度不能超过40字节)。


==========================================================================


紧急URG(URGent)===> 1bit;


当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据),而不要按原来的排队顺序来传送。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍是普通数据。这时要与首部中紧急指针(Urgent Pointer)字段配合使用


==========================================================================


确认ACK(ACKnowledgment)===> 1bit;仅当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1


==========================================================================


推送PSH(PuSH) ===> 1bit;当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应,而不再等到整个缓存都填满了后再向上交付。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH=1的报文段,就尽快地(即“推送”向前)交付接收应用进程


==========================================================================


复位RST(ReSeT)===> 1bit;当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接。RST也可称为重建位或重置位。


==========================================================================


同步SYN(SYNchronization)===> 1bit;在连接建立时用来同步序号


当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使SYN=1和ACK=1。因此,SYN置为1就表示这是一个连接请求或连接接受报文


==========================================================================


终止FIN(FINis)===> 用来释放一个连接


当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接


==========================================================================


窗口 ===> 2byte;值是[0,2^16-1]之间的整数;窗口字段明确指出了现在允许对方发送的数据量。窗口值经常在动态变化着


窗口指的是发送本报文段的一方的接收窗口(而不是自己的发送窗口)。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量(以字节为单位)。之所以要有这个限制,是因为接收方的数据缓存空间是有限的


例如,发送了一个报文段,其确认号是701,窗口字段是1000。这就是告诉对方:“从701号算起,我(即发送此报文段的一方)的接收缓存空间还可接收1000个字节数据(字节序号是701~1700)


==========================================================================


大概了解了这些字段的作用之后,我们再从下图回顾一下TCP滑动窗口实现流量控制的具体步骤:




从上图中我们可以发现一个关键点——那就是只有我们掌握了某个tcp连接的下一个数据报序号和窗口大小,那么我们大多数情况下就可以顺利的劫持的此TCP连接,从而实现数据的监控甚至注入!


二、如何利用TCP的这些漏洞

通过以上的分析,我们已经明确了TCP安全的漏洞所在,那就是序号与滑动窗口的大小。而滑动窗口的大小可以通过多次分析tcp数据报首部的关键字段和数据长度加以获取。


对于TCP连接,不同的系统发出的数据报中的序列号的产生方法是不一样的,换句话说,从序列号可以得到该服务器或客户端的操作系统是属于windows系列还是Linux系列或者是mac系列等等。那么具体怎个不一样法呢?


当tcp连接出现异常的时候,我们向它发送一些不同标志位组合的报文,它们的反映是不一样的。举例来说,加入我们发送RET报文,目标主机如果是windows系列,它会返回一个RST报文,如果是LInux则不会做任何响应。得到了目标主机的操作系统型号,就可以更容易的获取滑动窗口的大小,然后根据报文中的序号字段实行劫持。


因为TCP使用的sequence number是一个32位的计数器,从0-4294967295。tcp为每一个连接选择一个初始序号ISN,为了防止因为延迟、重传等扰乱三次握手,ISN不能随便选取,不同系统有不同算法。理解tcp如何分配ISN以及ISN随时间变化的规律,对于成功地进行arp欺骗攻击很重要。


三、如何进行TCP欺骗

1.TCP欺骗的方法

非盲攻击:攻击者和被欺骗的目的主机在同一个网络上,攻击者可以简单地使用协议分析器(嗅探器)捕获tcp报文段,从而获得需要的序列号


盲攻击:由于攻击者和被欺骗的目标主机不在同一个网络上,攻击者无法使用嗅探器捕获tcp报文段。其攻击步骤与非盲攻击几乎相同,只不过在步骤三无法使用嗅探器,以使用tcp初始序列号预测技术得到初始序列号。在步骤攻击者X可以发送第一个数据包,但收不到A的响应包,难实现交互


2.TCP序号的产生方法

三种常用的产生方法:


①.64K规则---RFC793


②.机器时钟---RFC1948


③.伪随机数


以上三种序列号产生都是有一定的规则的,不是杂乱无章的:


RFC793

RFC793指出ISN可看作是一个32比特的计数器函数确定,每4ms加1,我们进行若干次的重复连接之后,求得数据的平均往返时间RTT,然后再根据序号的增速猜测下一个序号可能是多少


RFC1948

RFC1948通过连接标识符来区分序列号空间。每一个连接标识符由本地地址,本地端口,远程地址,远程端口来组成,并由一个函数计算标识符分的序列号地址空间偏移值(唯一)


此函数不能被攻击者获得,否则,攻击者可以通过计算获得ISN。于是,ISN就在这个偏移值上增加。ISN的值以这种方式产生能够抵受上面提到的对ISN的猜测攻击


ISN自身的值是按照一个常数值稳定增加的,所以F0需要保持相对的稳定性


<some secret>是一个系统特定的值(例如机器的启动时间,密码,初始随机数等),这些值并不会经常变。但是,如果Hash函数在实现上存在漏洞(我们无法保证一个绝对安全的Hash函数,况且,它的实现又与操作系统密切相关),攻击者就可以通过大量的采样,来分析<some secret>,其中,源ip地址,源端口,目的ip地址,目的端口都是不变的,这减少了攻击者分析的难度


Linux tcp的ISN生成器避免了这一点。它每5分钟计算一次<some secret>值,把泄漏<some secret>的风险降到了最低。

有一个办法可以做的更好:

取M=M+R(t)

ISN=M+F(sip,sport,dip,dport,<some secret>)

其中R()是一个关于时间的随机函数


伪随机数规则

构造TCPISN生成器的一些更直接的方法是:简单地选取一些随机数作为ISN。这就是给定一个32位的空间,指定ISN=R(t)。(假设RO是完全的非伪随机数生成函数)


4.TCP序号猜测前提

第一,攻击者能够在短时间内向服务器的某个开放的端口发起若干个TCP连接请求,这些请求用来分析服务器的ISN增长规律,从而推断出下一次连接的ISN的可能值,在这若干个连接请求后紧接着的就是用于攻击的连接请求,如果服务器在攻击者发起攻击的这一段时间没有建立其它的连接,那么其下一次连接建立的ISN被攻击者推断出的可能性就很高


第二,攻击者能够防止在攻击的过程中,被授权的客户机会因为收到从服务器发来的SYN/ACK而对该数据包做出响应(发送RST终止本次连接)。攻击者可以通过使用一个已经离线的主机的IP地址,或者向其假冒的客户机发起拒绝服务攻击来阻止该客户机响应服务器发来的数据包


第三,攻击者利用的是服务器上的一个应用层的协议,该协议是单纯地依赖于客户机的口地址认证和授权的,而不是诸如通过密钥协商或加密密钥认证的高层认证机制


第四,攻击者能够猜测或推断出从服务器发送给攻击者假冒的客户机的TCP数据,这些数据对于攻击者来说是看不到的RFC1948通过连接标识符来区分序列号空间。每一个连接标识符由本地地址,本地端口,远程地址,远程端口来组成,并由一个函数计算标识符分的序列号地址空间偏移值(唯一)。

此函数不能被攻击者获得,否则,攻击者可以通过计算获得ISN。于是,ISN就在这个偏移值上增加。ISN的值以这种方式产生能够抵受上面提到的对ISN的猜测攻击。


3.TCP序列号的获取步骤

RFC749

1、首先攻击方先发送一个syn包来获取服务器现在的tcp序列号

攻击方:S syn(ISN攻击方)

S:ACKISN攻击方)+SYN(ISNS#)


2、紧接着攻击方冒充被攻击的客户端向服务器发送syn包攻击方:S SYN(ISN攻击方),SRC=被攻击的客户端


3、于是,服务器发出一个响应包给被攻击的客户端,这个包攻击方是收不到的S:被攻击的客户端 SYN(ISNSS),ACK(INS被攻击的客户端)


4、攻击方计算INS$ INS$=INS#+R被攻击的客户端被攻击的客户端*Increment of ISN


5、攻击方:SACK(ISNSS)(冒充可信主机)


RFC1948

ISN=M+F(sip,sport,dip,dport,<some secret>)

其中


ISN32位的初始序列号


M单调增加的计数器


F单向散列哈希函数(例如MD4 or MD5)sip源ip地址


sport 源端口dip目的ip地址dport目的端口


<some secret>哈希函数可选部分,使远程攻击者更难猜到ISN


伪随机数

ISN=((PRNG())<<16)+R(t)32位

其中PRNG():一组随机指定的连续的16位数字

0x00000000--0xffff0000

R(t):16位随机数生成器(它的高位msb设成0)

0x00000000--0x0000ffff上面的公式被用于设计OpenBsd的ISN生成器,相关的源代码可以从下面的网址获得


http://www.openbsd.org/cgiin/cvsweb/src/sys/netinet/tcp_subr.c


4.对获取到的TCP序列号的处理

对TCP序列号的猜测不仅发生在三次握手的过程中,还发生在连接建立后的数据传送过程中


1、如果猜测正确,数据将会放到接收缓冲区中


2、如果序列号小于目的主机所期望的序列号,包被丢弃


3、如果序列号大于目的主机所期望的序列号.但是小于TCP的接收窗口范围,将被放到一个缓冲队列中,因为有可能是后发送的数据先到达了


4、如果不是目的主机所期望的序列号,又不在TCP1的接收窗n范围内,包被丢弃


5.什么是TCP会话劫持

服务器与信任主机三次握手建立连接后,服务器收到另一台合法主机发送的tcp报文前,攻击主机根据所截获的信息向服务器发出一个带有净荷的tcp报文,如果服务器先收到攻击报文,就可以把合法的tcp会话建立在攻击主机与被攻击主机之间


带有净荷的攻击报文能够使被攻击主机对下一个要收到的tcp报文中的确认序号(ackseq)的值的要求发生变化,从而使正常合法的客户端主机向被攻击主机发出的报文被被攻击主机(服务器)拒绝


tcp会话劫持攻击方式的好处在于使攻击者避开了被攻击主机对访问者的身份验证和安全认证,从而使攻击者直接进入对被攻击主机的的访问状态,因此对系统安全构成的威胁比较严重


6.如何进行会话劫持

1.会话劫持的目标应用


基于tcp的任何应用,如HTTP、FTP、Telnet等


2.会话劫持的工作原理


对于攻击者来说,所必须要做的就是窥探到正在进行tcp通信的两台主机之间传送的报文,这样攻击者就可以得知该报文的源ip、源tcp端口号、目的ip、目的tcp端号,从而可以得知其中一台主机对将要收到的下一个tcp报文段中seq和ackseq值的要求




————————————————

版权声明:本文为CSDN博主「IT蓝月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/ITlanyue/article/details/104848547

网络安全协议

https://blog.csdn.net/qq_41861526/article/details/94223975