当前位置: 首页 > news >正文

HTTPS加密原理详解

目录

HTTPS是什么

加密是什么

HTTPS的工作流程

1.使用对称加密

2.引入非对称加密

3.引入证书机制

客户端验证证书真伪的过程

 签名的加密流程

整体工作流程

总结


HTTPS是什么

HTTPS协议也是一个应用程协议,是在HTTP的基础上加入了一个加密层,由于HTTP协议内容都是明文传输,就会导致在传输的过程中被黑客篡改。就比如,有时我们在一些软件下载的网站上明明下载的是网站图片上的软件但是真真下载的却是另一个软件。HTTPS就是进一步保证用户的信息安全。

加密是什么

加密就是把明文(要传输的信息)转化为密文(加密后的明文),解密就是将密文再转化为明文,中间进行这个转化工作的就是密钥,大概可以理解为,我们现在有一个日记,这个日记就是明文,然后我们为了不让别人看到这本日记,就将这个日记放到盒子中给锁起来,现在这个盒子连同里面的日记就是密文,这个锁就是密钥

对称加密

对称加密就是加密解密都是通过同一个密钥,客户端通过这个密钥将明文变成密文,服务器也通过这个密钥将密文变成明文,可以理解为一把锁就只有一个钥匙,把锁锁住使用这把钥匙,把锁打开也使用这把钥匙。

非对称加密

非对称加密需要两个密钥,一把叫做"公钥",另一把叫做"私钥"

如果通过公钥对明文加密,就通过私钥对密文解密,如果通过私钥对明文加密,那么就通过公钥对密文解密。可以理解为一把锁有两个钥匙,这两个钥匙有一个特点,如果使用其中一把钥匙把锁锁上就要用另一把钥匙把锁打开。

但是非对称加密的运行速度比对称加密慢得多

HTTPS的工作流程

1.使用对称加密

使用对称加密后,当黑客再次截取传输的信息时,因为没有密钥,所以就无法直接看到明文。

但是虽然这样看起来非常完美但是却给服务器带来不小的负担,因为一般一台服务器会同时服务多名用户,就需要服务器维护每名用户和其对应密钥的关系。所以为了减小服务器的负担,我们可以在双方建立联系的时候,协商好这次的密钥是啥,这样在每次建立联系时来确定此次密钥,服务器就不用再去维护用户和对应密钥的关系了。

//其实就是将密钥从服务器自己管理,变成每次连接由客户端告诉服务器密钥是什么

不过显然还有一个不合理的点,就是客户端在告诉服务器密钥是什么时,如果直接明文传输不就相当于是在""挑衅黑客""吗,演都不演了。所以我们要对密钥进行加密。

但是如果还使用对称加密,那么就需要再协商一个密钥的密钥,那么这个密钥的密钥肯定也不能直接明文传输,那就又有了一个密钥的密钥的密钥,这样循环套娃永远解决不了问题。 所以此时就不能使用对称加密了。而要使用非对称加密来对密钥进行加密

2.引入非对称加密

  1. 首先客户端在本地生成对称密钥,通过公钥加密,发送给服务器
  2. 中间黑客截获到密钥后由于没有私钥所以无法解密
  3. 服务器接收到后通过私钥进行解密,确认客户端发来的对称密钥
  4. 服务器使用接收到的对称密钥,对响应信息进行加密返回给客户端
  5. 客户端接收到响应后,后续双方的通信都通过这个对称密钥加密即可。由于对称加密的效率要比非对称加密高很多,所以只在最开始加密对称密钥时使用非对称加密。后续依然使用对称加密,因为这个密钥只有通信双方知道。

 

不过又有一个问题,公钥私钥怎么来呢?而且客户端的公钥并不是自己生成的而是由,服务器给的,那么客户端又怎么确认自己的这把公钥是服务器给的,而不是黑客从中截取替换的呢?

3.引入证书机制

