【Linux网络与网络编程】07.应用层协议HTTPS

HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。HTTPS 就是在 HTTP 协议的基础上引入了一个加密层的应用层协议。

1. 基础概念

1.1 加密与解密

加密就是把明文(要传输的信息)进行一系列变换,生成密文。解密就是把密文再进行一系列变换,还原成明文。在这个加密和解密的过程中,往往需要一个或者多个中间的数据辅助进行这个过程,这样的数据称为密钥。

为什么要加密?

因为 http 的内容是明文传输的,明文数据会经过路由器、wifi 热点、通信服务运营商、代理服务器等多个物理节点。如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击 ,所以我们才需要对信息进行加密。

所以加密就是为了避免中间人攻击。

1.2 常见的加密方式

1.2.1 对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密

• 特征:

加密和解密所用的密钥是相同的。通过同一个 "密钥" 把明文加密成密文,并且也能把密文解密成明文

• 常见对称加密算法:

DES、3DES、AES、TDEA、Blowfish、RC2 ……

• 特点:

算法公开、计算量小、加密速度快、加密效率高

1.2.2 非对称加密

需要两个密钥来进行加密和解密,这两个密钥是公钥私钥。

特征:

通过公钥对明文加密,变成密文;通过私钥对密文解密,变成明文。也可以反着用,通过私钥对明文加密,变成密文;通过公钥对密文解密,变成明文

常见非对称加密算法:

RSA,DSA,ECDSA ……

特点:

算法强度复杂、安全性依赖于算法与密钥,但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。 最大的缺点就是运算速度非常慢,比对称加密要慢很多。

1.2.3 数据摘要(数字指纹)

数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash 函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹并不是一种加密机制,但可以用来判断数据有没有被篡改

常见摘要算法:

MD5、SHA1、SHA256、SHA512 …… 算法把无限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率非常低)

特征:

摘要严格意义不是加密,通常用来进行数据对比

2. HTTPS的工作过程探索

2.1 方案一:只使用对称加密

若只使用对称加密的话,服务端如何得知客户端的密钥呢?往往是在建立连接时将密钥传过去,那么如何保证密钥的安全性呢?在给密钥加密吗?这不就变成了鸡生蛋,蛋生鸡的问题了吗?因此该方案不具备可行性!

2.2 方案二:只使用非对称加密

只使用非对称加密我们可以看到貌似是要比对称加密要好的,不过在初始建立联系时,公钥还是面临着被中间人获取的安全问题。当客户端向服务端发消息时,需要服务端使用私钥进行解密的,而私钥是没法被获取的,所以可以认为是安全的。但是服务端向客户端发送消息时,需要客户端通过公钥进行解密,而公钥是可以被获取的,所以这一部分是不安全的。可以认为是单向安全的。

2.3 方案三:双方都使用非对称加密

这次总可以了吧,但是效率太慢了(非对称加密的速度很慢,开始时提到过)。而且这种方案也存在着安全问题(讲完方案四具体来说)。

2.4 方案四:非对称加密 + 对称加密

这一部分我们只使用非对称密钥用于初始时交换公钥,所以效率是提高了的,但是这一部分就没有问题了吗?

中间人攻击:

上面这种情况就是中间人就可以拿到对称密钥X了,中间人就可以自由的解密监听信息,并篡改相应信息了。

此时面对中间人攻击的核心问题就是:客户端无法甄别自己收到的公钥是一个由客户端发出的合法的公钥,所以接下来我们看看这个问题是如何解决的。

数据签名

签名的形成是基于非对称加密算法的。它的作用就是对数据摘要(数字指纹)进行加密

可以看出只有持有私钥的签名者菜呢个对数据进行签名,那么谁是签名者呢?

CA机构与证书

服务端在使用 HTTPS 前,需要向 CA 机构申领一份数字证书,数字证书里含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明服务端公钥的权威性。

接下来看一下证书的格式:

我们可以看出,证书实质上就是携带签名的明文数据

CA机构签发证书的流程:

可以知道,当客户端收到证书之后需要对证书中的公钥提取,即解密证书。故而所有的浏览器都要内置一些可行的CA机构或者它授权的子机构的公钥!

