Linux-Https协议

news2024/11/24 13:45:21

文章目录

  • 前言
  • 一、Https协议
  • 二、常见的加密方式
    • 对称加密
    • 非对称加密
    • 数据摘要&&数据指纹
    • 中间人攻击
  • 三、Https的加密历程
    • 方案1-只使用对称加密
    • 方案2-只使用非对称加密
    • 方案3-双方都使用非对称加密
    • 方案4-非对称加密+对称加密


前言

之前我们学习了Http协议,也试着做了一个HttpServer。所以对于Http我们也有了一个比较清晰的认识。


一、Https协议

之前我们在实现一个HttpServer的时候,我们所做的网络传输的数据都是没有任何加密的。

不做任何加密会有什么风险?

  1. 一旦被拦截,里面的数据一览无余。
  2. 可以劫持报文数据,将报文数据做篡改。

Https也是⼀个应用层协议,是在Http协议的基础上引⼊了⼀个加密层。

截止到目前,我们现在浏览的大部分网站都是采用Https协议,http协议正在逐步隐退。

二、常见的加密方式

对称加密

• 采用单钥密码系统的加密方法,同⼀个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密,特征:加密和解密所用的密钥是相同的。

• 常见对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等。

• 特点:算法公开、计算量小、加密速度快、加密效率高。

对称加密其实就是通过同⼀个"密钥",把明文加密成密文,并且也能把密文解密成明文。

⼀个简单的对称加密,按位异或。

非对称加密

需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
• 常见非对称加密算法(了解):RSA,DSA,ECDSA。
• 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
• 通过公钥对明文加密,变成密文
• 通过私钥对密文解密,变成明文
也可以反着用
• 通过私钥对明文加密,变成密文
• 通过公钥对密文解密,变成明文

数据摘要&&数据指纹

• 数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹并不是一种加密机制,但可以用来判断数据有没有被篡改。

• 摘要常见算法:有MD5、SHA1、SHA256、SHA512等,算法把无限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率非常低)。

• 摘要特征:和加密算法的区别是,摘要严格来说不是加密,因为没有解密,只不过从摘要很难反推原信息,通常用来进行数据对比。

怎么理解呢? 就像我们上一章将到的Cookie,现在很多企业所保存的Cookie内容其实是session ID, 既然我们要保证用户每一个人都必须保证唯一的session ID,我们就可以采用这种数据摘要的方式来生成用户的唯一session ID。

还有一种应用于云盘当中, 如果我们宿舍4个人都想要在云盘中保存一个教学视频,舍友A率先保存,花费了一个小时才上传到云盘。云盘服务器通过读取该视频二进制数据,生成一个唯一的摘要文件,存入到数据库中。
而当舍友B、C、D也想上传到云盘时,云盘会先读取计算机本地视频的二进制内容,通过同样的算法也生成一个摘要文件,而云盘只需要先上传这个摘要文件,再将它与数据库进行查找,如果找到,那就没有必要再存放一份相同的视频到它的服务器当中。 而是生成一个类似于软链接的文件,这样舍友B、C、D就成功实现秒传。

中间人攻击

Man-in-the-MiddleAttack,简称“MITM攻击”。
日常生活中我们进行网络通信并不是直接向服务器直接发送信息,而是先发送消息给路由器,路由器再发送给运营商,运营商再发给目标服务器。

所以在这里运营商和路由器就是中间人。

所以,如果我们不对数据进行加密的话,中间人可以将我们所传送的报文数据一览无余。

而如果中间人怀有恶意的话,中间人不一定就是运营商,也有可能是一些恶意的VPN,恶意的钓鱼WIFI,恶意的网络热点,恶意的钓鱼网站。就会导致你的隐私泄露或者报文数据被劫持篡改。

三、Https的加密历程

加密方法总是伴随着被破解->改进->被破解->改进…
所以Https在这样的历程中,有过这么几种加密方案。

方案1-只使用对称加密