这时如果有一个第三方的公正机构来证明的话不就好了,所以就引入了证书机制,证书就相当于是一个第三方的公证人,当客户端看到这个证书时就能确保自己收到的信息是真的。

在客户端和服务器刚建立连接时,服务器就会给客户端返回一个证书,这个证书不仅用来验证身份还包含了刚刚的公钥。

这个证书就好比是网站的身份证,虽然叫证书,但是其实是一个起到证书作用的结构化的字符串,里面会包含许多信息比如,证书的颁发机构(第三方),证书有效期,公钥,网站信息,签名等等

//(搭建一个HTTPS网站要在CA机构先申请一个证书,就像是给网站办理一个身份证)

客户端验证证书真伪的过程

  1. 判定证书的有效期是否过期
  2. 判断证书的颁发机构是否可信(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥)
  3. 判断证书是否被篡改,虽然我们认为证书是可信的但是还是有可能会被黑客截获进而篡改,所以我们要判定收到的这个证书是否被篡改,首先从操作系统中拿到证书发布机构的公钥(已内置在系统中),对签名进行解密,拿到数据摘要(一个hash值命名为hash1),然后计算整个证书的hash值,计为hash2,对比hash1和hash2是否相等,如果相等就表示证书没有被篡改过 

//在系统中已经提前内置了证书的公钥,这个公钥可以对证书中的签名进行解密(不是服务器给的加密对称密钥的公钥),证书里的签名就相当于是一个防伪标识,这是一个hash值,这个hash值是由整个证书计算得来,所以只要黑客篡改了证书的内容,客户端那边计算出的证书的hash值就会发生变化,然后和签名一比对就能知道证书是否可靠了。

//常见的生成签名的算法有MD5和SHA

 签名的加密流程

如果直接把签名用明文传输,那么当黑客拿到证书时就能看到一个正确的hash值是什么样的,进而就可以进行伪造,所以对于签名我们也要进行一层加密。

  • 当公证机构把证书颁发给服务器时,还会给服务器一个私钥,这个私钥就是用来加密证书的。
  • 然后这个私钥所对应的公钥,内置在客户端的系统中(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥),客户端在拿到证书时就直接使用这把公钥对签名进行解密,最后比对。

整体工作流程

准备工作:客户端系统内内置了解密证书签名的CA证书给的公钥1,服务器申请证书获得用于加密签名的私钥1,并且服务器自己生成公钥2,私钥2

申请建立连接阶段:客户端发起连接请求,服务器收到连接请求后返回证书,并把公钥2放入证书同时计算证书的签名(hash值)使用私钥1进行加密。客户端收到证书后,用公钥1获取签名验证证书的合法性,确认合法后获取证书中的公钥2。

商讨对称密钥阶段:客户端生成对称密钥,并使用公钥2给对称密钥加密发送给服务器,服务器收到请求后,使用自己的私钥2解密,获得对称密钥,并返回使用这个对称密钥加密的响应。

后续业务交流阶段:客户端使用对称密钥加密请求,服务器收到请求后使用对称密钥解密,并返回用对称密钥加密的响应,客户端接受响应后,再使用对称密钥解密确认响应内容

总结

HTTPS的工作流程主要用到了三次加密,一次对称加密和两次非对称加密

第一次非对称加密:用于校验证书是否被篡改,公钥在客户端系统中内置,私钥由公证机构给服务器,服务器用私钥对签名加密,客户端用公钥对签名解密来确认证书的合法性

第二次非对称加密:用于协商生成对称加密的密钥,公钥私钥都由服务器生成,公钥通过证书传递给客户端,客户端用这个公钥给对称密钥加密,服务器用私钥给对称密钥解密

对称加密:其实前两次的非对称加密都是为了解决对称加密遇到的问题,因为对称加密的运行效率要比非对称加密快得多,所以后于业务请求都用对称加密,非对称加密就是为了让对称密钥安全的到达服务器手上

