使用wireshark分析HTTPS流程的建立.docx

上传人:小飞机 文档编号:5010646 上传时间:2023-05-29 格式:DOCX 页数:15 大小:133.20KB
返回 下载 相关 举报
使用wireshark分析HTTPS流程的建立.docx_第1页
第1页 / 共15页
使用wireshark分析HTTPS流程的建立.docx_第2页
第2页 / 共15页
使用wireshark分析HTTPS流程的建立.docx_第3页
第3页 / 共15页
使用wireshark分析HTTPS流程的建立.docx_第4页
第4页 / 共15页
使用wireshark分析HTTPS流程的建立.docx_第5页
第5页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《使用wireshark分析HTTPS流程的建立.docx》由会员分享,可在线阅读,更多相关《使用wireshark分析HTTPS流程的建立.docx(15页珍藏版)》请在三一办公上搜索。

1、使用wireshark分析HTTPS流程的建立摘要:https流程一、概要为了网站以及用户的安全性,现在很多的网站都是https,大家都知道tcp通过 三次握手建立连接,并且还有很多的同学对https连接建立的流程不太明白,包 括我自己,通过借助于wireshark这种抓包工具,我们可以尝试着了解一下大概 的流程。19369 21 1937B KM19371 蛔19372 2664 1937319374 龄!19375 2G&419376 266419377 2664 1937B 2&4 19415 267J 3 5416 2&M 19445 炒 19顿 26SA 195B9踮知mzis 10

2、nfl.fl5B103 1U.21& TLSmI.ZU50X1 114.215.83. 10-C.45.103 KP. 4E-. JS3 TLSyl.25N Sdq-066 OJ.59622 SyN, AK|Ac虹 1蜜砌 Len-0 Wi-UM S*K_PE-1 h&-12854 5622-441 AEK如ql Ack-l Hln-&57eiB L-B256 ClienT HtllO珈 445*59622 ACK Seq-1 Ack-263 Nlm-157-W Len-011TO70 125651 12575G 132851 19U15 1龄53 236813 21JS5710fl.d5.1

3、03 ie.B.4B.ie3 114.215 琏* 114.215. W.B.4B.ie3 45.103 1U.215.S8- 10nfl.fl5nl03 U4.21S.SS. ie.H.45.S3111.215 务, 1U.21&.SS- J.0 0.35 103 16岛盟.通 1U.21&.SS- 111.215 遂 ie_0.45.ia31U.215 用 10-C.45.103 114.215.SS-TLSvl.2TLSyl.ZTLSl.2TLSvl.2TCPKPTCFTCPKPTCF4-45 Srvftpi-saiAj S*rvar KaySsrwr HaIIo QontM.6 C l

4、ient Key ExcEnm Changit Ciphe-n Spec Helles Aquertg Hello FkweM 海心Dg296 Nsu Sessiw TikeiChance Cijphen 5t)eCj Mcrypted Hthakt Messss#263Data54 522-441 (AK SAq-17 khlS4m W5n-G5m55 |KP Keep-Jliw 59fr22-JM3 ACK| Seq-816 &k1 鲍3 KLn-65?M Lcn-166 TCF 昨邮-Allg AK 443-596Z2 ACK 5aq-lB43 Ak-B17 Wln-17?2B Len-

5、B SLE-B16 5RE-B1755 IKP Keep-All 5听KK 5eq-?16 Ack-lS15 W1Y5?睥 Len-1砧KP Keep-Aliv AJCK 443-59622 ACK Seq-1843 心BLF bfln-1792Q Len-fl SLE-aih SfiE-fil755 TCF X。邮-Allg S9fr21-443 ACK Sq-B16 Ai=k-lS43 KlnWHBe Lan-1(图1)本图是客户端(10.0.45.103)访问服务端(114.215.88.85)通过wireshark 抓包显示出来的双方交互数据,访问是通过https访问服务器上的一台ng

