当前位置:首页 » 资讯中心 » 周边资讯 » 正文

深度解析:HTTPS握手过程的秘密

深度解析:HTTPS握手过程的秘密

一、引言

随着网络安全问题日益受到关注,HTTPS作为互联网安全的基石,已经成为现代网络应用中不可或缺的一部分。

它通过加密技术,确保数据在传输过程中的安全性。

本文将深度解析HTTPS握手过程的秘密,帮助读者了解HTTPS如何确保通信安全。

二、HTTPS概述

HTTPS是一种通过计算机网络进行安全通信的开放标准。

它是在HTTP上建立的,通过SSL/TLS协议提供加密通信。

HTTPS的主要目的是确保数据在传输过程中的隐私和完整性。

与HTTP相比,HTTPS在数据通信过程中添加了加密层,从而确保数据的机密性。

三、HTTPS握手过程

HTTPS握手是建立安全通信的关键步骤。

它涉及到客户端和服务器之间的多次交互,以确保双方共同协商并建立一个安全的通信通道。

以下是HTTPS握手过程的详细步骤:

1. 客户端发起请求

客户端(如浏览器)向服务器发送请求,要求建立安全的通信连接。

2. 服务器响应

服务器收到请求后,返回一个证书,这个证书包含了服务器的公钥、证书颁发机构(CA)等信息。

证书的作用是证明服务器的身份。

3. 客户端验证服务器证书

客户端接收到服务器证书后,会验证证书的合法性。

客户端会检查证书是否由受信任的证书颁发机构颁发,并确保证书未过期。

如果证书验证通过,客户端将继续握手过程;否则,将终止连接。

4. 客户端生成随机数并加密

客户端生成一个随机数,并使用服务器的公钥对其进行加密,然后将加密后的随机数发送给服务器。

这个随机数是用于生成会话密钥的。

5. 服务器解密并生成会话密钥

服务器接收到客户端发送的加密随机数后,使用私钥进行解密,得到随机数。

服务器和客户端共同使用这个随机数以及其他一些参数,生成一个会话密钥。

这个会话密钥将用于加密后续的数据传输。

6. 客户端验证并生成密钥交换信息

客户端验证服务器的证书后,生成一个密钥交换信息(如预主密钥),并将其发送给服务器。

这个密钥交换信息用于确保双方生成的会话密钥一致。

7. 完成握手过程

服务器接收到客户端的密钥交换信息后,验证其合法性。

如果验证通过,握手过程完成,双方建立了一个安全的通信通道。

此后,所有的数据传输都将使用之前生成的会话密钥进行加密。

四、安全性分析

HTTPS握手过程的安全性主要依赖于以下几个方面:

1. 加密技术:HTTPS使用对称和非对称加密算法,确保数据在传输过程中的安全性。对称加密算法用于加密实际的数据传输,非对称加密算法用于安全地交换加密密钥。

2. 证书机制:通过证书机制,可以验证服务器的身份,确保客户端与合法的服务器进行通信。这有助于防止中间人攻击。

3. 握手过程中的验证:在握手过程中,客户端和服务器进行多次交互和验证,确保双方共同协商并建立一个安全的通信通道。这有助于防止恶意攻击者冒充合法服务器。

五、结论

HTTPS握手过程是确保互联网通信安全的关键步骤。

通过加密技术、证书机制和握手过程中的验证,HTTPS可以有效地保护数据在传输过程中的隐私和完整性。

随着网络安全问题的日益严重,了解HTTPS握手过程的秘密对于保护个人信息安全具有重要意义。


毕业论文 基于TCP/IP三次握手的端口扫描技术

基于TCP/IP 端口扫描技术[摘要] 本文讲述了TCP联接的建立过程,以及介绍了一些经典的扫描器以及所谓的SYN扫描器的使用,以及隐藏攻击源的技术,最好介绍了另外一些扫描技术。

考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。

另外分析了使用扫描器的栈指纹。

栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。

关键字:TCP/IP,UDP,三阶段握手,SYN扫描,FIN扫描,秘密扫描,间接扫描,诱骗扫描,指纹,协作扫描。