以上就是博主对HTTPS知识的分享,在之后的博客中会陆续分享有关HTTPS的其他知识,如果有不懂的或者有其他见解的欢迎在下方评论或者私信博主,也希望可以多多支持博主的其他博客!!🥰🥰

相关文章:

HTTPS加密原理详解

目录 HTTPS是什么 加密是什么 HTTPS的工作流程 1.使用对称加密 2.引入非对称加密 3.引入证书机制 客户端验证证书真伪的过程 签名的加密流程 整体工作流程 总结 HTTPS是什么 HTTPS协议也是一个应用程协议,是在HTTP的基础上加入了一个加密层,由…...

无公网IP也能远程控制Windows:Linux rdesktop内网穿透实战

文章目录 前言1. Windows 开启远程桌面2. Linux安装rdesktop工具3. Win安装Cpolar工具4. 配置远程桌面地址5. 远程桌面连接测试6. 设置固定远程地址7. 固定地址连接测试 前言 如今远程办公已经从一种选择变成了许多企业和个人的必修课,而如何在Linux系统上高效地访…...

Unity入门学习笔记(Day01)

一.认识unity工作面板 1.1.project window(项目面板) 显示当前项目中的所有文件和目录,包含了项目里面所有的资源文件 1.2.console window(输出面板) 显示当前游戏开发中生成的警告错误 1.3.hierarchy window&…...

HTML中的块元素与行内元素

1.块级标签 块级元素会独占一行&#xff0c;通常用于构建页面的结构。常见的块级元素包括&#xff1a; <div>&#xff1a;通用的块级容器。没有任何语意。可以创建网页的不同部分&#xff0c;导航栏侧边栏等。 <body><div class"nav"><a hre…...

postgreSQL window function高级用法

正常使用&#xff1a;相当于对每个row做一次子查询 SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;order by 区别window frame and partition 没有order by&#xff0c; window function是对整个partition起作用&#xff0c; part…...

当中国“智算心跳”与全球共振:九章云极DataCanvas首秀MWC 2025

3月3日&#xff0c;西班牙巴塞罗那&#xff0c;全球通信与科技领域的盛会“2025世界移动通信大会&#xff08;MWC 2025&#xff09;”正式拉开帷幕。中国人工智能基础设施领军企业九章云极DataCanvas公司以全球化战略视野与硬核技术实力&#xff0c;全方位、多维度地展示了在智…...

机器视觉检测显卡与工控机选型指南

在机器视觉检测项目中,深度学习显卡和工控机的选择直接影响算法性能、系统稳定性和长期维护成本。以下是关键注意事项及建议: 一、深度学习显卡选择 核心需求分析 任务类型:检测任务复杂度(如YOLO、ResNet等模型的参数量)决定显存需求。 高分辨率图像(如4K以上)需大显存…...

配置安全网站

配置网站 确定是Debian系统 更新索引&#xff1a;apt update 安装包&#xff1a;apt upgrade -y 查看nginx状态&#xff1a;systemctl status nginx 安装&#xff1a;nginx&#xff1a;apt install nginx 启动&#xff1a;systemctl start nginx 在/var/www/里面创建一个…...

ds回答 什么是数据召回

数据召回&#xff08;Data Recall&#xff09;在不同领域有不同的具体含义&#xff0c;但核心都指向“从大量信息中筛选出相关数据”的过程。以下是其在不同场景下的定义和关键要点&#xff1a; 一、技术领域的定义&#xff08;信息检索与推荐系统&#xff09; 1. 基本概念 数…...

复现无人机的项目,项目名称为Evidential Detection and Tracking Collaboration

项目名称为Evidential Detection and Tracking Collaboration&#xff0c;主要用于强大的反无人机系统&#xff0c;涉及新问题、基准和算法研究。下面介绍项目的复现步骤&#xff1a; 安装环境&#xff1a;使用Anaconda创建并激活名为edtc的虚拟环境&#xff0c;Python版本为3…...

mac本地部署Qwq-32b记录

