抓包分析SSL通信过程实验报告1

合集下载

wireshark抓包实验报告

wireshark抓包实验报告

wireshark抓包实验报告Wireshark抓包实验报告1. 实验简介本次实验旨在通过使用Wireshark软件进行网络抓包,深入了解网络通信过程中的数据传输和协议交互。

通过分析抓包数据,我们可以了解网络流量的组成、协议的运作方式以及网络安全的相关问题。

2. 实验准备在进行实验之前,我们需要准备一台运行Wireshark软件的计算机,并连接到一个网络环境中。

Wireshark是一款开源的网络协议分析工具,可以在各种操作系统上运行。

安装并配置好Wireshark后,我们就可以开始进行抓包实验了。

3. 实验步骤3.1 启动Wireshark打开Wireshark软件,选择需要抓包的网络接口。

Wireshark会监听该接口上的所有网络流量,并将其显示在界面上。

3.2 开始抓包点击“开始”按钮,Wireshark开始抓取网络数据包。

此时,我们可以看到界面上实时显示的数据包信息,包括源地址、目标地址、协议类型等。

3.3 过滤抓包数据由于网络流量非常庞大,我们可以使用过滤器来筛选出我们感兴趣的数据包。

Wireshark提供了丰富的过滤器选项,可以根据协议、源地址、目标地址等条件进行过滤。

3.4 分析抓包数据选中某个数据包后,Wireshark会显示其详细信息,包括协议分层、数据字段等。

通过分析这些信息,我们可以了解数据包的结构和内容,进一步了解网络通信的细节。

4. 实验结果与讨论在实验过程中,我们抓取了一段时间内的网络流量,并进行了分析。

通过对抓包数据的观察和解读,我们得出了以下几点结果和讨论:4.1 协议分层在抓包数据中,我们可以清晰地看到各种协议的分层结构。

从物理层到应用层,每个协议都承担着不同的功能和责任。

通过分析协议分层,我们可以了解协议之间的关系,以及它们在网络通信中的作用。

4.2 数据传输过程通过分析抓包数据,我们可以追踪数据在网络中的传输过程。

我们可以看到数据包从源地址发送到目标地址的路径,了解中间经过的路由器和交换机等设备。

SSL实验报告[大全5篇]

SSL实验报告[大全5篇]

