美文网首页
【web】https的连接细节

【web】https的连接细节

作者: SophieRabbit | 来源:发表于2020-09-01 14:42 被阅读0次

HTTPS是什么

(1)经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密

(2)目的是提供对网络服务器的身份认证,保护交换数据的隐私与完整性

(3)减少了被恶意劫持的可能

(4)很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)

HTTPS的七步走

(1)客户端发送报文

(2)服务器接收后再发送报文

(3)服务器发送证书

(4)客户端验证证书

(5)客户端生成随机数,通过证书中的公钥进行非对称加密,发送到服务器

(6)服务器使用私钥解密,获取到该随机数,将该随机数设置为密钥,使用对称加密加密需要发送的数据

(7)客户端解密数据,SSL通信开始

步骤详解

1.客户端向服务器发送报文

当前支持的TLS版本集合     (TLS:安全传输层协议)

当前支持的非对称加密算法集合

当前支持的对称加密算法集合

当前支持的Hash算法集合

其他信息

2.服务器接收后再发送报文

此时,服务器需要选择自己支持的算法,然后发送给客户端,告诉客户端哪些算法是自己支持的。然后给客户端来一份自己的想法:

当前支持的TLS版本

当前支持的非对称加密算法

当前支持的对称加密算法

当前支持的Hash算法

其他信息

3.服务端发送证书

服务器随后向客户端发送了证书和密钥,这个证书主要是为保证服务器和客户端之间通信是可靠的,证书中有很多东西需要验证。而密钥就是为了提供了验证的可能。为了方便下面的了解,我们需要对证书的结构有一定的了解。

组成部分与含义

tbsCertificate(to be signed certificate):待签名证书

SignatureAlgorithm:签名算法

Signaturevalue:签名值

4.客户端验证证书

这个证书验证还是蛮复杂的,因为涉及到很多概念,比如根证书、二级证书(CA)、 证书链等过程。

客户端拿到这个证书之后,将会从tbsCertificate中获取证书的颁发机构,从而在浏览器内置的根证书中寻找该证书颁发机构是否为信任机构,如果不是,浏览器将会警告用户证书存在问题,一般会出现如下问题:

浏览器的提醒

如果获取的证书颁发机构是合法的,则会从浏览器中找到对应信任机构的公钥,用这个公钥来解密当前证书的签名得到一个Hash值Hash1。上面证书结构中所说的,存在一个签名算法和签名值,这个值是服务器获取的证书(也就是信任机构所颁发的)使用私钥加密而成的,所以使用对应证书的公钥是可以解密的(如果没有错误)。然后我们对证书的内容进行一次Hash值,得到Hash2,如果当前的Hash1与Hash2值相等,那么说明证书是合法的,没有被修改过,用户可信任。

在接下来需要对证书的持有者对应的信息进行检查,比如URL是否为需要请求的URL;判断各种请求参数等等…稍微有点不符合,我们就判断当前数据存在问题,直接告警。

4.客户端产生随机数

如果上面的证书验证通过,此时客户端将会生成一个随机数,通过已经确定的非对称加密算法,使用公钥将这个随机数加密,然后发送到服务器。

5.服务端解密

服务器接收到数据,将会使用私钥解密发送过来的随机数,将会使用这个随机数设置为密钥,使用已经选择的对称加密算法,加密数据,然后将数据发送出去,从此服务端SSL通信正式开始。

6.客户端解密

接受到服务器的数据,使用对称算法,上面生成的随机数作为密钥,开始解密。从此,一次完整的HTTPS通信过程完成。

最后一张图:

图解

原文链接:https://blog.csdn.net/u013762572/article/details/88873014

相关文章

  • 【web】https的连接细节

    HTTPS是什么 (1)经由超文本传输协议进行通信,但利用SSL/TLS来对数据包进行加密 (2)目的是提供对网络...

  • chrome-netWork面板

    官网连接:https://developers.google.com/web/tools/chrome-devto...

  • HTTP与HTTPS的区别

    HTTPS工作原理 1、客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。2、采用H...

  • JavaScript 常用数组方法

    mdn文档连接:https://developer.mozilla.org/zh-CN/docs/Web/Java...

  • HTTPS连接

    人们越来越意识到安全的重要,不只是人身安全,还包括我们个人信息的隐私安全。在互联网时代,想要保障我的信息安全,我们...

  • Vue实现表单验证组件和弹框组件

    具体代码连接 https://github.com/iosKey/Web 核心代码 弹框组件通过实例化来使用 ...

  • 【SSL】关于自签名类型

    一、背景 要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择。 HTTPS其实就是HTTP over ...

  • Web进化史

    Web 1.0    连接 Web 2.0    互动 Web 3.0    激励 荔枝哥:专注...

  • HTTPS 加密的细节

    HTTPS安全连接的建立过程中,首先是客户端生成Random_C后在Client_hello中明文传送到服务器,服...

  • 创造https连接

    这年头,做点h5的小东西,居然用https来限制API,非https不让用。。。 呵呵 呵呵 借助github 来...

网友评论

      本文标题:【web】https的连接细节

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