导语 昨天看到阿里开源了Qwq-32b&#xff0c;号称性能可以媲美Deepseek-R1。今天晚上有空就在Mac上折腾了一下&#xff0c;使用ollma进行了部署&#xff0c;效果感觉还不错&#xff0c;特此记录。 环境 硬件 型号&#xff1a;Macbook M1 Pro 14寸内存&#xff1a;512G 环境…...

实验三 Python 数据可视化 Python 聚类-K-means(CQUPT)

一、实验目的 Python 数据可视化&#xff1a; 1、学习使用 jieba、wordcloud 等类库生成词云图。 2、学习使用 Matplotlib 库进行数据可视化。 Python 聚类-K-means&#xff1a; 1、理解聚类非监督学习方法的基本原理。 2、掌握 Python、numpy、pandas、sklearn 实现聚类…...

通义万相2.1:开启视频生成新时代

摘要&#xff1a;文章开篇便点明了通义万相2.1在视频生成领域的重大突破&#xff0c;强调其作为阿里云通义系列AI模型的重要成员&#xff0c;不仅是简单的模型升级&#xff0c;更是视频生成技术迈向更智能、高效、精准的重要里程碑。其核心技术包括自研的高效VAE和DiT架构&…...

爬虫案例十一js逆向数位观察网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、网站分析二、代码总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 爬虫案例十一js逆向数位观察网 提示&#xff1a;以下是本篇…...

WSL安装及问题

1 概述 Windows Subsystem for Linux&#xff08;简称WSL&#xff09;是一个在Windows 10\11上能够运行原生Linux二进制可执行文件&#xff08;ELF格式&#xff09;的兼容层。它是由微软与Canonical公司合作开发&#xff0c;开发人员可以在 Windows 计算机上同时访问 Windows 和…...

WordPress开发到底是开发什么?

WordPress 开发主要涉及基于 WordPress 平台构建、定制和扩展网站功能的过程。它不仅仅是简单的网站搭建&#xff0c;而是通过代码和技术实现个性化需求。 以下是 WordPress 开发的核心内容&#xff1a; 1. 主题开发&#xff08;Theme Development&#xff09; 功能&#xff…...

元脑服务器的创新应用:浪潮信息引领AI计算新时代

浪潮信息的元脑 R1 服务器现已全面支持开源框架 SGLang&#xff0c;能够在单机环境下实现 DeepSeek 671B 模型的高并发性能&#xff0c;用户并发访问量超过1000。通过对 SGLang 最新版本的深度适配&#xff0c;元脑 R1 推理服务器在运行高性能模型时&#xff0c;展现出卓越的处…...

SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)

7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…...

单片机项目复刻需要的准备工作

一、前言 复刻单片机的项目的时候&#xff0c;有些模块是需要焊接的。很多同学对焊接没有概念。 这里说一下做项目的基本工具。 比如&#xff1a;像这种模块&#xff0c;都需要自己焊接了排针才可以链接的。 二、基本模块 2.1 单排排针 一些模块买回来是没有焊接的&#x…...

【哇! C++】类和对象(五) - 赋值运算符重载

目录 ​编辑 一、运算符重载 1.1 运算符重载概念 1.2 全局运算符重载 1.3 运算符重载为成员函数 二、赋值运算符重载的特性 2.1 赋值运算符重载需要注意的点 2.2 赋值运算符重载格式 2.2.1 传值返回 2.2.2 传引用返回 2.2.3 检查自己给自己赋值 三、赋值运算符重载的…...

手把手教你部署VibeVoice:基于Python的实时TTS系统,300ms超低延迟体验

手把手教你部署VibeVoice&#xff1a;基于Python的实时TTS系统&#xff0c;300ms超低延迟体验 你有没有遇到过这样的场景&#xff1a;开发一个智能助手&#xff0c;用户问完问题&#xff0c;屏幕上的文字回复瞬间就出来了&#xff0c;但语音却要等上好几秒才开始播放&#xff…...

