TLS握手

作者: 瓢鳍小虾虎 | 来源:发表于2021-10-13 11:47 被阅读0次

所谓握手,就是传输层创建TCP连接的过程,https在http握手(TCP3次握手,传输层协议)基础上多了一次握手(应用层的协议),主要为了确认服务端合法,并向服务端传递通讯秘钥。

以下的过程算作TLS的一次握手:

  1. 传递秘钥前首先客户端需要确认服务端的身份是否合法:
    客户端发起请求服务端地址,
    服务端响应返回证书(包含公钥,还有其他认证信息);
    客户端验证这个证书是否合法,如果是CA认证的,浏览器不会有任何反应,如果是服务端自己私建的,浏览器会弹窗让用户选择是否信任此证书。

  2. 客户端确认证书合法代表信任了服务端,然后就是传送通讯秘钥的过程:
    客户端自己生成了一个随机字符串作为通讯秘钥,并用公钥对通讯秘钥加密(还包括通讯用的加密算法),
    发送给服务端,
    服务端用私钥解密得到了通讯秘钥和通讯加密算法。

  3. 开始传输报文:
    服务端使用通讯秘钥和约定好的通讯加密算法对报文加密并返回,此后客户端和服务端的报文都会使用此秘钥和算法加密传输(对称加密)。

所以,https创建链接经历了4次握手,断开和http一样,4次挥手。
TLS握手是非对称加密,通讯报文过程是对称加密。

关于浏览器认证CA证书过程:

  1. 浏览器会查看服务端证书上的CA机构,搜索本地是否有此CA的根证书,如果没有就弹窗提示,有就往下进行。
  2. 使用CA根证书的公钥对服务端证书的指纹指纹算法解密,拿到指纹指纹算法
  3. 使用指纹算法对服务端证书的摘要进行加密,的得到指纹
  4. 对比2个指纹,一样则通过验证。

CA认证也是一个非对称加密过程,只不过TLS是“公钥加密,私钥解密”,CA正好返过来,“公钥解密,私钥加密”,用“指纹和指纹算法”来确认公钥解密的结果是正确的。
这种不用向CA机构请求就能验证证书的设计还是很巧妙的。

参考文章:
http与https握手那些事
浏览器CA认证流程

相关文章

  • 什么是SSL/TLS握手

    TLS的工作原理–前所未有的简化了SSL / TLS握手过程 伴随所有握手,SSL / TLS握手是一切开始的地方...

  • TLS握手

    学习材料1 https://juejin.im/entry/5c21f615f265da61223a5ee2 材料...

  • TLS握手

    所谓握手,就是传输层创建TCP连接的过程,https在http握手(TCP3次握手,传输层协议)基础上多了一次握手...

  • Moya,KingFisher中使用自签名证书发起HTTPS请求

    HTTPS握手 先说声https握手,发送 HTTPS 请求首先要进行 SSL/TLS 握手,握手过程大致如下: ...

  • SSL/TLS握手协议

    根据理解整理的握手协议原理图如下: 参考文章:SSL/TLS协议详解SSL / TLS 工作原理和详细握手过程SS...

  • App 网络性能优化

    网络的流程 DNS解析 TCP连接握手 TLS连接握手 TCP/Http request/response 首先会...

  • 阿里云环境中TLS/SSL握手失败的场景分析

    TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性...

  • Moya,KingFisher中使用自签名证书发起HTTPS请求

    Moya信任自签名证书 问题 先说说HTTPS握手, 发送HTTPS请求首先要进行SSL/TLS握手,握手过程大致...

  • TLS 握手过程

    TLS 握手过程,主要目的是为了协商对称加密的密钥,因为在最终的通信链路上使用对称加解密会更快。 我们知道,生成最...

  • https与tls

    1.tls1.2的握手过程2.tls1.3的握手过程3.如何防范中间人攻击4.http2中的加密5.CA签名的作用...

网友评论

      本文标题:TLS握手

      本文链接:https://www.haomeiwen.com/subject/dfyjoltx.html