Linux网络——HTTPS详解

文章目录

    • HTTPS
      • 加密
    • 常见加密方式
      • 对称加密
      • 非对称加密
      • 非对称+对称
      • 数据指纹
    • 证书
      • CA认证
      • 数字签名
      • 非对称+证书+对称
    • 中间人

HTTPS

这也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层

为什么要加密呢,这主要是因为如果不对传输主体加密,当中间人拿到数据后,可以对其中的关键内容进行保存甚至篡改

例如说把服务器ip改成自己的,假装自己是服务器跟你通信

加密

加密就是把明文转换成暗文,解密则相反

在加密和解密的过程中可能需要某些数据进行辅助,这些数据称为密钥

例如说我们双方通信规定和把数据对114514按位异或

我要传输5201314这个数据,异或之后就是5169904

然后这个数据在网络上传输

你收到5169904之后,再对114514按位异或,就能得到5201314了

这样我们其实就完成了一次加密通信,但是实际情况远比这个复杂

常见加密方式

对称加密

刚刚我们传输的这个过程其实就是对称加密,我们使用了同一个密钥114514,也称之为单密钥加密

常见的由DES 3DES AES TDEA Blowfish RC2

这种加密的方式好处就是计算量小,当然是对于计算机来说

速度快,算法公开,加密效率高

但是有一个问题,我要怎么让你知道我使用的是什么方式加密呢

直接写在明文里吗,那这样别人拿到不也能解密

除此之外,服务器也不能记住所有客户端的密钥,那也太二了

因此这个方式是有很大问题的

非对称加密

这个方式就是说,一个密钥不够用了,那我们设置两个吧

一个是公开密钥,另一个是私有密钥

公开密钥谁都能拿到,谁都能用,但是私有密钥只有我自己用

信息用公钥进行加密,编程密钥,用私钥进行解密,变成明文

但是私钥公钥的加解密非常复杂,而且涉及到数论的知识,实际上运算速度也很慢

非对称+对称

因为如果双方都只使用非对称加密,这样做效率十分低下,而且也是有安全问题的

因此还是需要对称加密的

流程是这样的,当客户端和服务器第一次交流时,客户端获取到服务器中生成的公钥S,而服务器自身有私钥S’

而客户端在本地也生成一个对称加密的密钥C,用公钥S加密之后传递给服务器

之后他俩传递信息就用的是这个对称加密的密钥C

但是这样安全吗??

也不安全,如果中间人就盯着你们俩

中间人也准备了公钥M,私钥M’

当客户端给服务器发送请求时,服务器需要把自己的公钥S返还给客户端

这个时候中间人就拿到报文,偷偷存了一份公钥S,然后进行替换!把服务器的公钥S换成自己的公钥M,然后传给客户端

此时客户端也不道啊,蒙在鼓里,自己的C用M加密,再发回去

中间人用M’解密,得到C,再用S加密传给服务器

这样做双方的交流过程其实是完全在中间人的眼里的!!

数据指纹

数据指纹本身并不是加密的机制,而是一种思想

将数据或者数据的一部分,通过哈希算法生成一串固定的内容

我们可以使用这种思想来存储或者查找数据,因为一旦数据的内容不同了,哈希生成的结果就不同了

证书

既然上面说的非对称加密都不安全了,还有解决方案吗

实际上产生这些问题的原因就是无法确定收到的那个公钥是服务器的还是中间人的

因此我们只需要让服务器的公钥有一个特别显眼的标识

CA认证

服务器在使用HTTPS之前,需要像CA机构申请一份数字证书,里面包含了证书申请者的各种信息,签发信息、域名、申请者、有效时间、最重要的是公钥

就像开锁师傅一定都是在公安局备案过的一样

CA认证也就是权威认证机构颁发的证书,平台也会特定审查,这个认证过程都挺繁琐的,一般也都是找第三方平台帮忙解决

数字签名

数字签名其实就是对数据指纹进行加密,主要是用于验证的,防止数据被篡改

当我们生成了认证证书之后,如何防止证书被篡改呢

CA机构把证书的内容进行数据指纹的提取,然后用CA机构私钥加密,得到一个数字签名