告别转换限制:实测可免费批量处理Geojson、Shapefile与KML的在线工具指南

1. 为什么你需要这个免费批量转换工具&#xff1f; 作为一个经常处理地理信息数据的老手&#xff0c;我太懂你们遇到的痛点了。上周帮学弟改毕业论文&#xff0c;他用的那个知名在线转换工具&#xff0c;刚传了第4个文件就弹出"本月免费额度已用完"——这哪够用啊&am…...

3个核心价值:XianyuAutoAgent监控系统全解析

3个核心价值&#xff1a;XianyuAutoAgent监控系统全解析 【免费下载链接】XianyuAutoAgent 智能闲鱼客服机器人系统&#xff1a;专为闲鱼平台打造的AI值守解决方案&#xff0c;实现闲鱼平台724小时自动化值守&#xff0c;支持多专家协同决策、智能议价和上下文感知对话。 项目…...

HRN模型与PID控制结合:实时面部动画调节系统

HRN模型与PID控制结合&#xff1a;实时面部动画调节系统 1. 引言 想象一下&#xff0c;你正在制作一部动画电影&#xff0c;主角的面部表情需要精确到每一帧的微妙变化。传统的手工调整方式耗时耗力&#xff0c;而自动生成的表情又往往缺乏自然流畅的过渡。这就是为什么我们需…...

Element UI表格进阶:手把手教你自定义el-table展开按钮样式与排序功能

Element UI表格深度定制&#xff1a;从展开按钮到排序逻辑的全方位改造指南 在企业级前端开发中&#xff0c;数据表格的交互体验直接影响用户操作效率。Element UI的el-table组件虽然提供了开箱即用的功能&#xff0c;但面对复杂业务场景时&#xff0c;默认配置往往难以满足个性…...

OpenClaw自动化测试:nanobot驱动浏览器执行回归用例

OpenClaw自动化测试&#xff1a;nanobot驱动浏览器执行回归用例 1. 为什么选择OpenClaw进行自动化测试 去年接手一个老项目时&#xff0c;我遇到了一个典型的前端测试困境——每次发版前需要手动执行87个回归测试用例&#xff0c;整个过程耗时近4小时。尝试过Selenium和Playw…...

收藏级|AI岗位全景与转行指南:从技能到Offer(小白/程序员必看)

无论是刚入门的编程小白&#xff0c;还是想转行AI赛道的在职程序员&#xff0c;这份指南都能帮你理清方向——不玩虚的&#xff0c;全是可落地的岗位解析、技能清单、简历技巧和学习路线&#xff0c;收藏起来&#xff0c;跟着走就能少走弯路&#xff0c;高效切入AI领域&#xf…...

SMART-AM40玩转轻量桌面:Armbian下xfce4从安装到远程控制的完整指南

SMART-AM40轻量化桌面革命&#xff1a;Armbian系统下xfce4环境全流程部署与远程控制实战 在单板计算机领域&#xff0c;SMART-AM40凭借其Rockchip处理器和出色的能效比&#xff0c;正成为轻量化桌面解决方案的新宠。本文将带您完成从Armbian系统基础配置到xfce4桌面环境部署&am…...

旧设备焕新:OpenCore跨版本升级破局指南

旧设备焕新&#xff1a;OpenCore跨版本升级破局指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 痛点诊断&#xff1a;旧Mac的升级困境 每一台Mac都有其生命周期&…...

threestudio-3dgs实战:5分钟生成可编辑的3D汉堡模型(避坑指南)

threestudio-3dgs实战&#xff1a;5分钟生成可编辑的3D汉堡模型&#xff08;避坑指南&#xff09; 当我在深夜调试完最后一个参数&#xff0c;看到屏幕上那个纹理清晰、结构完整的3D汉堡模型时&#xff0c;突然意识到——3D高斯泼溅技术正在彻底改变数字内容创作的方式。不同于…...