HTTP加密

news2024/9/29 13:23:45

文章目录

    • 原理
    • 方式
    • 证书

原理

HTTP = HTTPS + TLS/SSL(数据的加密解密层)

HTTP是应用层的协议,当应用层向下访问的时候并不是直接访问到socket层,而是先通过TLS/SSL加密解密层后再进行后续工作。此时得到的协议就是HTTPS。

举个例子:如何防止一个文本中的内容被篡改?以及说识别到是否被篡改?

加密理论:

在这里插入图片描述

数据传输过程是以加密以后的形式传输的,即数据+数字签名。

一方接收到数据后:

在这里插入图片描述

方式

加密方式有两种:

  1. 对称加密

  2. 非对称加密

  • 对称加密

密钥只有一个,用X表示。发送的数据用X加密,收到的时候也要用X来解密。

对于对称加密来说,密钥协商的方式是不合适的,因为第一次传输密钥的时候就可能会被知道密钥是什么。

  • 非对称加密

有一对密钥:公钥和私钥。

用公钥加密,但是要用私钥解密;反过来用私钥加密,要用公钥解密。常见的非对称加密有RSA。

一般而言,公钥是全世界公开的,私钥是自己私有保存的。

  1. 方式一(错误)

server端先把公钥给到client端,然后client端利用这个公钥进行数据加密,再将其传输给server端。这种方式在公钥加密的数据被拦截后,依旧无法破解,因为只有server端拥有解密的私钥。

目前为止数据是安全的,但是当server端将数据发送回client端的时候,如果用私钥加密,此时的所有人都可以对其进行解密,这就显得徒劳无功了。

所以一对非对称公钥私钥是无法完成安全传输的。

  1. 方式二(错误)

既然一对不行就用两对,分别在通信前交换双方的公钥进行加密,在通信时也能分别用自己的私钥解密。

这听起来很好,但是也有两个弊端:首先这种方式也有被窃取数据的风险,其次非对称加密算法是很复杂的,这种方式会很消耗时间,效率低下。

因此我们都是采用对称+非对称相结合的方式。

  1. 方式三(正确)

协商阶段—非对称加密
数据传输阶段—对称加密

在通信前,server端将自己的公钥S给到client端,然后client端用这个公钥S给自己的私钥-C进行加密,传输给server端,这是非对称方式的通信。

此时双方就都知道了需要进行通信的密钥-C,那么就可以通过-C,以对称的方式进行通信。

这个过程是安全的,因为私钥-S仅在server端,所以不用担心第一次传输公钥S的时候会被破坏。

但是这是没有刻意攻击的前提下,如果有人刻意攻击,是可以将第一次传输公钥给拦截然后包装成它自己的,进而获取待会client发送来的私钥。

这里的本质问题是,client端不知道此时的公钥已经被做了手脚了。此时的解决方法就是证书。

证书

CA证书机构是一个服务商,经过权威认证,该机构就是合法的。

该机构拥有自己的公钥和私钥。

申请证书的过程:申请证书需要提供企业的基本信息、域名、公钥。

  • 原理

CA机构利用自己的公钥将数据进行加密,利用私钥-A形成该机构的数字签名,此时只有公钥A才能解开该数字签名。

在上述提到的过程中,并不是直接将公钥发送到client,而是发送证书:

在这里插入图片描述

所以证书的构成就是:数据+该机构的数字签名。

这里几种情况:

  1. 攻击者想篡改整个证书
  2. 攻击者想篡改数据但不改数字签名
  3. 攻击者想篡改数字签名但不改数据

首先篡改整个证书是可行的,因为改CA机构的A公钥大家都有,但是这样的话就无法重新形成数字签名了,因为这个数字签名是CA机构自己用-A私钥生成的。也就是说,只有CA机构能够重新形成数字签名。那么此时的攻击者即使篡改了整个证书,也是无法获得client端的认可的。

其次最后两种情况都是不可能的,因为一旦数字签名和数据内容不一样,散列/解密以后一对比就会自动被识别出来。

