HTTPS协议详解

news2024/12/23 10:33:43

https是http over TLS(transport security layer)的缩写。也即说明http协议是不安全的,是TLS协议保证的安全。协议层级图如下:

我们常说https协议是安全的,主要是指两点:

  • 第一,通信两端可以进行身份验证。
  • 第二,数据传输过程安全。

既然提到身份验证和传输安全就不得不提加密算法和数字证书机制。

加密算法主要分为对称加密算法与非对称加密算法。所谓对称加密算法,加密、解密使用相同的密钥,常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。相应的非对称加密算法用于加密、解密的密钥是一对儿,如果用其中一个来加密,只能用另外一个来解密,反之亦然,常用的算法有:RSA、DSA、ECC、DH等。

TLS还涉及到到了摘要算法MAC(message authentication code),用以确保传输过程中的数据没有被修改替换。摘要算法也需要一个密钥,不过这个密钥不是用来做加解密的,而是用来做生成摘要时的盐。摘要算法是一个单向函数,不能通过摘要反解出原内容。常用的算法有:CRC、MD5、SHA等。

数字证书是一个认证体系。我们经常接触的银行U盾,企业登陆社保公积金网站时用到的电子证书等, 都是数字证书。数字证书由CA(certificate authority)机构颁发,有有效期, 到期需要更换,且是付费的。证书的生成就是依赖上文所述的非对称加密算法。颁发一个证书就是生成一对密钥,然后用CA机构的数字证书(私钥)进行签名认证,以此来保证数字证书的合法性。私钥保留在申请者手里,要保证私钥绝对安全,不能被别人获取,所以我们会采用很多的方式来保护私钥。公钥则是对外公布使用的。

数字证书还有根证书证书链两个概念。终端证书是由CA机构的证书进行签发的,那么CA机构的证书又是谁签发的?怎么验证CA机构证书的合法性?结构如下:

final certificate <--> CA certificate <--> CA certificate <--> CA.... <-->root certificate

终端证书由CA证书签发,这个CA证书由另外一个CA证书签发,循环往上,直至根证书。那么根证书由谁签发的呢?根证书是一个自签名证书。那么根证书怎么认证呢?这就靠相关实现自己维护了(比如以约定的方式:我说它是合法的根证书,它就是合法的根证书)。以chrome浏览器为例,chrome浏览器维护有一个根证书库:https://chromium.googlesource.com/chromium/src/+/main/net/data/ssl/chrome_root_store/root_store.md

然后chrome浏览器会将根证书缓存在本地

数字证书验证过程如下(以浏览器为例),注意不是身份验证哈:

  1. 浏览器访问某个服务器,要求服务器下发自己的数字证书(终端证书),实际上是下发证书链,但不包含根证书。
  2. 浏览器从服务器证书开始,依次用后一个CA证书对前一个证书进行验证,直至最后一个CA证书,这时浏览器就从本地根证书池去查找这个CA证书的签发证书,进行验证。如果通过,则表明服务器证书合法。

数字签发过程是用私钥加密,验证过程是用公钥解密,如果能解析,则表明证书合法

 

https://datatracker.ietf.org/doc/html/rfc2817

https://datatracker.ietf.org/doc/html/rfc2818

https://datatracker.ietf.org/doc/html/rfc3749https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.8

https://www.cloudflare.com/zh-cn/learning/ssl/what-happens-in-a-tls-handshake/

https://blog.csdn.net/Dancen/article/details/120979520

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

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

相关文章

复习一周,面了京东和百度,不小心都拿了Offer...

我个人情况是5年软件测试经验&#xff0c;在家复习了一周&#xff0c;面了京东和百度&#xff0c;都顺利拿下offer&#xff0c;下面是我的面试经历分享&#xff0c;希望能带来一些不一样的启发和帮助。 两家公司最常问的就是下面这些问题&#xff1a; 请介绍一下你之前做过哪些…

万用表位数的定义以及对应的ADC位数

万用表的精度通常会用几位半来描述&#xff1a; 比如大部分普通的万用表是 3 / 的精度&#xff0c;也就是俗称的3位半。 也就是说这个万用表最多显示4个数字&#xff0c;其中3位可以显示完整的0~9&#xff0c; 而这位是4个数字中的最高位&#xff0c;2代表只能显示0和1两个数…

【OAI】OAI5G核心网VPP-UPF网元分析

文章目录 VPP_UPF_CONFIG_GENERATION.mdVPP UPF Configuration GenerationEnvironment variablesInterfacesInterface Configuration ExamplesCentral UPFA-UPFI-UPFUL CL FEATURE_SET.mdVPP_UPG_CLI参考文献 VPP_UPF_CONFIG_GENERATION.md VPP UPF Configuration Generation …

(十三)地理数据库创建——进一步定义数据库①

地理数据库创建——进一步定义数据库① 目录 地理数据库创建——进一步定义数据库① 1.建立索引1.1建立属性索引1.2修改空间索引 2.创建子类和属性域2.1属性域2.2子类型2.3属性分割和合并2.4属性域操作2.4.1建立属性域2.4.2修改属性域2.4.3关联属性域 2.5子类型操作2.5.1建立子…

动态规划--青蛙跳台阶

青蛙跳台阶 前言青蛙跳台阶题目最优解结构性质画图分析发现规律验证规律 动规表达式青蛙跳台阶与斐波那契数列的不同之处 递归实现代码实现测试结果递归过程画图分析 非递归实现代码实现对比分析 前言 斐波那契数列每次学都有不一样的体会&#xff0c;从最开始简单理解就是&am…

无监督域适应 (UDA)(2)

