HTTPS加密传输过程

HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPSHTTP的基础下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

知识储备

HTTP

HTTP是应用层协议,默认运行在80端口,是一种不安全的传输协议,经其传输的数据都是未加密的明文数据,可以被中间人攻击,获取到你的网络传输数据,这也就是尽量不要使用公共场所WIFI的原因。

HTTPS

HTTPS是应用层协议,默认运行在443端口,是一种安全的传输协议,通过在HTTP层与运输层的TCP直接加入一个加密/身份验证层来保证安全传输。

SSL

SSL安全套接层Secure Sockets Layer,位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:

SSL记录协议SSL Record Protocol:它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。

SSL握手协议SSL Handshake Protocol:它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

TLS

TLS传输层安全性协议Transport Layer Security用于在两个通信应用程序之间提供保密性和数据完整性,其由TLS记录协议和TLS握手协议组成。TLS1.0即为SSL3.0的标准化版本,SSL最初由网景Netscape提出研发,在SSL3.0时由国际互联网工程任务组IETF进行了标准化并添加了少量机制,并更名为TLS1.0

对称加密

简单来说对称加密的加密密钥和解密密钥是相同的,对称加密的效率要比非对称加密高。

非对称加密

简单来说非对称加密的加密密钥与解密密钥是不同的,需要一把公钥与一把私钥,私钥不能被其他任何人知道,公钥则可以随意公开。公钥加密,私钥解密;私钥数字签名,公钥验证。

CA

由于公钥是放在服务器的,在建立连接的过程中将公钥传输到用户,但是如何避免中间人攻击,即在传输公钥的过程中避免劫持,于是引入第三方认证权威机构CA,大多数操作系统的CA证书是默认安装的,CA也拥有一个公钥和私钥。任何人都可以得到CA的证书,其包含公钥,用以验证它所签发的证书。CA为服务申请者颁发证书,在CA判明申请者的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。如果一个用户想鉴别一个证书的真伪,他就用CA的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。证书实际是由证书签证机关CA签发的对用户的公钥的认证。

传输过程

  1. 首先TCP三次握手建立链接,这是数据传输基础,在此之上开始SSL
  2. 客户端首先发送Client Hello开始SSL通信,报文中包含客户端支持的SSL版本、随机值Random1、加密算法以及密钥长度等。
  3. 服务器发送Server Hello,和客户端一样,在报文中包含SSL版本、随机值Random2以及加密组件,此后服务端将证书也发送到客户端。
  4. 此时客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的HASH与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换。
  5. 客户端验证证书合法,然后生成一个随机值Random3,用公钥对Random3进行加密,生成Pre-Master Key,客户端以Client Key Exchange报文将Pre-Master Key发送到服务端,此后发送Change Cipher Spec报文表示此后数据传输进行加密传输。
  6. 服务端将Pre-Master Key用自己的私钥解密为Random3,服务端发送Change Cipher Spec报文表示此后数据传输进行加密传输。
  7. 此时客户端与服务端都拥有三个随机字符串,且Random3是密文传输的,是安全状态的,此时则可以使用这三个字符串进行对称加密传输。由于非对称加密慢,不能每次传输数据都进行非对称加密,所以使用非对称加密将密钥协商好然后使用对称加密进行数据传输。
  8. 此时便正常进行HTTP数据传输,但是由于SSL加密的作用,此时的HTTP传输便是安全的,此为HTTPS的传输过程,其中2356也被称为SSL四次握手。

参考

https://www.cnblogs.com/yangtianle/p/11202574.html
https://www.cnblogs.com/liyulong1982/p/6106132.html
https://blog.csdn.net/lyztyycode/article/details/81259284
https://blog.csdn.net/lihuang319/article/details/79970774
https://blog.csdn.net/qq_32998153/article/details/80022489