SSL实验报告[大全5篇]第一篇:SSL实验报告搭建证书服务器步骤: 1、登陆 Windows Server 2008 服务器 2、打开【服务器管理器】3、点击【添加角色】,之后点击【下一步】4、找到【Active Directory证书服务】勾选此选项,之后点击【下一步】;5、进入证书服务简介界面,点击【下一步】6、将证书颁发机构、证书颁发机构WEB注册勾选上,然后点击【下一步】7、勾选【独立】选项,点击【下一步】(由于不在域管理中创建,直接默认为:“独立”)8、首次创建,勾选【根CA】,之后点击【下一步】9、首次创建勾选【新建私钥】,之后点击【下一步】;10、默认,继续点击【下一步】;11、默认,继续点击【下一步】12、默认,继续点击【下一步】13、默认,继续点击【下一步】14、点击【安装】15、点击【关闭】,证书服务器安装完成建搭建 WE B服务器端 SSL 证书应用步骤: 1、打开 IIS,WEB 服务器,找到【服务器证书】并选中2、点击【服务器证书】,找到【创建证书申请】项3、单击【创建证书申请】,打开【创建证书申请】后,填写相关文本框, “通用名称”必需填写本机IP(192.168、72。

128),单击【下一步】4、默认,点击【下一步】5、选择并填写需要生成文件得保存路径与文件名, 此文件后期将会被使用;(保存位置、文件名可以自行设定),之后点击【完成】,此配置完成,子界面会关闭6、接下来,点击IE(浏览器),访问:(本机ip)此时会出现证书服务页面;点击【申请证书】,进入下一界面点击【高级证书申请】,进入下一界面点击【创建并向此CA 提交一个申请】,进入下一界面,此时会弹出一个提示窗口:“为了完成证书注册,必须将该CA 得网站配置为使用HTTPS 身份验证“;也就就是必须将网站配置为 HTTPS 得网站,才能正常访问当前网页及功能7、搭建S 得网站: 方法:打开IE(浏览器),找到工具栏,点击【工具栏】,找到它下面得【Internet 选项】;8、点击【Internet 选项】-〉点击【安全】—>点击【可信站点】;10、点击【可信站点】,并输入之前得证书网站地址:,并将其【添加】到信任站点中;添加完后,点击【关闭】,关闭子界面11、接下来,继续在【可信站点】位置点击【自定义级别】,此时会弹出一个【安全设置】子界面,在安全设置界面中拖动右别得滚动条,找到【对未标记为可安全执行脚本得 ActiveX控件初始化并执行脚本】选项,将选为【启用】;之后点击所有【确定】操作,直到【Internet选项】子界面关闭为止12、完成上面操作后,先将IE 关闭,然后重新打开,输入:;页面出来后点击【申请证书】,【高级证书申请】,【使用base64 编码得 CMC 或PKCS#10 文件提交一个证书申请,或使用Base64 编码得PKCS#7 文件续订证书申请】13、将之前保存得密钥文档文件找到并打开,将里面得文本信息复制并粘贴到“Base-64 编码得证书申请”文本框中;确定文本内容无误后,点击【提交】14、此时可以瞧到提交信息,申请已经提交给证书服务器,关闭当前IE15、打开证书服务器处理用户刚才提交得证书申请; 回到 Windo ws【桌面】-〉点击【开始】-〉点击【运行】,在运行位置输入:cer tsrv、msc,然后回车就会打开证书服务功能界面;打开后,找到【挂起得申请】位置,可以瞧到之前提交得证书申请;(图17)18、点击鼠标右键会出现【所有任务】,点击【所有任务】->点击【颁发】将挂起得证书申请审批通过,此时挂起得证书会从当前界面消失,即代表已完成操作19、点击【颁发得证书】,可以瞧到新老已审批通过得证书20、重新打开IE,输入之前得网址:;打开页面后,可点击【查瞧挂起得证书申请得状态】;之后会进入“查瞧挂起得证书申请得状态”页面,点击【保存得申请证书】;21、进入新页面后,勾选Base 64 编码,然后点击【下载证书】,将已申请成功得证书保存到指定位置,后续待用;22、打开IIS 服务器,点击【服务器证书】—>【完成证书申请】—>选择刚保存得证书,然后在“好记名称”文本框中输入自定义得名称,完后点击【确定】23、上述操作完后,可在“服务器证书”界面下瞧到证书24、点击左边得【Default Web Site】菜单,然后找到【绑定】功能,点击【绑定】功能,会弹出【网站绑定】界面,默认会出现一个类型为http,端口为80 得主机服务,然后点击【添加】,会弹出【添加网站绑定】界面,在此界面中选择“类型:https“、“SSL 证书:JZT_TEST1”,然后点【确定】;点完确定后,会瞧到【网站绑定】子界面中有刚配得S服务,点击【关闭】,子界面消失25、点击左菜单上得【CertSrv】证书服务网站,然后点击【S SL 设置】26、进入 SSL 设置页面,勾选上“要求SSL”即启用 SSL 功能,然后点击【应用】,保存设置27、打开IE,再次输入:第二篇:SSL实验报告搭建证书服务器步骤:1、登陆Windows Server 2008服务器2、打开【服务器管理器】3、点击【添加角色】,之后点击【下一步】4、找到【Active Directory证书服务】勾选此选项,之后点击【下一步】;5、进入证书服务简介界面,点击【下一步】6、将证书颁发机构、证书颁发机构WEB注册勾选上,然后点击【下一步】7、勾选【独立】选项,点击【下一步】(由于不在域管理中创建,直接默认为:“独立”)8、首次创建,勾选【根CA】,之后点击【下一步】9、首次创建勾选【新建私钥】,之后点击【下一步】;10、默认,继续点击【下一步】;11、默认,继续点击【下一步】12、默认,继续点击【下一步】13、默认,继续点击【下一步】14、点击【安装】15、点击【关闭】,证书服务器安装完成搭建WEB服务器端SSL证书应用步骤:1、打开IIS,WEB服务器,找到【服务器证书】并选中2、点击【服务器证书】,找到【创建证书申请】项3、单击【创建证书申请】,打开【创建证书申请】后,填写相关文本框,“通用名称”必需填写本机IP(192.168.72.128),单击【下一步】4、默认,点击【下一步】5、选择并填写需要生成文件的保存路径与文件名, 此文件后期将会被使用;(保存位置、文件名可以自行设定),之后点击【完成】,此配置完成,子界面会关闭7、搭建HTTPS的网站:方法:打开IE(浏览器),找到工具栏,点击【工具栏】,找到它下面的【Internet选项】;、点击【Internet选项】->点击【安全】->点击【可信站点】;11、接下来,继续在【可信站点】位置点击【自定义级别】,此时会弹出一个【安全设置】子界面,在安全设置界面中拖动右别的滚动条,找到【对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本】选项,将选为【启用】;之后点击所有【确定】操作,直到【Internet选项】子界面关闭为止13、将之前保存的密钥文档文件找到并打开,将里面的文本信息复制并粘贴到“Base-64编码的证书申请”文本框中;确定文本内容无误后,点击【提交】14、此时可以看到提交信息,申请已经提交给证书服务器,关闭当前IE15、打开证书服务器处理用户刚才提交的证书申请;回到Windows【桌面】->点击【开始】->点击【运行】,在运行位置输入:certsrv.msc,然后回车就会打开证书服务功能界面;打开后,找到【挂起的申请】位置,可以看到之前提交的证书申请;(图17)18、点击鼠标右键会出现【所有任务】,点击【所有任务】->点击【颁发】将挂起的证书申请审批通过,此时挂起的证书会从当前界面消失,即代表已完成操作19、点击【颁发的证书】,可以看到新老已审批通过的证书21、进入新页面后,勾选Base 64编码,然后点击【下载证书】,将已申请成功的证书保存到指定位置,后续待用;22、打开IIS服务器,点击【服务器证书】->【完成证书申请】->选择刚保存的证书,然后在“好记名称”文本框中输入自定义的名称,完后点击【确定】23、上述操作完后,可在“服务器证书”界面下看到证书24、点击左边的【Default Web Site】菜单,然后找到【绑定】功能,点击【绑定】功能,会弹出【网站绑定】界面,默认会出现一个类型为http,端口为80的主机服务,然后点击【添加】,会弹出【添加网站绑定】界面,在此界面中选择“类型:https”、“SSL证书:JZT_TEST1”,然后点【确定】;点完确定后,会看到【网站绑定】子界面中有刚配的HTTPS服务,点击【关闭】,子界面消失25、点击左菜单上的【CertSrv】证书服务网站,然后点击【SSL 设置】26、进入SSL设置页面,勾选上“要求SSL”即启用SSL功能,然后点击【应用】,保存设置第三篇:web服务器ssl目标本章的目标是:• 获取 SSL 证书。