6、inx 服务器服务。请关注第一列的No。下文中很多时候会用no表示一次交互。图中可以很明显的看出tcp的三次握手以及之后的TLS加密流程的建立。二、tcp的三次握手通过流程图可以看出(也可以看图1的19368到19370这三个编号),首先客 户端向服务端发起一个SYN的请求,序号(Seq)为0,确认号(ACK)也为0,这 代表是本次是由客户端发起的首次请求。本次请求的数据长度为0 然后服务端给客户端响应,此时服务端的Seq也是0,值得是服务端的第一回应, 并且给客户端说,你的请求我已经收到了( ACK=1),最后返还给客户端以后,客户端的序号+1,并且对服务端的响应做出确认,最后 回给服务端,

7、此时ACK=1,Seq=1tcp的握手过程建立成功。三、ssl连接的建立通过以上可以看出,SSL也是建立在TCP的基础上的,经过tcp的三次握手,接 下来才是加密信道的建立。客户端和服务端建立安全连接大致经过以下几个步骤1. 客户端:ClientHello2. 月艮务端:Server Hello, Server certificate, Server Exchange, Server Hello Done3. 客户端:client Exchange4. 客户端:Application Data5. 服务端:New Session6. 月艮务端:Application Data接下来看这几个步骤

8、中具体的每一个步骤传输的内容ClientHelloTif-tIFfr19371 2664.0ea213w.e.4i.ieii4,2is.aa.s&,TLS1,2拒&口技nt Hfrlitrclient首先给服务端打招呼,对服务端说hello应用层没什么特别的* TrjnEndssion Control Protocai, Src Port:椅FH, Ost Port: M3&至平 1Ac It:ten: 2&2Source Porti 59&22Part: 335tre-am intfex: 29G1TCP 知册nt Lm: 2GWnuniBe*: 1 re 1st ivs目 numbc rH