跟随着证书一起发去,当对方收到这些之后,用公钥对数据签名进行解密,然后和证书进行比对,一旦出现差错,就说明证书有问题

这样做,即便是服务器自身想要修改公钥都是不行的,只能向CA机构申请,因为数字签名是由CA私钥生成的,一旦篡改就会被认为不安全

非对称+证书+对称

当客户端访问服务器时,服务器会给客户端返回这个证书

客户端会对证书进行校验,防止证书伪造

判断证书的有效期,颁发机构是否信任,证书是否篡改

这样就能确认公钥一定是服务器的而非中间人的了,后面的对称也都是安全的了

中间人

这时候中间人如果想要篡改证书几乎是不可能的了

如果说是要掉包证书,不能只改公钥,因为哈希值不一样,他没有服务器的私钥,算不出来正确的哈希值

只能向CA机构申请真的证书来掉包

但是真证书里面是有服务器的域名认证信息的,客户端收到之后就一脸蒙蔽

再其次这个申请确实麻烦,需要成本

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

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

相关文章

鹏哥C语言53---第8次作业:函数传参

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> //--------------------------------------------------------------------------------------------- 第 8 次作业 函数传参等 //-----------------------------------------------------…

2024中国新能源汽车零部件交易会,开源网安展示了什么?

近日&#xff0c;2024中国新能源汽车零部件交易会在十堰国际会展中心举行。开源网安车联网安全实验室携车联网安全相关产品及解决方案亮相本次交易会&#xff0c;保障智能网联汽车“车、路、云、网、图、边”安全&#xff0c;推动智能网联汽车技术突破与产业化发展。 中国新能源…

【深度学习】(7)--神经网络之保存最优模型

文章目录 保存最优模型一、两种保存方法1. 保存模型参数2. 保存完整模型 二、迭代模型 总结 保存最优模型 我们在迭代模型训练时&#xff0c;随着次数初始的增多&#xff0c;模型的准确率会逐渐的上升&#xff0c;但是同时也随着迭代次数越来越多&#xff0c;由于模型会开始学…

【从0开始自动驾驶】用python做一个简单的自动驾驶仿真可视化界面

【从0开始自动驾驶】用python做一个简单的自动驾驶仿真可视化界面 废话几句废话不多说&#xff0c;直接上源码目录结构init.pysimulator.pysimple_simulator_app.pyvehicle_config.json 废话几句 自动驾驶开发离不开仿真软件成品仿真软件种类多https://zhuanlan.zhihu.com/p/3…

【CSS】鼠标 、轮廓线 、 滤镜 、 堆叠层级

cursor 鼠标outline 轮廓线filter 滤镜z-index 堆叠层级 cursor 鼠标 值说明值说明crosshair十字准线s-resize向下改变大小pointer \ hand手形e-resize向右改变大小wait表或沙漏w-resize向左改变大小help问号或气球ne-resize向上右改变大小no-drop无法释放nw-resize向上左改变…

蓝桥杯1.小蓝的漆房

样例输入 2 5 2 1 1 2 2 1 6 2 1 2 2 3 3 3样例输出 1 2 import math import os import sys tint(input())#执行的次数 for j in range(t):n,kmap(int,input().split())#n为房间数 k为一次能涂的个数alist(map(int,input().split()))#以列表的形式存放房间的颜色maxvaluemath…

处理RabbitMQ连接和认证问题

在使用RabbitMQ进行消息队列管理时&#xff0c;我们可能会遇到各种连接和认证问题。本文将介绍如何诊断和解决这些问题&#xff0c;并通过使用RabbitMQ的管理端进行登录验证来确保配置正确。 1. 问题概述 在最近的一次部署中&#xff0c;我们遇到了两个主要问题&#xff1a; …

IPSec隧道协议学习(一)

前情回顾 前面介绍的GRE隧道协议&#xff0c;可以字LAN之间通过Internet建立隧道&#xff0c;实现网络间资源共享&#xff0c;但是GRE隧道协议不能实现加密功能&#xff0c;传输的数据不受加密保护&#xff0c;为了实现在隧道间传输数据包收到加密保护&#xff0c;需要使用IPS…

GitLab发送邮件功能详解:如何配置自动化?

