HTTPS 协议原理详解

HTTPS 协议原理详解

  • 什么是 HTTPS 协议
  • 什么是 SSL/TSL 层
  • HTTPS 使用到的加密算法
  • HTTPS 中 TLS 层的加密过程详解
  • HTTPS 加密过程中用到的数字证书

什么是 HTTPS 协议

HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPSHTTP 的基础下加入SSLHTTPS 的安全基础是 SSLHTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层:SSL/TSL。如下图:

在这里插入图片描述

什么是 SSL/TSL 层

SSL 即安全套接层(SecureSocketLayer),由网景公司于1994年发明,IETF在1999 年把它改名为TLS(传输层安全,传输层安全),正式标准化,到今天TLS已经发展出了主流的三个版本,分别是2006年的1.1、2008年的1.2,2018的1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

HTTPS 使用到的加密算法

  1. 摘要算法

    摘要算法能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”。任意微小的数据差异,都可以生成完全不同的摘要。所以可以通过把明文信息的摘要和明文一起加密进行传输,数据传输到对方之后再进行解密,重新对数据进行摘要,再比对就能发现数据有没有被篡改。这样就保证了数据的完整性。如以下例子:

在这里插入图片描述
注:摘要算法可使用 md5,sha1,sha2,sha256 等主流浏览器和服务器支持的加密算法
2. 对称密钥加密算法

对称密钥加密算法:编、解码使用相同密钥的算法,如(AESRC4,ChaCha20 )。

  1. 非对称密钥加密算法

    定义:它有两个密钥,一个叫“公钥”,一个叫“私钥”。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。非对称加密可以解决“密钥交换”的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就可以,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。

    加密方式:

    1. 公钥加密 —> 私钥解密
    2. 私钥加密 —> 公钥解密

    优点:安全性高
    缺点:虽然非对称加密比对称加密安全,但是在实际的应用中也存在问题:非对称密钥加密系统通常需要大量的数学运算,比较慢。如(DH、DSA、RSA、ECC)。

HTTPS 中 TLS 层的加密过程详解

TLS 里使用的是混合加密方式,即把对称加密和非对称加密结合起来呢,两者取长补短,即能高效地加密解密,又能安全地密钥交换。大致流程如下:

  1. 第一步:通信开始的时候使用非对称算法如 RSA,ECDHE先解决密钥交换的问题
    在这里插入图片描述
    2. 第二步:用随机数产生对称算法使用的"会话密钥",再用公钥加密。会话密钥很短,所以即便使用非对称加密算法也可以很快完成加解密
    在这里插入图片描述
    3. 第三步:对方拿到密文后用私钥解密,取出会话密钥。完成对称密钥的安全交换,后续就使用对称算法发完成数据交换
    在这里插入图片描述 完整的ssl流程图示
    在这里插入图片描述

HTTPS 加密过程中用到的数字证书

  1. 数字证书是什么
    数字证书组成: CA信息,公钥用户信息,公钥,权威机构的签名,有效期
  2. 数字证书作用:
    • 通过数字证书向浏览器证明身份
    • 数字证书里面包含了公钥
  3. 数字证书的申请
    • 生成自己的公钥和私钥,服务器自己保留私钥
    • 向CA机构提交公钥,公司,域名信息等待认证
    • CA机构通过线上,线下多种途径验证你提交信息的真实性,合法性
    • 信息审核通过,CA机构则会向你签发认证的数字证书,包含了公钥,组织信息,CA信息,有效时间,证书序列号,同时生成一个签名签名步骤: hash( 你用于申请证书所提交的明文信息 )=信息摘要;CA再使用私钥对 信息摘要进行加密密文就是证书的数字签名
  4. 浏览器如何验证数字证书
    • 有了CA签名过的数字证书,当浏览器访问服务器时,服务器会返回数字证书给浏览器。
    • 浏览器收到证书后会对数学证书进行验证,首先浏览器读取证书中相关的明文信息,采用CA签名时相同的hash函数计算得到信息摘要A,再利用对应的CA公钥解密数字签名数据得到信息摘要B,如果摘要A和摘要B一致,则可以确认证书时合法的

:关于数字签名证书,可以看这一篇文章《数字签名是什么》,写的非常好👍

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

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

相关文章

栈(基于动态顺序表实现的栈)

栈的简单介绍 关于栈的性质咳咳 栈:栈是一种特殊的线性表,其中只让在一端插入和删除元素。 后进先出 进行插入删除的那一端叫栈顶,另一端叫栈底 我们实现的栈是基于一个动态顺序表的的栈,会实现栈的 入栈,出栈,获取…

Python知识点复习

文章目录 Input & OutputVariables & Data typesPython字符串重复(字符串乘法)字符串和数字连接在一起print时,要强制类型转换int为str用input()得到的用户输入,是str类型,如果要以int形式计算的话&#xff0c…

Dijkstra算法在《庆余年》中的应用:范闲的皇宫之旅

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

C语言 数组——向函数传递数组

目录 把数组传给函数(Passing Arrays to Functions) 向函数传递一维数组 向函数传递二维数组 数组在学生成绩管理中的应用 例:计算每个学生的平均分 把数组传给函数(Passing Arrays to Functions) 向函数传递一维…

校园霸凌行为监测AI预警系统

