https加密原理详解,带你搞懂它为什么比http更安全

news2024/11/28 16:33:50

文章目录

  • http的缺点
  • 对称加密+非对称加密
  • 数字签名+数字证书验证身份
  • 数字摘要+数字签名验证内容的完整性
  • 总结

http的缺点

http是超文本传输协议,使用http协议进行通信有如下缺点:

  1. http没有提供任何数据加密机制,数据通信使用明文通信,相当于数据在网络中裸奔,内容可能会被中间人监听。
  2. 在和对方通信的时候,没有验证对方的身份,可能遭遇对方伪装通信方的情况。
  3. http在接收数据报文的时候,没有进行完整性的验证,接收到的内容可能是被中间人篡改过的。

https针对这三个问题增加了对应的安全机制


对称加密+非对称加密

首先是针对http明文通信,https混合加密的方法对通信的数据进行加密。

  • 所谓混合加密就是既使用了对称加密的方式也使用了非对称加密的方式​​​​​​​
    对称加密只有一种秘钥,双方进行通信前要协商好这个秘钥,一方用该秘钥加密数据,另一方用相同的秘钥解密,它的优点是加密解密速度快,缺点是一方秘钥泄漏,加密信息就不安全了。

  • 非对称加密就是有两种秘钥,一个是公钥,一个是私钥。数据发送前,接收方先把公钥给发送方,然后发送方用公钥加密数据,发给接收方,接收方接收到后用私钥解密。优点是公钥可以公开,安全性比对称加密好,缺点是加密解密速度慢,效率低。

因此https采用了混合加密的方式:通信双方采用非对称加密的方式来交换之后用来加密解密的对称秘钥,然后之后的数据通信就使用对称秘钥来进行加密和解密
在这里插入图片描述

数字签名+数字证书验证身份

https使用数字摘要+数字签名+数字证书的机制来验证身份。这个数字证书只有网络中一些权威的CA机构才能颁发。
  服务端要上线的时候,首先要去申请一个证书,需要提供服务端的相关信息,比如企业的基本信息,域名,公钥等。CA机构拿到服务端的信息时,首先根据企业的基本信息,通过单向的哈希函数生成一段固定长度的密文,生成的密文叫做数字摘要,也叫数字指纹。然后将数据摘要通过CA机构自己独有的私钥进行加密,生成数字签名(这个数字签名也是使用了非对称加密的技术,用私钥加密,用公钥解密,全世界只有CA机构才能加密生成这样的数字签名),将数字签名,明文的企业信息(包含公钥)放在一起,作为数字证书颁发给企业的server端。
  server端要和client通信的时候,只需要把证书交给client即可,里面存放有明文的公钥,client拿到证书后,要先验证对方的身份——使用CA机构的公钥解密,得到数据摘要1,然后将明文的企业信息(包含公钥),通过和CA机构生成数字摘要一样的哈希算法生成数字摘要2,对比两个数字摘要,只要相等,就可以确定两件事情:当前的server端是经过CA机构认证的正规的server端,同时公钥也是server端发过来的,没有被篡改过。之后就client就可以放心用公钥来加密对称秘钥,进行后续的数据通信了。
在这里插入图片描述
在这里插入图片描述


数字摘要+数字签名验证内容的完整性

https还使用了数字摘要的技术来验证接收到的内容是否完整,即是否被中间人篡改过。
  https解决这个问题就是使用数字摘要和数字签名的技术,就和前面提到的一样,发送方将要发送的内容通过单向哈希算法生成数字摘要,然后使用自己的私钥加密生成数字签名,发送到对方手里后(通过对称秘钥加密传输的,不用说),接收方用发送方的公钥解密生成数字摘要1,然后对明文数据内容用相同的哈希算法生成数字摘要2,对比两个数字摘要,如果相等就是没有被修改,如果不等就是被修改了。

总结

  http是直接与网络层的tcp协议通信的。而https在http的基础上加入了SSL协议(安全套接字层协议)通信时首先与SSL进行通信,再由SSL来与TCP进行通信,正是因为由SSL的存在,才使得https具备了加密,身份认证,完整性检测等功能。

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

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

相关文章

RMI 补充知识

0x00 前言 仅作为笔记,对之前的内容进行补充 Registry Registry是可以单独创建的 LocateRegistry.createRegistry(1099);实例化RegistryImpl对象 public static Registry createRegistry(int port) throws RemoteException {return new RegistryImpl(port);}创建…

IM聊天教程:发送图片/视频/语音/表情

经常有朋友问起,如何在IM即时通讯中实现发送图片、视频、语音和表情?为此,小编特意写了一个vue版本的Demo,实现了图片视频文件和表情的的发送,参考这个Demo源代码,相信你就可以轻松的用Uniapp和小程序完成类…

面向对象的程序设计C++课堂复盘总结 C语言复习+C++基础语法

Stay Hungry,Stay Foolish. 任何人都能写出机器能看懂的代码,但只有优秀的程序员才能写出人能看懂的代码。 有两种写程序的方式:一种是把代码写得非常复杂,以至于 “看不出明显的错误”;另一种是把代码写得非常简单&am…

c/c++开发,无可避免的模板编程实践(篇八)

一、借用标准库模板构造自己的模板 通常,模板设计是遵循当对象的类型不影响类中函数的行为时就使用模板。这也就是为何标准库提供大部分的模板都是与容器、迭代器、适配器、通用算法等有关,因为这些主要是除了对象集合行为,如读写、增删、遍历…

Java ”框架 = 注解 + 反射 + 设计模式“ 之 注解详解

