网络安全通信HTTPS原理

news2024/12/19 16:43:25

背景

HTTPS并不是一个全新的协议,而是为了保证网络通信的数据安全,在HTTP的基础上加上了安全套件SSL的一个数据通信协议。

HTTP协议全称为HyperText Transfer Protocol即超文本传输协议,是客户端浏览器与Web服务器之间的应用层通信协议。HTTPS协议全称为HyperText Transfer Protocol over Secure Socket Layer即基于SSL层的超文件传输协议,HTTPS的安全是通过SSL实现的,数据传输是依赖HTTP。


一、HTTP传输风险

由于HTTP为明文传输所以存在一下安全风险:

1.1 窃听风险:第三方窥探通信内容
1.2 篡改风险:第三方修改通信内容
1.3 冒充风险:第三方冒充其他身份进行通信

二、HTTPS通信过程

为了解决通信安全问题,HTTPS加入了SSL/TSL安全通信组件,SSL/TSL采用数字证书、非对称加密和对称加密来保证通信安全。

在这里插入图片描述

1.通信过程

a.客户端向服务端发起通信请求
b.服务端返回SSL/TSL证书,其中包括服务端的公钥和CA机构信息等
c.客户端需要验证证书的有效性,并从证书中提取服务端公钥
d.客户端与服务端协商接下来通信过程中的对称加密算法和对称密钥,内容需要用服务端的公钥进行加密
e.服务端用私钥对客户端发来的信息用服务端私钥解密,然后保存对称加密算法和对称密钥,然后返回用对称密钥加密后返回信息给客户端,告知已经收到密钥

接下来客户端和服务端就用协调之后的对称密钥进行加密通信。

2.证书验证

验证证书主要是确定证书的真实和未篡改,而证书的验证需要用到CA的公钥,而CA的公钥有需要安全传递,仿佛进入了一个循环。因此需要一个统一的信任的第三方,因为此操作系统会预制安装一些根证书,根证书是可以完全信任的,因此根据授权树形结构向上查找CA直到根证书,然后逐级验证即可验证当前证书的有效性。

在这里插入图片描述
其中CA证书授权中心可以认为是一个树形结构,服务端只要向其中任意一个CA申请证书即可,申请证书需要提交公钥,私钥自己保存。CA会用CA自己的私钥对证书内容进行签名【保证来源和信息不篡改】。

当客户端拿到服务端返回的服务端证书时,需要根据证书的发放授权中心,找到此授权中心的公钥/证书,不断向上寻找,直到找到系统预制的根证书,此根证书的公钥认为是可靠的。根据根CA的公钥对下级证书进行逐级验证,最后即可验证服务端证书正确性。


参考

1.https://www.evget.com/article/2017/3/30/26027.htm
2.https://www.jianshu.com/p/887859661be6

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

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

相关文章

秘钥失效问题

一、发现问题 问题如下图代码: $ ssh root108.61.163.242 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is …

前端入门学习

封装axios axios的基础使用 axios基础使用方法: axios.create({config}) //创建axios实例 axios.get(url,{config}) //get请求 axios.post(url, data,{config}) //post请求 axios.interceptors.request.use() // 请求拦截器 axios.interce…

华为OD机试真题 Java 实现【高矮个子排队】【2023Q2 100分】,附详细解题思路

一、题目描述 现在有一队小朋友,他们高矮不同,我们以正整数数组表示这一队小朋友的身高,如数组{5,3,1,2,3}。 我们现在希望小朋友排队,以“高”“矮”“高”“矮”顺序排列,每一个“高”位置的小朋友要比相邻的位置高…

工业相机分类、相关参数含义

一、工业相机参数 1、分辨率 分辨率是相机最基本的参数,由相机所采用的芯片分辨率决定,在采集图像时,相机的分辨率对检测精度有很大的影响,在对同样大的视场(景物范围)成像时,分辨率越高&…

高阶数据结构 ——— 图

文章目录 图图的基本概念图的存储结构邻接矩阵邻接表 图的遍历广度优先遍历深度优先遍历 最小生成树Kruskal算法Prim算法 最短路径单源最短路径-Dijkstra算法单源最短路径-Bellman-Ford算法多源最短路径-Floyd-Warshall算法 图 图的基本概念 图的基本概念 图是由顶点集合和边的…

【软件测试】cookie、session和token的区别

今天就来说说session、cookie、token这三者之间的关系!最近这仨玩意搞得头有点大 为什么会有它们三个 我们都知道 HTTP 协议是无状态的,所谓的无状态就是客户端每次想要与服务端通信,都必须重新与服务端链接,意味着请求一次客户…