校园霸凌行为监测AI预警系统基于AI视觉智能分析算法,校园霸凌行为监测AI预警系统通过已安装的监控摄像头对校园现场画面进行实时监测。校园霸凌行为监测AI预警系统能够自动识别学生的违规行为,包括打架、跌倒、偷偷翻墙、人员聚众、攀高、抽烟等行为&…

【C++】右值引用 移动语义

目录 前言一、右值引用与移动语义1.1 左值引用和右值引用1.2 右值引用使用场景和意义1.3 右值引用引用左值及其一些更深入的使用场景分析1.3.1 完美转发 二、新的类功能三、可变参数模板 前言 本篇文章我们继续来聊聊C11新增的一些语法——右值引用,我们在之前就已…

马蹄集 oj赛(双周赛第二十七次)

目录 栈的min 外卖递送 奇偶序列 sort 五彩斑斓的世界 括号家族 名次并列 栈间 双端队列 合并货物 逆序对 活动分组 栈的min 难度:黄金巴 占用内存:128 M时间限制:1秒 小码哥又被安排任务了,这次他需要要设计一个堆栈,他除了可以满足正常的栈…

Spring Security整合Gitee第三方登录

文章目录 学习链接环境准备1. 搭建基本web应用引入依赖ThirdApp启动类创建index页面application.yml配置访问测试 2. 引入security引入依赖ProjectConfig访问测试 第三方认证简介注册gitee客户端实现1引入依赖application.yml配置文件创建index.html页面启动类InfoControllerPr…

【openlayers系统学习】3.4波段数学计算(计算NDVI)

四、波段数学计算(计算NDVI) 我们已经看到了如何使用 ol/source/GeoTIFF​ 源代码来渲染真彩色和假彩色合成。我们通过将缩放的反射率值直接渲染到红色、绿色或蓝色显示通道中的一个来实现这一点。还可以对来自GeoTIFF(或其他数据瓦片源&…

javaSwing购物系统项目(文档+视频+源码)

摘要 由Java swing实现的一款简单的购物程序,数据库采用的是mysql,该项目非常简单,实现了管理员对商品类型和商品的管理及用户注册登录后浏览商品、加入购物车、购买商品等功能,旨在学习Java 图形界面开发 系统实现 我们先来管理…

20240516-Flyme AIOS 特种兵发布会

目录 1 Flyme AIOS 2 路演功能 2.1 拖拽流转 2.2 任务剧本自定义 2.3 智能体商店 2.4 实况通知 2.5 AI壁纸 3 MYVU 3.1 翻译功能 3.2 AR导航-骑行 3.3 AI语音转文字-科技向善 3.4 Flyme AR-提词器增强 1 Flyme AIOS 1)目标:All in AI&#…

Android:OkHttp网络请求框架的使用

目录 一,OkHttp简介 二,OkHttp请求处理流程 三,OkHttp环境配置 四,OkHttp的使用 1.get网络请求 2.post上传表单数据 3.post上传json格式数据 4.文件上传 5.文件下载 一,OkHttp简介 OkHttp是square公司推出的一…

淘宝api接口是什么意思?api接口申请资格是什么?

淘宝其开放性和灵活性为开发者提供了广阔的创新空间。而淘宝API接口,作为连接淘宝平台与外部应用的桥梁,发挥着至关重要的作用。那么,淘宝api接口是什么意思? 一、淘宝API接口是什么意思? 淘宝API接口,全称…

UNI-APP设置屏幕保持常亮-不熄灭屏幕

前言 最近在实际开发过程中,我们会发现在自己使用的app当中会根据系统无操作熄灭屏幕对于一下需要长时间保持屏幕的业务就很不友好,uni-app也是提供了相应方法加上代码之后-注意app端没报错-不生效就是权限问题-需要设置相对应权限-打自定义包 代码实现…

vue+springboot实现echarts数据图统计

①vue项目修改配置 安装依赖: npm i echarts -S 修改路由index.js: import Vue from vue import VueRouter from vue-router import Manager from ../views/Manager.vue // 解决导航栏或者底部导航tabBar中的vue-router在3.0版本以上频繁点击菜单报错…

【编译原理复习笔记】语法分析-补充(二义性与LR错误处理)

二义性文法的 LR 分析 每个二义性文法都不是 LR 的 但是某些二义性文法更加简短,描述更方便 如 I7 和 I8 具有移进归约冲突 使用优先级和结合性解决冲突 对于 I7,由于乘号优先级高于加号,所以当下一个输入符号为乘号时,我们优…

03-02-Vue组件之间的传值

前言 我们接着上一篇文章 03-01-Vue组件的定义和注册 来讲。 下一篇文章 04-Vue:ref获取页面节点–很简单 父组件向子组件传值 我们可以这样理解:Vue实例就是一个父组件,而我们自定义的组件(包括全局组件、私有组件)…

Java基础入门day49

day49 tomcat 启动 进入tomcat的bin目录,双击或者运行startup.bat文件启动tomcat 控制台最后出现服务器启动在多少毫米之内,代表服务器成功启动 org.apache.catalina.startup.Catalina.start Server startup in 405 ms 验证tomcat 在浏览器中输入 loca…

linux---进程通信

提示:以下是本篇文章正文内容,下面案例可供参考 一、匿名管道 进程之间的通信目的一般是来控制另一个进程。也可以用来实现数据的交流,还有资源共享等。 匿名管道原理: (铺垫)进程之间是具有独立性&…