本帖介绍UDA 的一个分支&#xff1a;bi-classifier adversarial learning。 一、回顾 在介绍 bi-classifier adversarial learning 之前&#xff0c;先来回忆一下 adversarial generation framework, 因为前者是基于后者的改进。 如图1所示&#xff0c;左边表示的是1&#xf…

DeepSORT 论文精读

摘要 SORT&#xff08;Simple Online and Realtime Tracking&#xff09; we integrate appearance information to improve the performance of SORT 集成外观信息来提高SORT的表现 we are able to track objects through longer periods of occlusions, effectively reduci…

JVM学习05:内存模型

JVM学习05&#xff1a;内存模型 1、java内存模型 很多人将java 内存结构与java 内存模型傻傻分不清&#xff0c;java 内存模型是 **Java Memory Model&#xff08;JMM&#xff09;**的意思。 JMM 定义了一套在多线程读写共享数据时&#xff08;成员变量、数组&#xff09;时…

UE4/5对背景音乐的调整设置

音乐是一个游戏必不可少的因素。 而在游戏设置中&#xff0c;必不可少的就有对背景音乐的声音大小进行设置&#xff0c;而我们需要的就是如何对背景音乐进行设置&#xff1a; 准备两个蓝图&#xff0c;分别是音效类和音效类混合。 然后打开音效类&#xff0c;我们可以看见下图…

如何用postman进行http接口测试,这篇文章绝对会颠覆你的认知

目录 前言 优点&#xff1a; 1、什么是POSTMAN 2、新建一个项目 2、新增一个用例 3、添加请求信息 4、post请求参数 5、添加头信息 6、预处理和结果检查 7、全局变量与环境变量 8、导出用例为代码 9、批量执行用例 前言 HTTP的接口测试工具有很多&#xff0c;可以进…

贪心法——黑白连线问题

一、问题描述 黑白连线Time Limit: 1000 MSMemory Limit: 1000 KB Description 给定直线上2n个点的序列P[1,2,… ,2n]&#xff0c;每个点P[i]要么是白点要么是黑点&#xff0c;其中共有n个白点和n个黑点&#xff0c; 相邻两个点之间距离均为1&#xff0c;请设计一个算法将每…

第六章:C语言的数组

在我的生活中&#xff0c;有许许多多的东西&#xff0c;有强迫症的小伙伴们&#xff0c;喜欢把它们分类到一个地方保存&#xff0c;这样一来&#xff0c;用的时候就按分类的形式来找自己需要的东西&#xff0c;而C语言也是如此&#xff0c;当有多个整形的数字是&#xff0c;就可…

steam搬砖详细解说,CSGO游戏搬砖的18个疑问?

看到这边文章进来的都是想了解steam搬砖&#xff0c;做个副业&#xff0c;我希望你可以认真把这个看完再考虑要不要做&#xff0c;适不适合自己去做&#xff0c;首先steam搬砖这个项目是需要有周转本金的&#xff0c;因为需要购买饰品道具&#xff0c;至于多少&#xff0c;这个…

7种《软件测试用例设计方法》解读及工作场景解析

1、等价类划分法 等价类划分法是一种将输入、输出、内部值等划分为若干个等价类的黑盒测试设计技术。在这种方法中&#xff0c;我们假设同一等价类的数据会被程序以相同的方式处理。 例如&#xff1a;一个允许输入年龄的程序&#xff0c;允许的年龄范围是1到100。在这种情况下…

Vue Test Utils前端单元测试

含义 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证。在提供了经过测试的单元的情况下&#xff0c;系统集成过程将会大大地简化。流行框架 Mocha (https://mochajs.cn/)、Jest (https://www.jestjs.cn/) Mocha Chai…

asp.net web api 后端服务器在调试时跨域问题的解决方案

跨域在发布时&#xff0c;在iis设置中 https://www.cnblogs.com/babietongtianta/p/6488985.html 在开发调试时&#xff0c;program.cs中添加 和各种方法&#xff0c;都不可以。 后来在iisexpress中设置&#xff0c;解决了。 在右下角iisexpress 右键 双击打开applicationho…

PCL学习十:Segmentation-分割

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 PCL点云库学习笔记&#xff08;文章链接汇总&#xff09; 1. 引言 点云分割是根据空间、几何和纹理等特征对点云进行划分&#xff0c;使得同一划分区域内的点云拥有相似的特征。点云的有效分割往往是许多应用的前提&#…

【OAI】部署5GSA独立组网网络切片例程及例程解析

文章目录 摘要引言关键技术介绍5G核心网核心网网元功能 网络切片OAIDocker官方例程详解整体介绍具体详解网络切片架构部署概览与说明1-41.预先准备5.部署OAI 5G核心网6.获取基站仿真docker镜像7.部署基站仿真8.通信测试9.分析结果10. 使用多切片的UE11. 解除部署11.1解除RAN部署…

面了一个4年经验的测试员,一问三不知还反过来怼我?

金三银四期间&#xff0c;我们公司也开始大量招人了&#xff0c;我这次是公司招聘的面试官之一&#xff0c;主要负责一些技术上的考核&#xff0c;这段时间还真让我碰到了不少奇葩求职者 昨天公司的HR小席刚跟我吐槽&#xff1a;这几个星期没有哪天不加班的&#xff01;各种招…

(8)Qt---数据库

目录 1. Qt数据库简介 2. 连接与关闭 3. 建表 4. 增删改 5. 查询 6.银行管理系统程序代码(包含增删改查) 1. Qt数据库简介 Qt只是作为媒介去操作数据库&#xff0c;本身不具备数据库的功能&#xff0c;因此除了Qt以外&#xff0c;还需要在计算机中安装对应的数据库软件&#xf…