SSL实验报告范文

SSL实验报告范文

SSL实验报告范文一、实验目的本次实验的目的是学习和掌握SSL(Secure Sockets Layer)协议的使用方法,了解SSL与HTTP的关系以及SSL在网络通信中的作用。

二、实验原理SSL是一种用于保护网络通信的安全协议,在网络中广泛应用于HTTP、FTP以及电子邮件等通信协议中。

SSL协议通过加密和身份验证等手段,确保通信过程中的安全性和可靠性。

SSL协议的基本原理是建立在公钥密码学的基础上的。

在传输数据之前,服务器需要生成一对密钥,分别是公钥和私钥。

公钥用于加密数据,私钥用于解密数据。

当客户端和服务器进行握手时,服务器将自己的公钥发送给客户端,客户端使用该公钥对通信所需要的密钥进行加密,然后发送给服务器。

服务器使用自己的私钥解密该密钥,从而获得通信所需要的密钥。

之后的通信过程中,服务器和客户端使用该密钥进行加密和解密。

三、实验步骤1.生成SSL证书和私钥2.配置服务器端程序3.配置客户端程序4.启动服务器和客户端5.进行通信测试四、实验结果经过以上步骤,我们成功建立了一个使用SSL协议进行通信的网络连接。

在通信过程中,通过Wireshark抓包可以发现,传输的数据已经被加密,保证了数据的机密性。

同时,服务器和客户端在握手阶段使用了证书对身份进行验证,确保了通信双方的真实性。