9、e就 sequence nitinber: 203 (felatiVE 5eq(jHC4 number)会d料i巨色七1(e*巨Lwt土讨由Header Length; /妙 bylesFligti 018 (PS% ACK)Window Rz自 ul us:ClcuIdted hrir-doN size: G5700UlMOw sil ii-allfig fidt&ri 4ChfiGtcsum: 9撕? unvei-fied JCliecs: Unveni-f led U rrat p1 2 ccrd Layer; HandshaKe 户口to匚口1: Client tfellotwtent

10、 Type; Hand弥朴巴(22)详细的信息如下:氾ketw layer-TLSyl r j瑚yw: He-寸m导女 FeWcM;HelleContEfit Type Handshl (22)Vspsion: JLS l.e (M3M)Lcng,th: 197 Hwndshmk白 Protocol: CH&rit H&lloHmndshm如 T/P土 Client H&lld (土)Length: 193Version: TL& 1.2 (日湖观3)* 购FldMtMT 4Jnlx Tine:岫 25, 2039 12 ;55: ie.&090&0900。访。赫Random ByE四!打卸

11、11639bb24978j7ldOfc&42叫0d7jd82f5j5cfl29f99b.5esion ID Lensth: 12:s;sion IC:奖曲d*网dm6钮Me把觇5町EM蝴1龄9曲WNdd 1砧M .,.Cipher Suite: TLSCipheE Suite : EL5Cipher Suite: TL5Cipher Suite: TL5Cipher Suite: TL5Clphtr Suite; ILSCipher ultei TLSCipher $ui fCipher- Suite: ILSI三 Fkli dm I I 4 j-Q , E. 4ECUHE_E CD5fl._

12、WlTK_AE5_lZ3j5ft_5HAi 56 (G0?b)EC&HE_R5fi_KIRi_A E5_12HA256 (HhBW f)EC&HE_ECDSA._WITB_CHM:HA;0_PQLY15&5_5HA25& (0KHE_R SA_W.nH_CHAHA2a_ POLY 130 5_-5HA2 5 5 -0MCC a8 )EC1E_ECDShERSA_lfnHES2S6_GtM_SHA3S4 灿由油)EC&HE EtDSA. wETw_AEi tBC_SHA (&匚的,)芭网*上装i就敢曲(技啊)ECIHE_R5A_WITH_AE5_l 2B_C SC_SHA (取匚用u厂门山i匚

13、口匚息 lfttis-i ai=匚 iRt rnr 匚us /Secure Socekts layer层使用的是版本是TLS 1.0HandShake Type的类型,是客户端打招呼client helloHandShake protocol 协议使用的是 TLS 1.2发送的信息还有客户端在本地生成的随机码(Random)然后客户端声明自己所支持的加密套件(Cipher Suites )这个客户端支持15 种加密套件加密套件中表明了使用的对称加密算法,非对称加密算法,摘要算法以及使用的 是TLS或者是SSL还有一些其他的信息j- - ObJ Compression Methods (1 me

14、thod)Compression Method: null (0)Extensions Length: 90Extension: Extended Master SecretExtension: renegotiation_in-FoExtension: ellipticcurvesExtension; ec_pQint_FormatsExtension: SessionTicket TLSExtension: next_protocol_negotiationExtension: Application Layer Protocol NegotiationExtension: status_

15、requestExtension: signature algorithms第一行指明是否进行了压缩以及使用的压缩算法,第二行null表明未进行压缩, 以及选用相关的压缩算法或者压缩工具剩下的就是一些扩展的字段了总结下来,客户端向服务端第一次打招呼(client Hello)的时候实际上主要发 送了以下主要的信息客户端的随机数客户端所支持的加密套件以及客户端和服务器之间的sessionId 接下来就是服务端对客户端Hello的第一次回应,也就是编号19372, Tran sals slon Control Protocol s Src Port:皿 3. D 或 Port: 536Z2 a S

16、eqz L Ack:卫 3. Lm: eSguirce Port: 443DesWwtig Pprt:并622Stream index; 26TCP SegJMnt Lan: fiSsquance nufiitieri 1 (rlatiwa sequence nustier)AcknoHledgwnt rumtcr:网3(relitive ack numberHeader Lengtni 2& hyt-es Flag告:Bk91B (JU:K)Hlndcw size ualu?: 1123CilcuJtftH windw size! 15744Hlndw sin KillJia fKtop:

17、128Checksum: 6妁3词unverifiedChck&Lii Statui Ur verified=(SEtyAtK dnal/sis.)CThiM is an 七心 thw s籍巨口。七 In fr9ng: 1?3711J The RTT te AjCK the 5 日驯。nt was; 9. 421219 second &(iRTT: 0.e4?347M0 队8网5可以看到 服务端使用的是443端口,序列号(Sequence number)也是1 ,并 且回应客户端说我已经确认收到你的202个自己的数据(203-1),Flags表明 本次是服务端反馈给客户端请求的应答(蓝色的文字

18、也写出来了,这是一个队 19371编号的应答)从图1可以看出这是一个TCP连接Server Hello接下来不等客户端反应,服务端又给客户端发送了 19373的数据,而这个数据就 是使用了 TLS1.2协议了。摘要信息中说明了这是服务端的的hello,Server hello,服务端秘钥交换,服务 端hello done。接下来看服务端发过来的具体都有什么。传输控制层(transmission control protocol)和上面一样,主要是一些Flags, 端口以及数据长度的确认等等,主要看一下安全套接字层的东西(Secure Sockets Layer)中的东西。 Secure S-o

19、ckets LayerTLSvl.2 Record Layer:TLSvl.2 Record Layer:TLSvLN Record Layer:TLSvL2 Record Layer;Hndlike Protocol: Server HelloH目ndh可Protocol: CertificateHandshake Protocol:Handshake Protocol;Senve-r Key ExchangeServer Hello Done通过上图,可以看出服务端主要返回四种内容。Server Hello服务端的回应客户端的hello信息. Certificate服务端证书 Server

20、 key Exchange服务器秘钥交换 Server Hello Done服务器信息发送完毕详细看一下各个Record layer中的具体内容Server HelloJ Handshake Protocol: Server HelloHandshake Type: Server Hello (2)Length: 70Version: TLS 1.2 (0x0303)RandomSession ID Length: SCipher Suite: TL5_ECDHE_RSA WITAES 25S GCM SHA384 (Swc030)Compression Method: null (0)Ext

21、ensions Length: 30Extension: renegotiation_infoExtension; ec_paint_-Farmat5Extension: SessionTicket ILSExtension; neKt_prQtQCQl_negQtiation在Server Hello中,服务器返回的服务端的随机数,所选用的TLS版本,以及 服务器最终选用的客户端和服务端交互的加密套件(TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030),最终选用的加密套 件是RSA非对称加密算法以及AES对称加密算法,用的是SHA384做摘要,注意,

22、 这个值必须是客户端发给服务端的列表中选出来的。实际上如果客户端只能支持 版本和安全性比较低的加密套件,这样服务端选择和客户端交互的时候也被迫只 能使用低版本的加密套件,其安全性就会降低。除了以上这些,服务端Server Hello时发送回来的还有是否使用了压缩以及一些其他的扩展字段CertificateServer Hello以后,服务端会发送公钥证书给客户端Certificates (953 bytes)Certificate Length: 950Certificate: 308203b23082029aa003020102020101300d06092a864886.(id-at-co

23、mmonName二,id-at-organizationName=JD,id-at-stateOrProvinceName二BJ,id-at-countryName二CN)signedCertificateversion: v3 (2)serialNumber: 1signature (sha256WithRSAEncryption)Algorithm Id: 1.2.840.113549.1.1.11 (sha256WithRSAEncryption)issuer: rdnSequence (0) rdnSequence: 7 items(pkcs-9-at-emailAddress=,id

24、-at-commonName二wangtengfei,id-at-organizationalUnitName=section,id-at-organizationName=JD,id-at-localityName=BJ,id-at-stateOrProvinceName=BJ,id-at-countryName=CN)RDNSequence item: 1 item (id-at-countryName二CN)RDNSequence item: 1 item(id-at-stateOrProvinceName=BJ)RDNSequence item: 1 item (id-at-local

25、ityName二BJ)RDNSequence item: 1 item(id-at-organizationName=JD)RDNSequence item: 1 item(id-at-organizationalUnitName=section)RDNSequence item: 1 item(id-at-commonName=wangtengfei)RDNSequence item: 1 item(pkcs-9-at-emailAddress=)validity notBefore: utcTime (0) utcTime: 16-11-22 06:38:18 (UTC) notAfter

26、: utcTime (0) utcTime: 17-11-22 06:38:18 (UTC) subject: rdnSequence (0) rdnSequence: 4 items(id-at-commonName二,id-at-organizationName二JD,id-at-stateOr ProvinceName=BJ,id-at-countryName=CN)RDNSequence item: 1 item (id-at-countryName二CN)RDNSequence item: 1 item(id-at-stateOrProvinceName=BJ)RDNSequence

27、 item: 1 item(id-at-organizationName=JD)RDNSequence item: 1 item(id-at-commonName=)subjectPublicKeyInfo algorithm (rsaEncryption)Algorithm Id: 1.2.840.113549.1.1.1 (rsaEncryption) subjectPublicKey:3082010a0282010100be56d1a2b725cf5d6fa1997c83b221.modulus:0x00be56d1a2b725cf5d6fa1997c83b221de8452658b1e

28、7c86.publicExponent: 65537extensions: 4 itemsalgorithmidentifier (sha256WithRSAEncryption) Algorithm Id: 1.2.840.113549.1.1.11(sha256WithRSAEncryption)Padding: 0encrypted:41bfd96f86c44a731d6ff7af7e9e666703c744aa8c691d38.1中有证书的指纹,以及证书的签名信息Certificate:308203b23082029aa003020102020101300d06092a864886.(

29、id-at-commonName二,idatorganizationName二JD,idatstateOrProvin ceName=BJ,id-at-countryName=CN)看以看出,这个证书是针对这个域名签发的,然后就是一些签发机 构信息等。2证书的过期时间(validity),可以看出证书的过期时间为1年,从16年11 月22日6点38分18秒(not Before)到从17年11月22日6点38分18秒(not After)3证书签发的主体(subject)4公钥证书的key.当然这证书下放以后,服务端会把签发的证书的hash也发送过来,以证明此证 书在传递过程中没有被修改。*

30、lifter it hiI nt i tierncrypt ion)Algarithn Id: 1.2.111549.1.1.11nt ration)Padding: 9encrypled:比和任6亡44曲31dSf-F7a-F7e9&666701c74raBc6?ld38.可以看出使用的sha256算法做的摘要。证书我们也能在浏览器中用可视化的方法查看。甯现回详蚓“言真无法验1踮正书,因为就炭者未质茹通用名(C N)rmw.wtf.CQm聊JD砌俭元U无此郃分*序瞻01通闻角CN)心ngtengHi段罔诅如里元section有阪明蛊回闻20161122B理期却可的口年”月22日HA-256婿

31、纹猝:姑:FE:3C:4&EEXE:5O:n:m:El;非;E二g();K;63 :4B:C: 14:S5:O6: ?3:T9:M:3t:M:E3:3l:jU: A3 :F3如 M !i披7G况的七口旨BD:&ESChA5;D*F5:0E:FE:4E:3E:CD$GEC;54;A4*F关田我会把证书导出,可以自行查看接下来就是秘钥交换了Server key Exchangej VLSwS. l 2 Rec ord L aer : Hand Pratceol: S&rver Itey Exc hangeContent Type: Hand&hakc (22)VerslMi: TLE 1.2 0k

32、0303)Length; 333J Hand&hke Protocol: Server ke fxcha ngetandshaka Type: Server Key Exchange (12)Length : 329-EC铲通 11珥senVer“时号Typs;($x03)Cure : see p35Er-l (&st0&17)PdibkPV IP u或乾;4&4$3分吊伺踌eGe 7如打7。5也电5知唱0曰戒r,hlineturg 侃寄卜 AJuorlthm; HxW4】Signature Length: W56S ignature;机1噌如3由5廿跄7如EElb既源3砰日5Em3M b日5