HTTPS加密传输过程的更多相关文章

  1. 如何为网站启用HTTPS加密传输协议

    前言 当今时代对上网的安全性要求比以前更高,chrome和firefox也都大力支持网站使用HTTPS,苹果也从2017年开始在iOS 10系统中强制app使用HTTPS来传输数据,微信小程序也是要求 ...

  2. https加密解密过程详解

    要点: https协议对传输内容进行加密,具有更强的安全性,防止被抓包后解析出请求内容. https是建立在ssl之上的http协议. 服务器支持https协议必须安装一套数字证书,所谓数字证书就是一 ...

  3. apache配置https加密传输

    环境:两台linux虚拟机和一台windows本机,一台充当要使用https传输的web服务器apache2.4.4,另一台CA服务器,window测试https配置. 1.CA服务器生成私有CA 1 ...

  4. https的加密解密过程

    前置知识 SSL是90年代Netscape弄出来的一套东西,为的是解决HTTP协议明文传输数据的问题.后来SSL慢慢成了事实上的标准,于是IETF就把SSL标准化了,名字叫做TLS,TLS 1.0其实 ...

  5. https加密过程

    https加密完整过程 step1: “客户”向服务端发送一个通信请求 “客户”->“服务器”:你好 step2: “服务器”向客户发送自己的数字证书.证书中有一个公钥用来加密信息,私钥由“服务 ...

  6. https加密

    对称加密  客户端和服务器使用同一把钥匙,加密算法公开 非对称加密  不同钥匙,公钥加密的私钥可以打开 私钥加密的公钥可以打开 HTTPS关键: 1. 要传输的业务数据,使用对称加密. 客户端生成私钥 ...

  7. HTTPS加密那点事-对称、非对称加密、数字证书

    转自:[漫画]https 加密那点事 首先,HTTP协议的缺点:没有对数据进行加密,都是明文传输的.如果要改进这种明文传输的协议,该如何做呢? 对称加密: 在每次发送真实数据之前,服务器先生成一把密钥 ...

  8. HTTPS加密那点事--轻松秒懂HTTPS非对称加密

    本文转载自微信公众号(苦逼的码农),原文地址: https://mp.weixin.qq.com/s/j-ss95ItMnWsZHLpUGBMkQ 用漫画的形式解释技术问题是不是有眼前一亮的感觉呢?以 ...

  9. nginx的压缩、https加密实现、rewrite、常见盗链配置

    Nginx 压缩功能 ngx_http_gzip_module #ngx_http_gzip_module 用gzip方法压缩响应数据,节约带宽 #启用或禁用gzip压缩,默认关闭 gzip on | ...

随机推荐

  1. iOS中如何实现准确的倒计时程序 · 九十里

    iOS中倒计时程序,考虑线程暂停场景. iOS App进入后台时,GCD线程也会跟着暂停.当程序进入前台后,GCD线程恢复.因而倒计时程序需要考虑这一点,通过加入时间的比对来实现. + (void)c ...

  2. 吴裕雄--天生自然KITTEN编程:演唱会

  3. 851. spfa求最短路

    给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数. 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible. 数据保证不存在负权回路. 输入格式 ...

  4. SpringBoot 处理 POST Json 传参枚举

    在 Spring 框架中对枚举类型的序列化/反序列化是有限制的. 假设如下面这样在某些情况下就不能正常工作: 123456789 public enum PayChannelEnum implemen ...

  5. Redis从出门到高可用--Redis复制原理与优化

    Redis从出门到高可用–Redis复制原理与优化 单机有什么问题? 1.单机故障; 2.单机容量有瓶颈 3.单机有QPS瓶颈 主从复制:主机数据更新后根据配置和策略,自动同步到备机的master/s ...

  6. python设置检查点简单实现

    说检查点,其实就是对过去历史的记录,可以认为是log.不过这里进行了简化.举例来说,我现在又一段文本.文本里放有一堆堆的链接地址.我现在的任务是下载那些地址中的内容.另外因为网络的问题或者网站的问题, ...

  7. python常用魔术方法概览

    构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __g ...

  8. iNeuOS工业互联平台,.NETCore开发的视频服务组件iNeuVideo,RTSP转WebSocket

    目       录 1.      概述... 2 2.      将来集成到iNeuOS平台演示... 3 3.      iNeuVideo结构... 3 4.      iNeuVideo部署及 ...

  9. 目标用户偏好指数Target Group Index分析

    目标用户偏好指数Target Group Index分析 TGI指数,全称Target Group Index,可以反映目标群体在特定研究范围内强势或者弱势. TGI指数计算公式 = 目标群体中具有某 ...

  10. python中excel数据分组处理

    1.场景描述 因文本相似性热度统计(python版)需求中要根据故障类型进行分组统计,需要对excel进行分组后再分词统计,简单记录下,有需要的朋友可以直接拿走,不客气! 2.解决方案 采用panda ...