HTTPS是什么,详解它的加密过程

目录

1.前言

2.两种加密解密方式

2.1对称加密

2.2非对称加密

3.HTTPS的加密过程

3.1针对明文的对称加密

3.2针对密钥的非对称加密

3.3证书的作用


1.前言

  我们知道HTTP协议是超文本传输协议,它被广泛的应用在客户端服务器上,用来传输文字,图片,视频,js,html等.但是这种传输如果经过了黑客的路由器或者别有用心的人的设备,可以很轻松的破解并修改我们的内容,这种协议的安全性得不到保障.为了解决这种问题,我们引入了HTTPS,它是基于HTTP协议的一种加密安全协议,可以把HTTP协议传输的内容进行加密传输,让黑客或者别有用心的人破解不了.

2.两种加密解密方式

2.1对称加密

   我们首先要说明一个概念就是HTTP是明文传输的,如果我们想让他被加密,那么就需要用到数据加密.那么我们应该如何对正文部分进行加密呢?考虑到资源消耗成本问题还有揭秘问题.我们可以使用对称加密对数据进行加密,即加密和解密的算法都是同一个密钥.

2.2非对称加密

  而非对称加密,加密和解密采用的是两个密钥 ,如k1,k2这两个密钥是成对的,k1用来加密,此时k2就用来解密.也可以使用k2加密 ,k1解密.我们可以把一个密钥公开出去,而这个公开出去的密钥,就是公钥,还有一个密钥自己保存好,这个密钥就是私钥.手里只有一把的话,是无法知道另一把是啥的.

  看起来非对称加密很安全,但是这种加密方式,所需要消耗的系统资源开销也更大.

那么HTTPS是如何进行加密的呢?

3.HTTPS的加密过程

我们站在黑客的角度来看,如果一个HTTP请求或者响应进行传输,在不考虑服务器被黑的情况下,传递到服务器之前,如果黑客想拦截的话,则需要在传递的过程中拦截.

如下图所示:

数据首先从客户端传递到服务器的过程中被黑客拦截了.如果是HTTP明文传输,那么就会被黑客直接拿到数据,这样,黑客如果想篡改数据或者拿到隐私去做违法犯罪的事情就很容易.

那么我们该如何在尽可能不影响效率的情况下对HTTP请求进行加密呢?

3.1针对明文的对称加密

我们可以使用对称加密我们的数据,即客户端和服务器公用同一个密钥,这样黑客拿到数据以后就破解不了了

我们需要注意两点

1.对称加密的时候,客户端和服务器用的是同一个密钥

2.不同的客户端的,用的密钥都不同,

这也就意味着,每个客户端链接服务器的时候,都需要生成一个随机的密钥,并且告诉给服务器.也不一定是客户端生成,服务器生成并且告诉给客户端也可以,

但是这个密钥生成的过程,很容易被黑客拿到,即告诉了客户端的时候,黑客也可以拿到这个这个密钥,哪就形同虚设了.

那么这种情况应该怎么办呢? 我们可以使用非对称加密把密钥进行单独的密文传输.

3.2针对密钥的非对称加密

我们使用非对称加密的主要目的就是把明文密钥进行加密,确保密钥的安全性.

这里有同学可能会问,那么为什么不能直接把明文对称加密呢,而是要大费周章的这样搞?原来这是因为非对称加密使用的系统资源远大于对称加密,如果大规模使用,就很难承担了.

我们让服务器生成公钥和私钥,公钥可以告诉所有人,而私钥只有服务器自己知道.客户端就可以使用公钥对密钥加密,这样黑客就算拿到了这个密钥,因为他没有解密所需的私钥,也解不开这个密钥.

只要这个对称密钥的数据到达服务器,后续就可以客户端和服务器通过这个密钥来进行交流,黑客就无法破解后续的内容了,

上述过程看似天衣无缝,但是在聪明的黑客眼里,还是很容易破解,即使用中间人攻击

服务器可以创建自己的公钥和私钥,那么黑客也可以用同样的方式,创建出一对公钥和私钥,冒充自己是服务器,

在服务器拿到了基于pub1加密的key 的时候,自然可以通过自己的私钥解密,也就相信了是这么回事.后续的交流都是key,而客户端全程浑然不知.他只是拿到了假的公钥然后加密传给黑客,黑客解密后就拿到了key.然后通过服务器的pub1加密,伪造自己是客户端传给服务器.