这里有个前提,client端必须要知道CA机构的公钥,这基本上是内置的。

  • 还有一个问题就是如果攻击者也是一个合法的机构,它将整个报文都给修改了,而使用自己的报文,该怎么办?

这其实也是不可能的,因为证书里面已经包含了目标域名,那么client端识别出来以后自然也就弃用了。

这也是有证书和无证书的很大差别,如果没有证书的话,client端并不会知道自己获得的公钥是否是自己想要的,但是有了证书以后就能通过域名知道是否合法。

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

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

相关文章

【五一创作】排序篇:冒泡排序,快速排序的递归与非递归实现(C语言)

目录 前言: 一:冒泡排序 基础思路 完整排序 时间复杂度分析 二:递归实现快速排序 基础思路 单趟排序 (1)双向扫描法 (2)挖坑法 (3)前后指针法(推荐这种) 完整排序 时间复杂度分析 优化 (1)三数取中 (2)小区间优化 三&#xf…

基于Vue3+TS+Vite+Cesium创建项目

基于Vue3TSViteCesium创建项目 基于Vite构建项目安装配置Cesium创建Cesium三维视图运行结果 随着近几年社会的发展,人们对三维可视化的需求也是越来越多,三维GIS如今真的越来越火了,对于做GIS前端开发的人员来说,Cesium开发是绝对…

PLC模糊PID(模糊规则表)

模糊PID的模糊化相关内容,请参看下面的博客文章: PLC模糊控制模糊PID(梯形图实现+算法分析)_RXXW_Dor的博客-CSDN博客博途PLC的模糊PID控制详细内容请查看下面的博客文章:Matlab仿真+博途PLC模糊PID控制完整SCL源代码参考(带模糊和普通PID切换功能)_博途怎么实现模糊pid_…

linux驱动开发 - 08_内核定时器

文章目录 1 Linux 时间管理和内核定时器简介1.1 内核时间管理简介1.2 内核定时器简介1、init_timer 函数2、add_timer 函数3、del_timer 函数4、del_timer_sync 函数5、mod_timer 函数 1.3 Linux 内核短延时函数 2 实验程序编写2.1 定时器驱动程序编写2.2 编写测试 APP 3 编译驱…

【Linux】管道

目录 一、前言 二、管道 1、匿名管道 1.1、基本原理 1.2、代码实现 1.3、管道的特点 1.4、基于管道的简单设计 2、命名管道 2.1、匿名管道与命名管道的区别 2.2、代码实现命名管道通信 一、前言 为了满足各种需求,进程之间是需要通信的。进程间通信的主要目…

【VM服务管家】专题_7.5 异常收集

目录 5.1 信息收集:异常报错信息收集的方法5.2 日志等级:日志等级调低的方法 5.1 信息收集:异常报错信息收集的方法 描述 环境:VM4.0以上VS2013及以上 现象:未知问题、偶发问题、崩溃问题如何收集信息提供给研发排查。…

【Linux】基础IO——库函数与系统调用的关系

目录 引言1.文件操作语言方案(C的文件操作接口-库函数)打开文件、关闭文件——fopen、fclose打开文件的模式 写入——fput、printf读取——fgets 2.文件操作系统方案(系统的文件操作接口-系统调用)打开文件、关闭文件——open、cl…

【游戏逆向】Lua游戏逆向及破解方法介绍

前言 随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台。Lua脚本编写逻辑的手游也是越来越多,如梦幻西游、刀塔传奇、开心消消乐、游龙英雄、奇迹暖暖、疾风猎人、万万没想到等手游。随着Lua手游的增加,其安全性更值得关注&…

python基本数据类型---数字字符串

