https原理

news2024/11/24 19:41:44

首先说一下几个概念:对称加密、非对称加密

对称加密:

    客户端和服务端使用同一个秘钥,分两种情况:
        1、所有的客户端和服务端使用同一个秘钥,这个秘钥被泄漏后数据不再安全
        2、每个客户端生成一个秘钥,如果客户端比较多,这样在服务端就有很多个秘钥,对服务端造成压力

非对称加密:

      1、客户端和服务端使用不同的秘钥,服务端生成私钥和公钥,在客户端请求服务端建立连接时 服务端将公钥发给客户端,私钥只在服务端保存
      2、私钥加密的公钥可以解密,公钥加密的私钥可以解密,公钥加密的公钥不能解密,私钥加密的私钥不能解密

        公钥和私钥从哪里来:在服务端通过openSSL生成私钥,然后通过私钥再生成公钥,这样保证了私钥和公钥的关联

三次握手和四次握手:

       客户端和服务端成功建立连接的过程叫做三次握手,建立连接之后客户端需要验证证书的合法性、生成 session secret 用于数据传输的对称加密等,具体步骤参考 HTTPS四次握手的过程-转载 - 知乎

Https的实现原理:

        https的过程分为证书验证和数据传输阶段,具体交互过程如下,在证书验证阶段采用非对称加密,数据传输阶段采用对称加密,因为对称加密的效率高于非对称加密;

       https是长链接,四次握手(证书验证)成功后就可以进行数据的传输了;

证书验证阶段:

       客户端向服务端发起请求时服务端会返回一个证书,证书里面就包含了公钥,客户端验证证书是否合法,如不合法则会出现下面类似的提示,如果要继续访问也是可以的

数据传输阶段:

       1、当客户端验证证书合法,则生成一个随机数

       2、通过公钥加密随机数,把加密后的随机数发给服务端

       3、服务端通过私钥对随机数解密,通过这个随机数构造对称加密算法,使用算法加密数据后返回

什么样的证书才是合法的?

        只有CA认证的权威机构颁发 的证书才认为是合法证书,这样就避免了“中间人攻击”问题:

        中间人攻击是在客户端和服务端之间穿件一个伪服务,客户端从这个伪服务中获取公钥、收发数据等,这个伪服务从真正的服务器上获得公钥和收发数据

        因为伪服务不是一个CA认证的机构,它生成的证书就是一个无效证书,只有真正的服务器的证书才是有效的

证书的验证:

        一个证书通常包含以下信息:颁发者机构、有效期、公钥、所有者、签名算法、指纹等

        1、每份签发证书都可以根据验证链查找对应的根证书,操作系统、浏览器会在本地存储权威机构的根证书,利用本地根证书完成对应机构签发证书的验证

        2、与 CA 服务器校验判断证书是否被篡改

        3、通过 CRL和 OCSP验证判断证书是否已吊销

        以上都满足的情况下才认为证书是合法的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式每日500(4)231104 (Flash类型定义、Flash常量定义、Flash函数)

