阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

抓包分析SSL/TLS连接建立过程总结

156次阅读
没有评论

共计 1124 个字符,预计需要花费 3 分钟才能阅读完成。

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 头。

抓包分析 SSL/TLS 连接建立过程总结

3、握手过程

我使用 nginx 搭建了一个 https 的服务,nginx 的默认 ssl cipher 为 HIGH:!aNULL:!MD5; 不同的 cipher 决定了握手的交互过程。chrome 浏览器支持的 cipher 如下所示:

cipher 的格式为:认证算法_密钥交换算法_加密算法_ 摘要算法

抓包分析 SSL/TLS 连接建立过程总结

首先看看最基本的基于 RSA 的密钥协商算法,配置的 ssl sipher 为 AES256-GCM-SHA256。

抓包分析 SSL/TLS 连接建立过程总结

使用 wireshark 抓包分析,抓包如下所示:

抓包分析 SSL/TLS 连接建立过程总结

 从上面报文可以看出,SSL 建立过程如下图所示:

抓包分析 SSL/TLS 连接建立过程总结

 使用椭圆曲线(ECDHE)算法作为密钥交换算法,配置 ssl ciper 为:抓包分析 SSL/TLS 连接建立过程总结,交互流程如下所示:

抓包分析 SSL/TLS 连接建立过程总结

抓包看如下:

抓包分析 SSL/TLS 连接建立过程总结

 从上面报文可以看出,SSL 建立过程如下图所示:

抓包分析 SSL/TLS 连接建立过程总结

 相比 RSA 算法而言,握手过程多了一个 server key exchange 步骤

抓包分析 SSL/TLS 连接建立过程总结

 RSA 算法服务端没有 Server key Exchange。

抓包分析 SSL/TLS 连接建立过程总结

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137556.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1124字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中