引入 在内存中存储的数据可以是不同的数据类型。比如名字可以使用字符串存储,年龄可以使用数字存储,python有6种基本数据类型,用于各种数据的存储,分别是:numbers(数字类型)、string(字符串)、List(列表)、Tuple(元组…

哈希表企业应用-DNA的字符串检测

DNA的字符串检测-引言 若干年后, ikun DNA 检测部成立,专门对 这些ikun的解析检测 突然发现已经完全控制不了 因为学生已经会了 而且是太会了 所以DNA采用 以下视频测试: ikun必进曲 ikun必经曲 ikun必阶曲 如何感受到了吧!,如果你现在唱跳并且还Rap 还有打篮球 还有铁山靠 那…

自动化运维工具Ansible之playbooks剧本

目录 一、playbooks 1、playbooks简述 2、playbooks剧本格式 3、playbooks组成部分 4、playbooks启动及检测 5、playbooks模块实战实例1 6、vars模块实战实例2 7、when模块实战实例3 8、with_items循环模块实战实例4 9、template模块实战实例5 10、tags模块实战实例…

有研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具(上)

导语:研究员公开了一个解析并提取 Dell PFS BIOS 固件的工具。 Dell PFS BIOS提取器 介绍 解析 Dell PFS BIOS 映像并提取其 SPI/BIOS/UEFI 固件组件。它支持所有Dell PFS 修订版和格式,包括最初在 ThinOS 包中LZMA压缩、ZLIB压缩或拆分成块的格式。输出…

Vue 注册组件介绍

Vue组件的基本概念 Vue组件是一种可复用的Vue实例,用于封装可重用的HTML元素、JavaScript代码和CSS样式。它可以让开发者更好地组织和复用代码,使Web应用程序更加可维护和可扩展 Vue组件通常由三部分组成:模板(template&#xf…

NLP实战:快递单信息抽取-基于ERNIE1.0 预训练模型

目录 一、介绍 二、代码 2.1前期准备 2.2加载自定义数据集 2.3数据处理 2.4数据读入 2.5PaddleNLP一键加载预训练模型 2.6设置Fine-Tune优化策略,模型配置 2.7模型训练与评估 ​编辑 2.8模型预测 三、总结 原文: 一、介绍 命名实体识别&…

网易云音乐开发--主页静态页面搭建

如何用VScode来开发小程序 wxml和wxss来高亮小程序 窗口设置 轮播图制作 就是通过swiper来设置轮播图 iconfont字体图标使用 这里要借助阿里的iconfonticonfont-阿里巴巴矢量图标库 找到自己喜欢的图标,添加到购物车 添加到项目 这样就可以统一的管理图标的库 …

Windows环境安装Elasticsearch和Kibana

文章目录 1 Elasticsearch1.1 下载1.2 解压并添加环境变量1.3 访问1.4 cmd命令1.5 中文分词器1.5.1 下载1.5.2 安装1.5.2.1 命令安装1.5.2.2 手动安装1.5.2.3 验证分词 1.6 使用curl批量导入 2 安装 kibana2.1 下载kibana2.2 中文界面2.3 操作索引2.3.1 增加索引2.3.1.1 单条新…

电商--订单支付中存在的问题以及思考

文章目录 前言背景订单支付大致流程订单支付流程中的注意细节防止订单重复创建为何会出现重复创建订单处理措施 掉单导致的重复支付为何会出现这种场景处理措施 已支付流水退款为何会出现这种场景 前言 最近感觉应该把自己在工作中遇到的一些比较有意思的核心流程进行总结以此…

win10远程桌面控制Ubuntu服务器 - 内网穿透实现公网远程

文章目录 前言视频教程1. ubuntu安装XRDP2.局域网测试连接3. Ubuntu安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 转载自远程穿透文章:Windows通过RDP异地远程桌面Ubuntu【内网穿透】 前言 XRDP是一种开源工具,它允许用户通过Windows…

软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)

文章目录 1. 按照测试对象进行划分1)界面测试2)可靠性测试3)容错性测试4)文档测试5)兼容性测试6)易用性测试7)软件安装卸载的测试8)安全测试9)性能测试10)内存…

代码随想录算法训练营第五十天| 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

文章目录 123.买卖股票的最佳时机III188.买卖股票的最佳时机IV:star: 123.买卖股票的最佳时机III 至多买卖两次 分清楚动态规划所有状态至关重要,这是求dp数组的前提 和之前买卖股票问题解题思路相似,只是多增加了第二天的状态 总结:买卖股票…