33、91十旧.这个就是服务端公钥的keyHelloDoneJ JL5vl.2 Record Layer: Handshake Protocol: Server Hello Done : Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi Illi IIContent Type: Handshake (22)Version: TL5 1.2 (0x0303)Length: 4J Handshake Protocol: Server Hello

34、DoneHandshake Type: 5erver Hello Done (14)Length : 0最后就是服务端发送一个HelloDone标示本次内容全部发放完毕。总结一下 在客户端向服务端打招呼以后,服务端主要发送了那些内容。首先是 发送服务端自己的随机数给客户端,然后下发服务端公钥证书和下发公钥的key, 最后服务端用hellodone标示此次内容全部发送完毕。以上发送过程我们都可以 看得到,也就是说在这个过程中,客户端和服务端交互使用的都还是明文。Client keyExchange客户端接收到服务端的这些证书信息以后,解析来会进行回应服务端。可以看 19374编号:i93Tl -

35、7595-3M72 114.45.1E3 TLSvl .2 1-G45UrrirlfmM. 广 K*y /心孔mg%l FWllo|职酒 毋.D.4S .1B1 5 M_ 215. M.旺 TtSl .2 画&口 顾 虹土1tNW* 日吼 Hl WWW 4WJftEE .3鬲.H d% IbV 11J TlFi AH AM1 Wl 7 Wi AMlVJlTKm查看传输层,传输层中明确写明了这是对19373的一个回应。, Transdiissi-fln Control Protocolj. Src Port? 596!2j Ost Port; 443. Seq; Jfti, Ack: 1383*

