HTTPS加密流程详解

news/2024/11/19 19:36:05/

文章目录

  • HTTPS与HTTP的关系
  • HTTPS基本工作过程
    • 对称密钥
    • 非对称密钥
    • 中间人攻击
    • 证书

HTTPS与HTTP的关系

HTTPS协议基于HTTP,只是比HTTP多了一个加密层,为什么要加密呢?因为网络传输的过程中,明文传输的数据都有可能被劫持篡改,为了改善这个问题,HTTPS应运而生。

HTTPS基本工作过程

要了解HTTPS的工作原理,我们要先引入一对关键信息,明文和密文。

明文就是真正要传达的信息,而密文是经过一定手段转换明文得到的信息。

明文到密文的过程称为加密,密文到明文的过程称为解密。

对称密钥

对称密钥指的是加密和解密只有一个密钥,加密和解密都是用的这个密钥。
在这里插入图片描述
这样即使黑客获取到了数据,没有密钥key,也无法知晓数据的内容,但是服务器如何知道这个密钥key是多少的呢?还是通过网络传输,客户端生成key了之后,将key传输给服务器。

这样就有一个bug了,黑客同样可以截获这个密钥key啊,此时我们需要在对key进行加密,但是如果继续使用对称加密,黑客依然可以获取到key,此时我们就引入了非对称密钥。

非对称密钥

非对称密钥,一个叫做公钥,另一个叫做私钥,使用公钥进行加密,私钥进行解密。

在这里插入图片描述
这个过程就解决了之前不能给key加密的问题,但是他一定是安全的嘛?我只能说道高一尺,魔高一丈。

中间人攻击

下面让我们来看看黑客是怎么针对非对称密钥进行反击的:
在这里插入图片描述
黑客通过更改服务器的公钥为自己的公钥来骗取客户端发送的key的信息,这样就破解了非对称密钥的限制。在这个网络攻防战中我们又该如何应对黑客的攻击呢?证书又顺应而生。

证书

证书是什么?是由权威机构颁发的,在你做服务器时,就需要申请一个证书,这个证书里面有一系列的内容,证书的过期时间,服务器的URL,颁发证书的机构,服务器自己的公钥pub,这些都是明文的,还有一个权威机构使用自己的私钥加密的签名,这个签名的作用就是一个校验和,通过计算证书的所有属性,计算出的一个校验和。

在这里插入图片描述
此时问题来了,黑客是否能对数据进行更改,黑客需要更改的内容有服务器的公钥和证书的校验和,如果只更改公钥,那么当客户端进行签名计算的时候就会发现有人篡改了公钥,那么就需要同时更改公钥和校验和,因为解密校验和的公钥是内置在系统中的,所以黑客可以解密校验和进行更改,但是黑客没有私钥无法再次对校验和加密,此时客户端拿到证书发现校验和没有加密,同样知道了有人篡改了数据,这样我们就解决了问题。

黑客要想更改数据,就需要先黑进权威机构拿到私钥,这个成本怕是远远超过了数据的价值,所以我们的数据是安全的了!!!

以上就是HTTPS的加密流程。


http://www.ppmy.cn/news/75544.html

相关文章

数据结构学习分享之链式二叉树(二)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:数据结构学习分享⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你了解更多数据结构的知识   🔝🔝 数据结构第八课 1. 前言&a…

你知道Spring使如何实现事务管理的?

在企业应用程序中,事务管理是一个重要的组成部分。事务用于确保一组数据库操作要么全部成功,要么全部失败,从而保持数据的一致性和完整性。Spring Framework 提供了强大的事务管理功能,使开发人员能够轻松地管理和控制事务的行为。…

按摩仪市场的AB面:暗战不止,迷雾未散

配图来自Canva可画 由于生活节奏的加快以及来自各方的压力,再加上熬夜、长时间低头玩手机等不良生活习惯,导致不少人的身体都出现了亚健康状态。不过,随着当下健康理念逐渐深入人心,人们对于健康的重视程度也持续提升。无论是刘畊…

【Linux】Linux小程序-进度条

目录 一、\r和\n的理解 二、行缓冲区概念 三、进度条源代码 一、\r和\n的理解 \r:回车; \n:换行; 那么请问这两个有什么区别呢? 比如:我们在编写内容的时候,一行没有写完的情况下,需…

《Reinforcement Learning: An Introduction》第1章笔记

文章目录 1.1 强化学习1.2 强化学习的例子1.3 强化学习的要素1.4 局限和范围1.5 拓展例子:井字游戏1.6 总结1.7 强化学习的早期历史参考资料 1.1 强化学习 强化学习是学习做什么—如何将情景映射到动作—以便最大化数字奖励信号。学习者不会被告知该采取什么动作&a…

XPath语法:在XML文档中定位和选择节点的利器

XPath(XML Path Language)是一种用于在XML文档中定位和选择节点的语言。它提供了强大的定位和选择能力,使开发人员能够准确、灵活地定位所需的元素。本篇博客将介绍XPath的语法和常用定位方法,帮助你在Web自动化测试等场景中更好地…

[Python]JWT认证与pyjwt包简介

文章目录 JWT认证简介构成载荷声明 pyjwt编解码flask中验证 JWT是一种JSON的行业标准,广泛应用在系统的用户认证方面。 JWT认证简介 JWT(JSON Web Tokens),是为了在网络应用环境间传递声明而执行的一种开放的行业标准&#xff0…

Python 中的函数微分是如何实现的?

1. 如何编写计算函数微分的代码?举个简单例子 可以使用 PyTorch 中的自动微分功能来计算函数的导数。下面是一个简单的例子: import torch# 定义一个需要求导的函数 def f(x):return x ** 2 2 * x 1# 创建一个张量,并设置 requires_gradT…