五、实验总结通过本次实验,我们学习和掌握了SSL协议的使用方法。

SSL协议在网络通信中起到了至关重要的作用,能够保护通信过程中的数据安全和身份验证。

在实际的应用中,我们可以使用SSL协议来加密敏感数据,避免数据被窃取和篡改。

同时,SSL协议也可以用于确保通信双方的真实性,防止恶意攻击和欺骗。

抓包的分析报告

抓包的分析报告

抓包的分析报告1. 引言本文旨在通过对抓包数据的分析,对网络通信进行深入研究,从而揭示网络传输过程中的细节以及可能存在的安全隐患。

通过抓包分析,我们可以获取传输的原始数据,进而发现网络问题并进行相关的优化工作。

2. 抓包工具介绍抓包是一种网络分析的方法,通过获取网络中的数据包来进行深入分析。

常用的抓包工具包括 Wireshark、Tcpdump 等。

在本文中,我们使用 Wireshark 这一流行的抓包工具进行数据包分析。

Wireshark 是一款开源的网络协议分析软件,支持多种操作系统,用户可以通过 Wireshark 捕获和分析网络数据包,以便于查找和解决网络问题。

3. 抓包分析步骤3.1 抓包设置在开始抓包前,需要正确设置抓包工具。

我们需要指定要抓取的接口,以及过滤器来选择我们感兴趣的数据包。

为了保证抓包的有效性,可以在抓包前关闭一些不必要的网络应用,以减少干扰。

3.2 开始抓包设置完毕后,点击“开始”按钮开始进行抓包。

此时,Wireshark 将开始捕获网络数据包。

3.3 数据包过滤捕获到的数据包可能非常庞大,我们需要进行过滤以便于查找特定的数据包。

Wireshark 提供了强大的过滤功能,可以根据协议、源/目标 IP 地址、端口号等条件进行筛选。

3.4 数据包分析捕获到感兴趣的数据包后,我们可以对数据包进行深入分析。

Wireshark 提供了丰富的功能,可以查看每个数据包的详细信息,包括源/目标地址、端口号、协议类型、数据内容等。

4. 抓包分析实例为了更好地理解抓包过程和分析方法,我们将给出一个具体的抓包分析实例。

4.1 实验目标分析某网站的登录过程,并观察登录过程中的数据传输。

4.2 实验步骤•打开 Wireshark 并设置抓包过滤器为 HTTP。

•在浏览器中访问目标网站并进行登录。

•通过 Wireshark 捕获登录过程中的数据包。

•分析捕获到的数据包,观察登录过程中的数据传输情况。

网络抓包及网络命令实验报告

网络抓包及网络命令实验报告

实验报告题目网络抓包及网络命令实验报告学院专业班级学号学生姓名成绩指导教师完成日期网络工具应用实践实验报告1.实验概要通过使用软件Wireshark抓取网络上的数据包,并作相应分析。

2.实验环境硬件:台式笔记本或Pc、网卡、网络环境。

软件:Windows xp sp3及Windows 7、8。

3.实验目的了解网络抓包的意义,学习并了解使用网络抓包Wiresh 。

对互联网进行数据抓包;了解网络抓包的相关协议。

4.实验要求合理地使用电脑进行数据分析,提高自身对网络的安全意识。

5.实验环境搭建安装Wireshark软件,Wireshark的安装非常简单,只需按照步骤即可。

并且要求电脑具有上网的环境。

6.实验内容及步骤(1)安装Wireshark,简单描述安装步骤。

(2)打开wireshark,选择接口选项列表。

或单击“Capture”,配置“option”选项。

(3)设置完成后,点击“start”开始抓包,显示结果。

(4)选择某一行抓包结果,双击查看此数据包具体结构。

(5)捕捉TCP数据报。

a.写出TCP数据报的格式。

b.捕捉TCP数据报的格式图例。

针对每一个域所代表的含义进行解释。

7.实验过程及结果分析安装Wireshark软件,安装过程如下(如图1-1——1-3):图1-1图1-2图1-3安装完毕。

打开软件,界面如图1-4:图1-4:打开软解截面图选中Start下的以太网,点击Start就可以捕获以太网上的数据包了。

