Administrator
Administrator
Published on 2024-12-14 / 4 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