TLS协议握手过程分析

证书申请

比如说bob有一个网站bob.cn,bob生成了一对公私钥,其把个人身份及公钥发送给CA登记机构,CA登记机构验证bob的身份,比如是个dv证书,就看证书所对应的域名是不是你的,域名是不是指向你的服务器。登记机构验证通过之后,就会把证书签名申请发送给CA机构,CA机构用其私钥签名之后,颁发证书给bob.cn网站。bob就可以在其web服务器上部署证书。

在机构证书中,使用到了非对称加密的验签,比如我们服务器的nginx中会配置ssl.cert,以及ssl.key(private key)(私钥中包含了公钥)。

TLS握手

在这里插入图片描述

  1. client发送hello,client会告诉server,我支持哪些安全套件

  2. server发送hello,server告诉client,我选择哪个安全套件,比如选定了某个椭圆曲线

    TLS安全密码套件:
    在这里插入图片描述
    密钥交换算法:ECDHE

    身份验证算法:RSA

    对称加密算法:AES_128_GCM

    签名hash算法:SHA_256

  3. server发送证书,用于认证服务器的身份

    当client拿到这个证书之后,其如何进行验签呢?

    其首先提取成两部分,第一部分就是网站身份数据,通过证书提供的一个hash算法,生成一个hash值。

    第二部分是我们用CA证书私钥签名后的密文,用CA机构的公钥验签,如果验签成功,就说明这块内容确实是CA结构所加密的,也就是验证了CA机构的合法性。

    再检查两段hash值,匹配则验签成功。 在这里插入图片描述

  4. server发送服务器所生成的ClientKey(这个是DH密钥交换所使用的)

  5. server 发送 hello done

    2到5步可以认为是同时发送的

    也就是1到5步 只消耗了一个RTT

  6. client也生成一个ClientKey,发送给服务器端(这个是DH密钥交换所使用的)
    这里就完成了DH秘钥交换协议,DH密钥交换原理,参考:从数学角度讲解DH密钥交换算法、非对称加密、数字签名

  7. 两端同时生成对称加密密钥

  8. 后面就可以基于这个加密密钥进行加密通讯了

    6到8步,也是一个RTT,所以握手是两个RTT

报文一去一回需要的时间:RTT(Round Trip Time)

补充:charles抓取https原理

参考:浅谈Charles抓取HTTPS原理
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值