win10 链接github

https://github.com.ipaddress.com/ 在链接里面找到ip 打开系统host文件 Windows 系统:C:\Windows\System32\drivers\etc\hosts Linux 系统:/etc/hosts Mac(苹果电脑)系统:/etc/hosts Android(安卓&#x…

实战-基于Jenkins+K8s构建DevOps平台(九)

实验步骤如下: 第一部分:安装持久化存储nfs 1、在k8s-master和k8s-node1上安装nfs服务 [rootk8s-master ~]# yum install nfs-utils -y [rootk8s-master ~]# systemctl start nfs [rootk8s-master ~]# systemctl enable nfs [rootk8s-node1 ~]# yum …

深度学习-第T9周——猫狗识别

深度学习-第T9周——猫狗识别 深度学习-第T9周——猫狗识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1.1、设置图片格式1.2、划分训练集1.3、划分验证集1.4、查看标签1.5、再次检查数据1.6、配置数据集 2、数据可视化 五、搭建…

2023下半年软考中级考试科目-2023年11月软考中级科目难度排行

软考中级资格考试科目分为基础知识和应用技术,基础知识在上午考试,应用技术在下午考试,两个科目的考试题型也有所不同。 基础知识考试题型为客观选择题,共计75道选择题,每小题1分;应用技术为主观问答题&am…

组合数学第五讲

Catalan numbers(卡特兰数) 先通过平衡括号引入卡特兰数序列的概念 1,2,5,14,...,这些数构成了卡特兰数序列,分别代表一共有i个括号时,括号排列构成的合法方案数【从左到右如果所有括号都能依次配对即是合…

【微服务项目】Spring Cloud Alibaba 实战

Spring Cloud Alibaba 实战 一、目标 理解什么是微服务架构理解什么是springcloud及spring cloud alibaba和springcloud的关系掌握使用springcloud alibaba 实现微服务远程调用掌握使用springcloud alibaba 实现服务注册与发现掌握使用springcloud alibaba 实现基本的服务配置…

240:vue+openlayers上传CSV文件,在地图上显示信息

第240个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers上传CSV文件,在地图显示,点击点后,显示点信息。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果使用的csv…

玩转ChatGPT:制作AI播报视频

一、写在前面 羊了几天,上线就发现,GPT的第三方插件的数量越来越多,使得官方推出了搜索功能: 我逛了一圈,发现这个插件挺有意思,用来生成AI语音播报视频的。 下面给大家尝尝鲜。 二、实战过程 &#xff0…

k8s pvc详解

一、概述 PVC 的全称是:PersistentVolumeClaim(持久化卷声明),PVC 是用户存储的一种声明,PVC 和 Pod 比较类似,Pod 消耗的是节点,PVC 消耗的是 PV 资源,Pod 可以请求 CPU 和内存&am…

移动端做安全测试的重要性

安全性测试的目的是发现危害手机中数据的安全和完整性的错误和缺陷。发现安全错误通常是比较困难的,软件通常功能运行正常但却不安全。 一、软件权限 APP软件权限包括:网络通信、信息发送、自动启动、 媒体录制、读取用户信息、写入用户数据等权限,因关系到用户个人信息和隐私…

Java开发手册中为什么建议初始化HashMap的容量大小,以及HashMap源码中相关参数(容量大小设置参数公式)说明

场景 Java开发手册中对于HashMap的推荐如下: 【推荐】集合初始化时,指定集合初始值大小。 说明:HashMap 使用 HashMap(int initialCapacity) 初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可。…

2023年前端面试题汇总-数据结构(链表)

1. 链表的概念 1.1. 链表的结构 在计算机里,不保存在连续存储空间中,而每一个元素里都保存了到下一个元素的地址的数据结构,我们称之为链表(Linked List)。链表上的每一个元素又可以称它为节点(Node&…

【大数据之Hive】六、Hive之metastore服务部署

metastore为Hive CLI或Hiveserver2提供元数据访问接口。 1 metastore运行模式 metastore运行模式有两种,嵌入式模式和独立服务模式。 (1)嵌入式模式 将metastore看作一个依赖嵌入到Hiveserver2和每一个HiveCLI客户端进程,使得Hi…

零基础开发小程序第六课-删除数据

目录 1 物理删除数据2 逻辑删除数据总结 我们上一篇介绍了修改数据,本篇介绍一下删除数据。一般的小程序如果提供给管理员使用的功能,通常会有删除数据的功能。 删除数据有真删除和假删除的区别。那什么是真删除呢?真删除就是把这条数据从数据…