2.5 方案五:非对称加密 + 对称加密 + 证书认证

使用这种方案就可以避免中间人的攻击了,因为中间人哪怕拿到了证书也无法对证书进行篡改。而这种方案也就是当前的HTTPS使用的工作方案。

总结:

HTTPS 工作过程中涉及到的密钥有三组。

第一组(非对称加密):用于校验证书是否被篡改。服务器持有私钥(私钥在形成 CSR 文件与申请证书时获得),客户端持有公钥(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥),服务器在客户端请求时,返回携带签名的证书,客户端通过这个公钥进行证书验证,保证证书的合法性,进一步保证证书中携带的服务端公钥权威性。

第二组(非对称加密):用于协商生成对称加密的密钥。客户端用收到的 CA 证书中的公钥(是可被信任的)给随机生成的对称加密的密钥加密传输给服务器,服务器通过私钥解密获取到对称加密密钥。

第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。

其实一切的关键都是围绕这个对称加密的密钥,其他的机制都是辅助这个密钥工作的。第二组非对称加密的密钥是为了让客户端把这个对称密钥传给服务器,第一组非对称加密的密钥是为了让客户端拿到第二组非对称加密的公钥。

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

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

相关文章

【k8s】PV,PVC的回收策略——return、recycle、delete

PV 和 PVC 的回收策略主要用于管理存储资源的生命周期,特别是当 PVC 被删除时,PV 的处理方式。回收策略决定了 PV 在 PVC 被删除后的行为。 回收策略的类型 Kubernetes 提供了三种主要的回收策略,用于管理 PV 的生命周期: Reta…

2023蓝帽杯初赛内存取证-2

直接使用mimikatz插件来获取用户密码: vol.py --plugin/opt/volatility/plugins -f memdump.mem --profile Win7SP1x64 mimikatz 答案:3w.qax.com

使用dompurify修复XSS跨站脚本缺陷

1. 问题描述 漏洞扫描说有一个低危漏洞,容易被跨站脚本攻击XSS。 2. 使用dompurify修复 DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. 简单来说,我们可以使用 dompurify 处理xss跨站脚本攻击。 2.…

【c语言】指针和数组笔试题解析

一维数组: //数组名a如果既不单独放在sizeof()中,也不与&结合,那么就表示数组首元素的大小 //a一般表示数组首元素地址,只有两种情况表示整个数组,sizeof(arr)表示整个数组的大小,&arr表示数组的地址 int a[]…

机器人进阶---视觉算法(六)傅里叶变换在图像处理中怎么用

傅里叶变换在图像处理中怎么用 傅里叶变换的基本原理应用场景Python代码示例逐行解释总结傅里叶变换在图像处理中是一种重要的工具,它将图像从空间域转换到频域,从而可以对图像的频率特性进行分析和处理。傅里叶变换在图像滤波、图像增强、图像压缩和图像分析等方面都有广泛应…

深度学习与总结JVM专辑(七):垃圾回收器—CMS(图文+代码)

