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.如果黑客修改公钥,也尝试修改签名,但是他不知道私钥是什么,所以无法生成加密的签名.

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DataGrip的MySQL数据导出和导入操作指南

场景描述 将开发环境的数据,复制一份到本地,进行本地连接开发工作,避免组内其他开发人员的干扰。假若你的电脑上只安装了DataGrip和MySQL环境,本篇指南就是你所需要的。 一、导出dump数据 将开发环境的数据和结构导出一份到本地…

嵌入式中回调函数的实现方法

一、什么是回调函数 1.1、回调函数的定义和基本概念 回调函数是一种特殊的函数,它作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。回调函数通常用于事件处理、异步编程和处理各种操作系统和框架的API。 基本概念: 回调&#xf…

WSL2部署RV1126 SDK编译环境

1 下载RV1126 SDK 在 Firefly | 让科技更简单,让生活更智能 下载REPO_SDK 这里将SDK下载到了F:\SDK 2 解压SDK到WSL2 tar -xvf /mnt/f/SDK/rv1126_rv1109_linux_release_20211022.tgz 3 编译依赖安装 gcc、g版本依赖安装 sudo apt-get install lib32gcc-7-dev g-7 l…

Data Leakage and Evaluation Issues inMicro-Expression Analysis 阅读笔记

IEEE Transactions on Affective Computing上的一篇文章,做微表情识别,阅读完做个笔记。本文讨论了Data Leakage对模型准确度评估的影响,及如何融合多个微表情数据集,从而提升模型的准确度。工作量非常饱满,很认真&…

C语言:编译与链接

C语言:编译 & 链接 环境翻译环境 编译预处理编译汇编 链接 环境 对C语言而言,生成程序的过程中存在两种环境:翻译环境与运行环境。 翻译环境 在翻译环境中,源代码会被转化为可执行的机器指令。这个过程会分为编译与链接两大…

java 商机管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 商机管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

二叉搜索树的范围和(Lc938)——DFS

给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1: 输入:root [10,5,15,3,7,null,18], low 7, high 15 输出:32示例 2: 输入:root [10,5,15,3,7,13,18,1,nul…

Stable Diffusion中的Clip模型

基础介绍 Stable Diffusion 是一个文本到图像的生成模型,它能够根据用户输入的文本提示(prompt)生成相应的图像。在这个模型中,CLIP(Contrastive Language-Image Pre-training)模型扮演了一个关键的角色&a…

C++ //练习 10.6 编写程序,使用fill_n将一个序列中的int值都设置为0。

C Primer(第5版) 练习 10.6 练习 10.6 编写程序,使用fill_n将一个序列中的int值都设置为0。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************************************…

红黑树的实现原理

要了解红黑树首先我们要知道什么是 平衡二叉树 平衡二叉树是一种特殊的二叉搜索树,它具有以下特点: 定义:平衡二叉树是一种二叉搜索树,其中每个节点的左右子树高度差的绝对值不超过 1,即任意节点的左右子树高度差不大于…

【前端素材】推荐优质在线电影院商城电商网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 在线电影商城是指一个通过互联网提供电影服务的平台,用户可以在该平台上浏览电影资源、租借或购买电影,以及观看在线影片。 2、功能需求 在线电影商城是指一个通过互联网提供电影服务的平台,用户可以在该平台上…

不管了,如何创建freestyle、pipeline项目我一定要安利给你!

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 jenkins作为一个可扩展的自动化服务器,Jenkins可以用作简单的 CI…

AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境等应用

原文链接:AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境等应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型(ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Di…

【.NET Core】深入理解IO - FileSteam流

【.NET Core】深入理解IO - FileSteam流 文章目录 【.NET Core】深入理解IO - FileSteam流一、IO流概述二、文件流FileStream2.1 FileStream概述2.2 FileStream检测流位置更改2.3 FileStream构造函数2.4 FileStream常用属性2.5 FileStream.Read方法2.6 FileStream.Write方法2.7…

[剪藏] - 尊湃通讯公司窃密曝光,发现绕不过华为

在科技领域风起云涌的今天,一场惊心动魄的窃密事件悄然发生,涉及华为WIFI6芯片技术的商业秘密被窃取,案中主谋竟然是一位曾在华为海思拥有重量级地位的技术大佬。本文将深入挖掘这起事件的来龙去脉,探讨窃密者的背叛和华为的技术守…

2023中国PostgreSQL数据库生态大会:洞察前沿趋势,探索无限可能(附核心PPT资料下载)

随着数字化浪潮的推进,数据库技术已成为支撑各行各业数字化转型的核心力量。2023中国PostgreSQL数据库生态大会的召开,无疑为业界提供了一个深入交流、共同探索PostgreSQL数据库技术未来发展趋势的平台。本文将带您走进这场盛会,解析大会的亮…

Python 迭代器和生成器的妙用

本文将探讨python的迭代器和生成器在实际场景中的一些巧妙用法。掌握迭代器和生成器的使用,能够让开发者在解决实际问题时更加得心应手。 Python 迭代器的妙用 Python 的迭代器是一个实现了迭代器协议的对象,它包含方法 __iter__() 和 __next__()。迭代…

FPGA-学会使用vivado中的存储器资源ROM(IP核)

问题: 某芯片,有500个寄存器,需要在上电的时候由FPGA向这些寄存器中写入初始值,初始值已经通过相应的文档给出了具体值,这些值都是已知的。 分析关键点: 数据量比较多(Verilog代码,通过case语句、always语句这种查找表的方式,数…

如何搭建自己的图床

前言 简单来说,图床是一种在线服务,允许用户上传、存储和分享图片。当把图片上传到该服务器上后,便能在互联网上通过链接来使用该图片,尤其是在不允许直接上传图片文件的平台上,也有些平台不允许上传其他平台的图片文…

【YOLO v5 v7 v8 小目标改进】ODConv:在卷积核所有维度(数量、空间、输入、输出)上应用注意力机制来优化传统动态卷积

ODConv:在卷积核所有维度(数量、空间、输入、输出)上应用注意力机制来优化传统的动态卷积 提出背景传统动态卷积全维动态卷积效果 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 论文:https://openreview.net/pdf?idDmpCfq6Mg…