文章目录 1.Flash类型定义(两个结构体)2.Flash常量定义(3种)3.Flash函数(31个,FLASH分为两个区,一个是普通的存储空间,一个是选项字节OB,函数名里带OB的就是对选项字节空…

一文速通Sentinel熔断及降级规则

目录 基本介绍 熔断模式 状态机的三个状态 熔断降级规则 断路器熔断策略 慢调用 异常比例 异常数 基本介绍 熔断模式 主要是参考电路熔断,如果一条线路电压过高,保险丝会熔断,防止火灾。放到我们的系统中,如果某个目标…

Azure 机器学习 - 无代码自动机器学习的预测需求

了解如何在 Azure 机器学习工作室中使用自动化机器学习在不编写任何代码行的情况下创建时序预测模型。 此模型将预测自行车共享服务的租赁需求。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕…

【C语言】指针初阶

✨个人主页: Anmia.🎉所属专栏: C Language 🎃操作环境: Visual Studio 2019 版本 ​ 1.指针是什么? 指针理解的2个要点: 指针是内存中一个最小单元的编号,也就是地址平时口语中说的…

Vue elemen ui 移除上次校验与部分清除上次校验

场景: 可以切换类型,下面的输入框参数也会随着改变。 如果不清除上次的校验就会出现,之前的大陆企业的校验还会出现在香港企业的校验中 方法: watch:{ruleForm.paymentSubjectType:{ 通过监听表单的类型来调用 clearValidate方…

计算机网络之网络层(全)

网络层的功能 互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。 路由器在能够开始向输出链路传输分组的第一位之前,必须先接收到整个分组,这种机制称为:存储转发机制 异构网络互连 用…

transformers-Causal lanuage modeling

https://huggingface.co/docs/transformers/main/en/tasks/language_modelinghttps://huggingface.co/docs/transformers/main/en/tasks/language_modelingcausal lanuage model常用于文本生成。预测token系列中的下一个toekn,并且model只能关注左侧的token&#xf…

超声波清洗清洁力强怎么选、适合家用超声波清洗机推荐

因为各种原因很多导致很多小朋友从小就开始近视,佩戴眼镜,眼镜只要是戴上了就很难再摘下来,也有很多朋友从小到大都不知道清洗眼镜的重要性,眼镜长时间不清洗的话上面的细菌堪比茅厕这么脏!所以眼镜清洗千万别忽视了&a…

vue2导出数据生成xlsx文件

1.在utils文件夹新建tool.js tool.js文件 import XEUtils from xe-utilsexport function exportCsv(csv, title) {const t XEUtils.toDateString(Date.now(), yyyy-MM-dd) // 当前日期const filename ${t title}.xlsx // 拼接文件名const blob new Blob([csv]) //创建一…

在Linux上编译gdal3.1.2指南

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 以Ubuntu 18编译gdal3.1.2为例,编译gdal3.1.2需要先编译proj库和geos库(可选)。我选择的proj库版本为proj-7.1.0,编译proj-7.1.0需要先编译tiff库和sqlite3。我选择的sqlite3的版本为…

玩转多个数据库,一个Itbuilder在线工具就搞定!

随着需要使用的数据库类型日渐繁多,开发运维等技术人员如何高效便捷的访问、操作和管理数据,成了一个难题。设计一个好的数据库,就像孩子从小打下的基础,很多项目的失败是由于缺乏适当的数据库设计。因此,选择正确的数…

版本控制系统-SVN

SVN Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统。 官网:https://subversion.apache.org 资料:https://svnbook.red-bean.com、https://www.runoob.com/svn/svn-tutorial.html 下载:https://sourceforg…

【LeetCode刷题-哈希】--217.存在重复元素

217.存在重复元素 class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> hashSet new HashSet<>();for(int i 0;i<nums.length;i){if(hashSet.contains(nums[i])){return true;}hashSet.add(nums[i]);}return false;} }

U盘格式化恢复怎么做?常用的3个方法分享!

“前段时间由于我的u盘中病毒了&#xff0c;我不得已把它格式化了&#xff0c;但是今天我在找一份重要的资料时才发现我的资料在u盘中被一起删除掉了&#xff0c;有什么方法可以帮我找回我u盘中的数据吗&#xff1f;” U盘可以为我们存储各种类型的文件&#xff0c;同时它也很便…

C++标准模板(STL)- 类型支持 (类型属性,is_volatile,is_trivial,is_const)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

SOLIDWORKS PDM缩短图纸从设计到发布时间

SOLIDWORKS线上协同设计、线上审核、版本管理、任务等大大缩短图纸从设计到发布时间。 在SOLIDWORKS PDM 中工作流程是整个系统的骨架和脉络&#xff0c;所有的文档都需要进入某一工作流程&#xff0c;所有的操作及权限&#xff0c;都依附于特定的工作流程。SOLIDWORKS PDM的工…

一文掌握Java Stream API

引言 Java Stream API 自 Java 8 引入以来&#xff0c;已成为处理集合数据的强大工具。它不仅提高了代码的可读性&#xff0c;还优化了性能&#xff0c;使得集合操作变得更加简洁和高效。本文将深入探讨如何利用 Stream API 的常用操作&#xff0c;帮助你更好地掌握这一强大的…

算法模板之队列解密 | 图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、算法模板、汇编语言 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️模拟队列1.1 &#x1f514;用数组模拟实现队列1.1.1 &#x1f47…

解决远程桌面 这可能是由于CredSSP加密数据库修正问题

运行环境 : Windows Server 2012 R2 Standard 解决方式 策略组 gpedit.msc&#xff0c;注册表 regedit 等方式都尝试无效时&#xff0c;可尝试把下面这个勾勾去掉。

【小黑嵌入式系统第七课】PSoC® 5LP 开发套件(CY8CKIT-050B )——PSoC® 5LP主芯片、I/O系统、GPIO控制LED流水灯的实现

上一课&#xff1a; 【小黑嵌入式系统第六课】嵌入式系统软件设计基础——C语言简述、程序涉及规范、多任务程序设计、状态机建模(FSM)、模块化设计、事件触发、时间触发 文章目录 一、PSoC 5LP主芯片二、PSoC 5LP I/O系统(1) I/O系统特性(2) I/O系统怎样运作&#xff1f;1、I/…