Java ”框架 注解 反射 设计模式“ 之 注解详解 每博一文案 刹那间我真想令时光停住,好让我回顾自己,回顾失去的年华,缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小女孩。让我追悔少年时代,我心灵的愚钝无知,它轻易…

oracle11g忘记system密码,重置密码

OPW-00001: 无法打开口令文件 cmd.exe 使用管理员身份登录 找到xxx\product\11.2.0\dbhome_1\database\PWDorcl.ora文件,删除 执行orapwd fileD:\app\product\11.2.0\dbhome_1\database\PWDorcl.ora passwordtiger (orapwd 在\product\11.2.0\dbhome_1\BIN目录下…

DolphinScheduler第一章:环境安装

系列文章目录 DolphinScheduler第一章:环境安装 文章目录系列文章目录前言一、环境准备1.上传文件2.数据库配置3.配置安装文件二、集群部署1.数据部署2.部署 DolphinScheduler3. DolphinScheduler 启停命令总结前言 我们现在开始学习hadoop中的DolphinScheduler组…

Vim 命令速查表

Vim 命令速查表 简介:Vim 命令速查表,注释化 vimrc 配置文件,经典 Vim 键盘图,实用 Vim 书籍,Markdown 格式,目录化检索,系统化学习,快速熟悉使用! Vim 官网 | Vim | Vim…

小学生学Arduino---------点阵(三)动态的显示与清除

学习目标: 1、理解“整数值”的概念与使用 2、理解“N1”指令的意义 3、掌握“反复执行多次”指令的使用 4、掌握屏幕模块的清除功能指令 5、理解“反复执行”指令与“反复执行多次”指令的嵌套使用 6、搭建电路图 7、编写程序 效果: 整数包括&#xf…

HTTP cookie格式与约束

cookie是前端编程当中经常要使用到的概念,我们可以使用cookie利用浏览器来存放用户的状态信息保存用户做了一些什么事情。session是服务器端维护的状态。session又是如何和cookie关联起来。后面介绍cookie和session的使用。Cookie 是什么?RFC6265, HTTP …

2022-2023年营销报告(B站平台) | 5大行业势态、流量大盘全景洞察

一直以来,手持高活跃、高粘性用户群体的B站是行业用来观察年轻人消费习惯的重要平台。以至于用户群体的不断壮大带动了B站的商业价值。如今B站的商业舞台越来越大,不断地向外界招手,欢迎更多品牌积极加入到这个千万年轻人聚集的内容社区。为了…

如何使用Kadence Blocks构建迷人的Kadence产品网格

在本教程中,我将逐步教您如何使用 Kadence Blocks 构建一个五列Kadence产品网格,它可以作为全宽区块放置在您的博客文章的顶部。使用这个包含五列的产品网格是在文章顶部展示产品、对每个产品进行简要描述,然后包含一个供用户访问该站点的按钮…

校园社交平台【源码好优多】

简介 本项目是为满足大学生的校园社交需求而设计的,动态模块提供发布/删除/搜索/点赞/收藏/评论动态功能,个人模块提供关注与私信以及用户修改个人信息功能,聊天模块提供即时聊天功能。该项目为前后端分离项目并且后端实现分布式&#xff0c…

蓝桥杯入门即劝退(十九)两两交换链表

-----持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章对你有所帮助-------- 一、题目描述 给你一个链表,两两交换其中…

JavaEE简单示例——<select>中的查询参数传递和结果集封装自动映射关系

简单介绍&#xff1a; 在之前我们在讲SQL映射文件中的映射查询语句的<select>标签的时候&#xff0c;对其中的四个常用属性的讲解并不是那么的透彻&#xff0c;今天就来详细的解释<select>的四个常用属性的具体含义以及<select>标签在进行查询的时候查询参数…

LQB02控制LED灯,74HC138芯片,74HC02芯片,74HC573芯片。

一&#xff0c;硬件图解读。 二&#xff0c;控制LED需要的74HC595程序编程。 三&#xff0c;控制某个LED亮&#xff0c;其他保持不变&#xff0c;或者控制整8个LED&#xff0c;其他不变&#xff1b; 四&#xff0c;读取某个LED的状态&#xff0c;一秒时间读取一次&#xff0c;如…

mapreduce与yarn

文章目录一、MapReduce1.1、MapReduce思想1.2、MapReduce实例进程1.3、MapReduce阶段组成1.4、MapReduce数据类型1.5、MapReduce关键类1.6、MapReduce执行流程1.6.1、Map阶段执行流程1.6.2、Map的shuffle阶段执行流程1.6.3、Reduce阶段执行流程1.7、MapReduce实例WordCount二、…

版本控制软件SVN

SVN学习 1 版本控制软件定义及用途 版本控制软件是为适应软件配置管理的需要&#xff0c;控制软件的修改&#xff0c;减少混乱&#xff0c;提高软件生产效率&#xff0c;其是软件质量保证的重要环节软件配置管理是对软件修改进行标识、组织和控制的技术&#xff0c;用来协调和…

MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)

背景 MAUI的出现&#xff0c;赋予了广大.Net开发者开发多平台应用的能力&#xff0c;MAUI 是Xamarin.Forms演变而来&#xff0c;但是相比Xamarin性能更好&#xff0c;可扩展性更强&#xff0c;结构更简单。但是MAUI对于平台相关的实现并不完整。所以MASA团队开展了一个实验性项…

代码随想录NO49 | 动态规划 _LeetCode1143.最长公共子序列 1035.不相交的线 53. 最大子序和

动态规划 _LeetCode1143.最长公共子序列 1035.不相交的线 53. 最大子序和今天继续子序列问题&#xff01; 1143.最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符…