因为对称加密是客户端和服务器需要约定好各自维护同一份密钥,但是对于客户端,客户端的秘钥是尽量不一样的,因为一旦客户端的秘钥都是相同的,黑客只需要破解一个客户端秘钥,就等于拿到了所有客户端的秘钥。
所以,这就需要服务器同时维护多个秘钥,会产生巨大的负担。且在维护关联关系也是十分麻烦。

方案2-只使用非对称加密

非对称加密需要双方各自持有公钥和私钥,只使用非对称加密的方式,私钥一般都是由服务器来持有,公钥也是服务器在收到请求时,响应给客户端时发送过去的。

图示如下

在这里插入图片描述
这就是客户单和服务器一次交互的流程。但是这并不安全,因为如果存在中间人,就会是这样。
在这里插入图片描述
中间人也能持有公钥S,且不能保证服务器发送给客户端的报文安全。

方案3-双方都使用非对称加密

  1. 服务端拥有公钥S与对应的私钥S’,客户端拥有公钥C与对应的私钥C’。
    客户端和服务端交换公钥。

  2. 客户端给服务端发信息:先用S对数据加密,再发送。只能由服务器解密,因为只有服务器有私钥S’。

  3. 服务端给客户端发信息:先用C对数据加密,再发送。只能由客户端解密,因为只有客户端有私钥C’。

这种方案虽然可行,但是效率很低,而且也存在安全问题。

这里直接贴出有恶意中间人的图示。

在这里插入图片描述

这里的恶意中间人如果自己携带自己的公钥M和私钥M’,方案3就十分不安全。

方案4-非对称加密+对称加密

方案4是针对于方案3 效率低下 的改进,但是也仍然存在和方案3 一样的安全问题。

在这里插入图片描述

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

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

相关文章

Bug:SSH Failed Permission Denied(完美解决)

