HTTPS安全套接字层超文本传输协议

HTTPS安全套接字层超文本传输协议

  • HTTPS简介
  • HTTPS和HTTP的主要区别
  • 客户端在使用HTTPS方式与Web服务器通信时的步骤
  • SSL/TLS协议的加密(握手)过程
  • 为什么数据传输阶段使用对称加密
  • HTTPS 的优点
  • HTTPS 的缺点
  • HTTPS 的优化
    • 证书优化
    • 会话复用

HTTPS简介

HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS协议的主要作用有两点:第一点是建立一个信息安全通道,来保证数据传输的安全;另一点就是确认网站的真实性。

HTTPS和HTTP的主要区别

  1. https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
  3. http和https使用的端口也不一样,前者是80,后者是443。

客户端在使用HTTPS方式与Web服务器通信时的步骤

HTTPS的整体过程分为证书验证数据传输两阶段。
(1)证书验证阶段

  1. 浏览器发起 HTTPS 请求。
  2. 服务端返回 HTTPS 证书,证书中包含服务端的公钥
  3. 客户端验证证书是否合法,证书验证阶段采用非对阵加密,如果不合法则提示告警。

(2)数据传输阶段

  1. 当证书验证合法后,在本地生成随机数。
  2. 通过公钥加密随机数,并把加密后的随机数传输到服务端。
  3. 服务端通过私钥对随机数进行解密。
  4. 服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后发送给浏览器。
    在这里插入图片描述

SSL/TLS协议的加密(握手)过程

SSL/TLS的握手过程如下:

  1. 客户端给出支持SSL协议版本号,一个客户端随机数N1,客户端支持的加密方法等信息。
  2. 服务器收到信息后,确认双方使用的加密通信协议,并返回数字证书,一个服务器生成的随机数N2等信息。
  3. 客户端确认数字证书的有效性,然后生成一个新的随机数N3,然后使用数字证书中的公钥,加密这个随机数,发给服务器。
  4. 服务器使用自己的私钥,获取客户端发来的随机数N3,并通过约定的对称加密方法,使用前面三个随机数N1、N2、N3生成会话密钥,用来加密接下来的通信内容(对称加密)。

SSL/TSL通过四次握手,主要交换三个信息:

  1. 数字证书。
  2. 三个随机数。
  3. 加密通信协议。

为什么数据传输阶段使用对称加密

  • 非对称加密的加解密效率是非常低的,而 http 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。

  • 在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。

HTTPS 的优点

HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。

HTTPS 的缺点

  1. HTTPS协议握手阶段比较费时。
  2. HTTPS连接会增加数据开销。
  3. CA证书需要一定费用越高。

HTTPS 的优化

证书优化

证书优化主要有两方面:

  1. 证书传输:证书越小,传输的就越快。选择不同的加密方法,生成的证书的大小也不一样。
  2. 证书验证:证书验证有的时候不仅需要验证证书是否被篡改,还需要验证证书是否被吊销。之前是由CA机构维护一个吊销证书列表CRL,客户端每次要下载CRL,然后验证证书是否被吊销。随着吊销证书的增多,CRL的大小越来越大。也会导致HTTPS连接变慢。所以引入了OCSP,在线证书状态协议,客户端直接向CA机构发送证书编号,CA机构会返回证书的状态,不需要每次下载CRL,提高了效率。

会话复用

服务器为每个客户端在会话过程中设置一个SessionID,在会话期间将第一次生成的密钥分别保存在客户端和服务器,服务器通过SessionID来保存对应的密钥。当客户端再次连接的时候,直接传入SessionID,然后使用客户端的密钥进行加密。服务器收到后,通过SessionID获取对应的密钥,然后解密。这样客户端就可以复用一个密钥,不用每次都新生成密钥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/46079.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PPT逻辑设计与完美呈现

