Administrator
Administrator
Published on 2024-12-14 / 12 Visits
0
0

https详解

https详解

http与https时属于应用层的协议,udp与tcp属于传输层

SSL与TLS是什么关系

SSL是最早的加密协议,由网景公司(Netscape)开发。它包括SSL 1.0、2.0和3.0版本,但由于安全漏洞,SSL 2.0和3.0已被弃用。TLS是SSL的后续版本,由IETF(Internet Engineering Task Force)制定。TLS 1.0通常被视为SSL 3.1,因为它是在SSL 3.0的基础上进行了改进和标准化。目前,TLS已经发展到1.3版本,提供了更高的安全性和性能。

https=证书+TLS握手

证书

证书是服务器用于向客户端证明自己身份的密钥,证书可以级联授权,微软等操作系统出场会预置跟证书,根证书会授权一系列证书签发机构,而证书签发机构又会授权一系列经过验证的网站,从而完成级联授权,用户根据手中的根证书就可以验证网站证书的真假。

TLS握手过程

  1. TCP协议三次链接握手

  2. 客户端发送Client Hello(http)声明支持的加密套件和TLS版本+随机数1

    ​image​

    ‍

    ‍

  3. 服务端发送Server Hello(http)确认支持的TLS版本与最终选择的加密套件+随机数2

    ​image​

    ‍

  4. 服务端发送Certificate(http)传递证书供客户端验证

    ​image​

    ‍

  5. 服务端发送Server Key Exchange(http)传递公钥

    注:1. 只有早期版本的请求才会有这一步,新版本的握手会直接使用第4步获得的证书作为公钥完成加密,证书与key的本质就是非对称加密

    1. 登录网银等特殊场景下,服务端会在这一步要求客户端发送证书

    ​image​

    ‍

  6. 服务端发送Server Hello Done(http)表示请求完毕

    ​image​

    ‍

  7. 客户端发送Client Key Exchange将随机数3用得到的公钥加密后发送

    ​image​

    ‍

  8. 客户端发送Change Cipher Spec,表示非堆成加密结束,接下来使用对称加密继续https通讯

  9. 客户端发送Ebcrypted Handshake Message表示对称加密通信开始

  10. 服务端发送Ebcrypted Handshake Message确认对称加密通信开始

    ​image​

    ‍

总结

​image​

随机数1,2,3在一起通过特殊算法可以计算得到对称加密密钥,从而完成密钥交换

‍


Comment