每日一博 - 闲聊Https工作原理

文章目录

  • HTTPS工作原理
  • 数据的加密和解密
  • 与HTTP相比,HTTPS增加了多少性能开销?
  • Flow
  • 小结

在这里插入图片描述


HTTPS工作原理

HTTPS(Hypertext Transfer Protocol Secure)是 Hypertext Transfer Protocol(HTTP)的扩展。HTTPS使用 **传输层安全性(TLS)**传输加密数据。

如果数据在在线传输过程中被劫持,劫持者只能获得二进制代码。


数据的加密和解密

步骤1 - 客户端(浏览器)和服务器建立一个TCP连接。

步骤2 - 客户端向服务器发送一个“客户端Hello”消息。该消息包含一组必要的加密算法(密码套件)和它可以支持的最新TLS版本。服务器会回应一个“服务器Hello”,以便浏览器知道是否可以支持这些算法和TLS版本。

然后,服务器将SSL证书发送给客户端。该证书包含了公钥、主机名、过期日期等信息。客户端验证证书的有效性。

步骤3 - 在验证SSL证书后,客户端生成一个会话密钥并使用公钥对其进行加密。服务器接收加密的会话密钥并使用私钥解密它。

步骤4 - 现在,客户端和服务器都拥有相同的会话密钥(对称加密),加密的数据在安全的双向通道中传输。

为什么HTTPS在数据传输过程中切换到对称加密?有两个主要原因:

  1. 安全性:非对称加密只能单向加密。这意味着如果服务器试图将加密数据发送回客户端,任何人都可以使用公钥解密数据。

  2. 服务器资源:非对称加密增加了相当多的数学开销。它不适用于长时间会话中的数据传输。


与HTTP相比,HTTPS增加了多少性能开销?

HTTPS通常会引入一些性能开销,但具体性能开销取决于多个因素,包括服务器硬件、TLS协议版本、加密算法等。以下是一些与HTTPS相关的性能开销因素:

  1. 握手开销:在建立HTTPS连接时,需要执行TLS握手过程,这涉及多个消息的交换,包括客户端Hello、服务器Hello和证书交换等。握手过程可能会引入一些延迟,尤其是在低延迟要求的应用中。

  2. 加密和解密开销:HTTPS使用加密算法对数据进行加密和解密。这些操作需要计算资源,尤其是在高负载情况下。较复杂的加密算法可能会引入更大的性能开销。

  3. 加密套件选择:不同的加密套件具有不同的性能开销。一些套件提供更高级别的安全性,但可能需要更多的计算资源。服务器和客户端可以选择适合其性能需求的套件。

Flow

在这里插入图片描述

在这里插入图片描述

小结

总的来说,HTTPS通常会引入一些性能开销,但这些开销通常可以通过优化服务器配置、使用硬件加速和选择适当的加密套件来降低。

在许多情况下,安全性的提升可以抵消性能开销。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【工具】【Charles】rewrite:重写

GET请求 protocol/host/port 可填可不填,可填(*) path需完整匹配,必填 Query:有填写需完整匹配,可填可不填,可填(*) 匹配规则: Type:修改请求参…

使用C语言EasyX 创建动态爱心背景

简介 在计算机图形学的世界中,有很多方法可以使程序的界面更加吸引人。在本篇博客中,我将向大家介绍如何使用 EasyX 图形库在 C 中创建一个动态的爱心背景。这不仅是一个简单的动画效果,它还包括背景的星星、旋转的心形以及一个美观的背景渐…

抖音中文点选验证码识别方案

最近研究了一下抖音中文点选验证码的识别,居然正确率高达98%。 首先我们来看一下效果 一、识别方法 1、数据集准备 我们需要借助爬虫去下载大量的验证码图片。这些有两种图片,一种是小图,包含需要点选的中文和顺序,还有一种是大…

Python基于Flask的高校舆情分析,舆情监控可视化系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 运行效果图 基于Python的微博大数据舆情分析,舆论情感分析可视化系统 系统介绍 微博舆情分析系…

如何使用element-ui相关组件如:el-select,el-table,el-switch,el-pagination,el-dialog

element-ui 官方链接&#xff1a; 组件 | Elementhttps://element.eleme.cn/#/zh-CN/component/installation el-select <!-- 用户类型选择框<template> 看情况使用value选择框绑定的值 命名必须是value不能改v-for"item in Options" options数据源来自于…

【Unity基础】2.网格材质贴图与资源打包

【Unity基础】2.网格材质贴图与资源打包 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;网格材质纹理 第一次接触3D物体的话&#xff0c;会觉得好神奇啊&#xff0c;这个物体究竟是由什么组…

探索工业4.0:数字孪生如何重塑工业生产流程?

在过去的几十年里&#xff0c;工业生产经历了从机械化、自动化到数字化的巨大转变。随着工业4.0的到来&#xff0c;我们正处于第四次工业革命的边缘&#xff0c;这次革命将由数字孪生技术引领。本文将深入探讨数字孪生在工业生产中的应用和潜力。 数字孪生&#xff08;Digital …

【1++的C++进阶】之C++11(一)

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C进阶】 文章目录 一&#xff0c;前言二&#xff0c;列表初始化三&#xff0c;声明自动类型推断&#xff08;auto&#xff09;decltypenullptr 四&#xff0c;右值引用五&#xff0c;完美转发…

Web学习笔记-React(组合Components)

笔记内容转载自 AcWing 的 Web 应用课讲义&#xff0c;课程链接&#xff1a;AcWing Web 应用课。 CONTENTS 1. 创建父组件2. 从上往下传递数据3. 传递子节点4. 从下往上调用函数5. 兄弟组件间传递消息6. 无状态函数组件7. 组件的生命周期 本节内容是组件与组件之间的组合&#…

如何判断一篇论文有没有被SCI收录?

打开 Web of Science 网站设置 SCI 筛选条件&#xff08;因为 WoS 收录的不只是 SCI&#xff09; 3. 输入论文题目&#xff0c;点击搜索

WavJourney:进入音频故事情节生成世界的旅程

推荐&#xff1a;使用 NSDT场景编辑器快速搭建3D应用场景 若要正确查看音频生成的强大功能&#xff0c;请考虑以下方案。我们只需要提供一个简单的指令&#xff0c;描述场景和场景设置&#xff0c;模型就会生成一个扣人心弦的音频脚本&#xff0c;突出与原始指令的最高上下文相…

virtualbox 扩展磁盘大小

此处设置完成后&#xff0c;还需要进入虚拟机&#xff0c;实际扩展磁盘大小 参考 https://zhuanlan.zhihu.com/p/319431032