36、 Larne 162 iXMjri& Pohtt: 521Osest inatlon Porli 4 JerAni 1 心M 知(TCP 5虐gm Lens 16-2)number:(relative seque-fice(Nert se(iuefie Eitiatwp- 355 relative-nuakwr)Ackn-Mledgwefic nua&er; 1392 (reldtlr d-ck nuiibr)Header Length: 29 bytesP IF 1: 0K0ia CP5tta AK)Widflw size v2瞄;】的77Cal-dirUted 刊如日*E3 阙(Wirid

37、w size- sc-alimf; factor: 4 heek ua 0*iA挡 u ver# ld )(Chlc5iJBi StJtui:; Unverified)Urgmt counter: ,(狂yMit analKslsThis, is an JtfK to ths s-fsnerit in fraaj?!-Eiy RTT 3 言KFlfXiftTT 0.S4m?m secondsFBid-l-nr i n I mhl- r 1 fill重点还是查看安全套接字层,具体来看回应的是什么* Secure tock&t4 Lay-&rJ TLSvl.2 fiEcofti Layer: Ha

38、ndshake Prot&ici: Client Key ExchanseCorrtent Type: Handshake (22)VeriUn: TLS 1,2 仲思M3)Le幅七& 70Ji ClKyHwdwh占膈 Typ*: Client key Excharg (16)Lengths 66 j EC Dd-Ffi#-Re-lIman. Client PjpantsPub key length: 65Pub key: 4dF0e3S4bfl2e4dcaf d4F91dd2dd3aSSe4143-&43eebc .j TLvl. 1 Recor-rf Layer: Ctiange Clph

39、er pec Prctoco-1: Change Cipher 5pecContent Type; Change Cipher Spec (2$)&点Mi TLS 1.2仲整再3)Lm 叩 g 1Oh理堂史pheSp Hwsa维.一 TLSvl.2 ReueS La-ytr: Hndhake Protocol: Multiple膈 He-sagesContent Type: Handshake (22)Venlan TL5 1.2(0x8303)Length; 76Hands膈2 Protocol: Helle Requestafid5hak-e Protocol: Helle fiequei

