TLS协议解析

TLS  协议

1、证实服务端身份

技术:PKI 数字证书/数字签名    ECDSA(Elliptic Curve Digital Signature Algorithm  椭圆曲线数字签名算法)、RSA;

2、证实客户端身份(可选)

3、会话隔离/临时密钥

密钥交换、 DH(密钥交换协议/算法(Diffie-Hellman)简称  狄费赫夫曼),ECDH   

4、双向通信加密

对称加密  AES ,Chacha20  

5、数据完整性保护

MAC   AEAD   HMAC ,GCM

Authenticated Encryption with Associated Data (AEAD) 是一种同时具备保密性,完整性和可认证性的加密形式。

常见的 AEAD 算法如下:

AES-128-GCM

AES-192-GCM

AES-256-GCM

ChaCha20-IETF-Poly1305

XChaCha20-IETF-Poly1305

在具备 AES 加速的 CPU(桌面,服务器)上,建议使用 AES-XXX-GCM 系列,移动设备建议使用 ChaCha20-IETF-Poly1305 系列。

在设计加密系统的时候,请务必选用 AEAD 算法,抛弃旧的 MtE,EtM,E&M 方案。

什么是AEAD加密-CSDN博客

TLS 1.3

从0到1详解企业级数据治理体系

TLS 1.2

ECDSA常用签名算法

  • ECDsaP256, 其公钥长度 72 Bytes,

  • ECDsaP384,其公钥长度 104 Bytes,

  • ECDsaP521 ,其公钥长度 140 Bytes,

P-256 曲线

抓包演示

curl -v  --tlsv1.2 --http1.1  百度一下,你就知道

过滤:ip.dst ==110.242.68.4 || ip.dst ==192.168.31.109

ClientHello

客户端版本号

随机数32位

SessiionId

可选算法套件

压缩算法

其他扩展字段

Server_name

EC_param

密码套件 Cipher Suites 是一个16进制的数    0x  是一个枚举值

我的电脑支持 46 个密码套件

client hello  是TLS  第一次握手

hnadsshake type : 握手协议类型

Length : 长度

version : 版本

Random: 客户端随机数

Session : TLS 的Session  而不是 http 的session 

http session 默认会话时间是30分钟

TLS session 默认是7天  

什么是TLS会话恢复( TLS Session Resumption ) 原创

什么是TLS会话恢复( TLS Session Resumption )_51CTO博客_tls会话复用

目前大多数web浏览器的默认配置可以降低这一风险,在调查的45个浏览器中,三分之二的浏览器仅允许会话ID和会话记录单的会话恢复有效期为60分钟。为了降低通过TLS会话恢复标识符进行跟踪的风险,boffins建议将TLS 1.3中指定的7天会话恢复上限时间减少至10分钟,以确保浏览器制造商解决第三方跟踪。

扩展信息

ServerHello

版本号

随机数32位

SessionId

选定的算法套件

选定的压缩算法

其他扩展字段

ECDHE_RSA_WITH_AES_128_GCM_SHA256  目前被大量使用,安全性较高,并且效率也比较高

Server Key Exchange 

服务端接着又发送了三次数据包,客户端才能完整接收到  Certifiate、  Server Key Exchange 、ServerHelloDone

服务器证书、中间证书

密钥交换

密钥交换算法 

        公钥

        签名

声明握手结束

客户端根据服务器返回选定的密钥交换算法,生成公钥并把公钥发送出去

并且根据DH交换的服务器公钥进行计算,计算完成之后就得到了密钥

第二个也是短消息 Change Cipher Spec 声明客户端密钥已经生效

准备切换为加密通信

第三个 还是短消息,声明它的握手动作已经结束了,

认可服务器是通过tls 证书来完成,如果认可这个服务器,继续执行DH交互的动作,同时客户端来完成自己的DH交换,这样就可以计算得到共享密钥。

如果不认可这个服务器,通常我们会在浏览器或者程序里面看到TLS 连接错误

通过DH交互的公钥进行计算,就得到了共享密钥了

当然它也要根据其他的规则导出一些密钥

这时候 握手阶段结束,同时告诉客户端准备进行加密通信

服务端完成DH交换,计算出共享密钥,握手阶段就结束了,从这一步往后全部是TLS完全加密通信,我们此时只能嗅探到通信的密文,无法得到任何原始的密文消息,任何消息的篡改和投放都会被通信双方感知到

百度抓包

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值