流量如图1-5:图1-5:流量截图选择某一行抓包结果,双击查看数据属性,如图1-6:图1-6:数据属性截图(4)捕捉到的TCP信息如图1-7:图1-8:TPC信息截图由图可知这个TCP信息如下:Host: 来自Professorlee的新浪博客User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0HTTP/1.1 200 OKServer: nginx/1.2.8Date: Thu, 12 Sep 2013 12:37:01 GMTContent-Type: application/x-javascriptLast-Modified: Thu, 12 Sep 2013 09:51:17 GMTTransfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingExpires: Thu, 12 Sep 2013 12:37:31 GMTCache-Control: max-age=30X-debug: 114.80.223.58Content-Encoding: gzip8.网络抓包相关网络协议TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。

wireshark抓包实验报告总结

wireshark抓包实验报告总结

wireshark抓包实验报告总结一、实验目的本次实验的主要目的是学习Wireshark抓包工具的使用方法,掌握网络通信过程中数据包的组成和解析方式,以及了解常见网络协议的运行机制。

二、实验环境本次实验使用的操作系统为Windows 10,使用Wireshark版本为3.4.6。

三、实验步骤1. 安装Wireshark软件并打开。

2. 选择需要抓包的网络接口,并开始抓包。

3. 进行相应的网络操作,例如访问网站、发送邮件等。

4. 停止抓包,并对捕获到的数据包进行分析和解析。

四、实验结果1. 抓取HTTP请求和响应数据包通过Wireshark抓取HTTP请求和响应数据包,可以轻松地了解HTTP协议在通信过程中所传输的信息。

例如,在访问一个网站时,可以看到浏览器向服务器发送GET请求,并获取到服务器返回的HTML 页面等信息。

同时还可以看到HTTP头部中所携带的信息,例如User-Agent、Cookie等。

2. 抓取TCP连接数据包通过Wireshark抓取TCP连接数据包,可以了解TCP协议在建立连接、传输数据和关闭连接时所涉及到的所有步骤。

例如,在进行FTP 文件传输时,可以看到TCP三次握手建立连接,以及文件传输过程中TCP的流量控制和拥塞控制等。

3. 抓取UDP数据包通过Wireshark抓取UDP数据包,可以了解UDP协议在通信过程中所涉及到的所有信息。

例如,在进行DNS域名解析时,可以看到DNS服务器返回的IP地址等信息。

五、实验总结通过本次实验,我学会了使用Wireshark抓包工具进行网络数据包分析的方法,并了解了常见网络协议的运行机制。

同时也发现,在网络通信过程中,数据包所携带的信息非常丰富,能够提供很多有用的参考和指导。

因此,在实际工作中,我们应该灵活运用Wireshark等工具进行网络数据包分析,并结合具体业务场景进行深入研究和分析。

网络协议分析——抓包分析

网络协议分析——抓包分析

