TLS认证流程及报文解析

目录

一、TLS认证流程

二、报文解析

总结


一、TLS认证流程

1. TLS协议介绍

        TLS(Transport Layer Security,传输层安全协议)是一种用于确保网络通信安全的标准安全协议,它通过使用加密算法和证书机制来保护数据的机密性、完整性以及验证通信双方的身份 。TLS 协议位于应用层和传输层之间,可以支持多种应用层协议,如HTTP、SMTP、XMPP等 。

2. TLS单向认证

        单向认证时,Server发送服务器证书,请求Client认证,认证成功后根据协商好的加密套件加密数据,进行传输。

3. TLS双向认证

           双向认证时,Server发送服务器证书,并请求Client发送证书,双方认证成功后根据协商好的加密套件加密数据,进行传输。

4. 会话恢复

        (1)首次会话Server生成SessionID,客户端记录后,下次会话携带同一sessionid,可以恢复之前建立的会话;
        (2)服务器发送New Session Ticket,这个票据包含了恢复会话所需的所有信息,并且是加密的;客户端记录后,携带session ticket,只有Server能解密,若验证通过,可直接沿用原有的会话数据,包括协商算法和密钥,这是一个更加安全的会话恢复机制

二、报文解析

(1) Client Hello

发送TLS协议版本信息、会话ID、支持的加密套件、用于计算秘钥的随机数等

(2) Server Hello

服务器在能够找到一组可接受的算法后,将响应Client Hello消息并发送hello;
发送服务器版本、选择的加密算法、密钥交换算法、用于计算秘钥的随机数、MAC算法、根据客户端会话参数生成的会话ID(用于会话恢复)等。

(3)Certificate

        发送服务器端证书,X.509证书包含公钥。

        在wireshark抓包中,可以选中Certificate,右键选择导出分组字节流,保存为.crt文件,可以查看具体的证书内容。

(4)Server Key Exchange

        server发送完成密钥协商算法EC D-H密钥交换的一系列参数:

        server使用自己的私钥对EC D-H算法中所涉及的参数进行加密,加密数据发送给client;

        client收到后,使用Pubkey解密。

(5)Certificate Request

         server请求验证--单向/双向,消息包含服务器端所支持的证书类型和CA列表。

(6)Server Hello Done

(7)Certificate

        发送客户端证书。

(8)Client Key Exchange

        client根据server随机数,计算对称秘钥;

        发送给Server ECDH算法公钥Pubkey

(9)Certificate verify

        client发送签名(利用HMAC值/对称秘钥进行签名)

(10)ChangeCipherSpec

        client告知服务端,客户端已经准备使用之前协商好的加密套件加密数据并传输。

(11)ChangeCipherSpec

        server已经准备使用之前协商好的加密套件加密数据并传输。


总结

介绍了TLS单向认证、双向认证、会话恢复流程,根据报文解析深入理解上述流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值