请选择 进入手机版 | 继续访问电脑版

技术控

    今日:39| 主题:61721
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] 传输层安全协议抓包分析之SSL/TLS

[复制链接]
鸭梨 发表于 2016-10-15 06:56:47
304 4
1. 协议介绍

  SSL/TLS是保护计算机网络通讯安全的一类加密协议,它们在传输层上给原先非安全的应用层协议提供加密保护,如非安全的HTTP协议即可被SSL/TLS保护形成安全的HTTPS协议。
  SSL、TLS协议其实是有所差异的,TLS协议是继承了SSL协议并写入RFC,标准化后的产物。因此,通常使用SSL来指代SSL协议和TLS协议。
  SSL (Secure Socket Layer)安全套接字层协议

  • SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。
  • 分为SSL记录协议和SSL握手协议。
  TLS(Transport Layer Security)传输层安全协议

  • 用于两个应用程序之间提供保密性和数据完整性。
  • 分为TLS记录协议和TLS握手协议。
  区别:

  • SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。
  • TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的
  2. SSL/TLS在TCP/IP协议栈的位置

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-1-技术控-ssl,tls协议

  SSL/TLS协议在传输层上封装了应用层的数据,因此可以在不需要修改应用层协议的前提下给不安全的应用层协议提供一定的安全保障。
  3. SSL/TLS协议栈

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-2-技术控-ssl,tls协议

  4. SSL/TLS协议运作流程

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-3-技术控-ssl,tls协议

  5. SSL/TLS握手阶段抓包解析

   本次实验使用浏览器访问 https://www.baidu.com ,使用WireShark抓包获取其中的SSL/TLS握手阶段的数据包并简要分析。
  1) 客户端发送ClientHello

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-4-技术控-ssl,tls协议

  客户端发起握手协商操作,它将发送一个ClientHello消息给服务器,消息中明确了其所支持的SSL/TLS版本、Cipher suite加密算法组合等,可以让服务器选择,并提供了一个客户端随机数,用于以后生成会话密钥使用。
  2) 服务器返回ServerHello

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-5-技术控-ssl,tls协议

  服务器将返回一个ServerHello消息,该消息包含了服务器选择的协议版本、加密算法,以及服务器随机数、会话ID等内容。其中,服务器选择的协议版本应小于等于客户端ClientHello中的协议版本。
  本次实验中服务器确认使用TLS 1.2版本的协议,并选择TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256加密算法组合。
  3) 服务器发送Certificate

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-6-技术控-ssl,tls协议

  服务器发送ServerHello消息,选择好协议版本和加密算法组合后,将发送Certificate消息,该消息包含了服务器的证书等信息,可通过证书链认证该证书的真实性。根据选择的加密算法组合的不同,服务器证书中的公钥也可被用于加密后面握手过程中生成的Premaster secret。
  4) 服务器发送ServerKeyExchange

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-7-技术控-ssl,tls协议

  服务器发送ServerKeyExchange消息,消息中包含了服务器这边的EC Diffie-Hellman算法相关参数。此消息一般只在选择使用DHE 和DH_anon等加密算法组合时才会由服务器发出。
  5) 服务器发送ServerHelloDone

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-8-技术控-ssl,tls协议

  服务器发送ServerHelloDone消息,告知客户端服务器这边握手相关的消息发送完毕。
  6) 客户端发送ClientKeyExchange

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-9-技术控-ssl,tls协议

  客户端发送ClientKeyExchange消息,消息中包含客户端这边的EC Diffie-Hellman算法相关参数,然后服务器和客户端都可根据接收到的对方参数和自身参数运算出Premaster secret,为生成会话密钥做准备。
  7) 客户端发送ChangeCipherSpec

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-10-技术控-ssl,tls协议

  客户端向服务器发送ChangeCipherSpec消息,通知服务器此消息以后客户端会以加密方式发送数据。
  8) 客户端发送Finished

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-11-技术控-ssl,tls协议

  客户端使用之前握手过程中获得的服务器随机数、客户端随机数、Premaster secret计算生成会话密钥,然后使用该会话密钥加密之前所有收发握手消息的Hash和MAC值,发送给服务器,服务器将相同的会话密钥(使用相同方法生成)解密此消息,校验其中的Hash和MAC值。
  9) 服务器发送ChangeCipherSpec

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-12-技术控-ssl,tls协议

  服务器发送ChangeCipherSpec消息,通知客户端此消息以后服务器会以加密方式发送数据。
  10) 服务器发送Finished

  

传输层安全协议抓包分析之SSL/TLS

传输层安全协议抓包分析之SSL/TLS-13-技术控-ssl,tls协议

  服务器使用会话密钥加密(生成方式与客户端相同,使用握手过程中获得的服务器随机数、客户端随机数、Premaster secret计算生成)之前所有收发握手消息的Hash和MAC值,发送给客户端去校验。
  若客户端服务器都校验成功,握手阶段完成,双方将按照SSL记录协议的规范使用协商生成的会话密钥加密发送数据。
  6. 参考资料

   https://en.wikipedia.org/wiki/Transport_Layer_Security
   http://www.cnblogs.com/happyhippy/archive/2007/05/14/746476.html
   http://blog.csdn.net/fw0124/article/details/40983787
   *本文原创作者:ArkTeam/Snowman,转载须注明来自FreeBuf.COM
离子膜、 发表于 2016-10-15 08:23:22
呵呵,低调,低调!
回复 支持 反对

使用道具 举报

淡看残花飘零久 发表于 2016-10-15 09:29:55
来自水星的鸭梨
回复 支持 反对

使用道具 举报

这个真没YUO 发表于 2016-10-22 08:37:33
围观 围观 沙发在哪里!!!
回复 支持 反对

使用道具 举报

蒋文 发表于 2016-11-18 07:34:41
楼主,你说,你几个意思?
回复 支持 反对

使用道具 举报

我要投稿

回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表