计算机网络技术及应用实验报告开课实验室:南徐学院网络实验室源端口目的端口序号确认号首部长度窗口大小值总的长度:0028(0000 00000010 10000)识别:81 28(1000 0001 0010 10000)片段抵消:40 00(0100 0000 0000 0000)生存时间:34(0011 0100)69 5b(0110 10010101 1011)首部来源: b4 15 f1(11011101 1011 0100 0001 01011110 0001)目的地:70 04 f8 82(0110 0000 0000 01001111 1000 1000 0010)点对点协议:00 21(0000 0000 00100001)版本类型:11(0001 0001)代码:00(0000 0000)会话:21 a6(0010 0001 1010 0110 )载荷长度:00 2a(0000 0000 0010 1010)网络协议层首部长度:占4位,45(0100 0101) 区分服务:占8位,00(0000 0000) 总长度:: 00 9c(0000 0000 1001 1100)标识:占16位,2f 70(0010 1111 0111 0000) 片偏移:占13位,00 a0(0000 0000 1010 0000) 生存时间:33(0011 0011) 协议:11(0001 0001)报头校验和:75 (0111 0101 1100 1101 )来源: e1 a8 76(1101 1101 1110 0001 1010 1000 0111 0110) 目的地:b7 d3 a3 48(1011 0111 1101 0011 1010 0011 0100 1000)点对点协议:00 21(0000 0000 00100001)分析版本,类型:11(0001 0001)代码:00(0000 0000)会话:20 24(0010 0000 0010 0100)荷载长度:00 9e(0000 0000 1001 1110)目的地:00 1b 38 7e 1d 39(0000 0000 0001 1011 0011 1000 0111 1110 0001 1101 0011 1001)来源:00 30 88 13 d2 (0000 0000 0011 0000 1000 1000 0001 0011 1101 0010数据部分:00 00 00 00 95 85 c0 28 01 00 37 f6 02 13 e5 67 e2 b8 6c(0000 0000 0000 0000 1001 0101 1000 0101 1100 00000010 1000 0000 0001 0000 0000 0011 0111 1111 0110 0000 0010 0001 0011 1110 0101 0110 0111 1110 0010 1011 1000 0110 1100版本,报头长度:45(0100 0101)区分服务:00(0000 0000)总长度:00 43(0000 0000 0100 0011)标识:89 00(1000 1001 0000 0000) 片偏移:00 00(0000 0000) 生存时间:40(0100 0000)协议:11(0001 0001)报头校验和:32 (0011 0010 1011 1111)、来源:b7 d3 a3 48(1011 0111 1101 0011 1010 0011 0100 1000) 目的地:2a e5 38 (0010 1010 1110 0101 0011 1000 1110 1010)点对点协议:00 21(0000 00000010 0001)。

wireshark实验报告

wireshark实验报告

wireshark实验报告Wireshark实验报告Wireshark是一个非常强大的网络协议分析工具,它可以帮助我们监控和分析网络上的数据包,从而深入了解网络通信的细节。

在本次实验中,我们使用Wireshark来分析一个简单的网络通信场景,并进行一些实验来了解它的功能和用途。

实验一:捕获数据包首先,我们打开Wireshark并选择要监控的网络接口,然后开始捕获数据包。

在捕获过程中,我们可以看到不断出现的数据包,它们包含了网络通信中的各种信息,如源地址、目标地址、协议类型等。

通过Wireshark的过滤功能,我们可以只显示特定协议的数据包,从而更方便地进行分析。

实验二:分析HTTP通信接下来,我们模拟了一个简单的HTTP通信场景,比如在浏览器中访问一个网页。

通过Wireshark捕获到的数据包,我们可以看到HTTP请求和响应的细节,包括请求头、响应头、数据内容等。

通过分析这些数据包,我们可以了解HTTP 通信的工作原理,以及了解网页加载过程中的各种细节。

实验三:检测网络异常最后,我们模拟了一个网络异常的场景,比如断开网络连接或者遭遇网络攻击。

通过Wireshark捕获到的数据包,我们可以看到异常情况下的网络通信情况,从而及时发现问题并进行处理。

Wireshark的强大过滤功能可以帮助我们快速定位异常数据包,以便更快地解决网络问题。

通过以上实验,我们对Wireshark的功能和用途有了更深入的了解。

它不仅可以帮助我们监控网络通信,还可以帮助我们分析网络问题、学习网络协议等。

在今后的网络工作中,Wireshark将成为我们不可或缺的利器,帮助我们更好地理解和管理网络通信。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SSL通信过程分析
一、SSL建立握手连接目的
1.身份的验证,client与server确认对方是它相连接的,而不是第三方冒充的,通过证书实现。

2.client与server交换session key,用于连接后数据的传输加密和hash校验。

二、简单的SSL握手连接过程
(仅Server端交换证书给client):
1.client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)
2.server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(Session ID)
3.server发送Certificate
4.Server发送ServerHelloDone
5.Client发送ClientKeyExchange,用于与server交换session key
6.Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的
7.Client发送Finishd,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改
8.Server发送ChangeCipherSpec,指示Client从现在开始发送的消息都是加密过的
9.Server发送Finishd,包含了前面所有握手消息的hash,可以让client验证握手过程是否被第三方篡改,并且证明自己是Certificate密钥的拥有者,即证明自己的身份
三、抓包实际分析连接过程
下面从抓包数据来具体分析这一过程并说明各部分数据的作用以及如实现前面列出的握手的目标,当然了,最重要的还是说明为何这一过程是安全可靠的,第三方无法截获,篡改或者假冒。

1.client发送ClientHello
每一条消息都会包含有ContentType,Version,HandshakeType等信息。

ContentType指示SSL通信处于哪个阶段,是握手(Handshake),开始加密传输(Chang eCipherSpec)还是正常通信(Application)等,见下表
Hex Dec Type
0x14 20 ChangeCipherSpec
0x15 21 Alert
0x16 22 Handshake
0x17 23 Application
Version是TLS的版本,见下表
Major Version Minor Version Version Type
3 0 SSLv3
这里多了个session id,如果SSL连接断开,再次连接时,可以使用该属性重新建立连接,在双方都有缓存的情况下可以省略握手的步骤。

server端也会生成随机的RN,用于生成session key使用。

server会从client发送的Cipher suite列表中跳出一个,这里挑选的是RSA+RC4+MD 5
这次server共发送的3个handshake 消息:Serverhello,Certificate和ServerHelloDon e,共用一个ContentType:Handshake
3.server发送Certificate
server的证书信息,只包含public key,server将该public key对应的private key
保存好,用于证明server是该证书的实际拥有者,那么如何验证呢?原理很简单:cli ent随机生成一串数,用server这里的public key加密(显然是RSA算法),发给server,server用private key解密后返回给client,client与原文比较,如果一致,则说明serve r拥有private key,也就说明与client通信的正是证书的拥有者,因为public key加密的数据,只有private key才能解密,目前的技术还没发破解。

利用这个原理,也能实现session key的交换,加密前的那串随机数就可用作session key,因为除了client和server,没有第三方能获得该数据了。

原理很简单,实际使用时会复杂很多,数据经过多次hash,伪随机等的运算,前面提到的client和server端得RN都会参与计算。

4.Server发送ServerHelloDone
5.Client发送ClientKeyExchange
client拿到server的certificate后,就可以开始利用certificate里的public key进行s ession key的交换了。

从图中可以看出,client发送的是130字节的字节流,显然是加过密的。

client随机生成48字节的Pre-master secret,padding后用public key加密就得到这130字节的数据发送给server,server解密也能得到Pre-master secret。

双方使
用pre-master secret, "master secret"常量字节流,前期交换的server端RN和client
的RN作为参数,使用一个伪随机函数PRF,其实就是hash之后再hash,最后得到48字节的master secret。

master secret再与"key expansion"常量,双方RN经过伪随机函数运算得到key_block,PRF伪随机函数可以可以仿佛循环输出数据,因此我们想得到多少字节都可以,就如Random伪随机函数,给它一个种子,后续用hash计算能得到无数个随机数,如果每次种子相同,得到的序列是一样的,但是这里的输入时48字节的master secret,2个28字节的RN和一个字符串常量,碰撞的可能性是很小的。

得到key block后,算法,就从中取出session key,IV(对称算法中使用的初始化向量)等。

client和server使用的session key是不一样的,但只要双方都知道对方使用的是什么就行了。

这里会取出4个:client/server加密正文的key,client/server计算handshake 数据hash的key。

6.Client发送ChangeCipherSpec
client指示Server从现在开始发送的消息都是加密过的。

7.Client发送Finished
client发送的加密数据,这个消息非常关键,一是能证明握手数据没有被篡改过,二也能证明自己确实是密钥的拥有者(这里是单边验证,只有server有certificate,serv er发送的Finished能证明自己含有private key,原理是一样的)。

client将之前发送的所有握手消息存入handshake messages缓存,进行MD5和SHA-1两种hash运算,再与前面的master secret和一串常量"client finished"进行PRF伪随机运算得到12字节的verify data,还要经过改进的MD5计算得到加密信息。

为什么能证明上述两点呢,前面说了只有密钥的拥有者才能解密得到pre-master key,master key,最后得到key bl ock后,进行hash运算得到的结果才与发送方的一致。

8.Server发送ChangeCipherSpec
Server指示client从现在开始发送的消息都是加密过的。

9.Server发送Finishd
与client发送Finished计算方法一致。

server发送的Finished里包含hash给client,client会进行校验,如果通过,说明握手过程中的数据没有被第三方篡改过,也说明s erver是之前交换证书的拥有者。

现在双方就可以开始后续通信,进入Application con text了。

相关文档
最新文档