HTTPS数据传输过程

1、客户端发起HTTPS连接握手

2、服务端收到HTTPS握手连接请求,与客户建立握手过程,和TCP的三次握手类似,并发送一系列的加密算法组合给客户端,与客户端协商加密算法组合

3、客户端收到这一系列的组合,从中选择一个自己能够支持的并且加密级别最高的加密算法组合,通告给服务端

4、服务端收到并确认客户端选择的加密组合,并将公钥证书发送给客户端,(这个公钥证书使用了非对称加密算法,使用这个公钥加密的信息只能由私钥解开,而这个私钥只有公钥的颁布者也就是服务端拥有,也就是说客户端用公钥加密的信息,只能有拥有私钥的服务端解开)

5、客户端收到公钥证书之后,临时随机生成一个对称密钥用来对数据加密,用公钥对生成的对称密钥进行加密得到对称密钥加密密文,这个对称密钥加密密文只能通过服务端的私钥解开

6、服务端收到对称密钥加密密文,用私钥解开得到对称密钥

7、客户端开始对数据加密,先用对称密钥加密数据得到数据密文,再对数据密文进行hash计算得到一个hash值,再将这个hash值用公钥加密得到hash值密文,然后将数据密文、hash值、hash值密文这三个部分一起发送给服务端

8、服务端收到数据密文、hash值、hash值密文,首先用私钥解开hash值密文,结果和收到的hash值对比验证hash值是否在传输的过程中被篡改,然后对数据密文进行hash计算,结果和收到的hash值对比验证数据密文在传输过程中被篡改。通过这两步验证传输数据没有被改变,再用对称加密密钥对数据密文加密得到原数据内容

HTTPS数据传输过程简介的更多相关文章

  1. TLS就是SSL的升级版+网络安全——一图看懂HTTPS建立过程——本质上就是引入第三方监管,web服务器需要先生成公钥和私钥,去CA申请,https通信时候浏览器会去CA校验CA证书的有效性

    起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决这一隐患网景公司推出了SSL安全套接字协议层,SSL是基于 ...

  2. 加密解密(4)SSL协议及HTTPS握手过程

    SSL协议 简介 SSL (Secure Sockets Layer 安全套接层)是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性.因特网的 超文本传输协议 (HTTP)使用 ...

  3. Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程

    Apollo学习笔记(一):canbus模块与车辆底盘之间的CAN数据传输过程 博主现在从车载自组网信道分配和多跳路由转向了自动驾驶,没啥经验,想快些做出来个Demo还是得站在巨人的肩膀上才行,我选择 ...

  4. 浅谈HTTPS传输过程

    HTTPS是什么 HTTPS不是一个新的协议,可以理解为是一个HTTP协议的加密"版本"(HTTP+SSL(TLS)).那为什么HTTP协议需要加密,不加密会出现什么问题呢?先来了 ...

  5. HTTPS连接建立过程(单向&双向)

    HTTPS连接建立过程(单向&双向) 什么是https SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Securit ...

  6. HTTPS建立过程

    由于HTTPS建立过程经常忘记,固记录 HTTPS建立流程 客户端发起SSL连接 服务端发送证书(证书中包含了服务端公钥) 客户端根据已有证书判断是否是可信任的(客户端决定是否继续) 服务端要求客户端 ...

  7. HTTPS 握手过程理解

    转自https://www.jianshu.com/p/a3a25c6627ee https://blog.csdn.net/xingtian713/article/details/11953057 ...

  8. 网络安全——一图看懂HTTPS建立过程

    关于网络安全加密的介绍可以看之前文章: 1. 网络安全--数据的加密与签名,RSA介绍 2. Base64编码.MD5.SHA1-SHA512.HMAC(SHA1-SHA512) 3. When I ...

  9. 图解HTTPS建立过程

    阅读目录 准备工作(对应图中prepare1234) 发起链接 最后 关于网络安全加密的介绍可以看之前文章: 1. 网络安全——数据的加密与签名,RSA介绍2. Base64编码.MD5.SHA1-S ...

随机推荐

  1. quartz Cron表达式解读

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...

  2. Python全栈之路----数据类型—元组类型

    元组类型:有序,不可变的,又叫只读列表  names = ("alex","jack","eric") 1.元组本身不可变,但如果元组中有可 ...

  3. session token两种登陆方式

    Session 和 Token 其实Session和Token总体上还是很相似的,但是也有以下区别: 1. 过期时间:Session的过期时间存在cookie的Max-age字段,Token的过期时间 ...

  4. php配置php_pdo_mysql模块

    网上的都是什么编译安装的,总算找到一个简单的方法 安装好PHP yum install php php-fpm -y 直接安装pdo模块 yum install php-pdo_mysql 在/etc ...

  5. 配置SSH使用秘钥登录

    使用密码远程登录ssh还是有比较大的风险的,比较安全的方法是使用秘钥登录 配置步骤如下 首先生成秘钥 ssh-keygen  (直接默认回车也可以,生成的秘钥和公钥默认防止在/root/.ssh/文件 ...

  6. type=number 的maxlength和可以输入E的问题

    有一个输入框,要求只能输入1到999以下数字,于是 设置<input type="number" min="1" max="999"& ...

  7. Feign中使用hystrix

    Feign中使用hystrix 一.在Order工程中的bootstrap.yml中增加配置 feign: hystrix: enabled: true

  8. Linux touch命令详解

    Linux touch命令 Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间.若文件不存在,系统会建立一个新的文件. 用法: touch [-acfm][-d<日 ...

  9. PCL数据类型和ROS数据类型的转换

    参考网址 http://wiki.ros.org/pcl/Overview ,重点参看第2和第3节. 1. Data types 介绍了三种点云数据类型:sensor_msgs::PointCloud ...

  10. SAS 删除数据和对缺失值处理代码程序

    %INCLUDE '00@HEADER.SAS'; %LET dir=..\04@Model;LIBNAME cc "&dir"; %MACRO ModelVariable ...