PPT逻辑设计与完美呈现 https://haoxinyunxueyuan.zhixueyun.com/#/study/course/detail/detailInfoCD00——朱宁川 logo设计神器: https://www.zitijia.com/logodiy/index 一 PPT设计 第一章、PPT的灵魂设计-5W PPT灵魂设计(5W) 以终为始,从目标出发 why 目…

防抖和节流

1. 防抖 1.1 定义 针对高频触发事件,让事件处理函数的逻辑代码延迟一段时间再执行,如果在延迟的这段时间再次触发,则重新开始计时,直到在计时的这段时间内没有再次触发,则执行事件处理函数的逻辑代码 原因&#xff…

(五)RabbitMQ-进阶 死信队列、延迟队列、防丢失机制

Lison <dreamlison163.com>, v1.0.0, 2023.06.23 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制 文章目录 RabbitMQ-进阶 死信队列、延迟队列、防丢失机制死信队列延迟队列延迟队列介绍**延迟队列_死信队列_的实现**延迟队列_插件实现下载插件RabbitMQ 配置类RabbitMQ …

SpringCloudAlibaba微服务实战系列(一)Nacos服务注册发现

SpringCloudAlibaba微服务实战系列&#xff08;一&#xff09;Nacos服务注册发现 实战前先做一个背景了解。 单体架构、SOA和微服务 单体架构&#xff1a;近几年技术的飞速发展&#xff0c;各种各样的服务已经进入到网络化。单体架构发布时只需要打成一个war或jar包发布即可&a…

2023年的深度学习入门指南(19) - LLaMA 2源码解析

2023年的深度学习入门指南(19) - LLaMA 2源码解析 上一节我们学习了LLaMA 2的补全和聊天两种API的使用方法。本节我们来看看LLaMA 2的源码。 补全函数text_completion源码解析 上一节我们讲了LLaMA 2的编程方法。我们来复习一下&#xff1a; generator Llama.build(ckpt_di…

设计模式 - 工厂模式

一、 简单工厂&#xff08;Simple Factory Pattern&#xff09; 1、概念 一个工厂对象决定创建出哪一种产品类的实力&#xff0c;但不属于GOF23种设计模式。 简单工厂适用于工厂类负责创建的对象较少的场景&#xff0c;且客户端只需要传入工厂类的参数&#xff0c;对于如何创…

fastadmin采坑之接口分页处理

其实不算fastadmin的代码而是thinkphp自带的分页代码 paginate函数就是自带的分页函数&#xff0c;开始我以为这个只能用于渲染模板不能用于接口&#xff0c;后面看到源代码发现请求参数带page就可以 /*** ApiTitle (获取协会会员)* ApiSummary (获取协会会员)* ApiMethod …

Java在线OJ项目(一)、多进程编程实现 做题代码的编译和运行

在线OJ项目&#xff08;一&#xff09;、多进程编程实现 做题代码的编译和运行 一、回顾线程和进程二、进程比线程的优势三、多进程编程样例四、多进程思想 实现对代码 的编译 以及 运行两个功能CommandUtil 由于我们是在线oj&#xff0c;所以得编译用户的代码不仅编译 还需要 …

[ELK使用篇]:SpringCloud整合ELK服务

文章目录 一&#xff1a;前置准备-(参考之前博客)&#xff1a;1.1&#xff1a;准备Elasticsearch和Kibana环境&#xff1a;1.1.1&#xff1a;地址&#xff1a;[https://blog.csdn.net/Abraxs/article/details/128517777](https://blog.csdn.net/Abraxs/article/details/1285177…

云服务器远程nacos服务注册失败/不健康Client not connected, current status:STARTING

文章目录 Nacos报错docker安装不用 docker安装 Nacos报错 docker安装 使用docker在云服务器安装Nacos之后出现Client not connected, current status:STARTING 使用docker 安装之后需要添加映射端口 docker run -e JAVA_OPTS"-Xms256m -Xmx256m"-e MODEstandalone…

领导需求不好接?给你一份“化危为机的自救指南”