40、t主要包含了如下几个方面Client key exchange包含了 pre-master secret。这是在握手过程中生成的第三个随机数。分别是 client hello阶段客户端的随机数,然后在server hello阶段服务端的随机数。 这一次是客户端接收到服务端的证书以后,生成的一个预加密因子(供对称加密 使用)。Change cipher spec 客户端通知服务端接下来就要使用加密的方式来进行通信了。然后在19375中,客户端发送给服务端一段加密后的内容(就是在这一步,数据 的交互从明文开始转化为密文),并且把本次会话信息中的所有细节做摘要发给 服务端,以证明在本次过程中双方达成

41、一致,未受到其他干扰* Secure Sockets Layer T LSvl. 2 Ft ecord Lay-er: ApplRdtijn Data Protool: http-rove r-tlsCorrtent Type; Apfrlication Duta 23-)I Version; TLS 1.2 (M3A3)Length: +47Eflcrptsd11 cation眇灿如伽即花幽179L5翎比轴9千研盼44部加LdS千口,服务端确认客户端加密请求然后服务端会在19376和19377中,服务端对客户端的发送的内容进行确认(19374),提供新的Session Ticket,然后发送

42、了一段内容,并且对所有握手 内容做摘要,发给客户端来验证通信过程是否被篡改。最后在19378中,客户端对服务端发送的内容进行做确认193-78 -7G95-.1S15M 1札9站.1明TCP54|59fiJ2-443 ACC Wq-S17 Afk-lBJd H1A-CS7W LM-flSEQ/ACK analysis n iimn a a n i i This is an ACK tothe seenertin frame: 19377The RTT to ACK the segment was; 0.000065000 seconds注意一下,这时候内容发送的协议已经不是SSL 了,已经重新

43、更改为了 TCP接下来就是在此加密信道上开始正常的业务数据传输过程。(tcp.stream eq 296) 整个交互过程的概要可以用下图表示5S622iML ICifi UT-159皿L59622113 ACK Suq lT Acfc J83 Jin-衍FOO Len O网说259622|.4匚E凯戚 Ack 143 VirrEhfDD _L| 44359622IlCr Reep-ftlLve .UK1 44H-55132$知= IH43 hckJT f1n.= lT2fl Len=DSHB=IS7443fi-9622I1 Kwp-ALivi?l 5B622-44J FACK:I S煦泌部 Ark IB13 *in-fl5T0fl LenI 4-13TCP Ep-Aivs- ACK -113-59622 ACK Saqpi843 Aek-817 1 in-37920 Lan-D SLE-ajfi SRE-BI7| 4435952?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号