CMS垃圾收集器深度解析教程 1. 前言:为什么需要CMS?2. CMS 工作原理:一场与时间的赛跑2.1. 初始标记(Initial Mark)2.2. 并发标记(Concurrent Mark)2.3. 重新标记(Remark&#xff09…

数据采集:AI 发展的基石与驱动力

人工智能(AI)无疑是最具变革性的技术力量之一,正以惊人的速度重塑着各行各业的格局。从智能语音助手到自动驾驶汽车,从精准的医疗诊断到个性化的推荐系统,AI 的广泛应用已深刻融入人们的日常生活与工作的各个层面。而在…

从信息泄露到内网控制

0x01 背景 之前常见用rce、文件上传等漏洞获取webshell,偶然遇到一次敏感信息泄露获取权限的渗透,简单记录一下过程。 0x02 信息泄露 发现系统某端口部署了minio服务,经过探测发现存在minio存储桶遍历 使用利用工具把泄露的文件全部整理一…

《门》凡是过往,皆为序曲。我们的爱,和最初一样

《门》凡是过往,皆为序曲。我们的爱,和最初一样 夏目漱石,本名夏目金之助,笔名漱石,日本近代作家,代表作有《三四郎》《门》《从此以后》《我是猫》《心》《明暗》等。 竺家荣 译 文章目录 《门》凡是过往&…

衡石ChatBI:依托开放架构构建技术驱动的差异化数据服务

在当今数字化浪潮中,企业对数据价值的挖掘和利用需求日益增长。BI(商业智能)工具作为企业获取数据洞察的关键手段,其技术架构的创新与发展至关重要。衡石科技的Chat BI凭借其独特的开放架构,在BI领域脱颖而出&#xff…

oracle中错误总结

oracle中给表起别名不能用as,用as报错 在 Oracle 数据库中,​​WITH 子句(即 CTE,公共表表达式)允许后续定义的子查询引用前面已经定义的 CTE​​,但 ​​前面的 CTE 无法引用后面的 CTE​​。这种设计类似…

NLP高频面试题(五十)——大模型(LLMs)分词(Tokenizer)详解

在自然语言处理(NLP)任务中,将文本转换为模型可处理的数字序列是必不可少的一步。这一步通常称为分词(tokenization),即把原始文本拆分成一个个词元(token)。对于**大型语言模型(LLM,Large Language Model,大型语言模型)**而言,选择合适的分词方案至关重要:分词的…

优化WAV音频文件

优化 WAV 音频文件通常涉及 减小文件体积、提升音质 或 适配特定用途(如流媒体、广播等)。以下是分场景的优化方法,涵盖工具和操作步骤: 一、减小文件体积(无损/有损压缩) 1. 无损压缩 转换格式&#xff1…

ORACLE SQL输入的变量由于隐式转换无法使用索引的分析优化

近期,某客户在巡检分析AWR报告时,发现有个TOP SQL的执行效率偏慢,检查分析SQL,发现数据块读取量高,分析执行计划,发现有个查询条件未使用到索引; 对执行计划及表上的字段、索引进行分析&#x…

【锂电池SOH估计】RF随机森林锂电池健康状态估计,锂电池SOH估计(Matlab完整源码和数据)

目录 效果一览程序获取程序内容代码分享研究内容基于随机森林(RF)的锂电池健康状态(SOH)估计算法研究摘要1. 引言2. 锂电池SOH评估框架3. 实验与结果分析4. 未来研究方向6. 结论效果一览 程序获取 获取方式一:文章顶部资源处直接下载:【锂电池SOH估计】RF随机森林锂电池…

安全高效两不误,这款安全数据摆渡系统支持8种传输协议

安全高效两不误!这款安全数据摆渡系统支持8种传输协议 传统的安全数据摆渡系统主要包括物理介质拷贝(如光盘、U盘)、网闸、光闸、防火墙文件交换模块等,这些安全数据摆渡系统和传输方式在传输协议支持及功能实现上各有优劣势。 …

(51单片机)LCD显示温度(DS18B20教程)(LCD1602教程)(延时函数教程)(单总线教程)

演示视频: LCD显示温度 源代码 如上图将9个文放在Keli5 中即可,然后烧录在单片机中就行了 烧录软件用的是STC-ISP,不知道怎么安装的可以去看江科大的视频: 【51单片机入门教程-2020版 程序全程纯手打 从零开始入门】https://www.…

【愚公系列】《Python网络爬虫从入门到精通》063-项目实战电商数据侦探(主窗体的数据展示)

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! &#x1f…

日志分析工具快速统计电商系统单位时间内的请求总数

一、常用日志分析工具及操作步骤 ‌ELK Stack(Elasticsearch + Logstash + Kibana)‌核心操作‌ 日志收集‌:通过Logstash配置日志输入(如Nginx日志文件),使用grok插件解析日志格式。 数据存储‌:将解析后的日志存入Elasticsearch,利用其分布式搜索能力快速索引数据。…

Win10一体机(MES电脑设置上电自动开机)

找个键盘,带线的那种,插到电脑上,电脑开机;连续点按F11;通过↑↓键选择Enter Setup 然后回车; 选择 smart settings ; 选择 Restore AC Power Loss By IO 回车; 将prower off 改为…