抓包分析SSL通信过程实验报告1
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实验报告搭建证书服务器步骤: 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(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抓包工具的使用方法,掌握网络通信过程中数据包的组成和解析方式,以及了解常见网络协议的运行机制。
二、实验环境本次实验使用的操作系统为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的过滤功能,我们可以只显示特定协议的数据包,从而更方便地进行分析。
实验二:分析HTTP通信接下来,我们模拟了一个简单的HTTP通信场景,比如在浏览器中访问一个网页。
通过Wireshark捕获到的数据包,我们可以看到HTTP请求和响应的细节,包括请求头、响应头、数据内容等。
通过分析这些数据包,我们可以了解HTTP 通信的工作原理,以及了解网页加载过程中的各种细节。
实验三:检测网络异常最后,我们模拟了一个网络异常的场景,比如断开网络连接或者遭遇网络攻击。
通过Wireshark捕获到的数据包,我们可以看到异常情况下的网络通信情况,从而及时发现问题并进行处理。
Wireshark的强大过滤功能可以帮助我们快速定位异常数据包,以便更快地解决网络问题。
通过以上实验,我们对Wireshark的功能和用途有了更深入的了解。
它不仅可以帮助我们监控网络通信,还可以帮助我们分析网络问题、学习网络协议等。
在今后的网络工作中,Wireshark将成为我们不可或缺的利器,帮助我们更好地理解和管理网络通信。
SSLTLS握手过程综合实验报告
SSLTLS握手过程综合实验报告SSL/TLS(Secure Sockets Layer/Transport Layer Security)是一种用于保护网络通信的加密协议,基于公钥加密和对称加密技术。
SSL/TLS握手过程是建立安全通信通道的关键步骤,本文将通过实验对该过程进行综合探究。
一、实验目的1.了解SSL/TLS握手过程的步骤和原理;2.掌握SSL/TLS握手过程中使用的加密算法和协议;3.实践使用OpenSSL工具进行SSL/TLS握手过程的模拟和抓包分析。
二、实验环境和工具1.实验环境:Ubuntu 16.04操作系统;2.工具:OpenSSL、Wireshark。
三、实验步骤1.生成证书和私钥:使用OpenSSL生成自签名的证书和私钥,作为实验中的服务器端和客户端使用;2.开启HTTPS服务器:使用自签名证书和私钥配置Nginx或Apache 服务器,开启HTTPS服务;3.模拟TLS握手过程:使用OpenSSL工具作为客户端,与已开启HTTPS服务的服务器进行握手;4.抓包分析:使用Wireshark抓取握手过程中的网络数据包,分析TLS握手的细节和加密算法。
四、实验结果与分析通过实验发现,在TLS握手过程中,主要包括以下步骤:1.客户端发送ClientHello消息:客户端向服务器发送包含支持的加密算法和协议版本的ClientHello消息;2.服务器返回ServerHello消息:服务器从客户端发送的加密算法和协议版本中选择一种,发送ServerHello消息,并附带服务器的证书;3.客户端验证服务器证书:客户端接收到服务器证书后,使用事先内置的可信证书列表或单独验证服务器证书的合法性,确保服务器身份的真实性;4.客户端生成对称密钥:客户端生成用于对称加密的随机密钥,并使用服务器的公钥进行加密后发送给服务器;5.服务器解密对称密钥:服务器使用私钥对收到的用公钥加密的对称密钥进行解密;6.双方生成会话密钥:客户端和服务器根据约定的加密算法和握手过程中交换的信息,独立生成会话密钥;7.客户端发送Finished消息:客户端使用会话密钥对之前握手过程的所有消息进行加密并生成MAC值,发送给服务器;8.服务器发送Finished消息:服务器使用会话密钥对之前握手过程的所有消息进行加密并生成MAC值,发送给客户端;9.握手完成,开始加密通信:客户端和服务器互相验证收到的Finished消息,验证通过后,握手过程结束,双方开始使用会话密钥进行加密通信。
使用wireshark进行抓包分析 实验报告
二.实验工具wireshark软件三.实验主要过程与结果本次实验使用了wireshark抓包软件对QQ的协议数据进行了分析。
1、首先打开wireshark,登录QQ2、然后点击开始抓包,给好友发送消息3、最后停止抓包,分析协议数据结果:停止抓包后,可以看到wireshark的页面如下,分为了三个区域:从上到下依次为数据包列表,数据包细节和数据包字节。
源地址为120.204.17.118,目的地址为172.17.62.0即为本机的地址)。
从数据包细节窗口可以看出总共有五层,从下到上依次为应用层,运输层,网络层,数据链路层,物理层。
分别对其不同层进行分析。
四、分析讨论1、应用层应用层是五层协议体系结构中的最高层,其任务是通过应用进程间的交互来完成特定网络应用。
本实验使用的应用进程为QQ,从下图中可以看出QQ所使用的协议为OICQ协议,其中里面包含了交互数据,即为报文。
在数据包细节中OICQ协议中的第五行,可以看到自己的QQ号(302702230)。
选中最后一行的DaTa可以看到传输的数据,即为报文。
2、运输层运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务,应用进程利用该服务传送应用层报文。
从下图可以看到运输层所使用的协议为UDP协议,UDP协议提供无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性),其数据的单位是用户数据报。
图中所选中的数据部分是运输层给数据加的报头。
其源端口号为8000,目的端口号为4009,数据包字节长度为87。
UDP协议的第四行表示检验和显示为验证禁用,不能验证,如下图。
3、网络层网络层负责为分组交换网上的不同主机提供通信服务。
在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包进行传送。
从图中可以看出可以看到IP的版本号为4;IP头的长度是20字节,所以从图中可以看出第一个数45,即代表版本号和IP头的长度;首部和载荷的总长度是107字节(0x006b),00在前,6b在后,说明进行网络传输的时候是先传输高位再传输低位,即高字节数据在低地址,低字节数据在高地址,从图中可以看出是00 6b;TTL(存活时间)域的值是54;协议为UDP。
SSL实验报告
SSL实验报告一、实验目的本次 SSL(Secure Sockets Layer,安全套接层)实验的主要目的是深入了解和掌握 SSL 协议的工作原理、加密机制以及在网络通信中的应用,通过实际操作和测试,评估 SSL 协议在保障数据传输安全方面的性能和效果。
二、实验环境1、操作系统:Windows 10 专业版2、开发工具:Python 383、相关库:OpenSSL、PyOpenSSL4、网络环境:局域网三、实验原理SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL 协议可分为两层:1、 SSL 记录协议(SSL Record Protocol):它建立在可靠的传输协议(如 TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
2、 SSL 握手协议(SSL Handshake Protocol):用于在客户端和服务器之间协商加密算法、交换密钥等,以建立安全的连接。
SSL 协议通过使用非对称加密算法(如 RSA)来交换密钥,然后使用对称加密算法(如 AES)来加密实际传输的数据,从而实现数据的保密性和完整性。
四、实验步骤1、生成证书首先,使用 OpenSSL 工具生成自签名的根证书(Root Certificate)。
接着,基于根证书为服务器和客户端分别生成证书请求(Certificate Signing Request,CSR)。
最后,使用根证书对服务器和客户端的证书请求进行签名,生成服务器证书和客户端证书。
2、配置服务器在 Python 中使用`PyOpenSSL`库创建一个 SSL 上下文(SSL Context)。
加载服务器证书和私钥到 SSL 上下文。
3、实现客户端同样在 Python 中创建 SSL 上下文。
加载客户端证书和私钥。
4、建立连接并进行数据传输客户端发起与服务器的连接请求。
服务器和客户端通过 SSL 握手协议完成密钥交换和身份验证。
网络抓包 实验报告
网络抓包实验报告网络抓包实验报告一、实验目的网络抓包是一种常见的网络分析技术,通过截获和分析网络通信数据包,可以深入了解网络通信过程中的细节和问题。
本实验旨在通过抓包实践,掌握网络抓包的基本原理和操作方法,并能够利用抓包工具进行网络数据分析。
二、实验环境本次实验使用了一台运行Windows 10操作系统的电脑,并安装了Wireshark作为网络抓包工具。
Wireshark是一款开源的网络协议分析软件,可以截获并分析网络数据包。
三、实验步骤1. 安装Wireshark:从官方网站下载Wireshark安装包,并按照提示完成安装过程。
2. 打开Wireshark:双击Wireshark桌面图标,启动软件。
3. 选择网络接口:在Wireshark界面的主菜单中,点击“捕获”选项,选择要进行抓包的网络接口。
4. 开始抓包:点击“开始”按钮,Wireshark开始截获网络数据包。
5. 进行网络通信:在另一台电脑上进行网络通信,例如访问一个网站或发送电子邮件。
6. 停止抓包:在Wireshark界面的主菜单中,点击“停止”按钮,停止截获网络数据包。
7. 分析数据包:在Wireshark界面的数据包列表中,可以看到截获的网络数据包,点击其中的一条数据包,可以查看其详细信息。
四、实验结果与分析通过实验,我们成功截获了多个网络数据包,并进行了分析。
在分析过程中,我们发现了一些有趣的现象。
首先,我们观察到了HTTP通信中的明文传输问题。
在抓包过程中,我们截获了一些HTTP请求和响应的数据包,其中包含了网页的内容。
通过查看数据包的详细信息,我们发现这些数据包中的内容并没有进行加密处理,因此存在信息泄漏的风险。
这提醒我们在进行网络通信时,应尽量使用HTTPS等加密协议来保护数据的安全性。
其次,我们还观察到了TCP连接的建立和断开过程。
在进行网络通信时,客户端和服务器之间需要建立TCP连接来传输数据。
通过分析数据包中的TCP协议头部信息,我们可以清晰地看到连接的建立过程,包括三次握手和连接的断开过程,包括四次挥手。
SSLTLS握手过程综合实验报告
SSLTLS握手过程综合实验报告实验目的:本实验旨在通过深入了解SSL/TLS握手过程,掌握如何使用OpenSSL 库进行SSL/TLS连接的建立和终止,以及学习SSL/TLS协议的相关知识,从而加深对网络通信安全的理解。
实验内容:本实验分为三个部分,分别是的准备工作、握手过程的实验和细节分析。
第一部分:准备工作步骤1:安装OpenSSL库首先需要在本地环境中安装OpenSSL库。
可以通过以下命令在Linux 系统上安装:```sudo apt-get install openssl```步骤2:生成数字证书和私钥使用OpenSSL命令生成数字证书和私钥。
首先生成自签名的CA证书和私钥:```openssl req -new -x509 -sha256 -keyout ca.key -out ca.crt -days 3650```然后生成服务器证书和私钥:```openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.csropenssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650```步骤3:编写服务端和客户端程序使用C语言编写服务端和客户端程序,其中服务端程序使用OpenSSL 库提供的接口进行SSL/TLS连接的建立和终止,客户端程序通过连接到服务端来测试SSL/TLS握手过程。
第二部分:握手过程的实验步骤1:启动服务端程序在终端中执行以下命令启动服务端程序:```./server```步骤2:启动客户端程序在终端中执行以下命令启动客户端程序:```./client```步骤3:观察握手过程在客户端程序运行的过程中,观察SSL/TLS握手过程中的消息交换情况。
抓包分析SSLTLS连接建立过程【总结】
抓包分析SSLTLS连接建⽴过程【总结】1、前⾔ 最近在倒腾SSL⽅⾯的项⽬,之前只是虽然对SSL了解过,但是不够深⼊,正好有机会,认真学习⼀下。
开始了解SSL的是从https开始的,⾃从百度⽀持https以后,如今全站https的趋势越来越强烈,互联⽹对安全的认识越来越深⼊。
本⽂根据⾃⼰的实际情况,对SSL链接建⽴做个总结。
SSL相关的⾮对称加密和加密,涉及到公钥、私钥、证书、对称密钥,这些⾮常复杂,本⽂不会涉及。
本⽂重点介绍SSL的握⼿过程,客户端和服务端的步骤,通过wireshark抓包分析整个过程。
2、基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的⾯向连接的⽹络层协议和应⽤层协议之间的⼀种协议层。
SSL通过互相认证、使⽤数字签名确保完整性、使⽤加密确保私密性,以实现客户端和服务器之间的安全通讯。
该协议由两层组成:SSL记录协议和SSL握⼿协议。
TLS:(Transport Layer Security,传输层安全协议),⽤于两个应⽤程序之间提供保密性和数据完整性。
该协议由两层组成:TLS记录协议和TLS握⼿协议。
TLS是在SSL的基础上标准化的产物,⽬前SSL3.0与TLS1.0保持⼀致的,⼆者是并列关系,只是⼤家习惯称呼SSL。
注明的web服务nginx默认⽀持的就是TLS1.0、TLS1.1、TLS1.2协议。
调⽤的openssl库中,对应的就是ssl3_acceptt函数。
SSL/TLS位于传输层和应⽤层之间,应⽤层数据不再直接传递给传输层,⽽是传递给SSL层,SSL层对从应⽤层收到的数据进⾏加密,并增加⾃⼰的SSL头。
3、握⼿过程 我使⽤nginx搭建了⼀个https的服务,nginx的默认ssl cipher为HIGH:!aNULL:!MD5; 不同的cipher 决定了握⼿的交互过程。
chrome浏览器⽀持的cipher如下所⽰:cipher的格式为:认证算法_密钥交换算法_加密算法_ 摘要算法⾸先看看最基本的基于RSA的密钥协商算法,配置的ssl sipher为 AES256-GCM-SHA256。
wireshark抓包分析实验报告
wireshark抓包分析实验报告Wireshark抓包分析实验报告引言:网络是现代社会不可或缺的一部分,它连接了世界各地的计算机和设备。
为了确保网络的正常运行和安全,网络分析工具是必不可少的。
Wireshark作为一款开源的网络抓包分析工具,具有强大的功能和广泛的应用范围。
本实验旨在通过使用Wireshark来抓包并分析网络数据,以深入了解网络通信的细节和原理。
实验目的:1. 了解Wireshark的基本原理和使用方法;2. 掌握抓包和分析网络数据的技巧;3. 分析网络数据包的结构和内容。
实验步骤:1. 下载和安装Wireshark软件;2. 打开Wireshark,选择要进行抓包的网络接口;3. 开始抓包,并进行需要的过滤设置;4. 分析抓到的数据包,包括查看源地址、目标地址、协议类型等信息;5. 进一步分析数据包的内容,如查看HTTP请求和响应的头部信息、查看传输层协议的数据等;6. 结束抓包并保存数据。
实验结果与分析:通过使用Wireshark进行抓包和分析,我们可以获得大量有关网络通信的信息。
以下是一些实验结果和分析:1. 数据包的源地址和目标地址:通过查看数据包的源地址和目标地址,我们可以确定通信的两端设备和它们之间的关系。
这对于网络故障排除和安全分析非常重要。
2. 协议类型:Wireshark可以自动识别和解析各种协议,包括TCP、UDP、HTTP、FTP等。
通过查看数据包的协议类型,我们可以了解网络通信所使用的协议,并进一步分析其特点和性能。
3. HTTP请求和响应:Wireshark可以解析HTTP协议,并显示请求和响应的详细信息。
通过查看HTTP请求和响应的头部信息,我们可以了解到客户端和服务器之间的通信内容,如请求的URL、请求方法、响应状态码等。
4. 传输层协议的数据:Wireshark可以显示传输层协议的数据,如TCP和UDP的数据。
通过查看传输层协议的数据,我们可以了解到数据包的具体内容,如传输的文本、文件等。
手机抓包实验报告
手机抓包实验报告1. 实验背景随着互联网的快速发展,手机已经成为了人们日常生活中必不可少的工具之一。
然而,手机应用中存在一些潜在的风险,如个人信息泄露、恶意软件、数据篡改等。
为了更好地了解手机网络通信的原理,学习如何保护手机网络安全,进行手机抓包实验就显得尤为重要。
2. 实验目的本次实验的主要目的有以下几点:1. 了解手机抓包的基本原理和工具使用方法;2. 掌握如何监测手机应用的网络请求和响应;3. 学习如何利用手机抓包进行安全分析和排查;4. 提高对手机应用安全性的认知和保护意识。
3. 实验环境为了进行手机抓包实验,我们需要准备以下环境:- 一部装有抓包工具的安卓手机;- 一台电脑,并安装好相应的抓包软件。
在本实验中,我们选择使用Fiddler 这款抓包软件,它可以通过将手机和电脑连接在同一网络下对手机应用进行抓包分析。
同时,确保手机和电脑的网络连接是可用的。
4. 实验步骤4.1 配置电脑的网络代理首先,在电脑上安装好Fiddler 软件后,打开软件设置界面。
找到`Tools` -`Options` - `Connections`,勾选上`Allow remote computers to connect`,并记下电脑的IP 地址。
然后,在手机上进入网络设置,选择手动配置代理,在代理主机和端口输入上一步中记下的电脑IP 地址和Fiddler 默认的端口号8888。
4.2 手机连接至同一网络确保手机和电脑连接至同一网络下,推荐使用无线局域网连接,以免繁琐的有线连接操作。
4.3 启动Fiddler 抓包在电脑上打开Fiddler 软件,点击`Tools` - `Options` - `HTTPS`,勾选上`Decrypt HTTPS traffic`,再点击`Actions` - `Clear cache` 清空缓存,然后点击`File` - `Capture Traffic` 开始抓包。
4.4 手机应用抓包打开手机上想要抓包的应用,使用一段时间后回到Fiddler 软件界面,可以看到已经捕获到了手机应用的请求和响应数据。
抓包分析SSL通信过程实验报告
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 发送 Certificate4.Server 发送 ServerHelloDone5.Client 发送 ClientKeyExchange,用于与 server 交换 session key6.Client 发送 ChangeCipherSpec,指示 Server 从现在开始发送的消息都是加密过的7.Client 发送 Finishd,包含了前面所有握手消息的 hash,可以让 server 验证握手过程是否被第三方篡改8.Server 发送 ChangeCipherSpec,指示 Client 从现在开始发送的消息都是加密过的9.Server 发送 Finishd,包含了前面所有握手消息的 hash,可以让 client 验证握手过程是否被第三方篡改,并且证明自己是 Certificate 密钥的拥有者,即证明自己的身份三、抓包实际分析连接过程下面从抓包数据来具体分析这一过程并说明各部分数据的作用以及如实现前面列出的握手的目标,当然了,最重要的还是说明为何这一过程是安全可靠的,第三方无法截获,篡改或者假冒。
1.client发送ClientHello这里多了个 session id,如果 SSL 连接断开,再次连接时,可以使用该属性重新建立连接,在双方都有缓存的情况下可以省略握手的步骤。
wireshark 实验 SSL
Wireshark Lab: SSL Version: 2.0© 2007 J.F. Kurose, K.W. Ross. All Rights ReservedComputer Networking: A Top-down Approach, 4th edition.In this lab, we’ll investigate the Secure Sockets Layer (SSL) protocol, focusing on the SSL records sent over a TCP connection. We’ll do so by analyzing a trace of the SSL records sent between your host and an e-commerce server. We’ll investigate the various SSL record types as well as the fields in the SSL messages.1. Capturing packets in an SSL sessionThe first step is to capture the packets in an SSL session. To do this, you should go to your favorite e-commerce site and begin the process of purchasing an item (but terminating before making the actual purpose!). After capturing the packets with Wireshark, you should set the filter so that it displays only the Ethernet frames that contain SSL records sent from and received by your host. (An SSL record is the same thing as an SSL message.) You should obtain something like screenshot on the previous page.If you have difficulty creating a trace, you should download the zip file/wireshark-labs/wireshark-traces.zip and extract the ssl-ethereal-trace-1 packet trace.2. A look at the captured traceYour Wireshark GUI should be displaying only the Ethernet frames that have SSL records. It is important to keep in mind that an Ethernet frame may contain one or more SSL records. (This is very different from HTTP, for which each frame contains either one complete HTTP message or a portion of a HTTP message.) Also, an SSL record may not completely fit into an Ethernet frame, in which case multiple frames will be needed to carry the record.1.For each of the first 8 Ethernet frames, specify the source of the frame (client orserver), determine the number of SSL records that are included in the frame, andlist the SSL record types that are included in the frame. Draw a timing diagrambetween client and server, with one arrow for each SSL record.2.Each of the SSL records begins with the same three fields (with possibly differentvalues). One of these fields is “content type” and has length of one byte. List allthree fields and their lengths.ClientHello Record:3.Expand the ClientHello record. (If your trace contains multiple ClientHellorecords, expand the frame that contains the first one.) What is the value of thecontent type?4.Does the ClientHello record contain a nonce (also known as a “challenge”)? If so,what is the value of the challenge in hexadecimal notation?5.Does the ClientHello record advertise the cyber suites it supports? If so, in thefirst listed suite, what are the public-key algorithm, the symmetric-key algorithm, and the hash algorithm?ServerHello Record:6.Locate the ServerHello SSL record. Does this record specify a chosen ciphersuite? What are the algorithms in the chosen cipher suite?7.Does this record include a nonce? If so, how long is it? What is the purpose of theclient and server nonces in SSL?8.Does this record include a session ID? What is the purpose of the session ID?9.Does this record contain a certificate, or is the certificate included in a separaterecord. Does the certificate fit into a single Ethernet frame?Client Key Exchange Record:10.Locate the client key exchange record. Does this record contain a pre-mastersecret? What is this secret used for? Is the secret encrypted? If so, how? How long is the encrypted secret?Change Cipher Spec Record (sent by client) and Encrypted Handshake Record:11.What is the purpose of the Change Cipher Spec record? How many bytes is therecord in your trace?12.In the encrypted handshake record, what is being encrypted? How?13.Does the server also send a change cipher record and an encrypted handshakerecord to the client? How are those records different from those sent by the client? Application Data14.How is the application data being encrypted? Do the records containingapplication data include a MAC? Does Wireshark distinguish between theencrypted application data and the MAC?ment on and explain anything else that you found interesting in the trace.。
SSL证书交互过程抓包分析
滁州学院课程设计报告课程名称:网络安全与管理设计题目:SSL证书交互过程抓包分析系别:计算机科学与技系专业:网络工程组别:第八组起止日期:2011年5月30 日—2011年 6月2日指导教师:谷胜伟课程设计任务书目录1需求分析 (4) (4) (4)2概要设计 (4)镜像的安装 (4) (5)3详细设计 (11) (11)4测试结果 (20) (20)4.2 Ethereal抓包测试 (22)5分析包并说明交互过程 (23)6课程设计总结 (23)参考文献 (23)SSL证书交互过程抓包分析1需求分析在此实验室需要虚拟机和两台安装win2003的服务器,并且把其中的一台作为web服务器,并在web服务器上安装CA。
另一台作为客户端,并且在客户端上安装为DNS服务器(作为解析网址)。
(1)为web浏览器生成相应证书,并安装。
(2)部署一个要求https访问的web站点;并要求服务器和客户端在交互过程中均要提交证书。
(3)环境部署完成后,使用Ethereal将Client和Server交互过程中的数据包保存下来,作为该课程设计的附件。
(4)重点将交互过程体现到设计中。
2概要设计镜像的安装安装过程省略,最后得到界面,如图2-1图 2-1 界面其中SUSE Linux作为web服务器和CA,win2003作为客户端和DNS服务器。
(1)首先在SUSE 中安装web服务器和CA:点击控制面板,打开添加删除程序,选中添加或删除windowswindows组件向导中选中应用程序服务器并且选中internet 信息服务和启用网络COM+访问(注:com+微软开发的一款分布式中间件,用来提供透明的分布式服务).点击下一步完成安装。
如图2-2图2-2(2)在开始菜单内选中配置您的服务器向导,如图2-3图2-3点击下一步并在服务器角色对话框中选中应用程序服务器(IIS,)安装IIS。
然后选择下一步。
如图2-4图2-4在点击下一步完成安装,然后在计算机管理里面可以在服务与应用程序一栏中看见Internet 信息服务管理器,如图2-5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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了。