领导高瞻远瞩&#xff0c;落地成难&#xff0c;问题&#xff1a;领导常常是急性发挥&#xff0c;时间稍微久一点就思路就模糊了&#xff0c;后续怎么做都不对。 遇到这种情况的小伙伴&#xff0c;公屏打上“pua”。 这种情况下&#xff0c;给出自救指南&#xff1a; 1、引导交…

深度学习——批标准化Batch Normalization

什么是批标准化&#xff1f; 批标准化&#xff08;Batch Normalization&#xff09;是深度学习中常用的一种技术&#xff0c;旨在加速神经网络的训练过程并提高模型的收敛速度。 批标准化通过在神经网络的每一层中对输入数据进行标准化来实现。具体而言&#xff0c;对于每个输…

vue3+elementplus后台管理系统,实现侧边栏菜单显示到主内容区域

目录 1 创建页面2 设置路由3 修改首页4 首页的完整代码总结 我们已经使用vue3和elmentplus初步搭建了首页&#xff0c;上一篇中有个问题没解决&#xff0c;就是在侧边栏导航功能里&#xff0c;如果点击菜单希望是在首页打开页面而不是跳转到新页面。以下是我们希望实现的效果 这…

AI学习笔记二:YOLOV5环境搭建及测试全过程

若该文为原创文章&#xff0c;转载请注明原文出处。 记录yolov5从环境搭建到测试全过程。 一、运行环境 1、系统&#xff1a;windows10 &#xff08;无cpu) 2、yolov5版本&#xff1a;yolov5-5.0 3、python版本&#xff1a;py3.8 在创建虚拟环境前需要先把miniconda3和py…

GUI自动化测试进阶:页面对象模式

本文介绍的是页面对象设计模式及其常见的滥用继承的错误。 本文和语言无关&#xff0c;但作者主要使用python和java。本文假设读者已经具有了一定的python或java基础&#xff0c;知道类和方法是什么。 如果完全没有这方面的基础&#xff0c;请看我的《测试人员如何学Python》。…

【图像分类】基于LIME的CNN 图像分类研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 基于LIME&#xff08;Local Interpretable Model-Agnostic Explanations&#xff09;的CNN图像分类研究是一种用于解释CNN模型的方法。LIME是一…

【UE5 多人联机教程】04-加入游戏

效果 步骤 1. 新建一个控件蓝图&#xff0c;父类为“USC_Button_Standard” 控件蓝图命名为“UMG_Item_Room”&#xff0c;用于表示每一个搜索到的房间的界面 打开“UMG_Item_Room”&#xff0c;在图表中新建一个变量&#xff0c;命名为“Session” 变量类型为“蓝图会话结果…

自恢复保险丝(PPTC)的金属材料说明

保险丝大家都是知道的&#xff0c;但保险丝当中的自恢复保险丝&#xff08;PPTC&#xff09;可能就不太了解的。 其实PPTC自恢复保险丝与大家所认识的保险丝一样&#xff0c;都是起到限流作用&#xff0c;达到电路防护效果。简单来说就是一旦电路中的电流超过所规定的电流时&am…

【数据结构】二叉树详解(3)

⭐️ 前言 ✨ 往期链接&#xff1a;【数据结构】二叉树详解(1) 在第一篇二叉树文章中&#xff0c;我们探讨了二叉树的链式结构定义与实现。二叉的遍历包含( 前序/中序/后序遍历 )及代码实现和递归流程图的详细讲解。还有一些二叉树的其他接口定义与实现&#xff0c;包含 Binar…

【vue3】vue3的一般项目结构、成功显示自己的vue3页面

一、vue3的一般项目结构 Vue 3并没有规定特定的项目结构&#xff0c;因此您可以根据项目的需求和个人偏好来组织您的Vue 3项目。以下是一个常见的Vue 3项目结构示例&#xff0c;供参考&#xff1a; your-project/|- public/| |- index.html # 应用程序的入口HTML文件…