Bug:SSH Failed Permission Denied(完美解决) 今天我本机mac通过ssh访问linux服务器时报错:SSH Failed Permission Denied 思路: linux服务器sshd是否开启linux /etc/ssh/sshd_config配置是否正确(是否开启…

YouTube583美元账户做到一千多万美元,125万粉的顶级交易员

油管125万粉丝的Ross Cameron,一位把583美元账户做到一千多万美元。他说他曾经也是像无头苍蝇一样交易,最终凄惨爆仓,也就是在爆仓之后,他终于开始沉下心来研究交易策略,终于终于,他有一天找到了交易模型,并用它执行至今。 Ross Cameron无疑是最成功的日内交易员之一,而…

Asp.Net Core 读取配置接口 IOptions、IOptionsMonitor以及IOptionsSnapshot

🍀简介 Options是.net Core Web api框架自带的功能,Options模式通过定义强类型的类来表示相关配置设置的集合,使得配置管理更为结构化和类型安全。 IOptions、IOptionsMonitor和IOptionsSnapshot是用于处理配置的依赖注入接口。这些接口允许…

Linux基础 (十八):Libevent 库的安装与使用

目录 一、Libevent 概述 1.0 Libevent的安装 1.0.1 使用源码方式 1.0.2 终端命令行安装 1.1 主要特性 1.2 主要组件 1.3 Libevent 使用模型 1.4 原理 1.5 使用的基本步骤 1.5.1 初始化事件基础设施 1.5.2. 创建和绑定服务器套接字 1.5.3. 设置监听事件 1.5.4. 定义…

电脑缺失d3dcompiler_47.dll会怎么样,该如何修复呢

在计算机使用过程中,我们常常会遇到一些错误提示,其中之一就是“缺少d3dcompiler47.dll文件”。那么,d3dcompiler47.dll到底是什么?为什么计算机会缺失它?它会对电脑产生什么具体影响?如何解决这个问题&…

【CT】LeetCode手撕—25. K 个一组翻转链表

目录 题目1-思路2- 实现⭐25. K 个一组翻转链表——题解思路 3- ACM实现 题目 原题连接:25. K 个一组翻转链表 1-思路 1. dummyHead:设置虚拟头结点,通过虚拟头结点保证每个结点的地位相同2. 定位 pre 和 end 拆链:借助 pre 、s…

(新)Spring Security如何实现登录认证(实战篇)

一、回顾认证流程详解 概念速查: Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。 AuthenticationManager接口:定义了认证Authentication的方法 UserDetailsService接口:加载用户特定数据的核心接…

软件体系结构笔记(自用)

来自《软件体系结构原理、方法与实践(第三版)》清华大学出版社 张友生编著 1-8章12章 复习笔记 如有错误,欢迎指正!!!

Python使用策略模式生成TCP数据包

使用策略模式(Strategy Pattern)来灵活地生成不同类型的TCP数据包。 包括三次握手、数据传输和四次挥手。 from scapy.all import * from scapy.all import Ether, IP, TCP, UDP, wrpcap from abc import ABC, abstractmethodclass TcpPacketStrategy(A…

网络安全技术实验六 入侵检测技术实践

一、实验目的和要求 理解基于网络的入侵检测系统的基本原理,掌握snort IDS工作机理; 学习应用snort三种方式工作;熟练编写snort规则; 完成snort数据包记录、日志查看、字符串匹配、ARP欺骗攻击检测、端口扫描工具检测等功能。 …

微信小游戏插件申请,微信小程序插件管理

微信小游戏的插件申请与小程序不一样,官方没有提供一个统一的管理入口进行申请插件,以及查看插件,没有小程序方便的; 小程序申请查看插件入口如下图所示: 小游戏的插件可以通过以下的方式进行申请: 如下…

代码随想录-Day31

455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都…

OpenCV形态学

什么事形态学处理 基于图像形态进行处理的一些基本方法; 这些处理方法基本是对二进制图像进行处理; 卷积核决定着图像出来后的效果。 一 图像二值化 什么是二值化 将图像的每个像素变成两种值,如0,255. 全局二值化。 局部二值化。 thres…

小学奥数-图像找规律之招聘测评题

文章目录 长得差不多平移(1)(2) 旋转规律(1) 翻转规律 长得有点不一样叠加 参考 比如腾讯给他投简历之后会发一个在线测评,这些题目有和公务员考试很像的 长得差不多 几张图长得差不多的时候&a…

TCP/IP协议深入解析,初学者必看!

简介 在信息技术飞速发展的今天,网络已成为人类社会不可或缺的部分。实现网络中计算机相互通信的关键之一便是TCP/IP协议。作为互联网的基础,TCP/IP协议确保了全球范围内的数据交换和信息共享。 TCP/IP(传输控制协议/网际协议)是…

大数据实训项目(小麦种子)-01、VirtualBox安装与Centos7系统安装

文章目录 前言项目介绍项目任务目标一、VirtualBox安装1.1、认识VirtualBox1.2、VirtualBox的下载安装 二、VirtualBox安装Centos7系统2.1、VirtualBox安装Centos72.2、Centos7配置静态IP地址2.3、Centos7环境基础配置 三、Windows安装FinalShell及连接Centos73.1、FinalShell下…

神经网络学习2

张量(Tensor)是深度学习和科学计算中的基本数据结构,用于表示多维数组。张量可以看作是一个更广义的概念,涵盖了标量、向量、矩阵以及更高维度的数据结构。具体来说,张量的维度可以是以下几种形式: 标量&am…

环保评A的意义与价值

环保评A,这个看似简单的称谓,背后却蕴藏着深厚的环保理念和实践标准。在当今社会,环保已经成为一项全球性的议题,各国都在努力推动绿色发展,实现可持续发展目标。那么,环保评A究竟是全国性的认证还是地方性…

在VMware中安装CentOS7(超详细的图文教程)

1、CentOS7的下载 官网下载地址:Download。 进入CentOS下载官网,找到64位的CentOS7版本。 点进来后,发现它给我们列出了所在区域可用镜像源(可以说是非常的良心的),我们随便选择一个,这里以阿…

Git使用-gitlab上面的项目如何整到本地的idea中

场景 一般我们在开发项目或者接手某个项目时,基本都要接触Git,比如上传项目代码,下载同事给你的交接代码等等。 这是一个基本功,小小整理一下日常操作中的使用。 第一步:在 GitLab 上找到你要克隆的项目,复…