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

news/2024/4/19 21:06:39/文章来源:https://blog.csdn.net/qq_24016309/article/details/129167610

文章目录

  • 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.luyixian.cn/news_show_72724.aspx

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

相关文章

x86架构设备的OpenWrt的空间扩容问题

openwrt固件是squashfs-combined-efi非exf4格式 直接将原有根分区扩容 用插件是:fdisk,losetup,resize2fs,blkid df -h fdisk -l fdisk /dev/sda //进入fdisk分区管理工具注意fdisk后参数是磁盘名称,是要根据实际情况填写 fdisk /dev/sda //进入fdi…

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

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

Sofa-jraft的Rpc调用服务端分析

在sofa-jraft中&#xff0c;关于RPC的服务端是RpcServer在RpcServer中的init方法中&#xff1a;初始化了连接事件监听器&#xff0c;这个里面就是一个map&#xff0c;然后可以添加事件监听的处理器&#xff0c;初始化userProcessors, codec 是一个编码和解码器的工厂&#xff0…

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

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

基于Hibernate对数据库表的单表查询

基于Hibernate对数据库表的单表查询 1.依赖 1.1jar包 1.2配置文件。persistence.xml <?xml version"1.0" encoding"UTF-8"?> <persistence version"2.1"xmlns"http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi"…

亲身试验 Outlook防关联方法分享

Outlook在海外的用途是很广泛的&#xff0c;不仅可以用于收发邮件&#xff0c;还可以作为各类第三方网站的登录凭证。所以Microsoft对于Outlook的监管还是比较严格的&#xff0c;跨境卖家大量注册Outlook账号使用的话很容易被检测出关联然后被封号。龙哥针对Outlook防关联的问题…

【Kubernetes 入门实战课】Day02——初识容器

系列文章目录 【Kubernetes 入门实战课】Day01——搭建kubernetes实验环境(一) 文章目录系列文章目录前言一、Docker的诞生二、Docker的形态1、Docker Desktop2、Docker Engine二、Docker的安装1、服务器连接外网安装2、服务器不通外网三、Docker的使用三、Docker的架构总结前…

阿里云物联网平台设备模拟器

在使用阿里云物联网平台过程中&#xff0c;如果开始调试没有实际的物理设备&#xff0c;可以考虑在阿里云物联网平台使用官方自带的模拟器进行调试。不过也可以通过叶帆科技开发的阿里云物联网平台设备模拟器AliIoTSimulator进行调试&#xff0c;AliIoTSimulator可以独立运行&a…

stm32 VM8978 音乐播放

一、WAV文件 1、WAV文件简介 2、WAV文件的解析 二、WM8978 1、WM8978介绍 2、WM8978特点 3、WM8978接口 4、WM8978框架 5、 WM8978 寄存器 三、IIS详解 1、IIS介绍 2、 IIS 的特点 3、IIS框架 4、 音频协议 5、 IIS Philips 标准 6、 IIS 时钟 四、音乐播放硬件…

ChatGPT三个关键技术

情景学习&#xff08;In-context learning&#xff09; 对于一些LLM没有见过的新任务&#xff0c;只需要设计一些任务的语言描述&#xff0c;并给出几个任务实例&#xff0c;作为模型的输入&#xff0c;即可让模型从给定的情景中学习新任务并给出满意的回答结果。这种训练方式能…

双检测人脸防伪识别方法(活体检测+人脸识别+关键点检测+人像分割)

双检测人脸防伪识别=人脸检测+活体检测+人脸识别 1.人脸关键点+语义分割 使用mediapipe进行视频人脸关键点检测和人像分割: import time import cv2 import mediapipe as mp import numpy as npmp_drawing = mp.solutions.drawing_utils mp_drawing_styles = mp.solution…

量化交易-单因子分析-alphalens

1. 数据准备 1.1 计算因子IC重要函数 def get_clean_factor_and_forward_returns(factor,prices,groupbyNone,binning_by_groupFalse,quantiles5,binsNone,periods(1, 5, 10),filter_zscore20,groupby_labelsNone,max_loss0.35,zero_awareFalse,cumulative_returnsTrue)facto…

【C语言】-程序编译的环境和预处理详解-让你轻松理解程序是怎么运行的!!

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 程序的编译前言一、 程序的翻译环境和执行环境二、 详解翻译环境2.1编译环境2.1.1预编…

民锋国际期货:2023,既艰难又充满希望,既纷乱又有无数机会。

不管是官方还是民间&#xff0c;各种信号都表明&#xff0c;2023年是一个拼经济的年份。 通货膨胀带来的需求量的增加&#xff0c;与中国经济高速发展带来的供给量增加&#xff0c;二者共同构成了我们的物价。 做一个长期主义者&#xff0c;做一个坚定看好中国未来的人&#…

MapBox动态气泡图渲染教程

先来看效果: 视频效果: 屏幕录制2023-02-22 15.34.57 首先我们来介绍一下思路。对于mapbox和openlayers这样的框架来讲,气泡图中的气泡本质上就是一个div,就是将一个dom元素追加到canvas上的固定位置而已。 在mapbox中有marker的概念,官网也有示例: Attach a popup to …

二叉树——路径总和

路径总和 链接 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点…

数据库及缓存之MySQL(一)

思维导图 常见知识点 1.mysql存储引擎&#xff1a; 2.innodb与myisam区别&#xff1a; 3.表设计字段选择&#xff1a; 4.mysql的varchar(M)最多存储数据&#xff1a; 5.事务基本特性&#xff1a; 6.事务并发引发问题&#xff1a; 7.mysql索引&#xff1a; 8.三星索引&#xf…

升职加薪必备,2023年程序员不能不知道的AI辅助编码工具

已经有很多人把chatGPT当做必备的Bug修复工具了&#xff0c;对于用AI写代码&#xff0c;有人感到失落&#xff0c;害怕被取代&#xff0c;而另一些人则认为人工智能将加快编写更好代码的过程。 尽管 AI 编写的代码并非完美无缺&#xff0c;但我相信&#xff0c;最终AI将取代人…

车机开发—【CarService启动流程】

汽车架构&#xff1a;车载HAL是汽车与车辆网络服务之间的接口定义&#xff08;同时保护传入的数据&#xff09;&#xff1a; 车载HAL与Android Automotive架构&#xff1a; Car App&#xff1a;包括OEM和第三方开发的AppCar API&#xff1a;内有包含CarSensorManager在内的AP…

Hadoop集群模式安装(Cluster mode)

1、Hadoop源码编译 安装包、源码包下载地址 Index of /dist/hadoop/common/hadoop-3.3.0为什么要重新编译Hadoop源码? 匹配不同操作系统本地库环境&#xff0c;Hadoop某些操作比如压缩、IO需要调用系统本地库&#xff08;*.so|*.dll&#xff09; 修改源码、重构源码 如何…