这种方法如何解决呢?最关键的一点,在客户端拿到公钥的时候,要是有办法验证这个公钥是不是真的.而不是黑客给的.

3.3证书的作用

要求服务器这边提供一个证书.

证书是一个结构化的数据结构,有很多属性.

如:服务器的域名,公钥,证书有效期等

证书会有一个签名,里面本质上是一个加密的校验和,可以把证书其它字符进行一系列的算法得到一个校验和,如果两份数据一样,即校验和一样,那么就说明是一样的,如果不一样,则两份数据不一样.就是这个公钥有问题.

客户端拿到证书以后主要做两件事:

1.用一样的算法进行计算,得到校验和1

2/使用系统内置的公证机构公钥,对证书的签名进行解密,得到校验和2.

对比一下就知道是不是真的了.

市面上的公证机构没几家,基本上都在操作系统里面.公钥也都在

1.如果黑客直接修改公钥,不修改签名,那么校验和不一样,就识别出来了,

2.如果黑客修改公钥,也尝试修改签名,但是他不知道私钥是什么,所以无法生成加密的签名.

如果黑客拿自己的私钥加密呢?客户端用公证机构的公钥解密也会失败.

上述操作,就把客户端篡改证书的行为给堵死了.

所以这种方法是可行的.这也是市面上流行的方法.

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

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

相关文章

java数据结构与算法刷题-----LeetCode572. 另一棵树的子树(经典题,树字符串化KMP)

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力求解,深度优先2. KMP算法进行串匹配 1. 暴力求…

WinForm、Wpf自动升级 AutoUpdater.NET

Github AutoUpdater.NET 目录 一、IIS部署 更新站点 二、创建Winform 一、IIS部署 更新站点 IIS默认站点目录下创建 目录 Downloads、Updates Updates目录创建文件 UpdateLog.html、AutoUpdaterStarter.xml UpdateLog.html&#xff1a; <html><body><h1…

mysql学习--binlog与gtid主从同步

基础环境 基于centOS7-MySQL8.0.35版本 我们先准备一台主服务器两台从服务器来实现我们主从同步的诉求 Master&#xff1a;192.168.75.142 slave1:192.168.75.143 slave&#xff1a;192.168.75.145 binlog主从同步 主库配置 #我们需要在主从库中都需要添加server_id&am…

大龙谈智能内容开通视频号啦

大家好&#xff0c;大龙谈只能内容开通视频号了&#xff0c;欢迎大家扫码关注&#xff1a;

RISC-V特权架构 - 中断与异常概述

RISC-V特权架构 - 中断与异常概述 1 中断概述2 异常概述3 广义上的异常3.1 同步异常3.2 异步异常3.3 常见同步异常和异步异常 本文属于《 RISC-V指令集基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 中断概述 中断&#xff08;Interrupt&#xff09;机制&#xff0c;即…

RocketMQ安装

mq服务端安装配置启动把windows做成服务 mq管理界面安装配置启动 mq服务端 安装 RocketMQ下载地址 配置 ROCKETMQ_HOME D:\google-d\rocketmq-all-5.2.0-bin-release启动 # bin目录cmd输入 start mqnamesrv.cmd把windows做成服务 http://t.csdnimg.cn/qd2RD mq管理界面 …

ubuntu22.04安裝mysql8.0

官网下载mysql&#xff1a;MySQL :: Download MySQL Community Server 将mysql-server_8.0.20-2ubuntu20.04_amd64.deb-bundle.tar上传到/usr/local/src #解压压缩文件 tar -xvf mysql-server_8.0.20-2ubuntu20.04_amd64.deb-bundle.tar解压依赖包依次输入命令 sudo dpkg -i m…

EasyRecovery数据恢复软件2024最新版包括Windows和Mac

EasyRecovery数据恢复软件适用于多种环境和使用场景。首先&#xff0c;它适用于各种操作系统&#xff0c;包括Windows和Mac。无论用户使用的是哪种操作系统&#xff0c;都可以使用该软件进行数据恢复。 其次&#xff0c;EasyRecovery支持从各种存储设备和媒介中恢复数据&#…

自定义BeanNameGenerator生成规则

通过点进ComponentScan注解进入源码可以看到 追随BeanNameGenerator进入源码可以看到该类是个借口且只有一个方法 点击上面黑色箭头出现两个实现方法 点击第一个方法 进入determineBeanNameFromAnnotation方法中 通过上诉自定义一个生成beanName方法 先创建一个CustomeBeanN…

