TLS1.2握手过程(双方都进行身份认证)

MTLS是一种双向认证的加密通信协议,涉及ClientHello、ServerHello等四个步骤来创建会话密钥。客户端和服务器互相交换随机数和证书,使用非对称加密协商对称密钥,通过CA验证确保安全性。最终,双方使用相同的会话密钥进行加密通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 抓包后,可以明显看到mtls包含四个过程:

1.Client Hello

客户端向服务端“打招呼”,并传输过去一个随机数(明文,大家都可以看见),这个随机数也就是下面的random,将被作为会话秘钥的一部分。会话秘钥为client端和server端在经历四步后一起制作出来的密钥,在双方都制作出相同的会话密钥后会使用对称加密的方式来传递信息(在制作会话密钥的时候是使用非加密方式)。

 Cipher Suites指明自己支持的对称加密、非对称加密和数字签名算法(16种),会提供给服务端,让服务端选择其中一种进行交流。

 2.Server Hello,Certificate,Certificate Request,Server Hello Done

1)Server Hello

与Client Hello类似,主要为向客户端传递random随机数(明文),此时client与server同时拥有两个随机数,这两个数将作为后续会话秘钥的一部分。Cipher Suite为Server端向Client端指明的算法(“二人”约定好的,要一起使用,这里是RSA非对称加密算法)

 2)Certificate

该证书为Server端向Client端提供的Server证书,mtls与tls主要的区别即为“m(mutual)”,mtls需要双方都提供证书,而tls只需要server证书提供给client(Server证书中含有Server的公钥)

 3)Certificate Request

Server端让Client端发来Client的证书

 4)Server Hello Done

Server端向Client端发送的消息结束

 3.Certificate,Client Key Exchange,Certificate Verify,Change Cipher SPec,Encrypted Handshake Message

1)Certificate

Client端向Server端提供的证书 

2)Client Key Exchange

 此时,Client端向Server端传入(对于双方来说)第三个随机数,但该随机数不是明文的,是被Client端用Server端公钥加密过的,当Server端用Server端的私钥解密后,双方都会有第三个解密后的随机数,2字节的protocalversion和26字节的随机数构成了预备主密钥。client_random和server_random和预备主密钥一起构成了会话秘钥。

3)Certificate Verify

Client端验证Server端证书是否可信(Server端证书需要CA机构来验证,CA拥有自己的公钥和私钥,CA先用自己的私钥对Server端公钥与其他信息进行“加密”,操作系统中有关于CA公钥的信息,Client端会用CA公钥对Server端公钥及其他信息进行“解密”,解密出来后的信息与Server端发过来的证书进行比对,如果一致,则确认Server端发来的证书可信) 

4)Change Cipher SPec

 告知Server端采用协商的密钥进行加密通信(在第四步Server端对Client端同样会发该信息来回应Client)

5)Encrypted Handshake Message

客户端将前面的握手消息生成摘要,再用双方都有的会话密钥进行加密,传递给服务端,如果服务端可以解密且与之前的握手信息对应,则密钥一致

 4.Change Cipher SPec,Encrypted Handshake Message

1)Change Cipher SPec

Server端向Client端回复收到了改变加密通信方式的消息

2)Encrypted Handshake Message

服务端将前面的握手消息生成摘要,再用双方都有的会话密钥进行加密,传递给客户端,如果客户端可以解密且与之前的握手信息对应,则密钥一致

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值