欢迎来到天天文库
浏览记录
ID:50946542
大小:282.00 KB
页数:9页
时间:2020-03-16
《抓包分析SSL通信过程实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SSL通信过程分析一、SSL建立握手连接目的1.身份的验证,client与server确认对方是它相连接的,而不是第三方冒充的,通过证书实现。2.client与server交换sessionkey,用于连接后数据的传输加密和hash校验。二、简单的SSL握手连接过程(仅Server端交换证书给client):1.client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)2.server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(SessionID)3.server发送Certificate4.Serv
2、er发送ServerHelloDone5.Client发送ClientKeyExchange,用于与server交换sessionkey6.Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的7.Client发送Finishd,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改8.Server发送ChangeCipherSpec,指示Client从现在开始发送的消息都是加密过的9.Server发送Finishd,包含了前面所有握手消息的hash,可以让client验证握手过程是否被第三方篡改,并且证明自己是Certif
3、icate密钥的拥有者,即证明自己的身份三、抓包实际分析连接过程下面从抓包数据来具体分析这一过程并说明各部分数据的作用以及如实现前面列出的握手的目标,当然了,最重要的还是说明为何这一过程是安全可靠的,第三方无法截获,篡改或者假冒。1.client发送ClientHello 每一条消息都会包含有ContentType,Version,HandshakeType等信息。ContentType指示SSL通信处于哪个阶段,是握手(Handshake),开始加密传输(ChangeCipherSpec)还是正常通信(Application)等,见下表HexDecType0x1420ChangeCipher
4、Spec0x1521Alert0x1622Handshake0x1723Application Version是TLS的版本,见下表MajorVersionMinorVersionVersionType30SSLv331TLS1.032TLS1.133TLS1.2HandshakeType是在handshanke阶段中的具体哪一步,见下表CodeDescription0HelloRequest1ClientHello2ServerHello11Certificate12ServerKeyExchange13CertificateRequest14ServerHelloDone15Certifi
5、cateVerify16ClientKeyExchange20FinishedClientHello附带的数据随机数据RN,会在生成sessionkey时使用,Ciphersuite列出了client支持的所有加密算法组合,可以看出每一组包含3种算法,一个是非对称算法,如RSA,一个是对称算法如DES,3DES,RC4等,一个是Hash算法,如MD5,SHA等,server会从这些算法组合中选取一组,作为本次SSL连接中使用。 2.server回应ServerHello 这里多了个sessionid,如果SSL连接断开,再次连接时,可以使用该属性重新建立连接,在双方都有缓存的情况下可以省略握
6、手的步骤。server端也会生成随机的RN,用于生成sessionkey使用。server会从client发送的Ciphersuite列表中跳出一个,这里挑选的是RSA+RC4+MD5这次server共发送的3个handshake 消息:Serverhello,Certificate和ServerHelloDone,共用一个ContentType:Handshake3.server发送Certificate server的证书信息,只包含publickey,server将该publickey对应的privatekey保存好,用于证明server是该证书的实际拥有者,那么如何验证呢?原理很简单:
7、client随机生成一串数,用server这里的publickey加密(显然是RSA算法),发给server,server用privatekey解密后返回给client,client与原文比较,如果一致,则说明server拥有privatekey,也就说明与client通信的正是证书的拥有者,因为publickey加密的数据,只有privatekey才能解密,目前的技术还没发破解。利用这个原理,也
此文档下载收益归作者所有