60 个 CSS 选择器,一网打尽!

CSS 选择器用于选择 HTML 元素并将样式应用于它们。使用这些选择器&#xff0c;可以定义特定条件下应用哪些样式。除了普通的选择器外&#xff0c;还有伪类和伪元素&#xff0c;用于选择具有特定状态或特定部分的元素&#xff0c;并将样式应用于它们。本文将通过图文并茂的方式…

Windows11家庭版安装Docker

文章目录 安装Docker安装hyper-v继续解决报错完成效果图进一步测试是否完成安装 安装Docker windows如何安装docker 装好之后&#xff0c;我打开报错。 安装hyper-v 按这个视频操作&#xff1a;Windows 11 家庭版安装 Hyper-V bat文件里的代码是&#xff1a; pushd "…

【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024)

【投稿优惠|快速见刊】2024年图像&#xff0c;机器学习和人工智能国际会议&#xff08;ICIMLAI 2024&#xff09; 重要信息 会议官网&#xff1a;http://www.icimlai.com会议地址&#xff1a;深圳召开日期&#xff1a;2024.03.30截稿日期&#xff1a;2024.03.20 &#xff08;先…

2024全国水科技大会暨高氨氮废水厌氧氨氧化处理技术论坛(四)

一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加快生态环境科技创新&#xff0c;构建绿色技术创新体系&#xff0c;全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》&#xff0c;积极落实省校合作&…

什么是BGP网络 (边界网关协议)

BGP&#xff08;边界网关协议&#xff09;是一种用于在互联网中交换路由信息的协议。作为网关或路由器之间的协议&#xff0c;BGP主要用于帮助确定数据包在网络中的路径。它通过在不同自治系统&#xff08;AS&#xff09;之间交换路径信息&#xff0c;实现了全球互联网网络的连…

MySQL进阶之(三)InnoDB数据存储结构之数据页结构

三、InnoDB数据存储结构之数据页结构 3.1 数据库的存储结构3.1.1 MySQL 数据存储目录3.1.2 页的引入3.1.3 页的概述3.1.4 页的上层结构 3.2 数据页结构3.2.1 文件头和文件尾01、File Header&#xff08;文件头部&#xff09;02、File Trailer&#xff08;文件尾部&#xff09; …

【JavaEE】_Spring Web MVC简介

目录 1. Spring Web MVC简介 2. MVC简介 3. Spring MVC 1. Spring Web MVC简介 官网对于Spring Web MVC的介绍如下&#xff1a; 链接如下&#xff1a; https://docs.spring.io/spring-framework/reference/web/webmvc.html#https://docs.spring.io/spring-framework/refer…

将SU模型导入ARCGIS,并获取高度信息,多面体转SHP文件(ARCMAP)

问题:将Sketchup中导出的su模型,导入arcgis并得到面shp文件,进而获取各建筑的高度、面积等信息。 思路: (1)导入arcgis得到多面体 (2)转为面shp文件 (3)计算高度/面积等 1、【3D Analyst工具】【转换】【由文件转出】【导入3D文件】(在此步骤之间,建议先建立一个…

栈和队列OJ题

文章目录 一、双队列实现栈二、双栈实现队列 一、双队列实现栈 题目链接&#xff1a; https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目分析&#xff1a; 栈的结构是后进先出&#xff0c;而队列的结构是先进先出&#xff0c;我们利用这个性质&a…

AI Word Helper (Chorme Extentions) AI单词助手(谷歌浏览器插件)

AI Word Helper (Chorme Extentions) AI单词助手&#xff08;谷歌浏览器插件&#xff09; 英文网站&#xff0c;划词查单词&#xff0c;还是看不懂&#xff1f;因为单词意思那么多&#xff0c;词性搞不清&#xff0c;上下文搞不清&#xff0c;出来的意思就没法用&#xff0c;G…

一个基于轮询的广告系统

无论PC 客户端还是手机客户端&#xff0c;可能会遇到需要发布一些广告&#xff0c;这些广告可能是自己开发的&#xff0c;可能是三方的&#xff0c;而且希望是比较通用&#xff0c;能随时发布&#xff0c;随时就能看到效果。 本文提供了一种基于轮询的广告系统&#xff0c;主要…