——————————————————————————–正文:端口扫描技术前言第一部分,我们讲述TCP连接的建立过程(通常称作三阶段握手),然后讨论与扫描程序有关的一些实现细节。

然后,简单介绍一下经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。

第三部分主要讨论间接扫描和秘密扫描,还有隐藏攻击源的技术。

秘密扫描基于FIN段的使用。

在大多数实现中,关闭的端口对一个FIN 段返回一个RST,但是打开的端口通常丢弃这个段,不作任何回答。

间接扫描,就像它的名字,是用一个欺骗主机来帮助实施,这台主机通常不是自愿的。

第四部分介绍了一种与应用协议有关扫描。

这些扫描器通常利用协议实现中的一些缺陷或者错误。

认证扫描(ident scanning)也被成为代理扫描(proxy scanning)。

最后一部分,介绍了另外一些扫描技术。

考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。

另外分析了使用扫描器的栈指纹。

栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。

一:TCP/IP相关问题连接端及标记IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。

为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。

TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。

连接端互相发送数据包。

一个TCP数据包包括一个TCP头,后面是选项和数据。

一个TCP头包含6个标志位。

它们的意义分别为:SYN: 标志位用来建立连接,让连接双方同步序列号。

如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。

FIN: 表示发送端已经没有数据要求传输了,希望释放连接。

RST: 用来复位一个连接。

RST标志置位的数据包称为复位包。

一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。

URG: 为紧急数据标志。

如果它为1,表示本数据包中包含紧急数据。

此时紧急数据指针有效。

ACK: 为确认标志位。

如果为1,表示包中的确认号时有效的。

否则,包中的确认号无效。

PSH: 如果置位,接收端应尽快把数据传送给应用层。

TCP连接的建立TCP是一个面向连接的可靠传输协议。

面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接。

TCP的可靠性通过校验和,定时器,数据序号和应答来提供。

通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,TCP协议保证了数据的可靠传输。

数据序号用来保证数据的顺序,剔除重复的数据。

在一个TCP会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。

为了了解实现过程,我们假设客户端C希望跟服务器端S建立连接,然后分析连接建立的过程(通常称作三阶段握手):1: C –SYN XXà S2: C ?-SYN YY/ACK XX+1——- S3: C —-ACK YY+1–à S1:C发送一个TCP包(SYN 请求)给S,其中标记SYN(同步序号)要打开。

SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN(XX是一个例子)。

2:服务器端发回应答,包含自己的SYN信息ISN(YY)和对C的SYN应答,应答时返回下一个希望得到的字节序号(YY+1)。

3:C 对从S 来的SYN进行应答,数据发送开始。

一些实现细节大部分TCP/IP实现遵循以下原则:1:当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。

2:当一个RST数据包到达一个监听端口,RST被丢弃。

3:当一个RST数据包到达一个关闭的端口,RST被丢弃。

4:当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。

5:当一个SYN位关闭的数据包到达一个监听端口时,数据包被丢弃。

6:当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN ACK数据包。

7:当一个FIN数据包到达一个监听端口时,数据包被丢弃。