GitLab发送邮件的设置指南&#xff1f;怎么优化GitLab发送邮件&#xff1f; GitLab作为一个强大的代码管理平台&#xff0c;不仅提供了代码托管、CI/CD等功能&#xff0c;还集成了发送邮件的功能&#xff0c;使得开发团队能够及时获取项目动态。AokSend将详细介绍如何配置GitL…

Spring 的依赖注入原理

Spring 的依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;是其核心特性之一&#xff0c;它的主要作用是管理对象之间的依赖关系&#xff0c;降低对象之间的耦合度&#xff0c;提高代码的可维护性和可测试性。其原理如下&#xff1a; 一、基本概念 控制反…

代码随想录 -- 回溯 -- 非递减子序列

491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;重点是去重 收集结果&#xff1a;每次进入递归先判断path中的元素数量&#xff0c;如果大于1了&#xff0c;就将path收集到result中。 递归参数&#xff1a;nums&#xff0c;index&#xff0c;pa…

2024 go-zero社交项目实战

背景 一位商业大亨&#xff0c;他非常看好国内的社交产品赛道&#xff0c;想要造一款属于的社交产品&#xff0c;于是他找到了负责软件研发的小明。 小明跟张三一拍即合&#xff0c;小明决定跟张三大干一番。 社交产品MVP版本需求 MVP指&#xff1a;Minimum Viable Product&…

职场能力强的人都在做什么---今日头条

【职场里,能力强的人都在做哪些事... - 今日头条】https://m.toutiao.com/is/ikn6kt9q/ 知识雷达 2024-09-21 16:33 目录 职场里,能力强的人都在做哪些事呢? 1、复盘; 2、多角度思考;3、记录信息; 4、永远积极主动;5、主动获取信息差; 6、明确人和人的关系;7、…

ISO8583包简介(一)

简介 ISO8583包&#xff08;简称8583包&#xff09;是一个国际标准的包格式&#xff0c;最多由128个字段域组成&#xff0c;每个域都有统一的规定&#xff0c;并有定长与变长之分。8583包前面一段为位图&#xff0c;用来确定包的字段域组成情况。 其中位图是8583包的灵魂&#…

【Altium Designer程序开发】BGA芯片自动扇出

BGA自动扇出功能支持将BGA器件从4个方向上扇出&#xff0c;里面有无空白区域均可支持&#xff0c;执行速度非常快&#xff0c;通常在秒级的时间内即可处理完成&#xff0c;程序可以通过以下几种方式启动。 ➡️支持从菜单栏启动 ➡️支持从工具栏启动 ➡️支持从服务器面板启动…

Go weak包前瞻:弱指针为内存管理带来新选择

在介绍Go 1.23引入的unique包的《Go unique包&#xff1a;突破字符串局限的通用值Interning技术实现》一文中&#xff0c;我们知道了unique包底层是基于internal/weak包实现的&#xff0c;internal/weak是一个弱指针功能的Go实现。所谓弱指针(Weak Pointer&#xff0c;也称为弱…

HarmonyOS鸿蒙开发实战(5.0)自定义路由栈管理

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

真实数据,告诉你3S相关专业本硕毕业生就业去向

本期推文将基于2015届-2023届3S相关专业毕业生&#xff08;包括本硕博所有毕业生&#xff09;的生源地、性别分布、行业岗位等数据进行分析&#xff0c;为各位同学提供一些参考&#xff0c;希望可以对各位同学的职业规划与有一定的帮助。 GIS开发资料分享https://www.wjx.cn/v…

10.Lab Nine —— file system-上

首先切换分支到fs git checkout fs make clean 预备知识 mkfs程序创建xv6文件系统磁盘映像&#xff0c;并确定文件系统的总块数&#xff0c;这个大小在kernel/param.h中的FSSIZE写明 // kernel/params.h #define FSSIZE 200000 // size of file system in blocks Make…

牛客小白月赛101

考点为&#xff1a;A题 滑动窗口、B题 栈、C题 找规律、D 差分、E 筛约数。C题可能会卡住&#xff0c;不过手搓几组&#xff0c;或者模拟几组规律就显而易见了 A&#xff1a; 思路&#xff1a; 无论去头还是去尾&#xff0c;最后所留下的数据长度一定为&#xff1a;n - k &am…