FIN行为(关闭得端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。

所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起FIN行为。

二:全TCP连接和SYN扫描器全TCP连接全TCP连接是长期以来TCP端口扫描的基础。

扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。

连接由系统调用connect()开始。

对于每一个监听端口,connect()会获得成功,否则返回-1,表示端口不可访问。

由于通常情况下,这不需要什么特权,所以几乎所有的用户(包括多用户环境下)都可以通过connect来实现这个技术。

这种扫描方法很容易检测出来(在日志文件中会有大量密集的连接和错误记录)。

Courtney,Gabriel和TCP Wrapper监测程序通常用来进行监测。

另外,TCP Wrapper可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。

TCP SYN扫描在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。

如果应答是RST,那么说明端口是关闭的,按照设定就探听其它端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。

由于所有的扫描主机都需要知道这个信息,传送一个RST给目标机从而停止建立连接。

由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半打开扫描。

SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。

缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。

三:秘密扫描与间接扫描秘密扫描技术由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而必SYN扫描隐蔽得多。

另外,FIN数据包能够通过只监测SYN包的包过滤器。

秘密扫描技术使用FIN数据包来探听端口。

当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且回返回一个RST数据包。

否则,当一个FIN数据包到达一个打开的端口,数据包只是简单的丢掉(不返回RST)。

Xmas和Null扫描是秘密扫描的两个变种。

Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。

这些组合的目的是为了通过所谓的FIN标记监测器的过滤。

秘密扫描通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送reset信号的操作系统(包括CISCO,BSDI,HP/UX,MVS和IRIX)。

在Windows95/NT环境下,该方法无效,因为不论目标端口是否打开,操作系统都发送RST。

跟SYN扫描类似,秘密扫描也需要自己构造IP 包。

间接扫描间接扫描的思想是利用第三方的IP(欺骗主机)来隐藏真正扫描者的IP。

由于扫描主机会对欺骗主机发送回应信息,所以必须监控欺骗主机的IP行为,从而获得原始扫描的结果。

间接扫描的工作过程如下:假定参与扫描过程的主机为扫描机,隐藏机,目标机。

扫描机和目标记的角色非常明显。

隐藏机是一个非常特殊的角色,在扫描机扫描目的机的时候,它不能发送任何数据包(除了与扫描有关的包)。

四:认证扫描和代理扫描认证扫描到目前为止,我们分析的扫描器在设计时都只有一个目的:判断一个主机中哪个端口上有进程在监听。

然而,最近的几个新扫描器增加了其它的功能,能够获取监听端口的进程的特征和行为。

认证扫描是一个非常有趣的例子。

利用认证协议,这种扫描器能够获取运行在某个端口上进程的用户名(userid)。

认证扫描尝试与一个TCP端口建立连接,如果连接成功,扫描器发送认证请求到目的主机的113TCP端口。

认证扫描同时也被成为反向认证扫描,因为即使最初的RFC建议了一种帮助服务器认证客户端的协议,然而在实际的实现中也考虑了反向应用(即客户端认证服务器)。

代理扫描文件传输协议(FTP)支持一个非常有意思的选项:代理ftp连接。

这个选项最初的目的(RFC959)是允许一个客户端同时跟两个FTP服务器建立连接,然后在服务器之间直接传输数据。

然而,在大部分实现中,实际上能够使得FTP服务器发送文件到Internet的任何地方。

许多攻击正是利用了这个缺陷。

最近的许多扫描器利用这个弱点实现ftp代理扫描。

ftp端口扫描主要使用ftp代理服务器来扫描tcp端口。

扫描步骤如下:1:假定S是扫描机,T是扫描目标,F是一个ftp服务器,这个服务器支持代理选项,能够跟S和T建立连接。

2:S与F建立一个ftp会话,使用PORT命令声明一个选择的端口(称之为p-T)作为代理传输所需要的被动端口。

3:然后S使用一个LIST命令尝试启动一个到p-T的数据传输。

4:如果端口p-T确实在监听,传输就会成功(返回码150和226被发送回给S)。

否则S回收到425无法打开数据连接的应答。

5:S持续使用PORT和LIST命令,直到T上所有的选择端口扫描完毕。

FTP代理扫描不但难以跟踪,而且当ftp服务器在_blank>防火墙后面的时候五:其它扫描方法Ping扫描如果需要扫描一个主机上甚至整个子网上的成千上万个端口,首先判断一个主机是否开机就非常重要了。

这就是Ping扫描器的目的。

主要由两种方法用来实现Ping扫描。

1:真实扫描:例如发送ICMP请求包给目标IP地址,有相应的表示主机开机。

2:TCP Ping:例如发送特殊的TCP包给通常都打开且没有过滤的端口(例如80端口)。

对于没有root权限的扫描者,使用标准的connect来实现。

否则,ACK数据包发送给每一个需要探测的主机IP。

每一个返回的RST表明相应主机开机了。

另外,一种类似于SYN扫描端口80(或者类似的)也被经常使用。

安全扫描器安全扫描器是用来自动检查一个本地或者远程主机的安全漏洞的程序。

象其它端口扫描器一样,它们查询端口并记录返回结果。

但是它们。

它们主要要解决以下问题:1:是否允许匿名登录。

2:是否某种网络服务需要认证。

3:是否存在已知安全漏洞。

可能SATAN是最著名的安全扫描器。

1995年四月SATAN最初发布的时候,人们都认为这就是它的最终版本,认为它不但能够发现相当多的已知漏洞,而且能够针对任何很难发现的漏洞提供信息。

但是,从它发布以来,安全扫描器一直在不断地发展,其实现机制也越来越复杂。

栈指纹绝大部分安全漏洞与缺陷都与操作系统相关,因此远程操作系统探测是系统管理员关心的一个问题。

远程操作系统探测不是一个新问题。

近年来,TCP/IP实现提供了主机操作系统信息服务。

FTP,TELNET,HTTP和DNS服务器就是很好的例子。

然而,实际上提供的信息都是不完整的,甚至有可能是错误的。

最初的扫描器,依靠检测不同操作系统对TCP/IP的不同实现来识别操作系统。

由于差别的有限性,现在只能最多只能识别出10余种操作系统。

最近出现的两个扫描器,QueSO和NMAP,在指纹扫描中引入了新的技术。

QueSO第一个实现了使用分离的数据库于指纹。

NMAP包含了很多的操作系统探测技术,定义了一个模板数据结构来描述指纹。

由于新的指纹可以很容易地以模板的形式加入,NMAP指纹数据库是不断增长的,它能识别的操作系统也越来越多。

这种使用扫描器判断远程操作系统的技术称为(TCP/IP)栈指纹技术。

另外有一种技术称为活动探测。

活动探测把TCP的实现看作一个黑盒子。

通过研究TCP对探测的回应,就可以发现 TCP实现的特点。

TCP/IP 栈指纹技术是活动探测的一个变种,它适用于整个TCP/IP协议的实现和操作系统。

栈指纹使用好几种技术来探测TCP/IP协议栈和操作系统的细微区别。

这些信息用来创建一个指纹,然后跟已知的指纹进行比较,就可以判断出当前被扫描的操作系统。

栈指纹扫描包含了相当多的技术。

下面是一个不太完整的清单:1:FIN探测2:BOGUS标记探测3:TCP ISN 取样4:TCP 初始窗口5:ACK值6:ICMP错误信息7:ICMP信息8:服务类型9:TCP选项

神医弃女帝君霸宠纨绔妃百度云盘

爱上女巫的床作者: 风在先2简介:记者木子为了揭开一个怀孕的男人——李二妹的秘密,认识了女巫绿苑。

绿苑告诉他这个男人怀的是鬼胎。

当木子接近李二妹,想要揭开这个秘密的时候,很多诡异的事情发生了……

基于国密算法SM2 SSL证书的https加密, 如何实现?

SSL握手协议的过程国密SSL握手协议过程如下:(1)交换Hello消息来协商密码套件,交换随机数,决定是否会话重用;(2)交换必要的参数,协商预主密钥(3)交换证书信息,用于验证对方(4)使用预主密钥和交换的随机数生成主密钥(5)向记录层提供安全参数(6)验证双方计算的安全参数的一致性、握手过程的真实性和完整性

未经允许不得转载:虎跃云 » 深度解析:HTTPS握手过程的秘密
分享到
0
上一篇
下一篇

相关推荐

联系我们

huhuidc

复制已复制
262730666复制已复制
13943842618复制已复制
262730666@qq.com复制已复制
0438-7280666复制已复制
微信公众号
huyueidc_com复制已复制
关注官方微信,了解最新资讯
客服微信
huhuidc复制已复制
商务号,添加请说明来意
contact-img
客服QQ
262730666复制已复制
商务号,添加请说明来意
在线咨询
13943842618复制已复制
工作时间:8:30-12:00;13:30-18:00
客服邮箱
服务热线
0438-7280666复制已复制
24小时服务热线