【计算机网络】对应用层协议中HTTPS协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱
ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客
本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶​
个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客

系列专栏:xiaoxie的计算机网络学习系列专栏——CSDN博客●'ᴗ'σσணღ

"探索未来,掌握人工智能"🚀 点击加入我们的AI学习之旅,让技术变得有趣又易懂,点击跳转
我的目标:"团团等我💪( ◡̀_◡́ ҂)" 

( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​+关注(互三必回)!

目录

​编辑​ 一.HTTPS协议

1.什么是HTTPS协议

2.加密是什么.

3.加密的几种方法以及在HTTPS协议上实现优缺点

1.对称加密

2.非对称加密:

3.中间人攻击

4.引入证书

1.什么是证书

2.数字证书里包含的内容

 3.引入证书解决中间人攻击的过程

4.HTTPS是如何进行加密的.


​ 一.HTTPS协议

1.什么是HTTPS协议

HTTPS本质上就是HTTP协议的基础加上增加一个加密层,除去加密层,HTTPS和HTTP协议没什么两样.由于HTTP协议的内容都是按照文本的形式明文传输的,这就可能导致HTTP协议中的内容可能会被篡改,正是因为这个原因,HTTPS协议应运而生,HTTPS就是在HTTP协议的基础上进行了加密操作,从而保护传输数据的安全性,目前几乎上市面上的网站都被替换为HTTPS协议. 这里先简单的介绍一下HTTP和HTTPS

HTTP 协议的局限性

  • 明文传输:HTTP 协议的数据以明文形式传输,这意味着在网络上传输的数据可以被任何能够监听到数据包的人轻易读取。
  • 易受篡改:由于没有加密,HTTP 协议传输的数据容易被篡改,攻击者可以在数据传输过程中修改数据。
  • 缺乏身份验证:HTTP 协议不提供任何机制来验证通信双方的身份,因此容易受到伪装和欺骗攻击。

HTTPS 协议的引入

  • 加密层:HTTPS 在 HTTP 下层增加了 SSL/TLS 加密层,为数据传输提供了加密、完整性校验和身份验证。
  • 数据安全性:通过加密,HTTPS 确保了传输数据的机密性,即使数据在传输过程中被截获,也无法被未授权者读取。
  • 数据完整性:HTTPS 使用消息摘要和认证码来确保数据在传输过程中未被篡改。
  • 身份验证:通过使用数字证书,HTTPS 允许客户端验证服务器(以及在某些情况下客户端)的身份,从而防止中间人攻击。

HTTPS 的工作原理

  • 握手过程:在数据传输之前,客户端和服务器通过 SSL/TLS 握手过程来协商加密算法、生成会话密钥等。
  • 证书交换:服务器向客户端提供其数字证书,客户端验证证书的有效性。
  • 密钥交换:使用非对称加密技术,客户端和服务器交换密钥材料,用于生成对称加密的会话密钥。
  • 数据加密:客户端和服务器使用会话密钥对传输的数据进行加密和解密。

HTTPS 的优势

  • 增强隐私:保护用户的敏感信息,如登录凭据、个人信息和交易数据。
  • 提高信任:通过身份验证和完整性保护,增强用户对网站的信任。
  • 搜索引擎优化:一些搜索引擎,如 Google,优先考虑使用 HTTPS 的网站,并可能给予它们更高的搜索排名。
  • 合规性:许多行业标准和法规要求网站使用 HTTPS 来保护用户数据。

HTTPS 的普及

  • 网站迁移:随着网络安全意识的提高,越来越多的网站从 HTTP 迁移到 HTTPS。
  • 浏览器支持:现代浏览器默认支持 HTTPS,并在地址栏显示安全锁标志。
  • 证书获取:许多 CA 提供免费的 SSL/TLS 证书,降低了使用 HTTPS 的门槛。
  • 性能优化:随着硬件加速和协议优化,HTTPS 的性能开销已经大大降低。

HTTPS 的未来

  • 协议更新:SSL/TLS 协议不断更新,以提供更强的安全性和更好的性能。
  • 新的加密算法:随着计算能力的提高,HTTPS 可能会采用更强大的加密算法。
  • 量子计算:随着量子计算的发展,未来的 HTTPS 可能需要适应新的加密挑战。

HTTPS 的引入和发展是网络安全领域的一个重要里程碑,它为保护用户数据和隐私提供了强有力的支持。随着技术的进步和网络安全威胁的演变,HTTPS 协议及其实现将继续发展和改进。接下来博主就详细介绍一下HTTPS协议.

2.加密是什么.

上文提到了HTTPS就是在HTTP协议的基础之上,进行了加密操作,那么什么是加密操作呢.加密操作就是把明文的内容,变成密文.解密就是将密文的内容变成明文.

在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为密钥.
 明文 + 密钥 => 密文   密文 + 密钥 => 明文.就像我们抗战时期的发送电报.
我们发送的信息 + 密码本  => 传输的电报.     电报的内容 + 密码本 => 我们真正要传输的信息.
 

3.加密的几种方法以及在HTTPS协议上实现优缺点

加密的方式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密

1.对称加密

对称加密就是通过同一个密钥,对明文进行加密,对密文进行解密,它的特点就是加密和解密的速度快.

这个过程就是客服端对要传输的数据通过密钥加密使用密文传输,服务端接收到密文后在通过同一个密钥获取转换为明文的内容 那怕在此期间黑客获取到传输的内容,也是通过密文传输的,无法破解自然就无法对内容进行篡改了.

这样看着确实好像是可以解决内容被篡改的危害,但是这只是一台客户端,但现实中,是有很多台客户端访问服务器的.那么不同的客户端是该分配同一个密钥呢,还是不同密钥呢.假如说不同的客户端共同持有同一个密钥.那么黑客就可以充当客服端,就可以获取到密钥,从而修改其他客服端传输的内容了.

假如不同的客户端,就有不同的密钥,这样虽然可以,防止,黑客充当客户端,从而得到密钥.但是不同的客户端,就有不同的密钥,客户端这么多,服务端肯定不可能给每个客服端分配一个密钥后,存储在服务端中,那么就只能通过客服端在给服务端发送信息前发送密钥给服务端.之后它们在使用这个密钥加密,解密信息.

但是一开始的传输只能明文传输,无法使用密钥加密,那么这样的传输就有可能被黑客获取到,有被篡改的危险.所以我们就要对加密方式进行修改,使用非对称加密.

2.非对称加密:

非对称加密不仅使用密钥,并且还对密钥进行加密操作.这样就可以很好的解决对称加密的问题了.

服务器生成一个私钥和一个公钥.

当客户端连上服务器的时候,服务器就把自己的公钥,告诉给客户端 (私钥还是自己来持有的)

公钥告诉所有的客户端 (所有的客户端都是同一个公钥),私钥的话是自己保存好,不会告诉任何人.

过程就是:

1.客服端收到服务端的公钥之后,通过对客服端(自己)的密钥(这个不是服务端的公钥和私钥,而是用于对称加密的密钥)进行加密,然后传输.

2.服务端拿到这个加密后的客户端的密钥之后.使用私钥对该请求进行解密,保存客服端的密钥.就可以对后续的请求针对不同的客服端的密钥进行加密传输了(对称加密).

3.即使黑客截获了加密的信息,没有相应的私钥也无法解密信息也就无法篡改信息了,从而保证了通信的安全性

但是,俗话说的好,道高一尺魔高一丈,黑客真的不可以篡改信息了吗.当然不是,黑客还可以使用,中间人攻击来篡改信息.

3.中间人攻击

简单的介绍就是:由于服务器提供的公钥是公开的,黑客充当服务端和客户端的中间人,

对于客服端来说,黑客就是服务端

对于服务端来说,黑客就是客户端.这里通过画图的形式理解一下这个过程.

过程为 : 

1.由于服务端的公钥是公开的,在传输给客户端公钥 pub1时,黑客冒充为客户端,获取到该公钥.

2.黑客自己生成一组公钥pub2和私钥pri2,黑客冒充服务端,向客户端发送公钥为pub2,客户端收到公钥pub2后.

3.客户端使用公钥pub2对密钥进行加密传输给服务端(实际上是发送给了黑客),黑客获取到这个被pub2加密的密钥后,使用私钥 pri2 解密,保存下来这个密钥,再使用pub1对这个密钥加密,然后发给真正的服务端.

4.服务端收到这个被加密后的数据之后,使用私钥解密,并不会发现什么问题,发送响应给客服端表示自己收到了密钥.

5.客服端收到了服务端的响应之后,也没有发现有什么问题.客户端和服务器都认为他们已经安全地交换了密钥就开始使用密钥进行对称加密,传输数据.

6.但是在对称加密传输数据的过程中,由于黑客知道了密钥是什么,那还不是随意修改.随意拿捏.

这就是中间人攻击的过程.

那么该如何解决这个问题呢.那就是引入证书,通过证书使客服端确保这个公钥是服务端发送的,而不是别的什么黑客之类的发送的.这样就可以很好的解决中间人攻击了.

4.引入证书

1.什么是证书

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

服务端需要向CA机构申领⼀份数字证书,数字证书里含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明服务端 公钥的权威性.
2.数字证书里包含的内容
  1. 证书持有者的公钥:证书中包含证书持有者的公钥,这样其他人就可以使用这个公钥来加密信息,确保只有持有相应私钥的证书持有者能够解密。

  2. 证书持有者的身份信息:证书中包含证书持有者的身份信息,如姓名、组织名称、地理位置等。

  3. 证书颁发机构的数字签名CA用自己的私钥对证书内容进行加密,形成数字签名。这个签名用于验证证书的真实性和完整性。(关键)

  4. 证书的有效期:证书有明确的开始和结束日期,证书在有效期内有效。

  5. 证书序列号:为每个证书分配的唯一标识符,有助于证书的管理和跟踪。

  6. 证书的用途:指定证书的用途,如服务器认证、客户端认证、电子邮件加密等。

 3.引入证书解决中间人攻击的过程

其他过程就不过多解释,就从引入证书后黑客为什么无法篡改公钥的过程.

 过程如下:

1.服务器上线自己的网站的时候,要先去第三方公正机构(CA)申请一个"证书”.

2.CA会生成一对非对称密钥 pub(公证)pri(私证)拿着 pri(私证) 针对证书数据(1发证机构2证书的有效期3服务器的公钥校验和4证书的所有者5持有者网站的主域名)的校验和进行加密,得到了数字签名.并且把证书发放给服务端.

3.服务端向客户端发送数据(证书),客户端收到证书后会对这个证书的合法性进行校验!

4.针对证书这些字段,(1发证机构2证书的有效期3服务器的公钥校验和4证书的所有者5持有者网站的主域名)进行校验和,得到校验和1.

5.针对数字签名进行解密,数字签名是基于公正机构的私钥来加密的就需要拿着公正机构的公钥来解密,获取公正机构的公钥,不是通过“网络"的方式获取到的通过网络的方式,就可能会得到 黑客伪造 的公钥,而是操作系统会内置公正机构的公钥,操作系统内置的公钥,一定是CA机构的公钥,不是伪造的,接下来,就可以使用公正机构的公钥(系统内置)来对 数字签名 进行解密了.解密之后 得到 校验和 2和 之前得到的校验和1进行比较.

6.相等就说明整个证书, 都是没有被篡改过的,此时,证书既然都是有效的,证书中包含的 公钥 自然就是可信的服务器公钥了

这个就是引入证书来解决中间人攻击的过程了.

同时解答一个疑问.既然数字签名的公钥是操作系统内置的,黑客,自然也可以拿到,那么黑客可以通过使用这个公钥解密拿到校验和可以修改吗.

答案是不可以,数字签名(校验和)是使用CA的私钥加密的,而不是公钥。这意味着只有CA的私钥才能创建有效的数字签名,而这个私钥是严格保密的,不会公开给任何人,包括操作系统的使用者。

1.哪怕它修改数据后,重新构造一个数字签名,客户端通过操作系统内置的公钥进行解密,肯定是无法解密成功的.认为该证书为非法证书.

2.如果黑客修改了证书中的公钥,但是不修改数字签名,客户端校验的时候就会发现,自己算出来的校验和和从数字签名中解密出来的校验和,不一致了客户端就可以判定,证书非法!

因此,数字证书和数字签名的机制提供了强大的安全保障,使得即使在公钥可以公开获取的情况下,证书的安全性和数据的完整性也能得到保证.

4.HTTPS是如何进行加密的.

HTTPS(超文本传输安全协议)结合了对称加密、非对称加密以及数字证书来确保数据传输的安全性。以下是HTTPS协议中这些元素如何协同工作以提供安全通信的概述:

  1. 非对称加密用于密钥交换:在HTTPS握手过程中,服务器首先向客户端发送其数字证书,该证书包含了服务器的公钥。

  2. 数字证书验证:客户端(例如浏览器)接收到证书后,会使用内置或可信的CA公钥来验证服务器证书的有效性,包括证书是否由受信任的CA签发、证书是否过期、证书的吊销状态等。

  3. 客户端生成对称密钥:一旦证书验证通过,客户端会生成一个临时的对称密钥(会话密钥),用于后续的加密通信。

  4. 对称密钥加密:客户端使用服务器的公钥加密这个临时生成的对称密钥,然后将其发送给服务器。

  5. 服务器解密对称密钥:服务器使用自己的私钥解密客户端发送的加密信息,得到对称密钥。

  6. 建立加密连接:服务器和客户端现在都拥有相同的对称密钥,可以使用该密钥来加密和解密它们之间传输的数据。

  7. 数据传输:客户端和服务器使用对称密钥对所有传输的数据进行加密和解密,确保数据在传输过程中的安全性。

  8. 完整性和认证:HTTPS还使用消息认证码(MAC)或数字签名来确保数据的完整性和认证,防止数据在传输过程中被篡改。

  9. 结束通信:通信结束后,对称密钥可以被销毁,以保证每次通信的安全性。

通过这种方式,HTTPS协议利用了非对称加密的安全性和对称加密的效率,同时使用数字证书来验证通信双方的身份,从而提供了一个安全的网络通信环境。这使得HTTPS成为保护用户数据、防止中间人攻击和其他安全威胁的重要工具,广泛应用于网上银行、电子商务、社交媒体和其他需要保护用户隐私和数据安全的场合.

以上就是关于HTTPS的重点内容了,HTTPS其实就是HTTP协议加上加密,所以博主这里建议学HTTPS之前先学习HTTP协议的重点内容,感兴趣的话,可以阅读博主的HTTP协议的重点总结.感谢你的阅读,祝你一天愉快.

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

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

相关文章

SHELL脚本学习(五)用户输入

获取用户输入 1、基本的读取 read命令从标准或其他文件描述符读取数据,获取输入后,read命令将值存入变量中。 命令格式: read variable 选项-p:提示信息 #!/usr/bin/bash read -p "Enter your name:" name echo hello …

Oracle的优化器

sql优化第一步:搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤: 语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。 语义检查:检查SQL中的访问对象…

Tomcat 配置:一文掌握所有要点

引言 Apache Tomcat 是一个流行的开源 Java Servlet 容器和 Web 服务器,广泛用于开发和部署 Java Web 应用程序。正确配置 Tomcat 是确保其性能、安全性和稳定性的关键。本文将详细介绍 Tomcat 的各项配置,帮助您优化和管理 Tomcat 服务器。 一、Tomca…

【C++】用红黑树封装map、set

用红黑树封装map、set 1. 红黑树1.1 模板参数的控制1.1.1 Value1.1.2 KeyOfValue 1.2 正向迭代器1.2.1 构造函数1.2.2 begin()end()1.2.3 operator()1.2.4 operator--()1.2.5 operator*()1.2.6 operator->()1.2.7 operator()1.2.8 operator!()1.2.9 总代码 1.3 反向迭代器1.…

规则引擎-Easy rule

规则引擎-Easy rule 最近有几个项目中都出现了根据XX条件执行XX方法的业务,在动手之前脑中总会下意识的发现如果按照常规的去写代码,无论使用何种设计模式,都会出现不同程度上的代码冗余或大量if-else判断。 甚至说判断XX条件的代码和执行X…

2024中国大学计算机科学与技术专业排名(非常详细)零基础入门到精通,收藏这一篇就够了

今天 6 月 8 号,高考第二天,随着大部分地区的高考结束,接下来就是焦急的等待分数的公布,然后学生们就迎来人生中的一个重要时刻——选择大学和专业。 在众多专业中,计算机科学与技术一直是备受瞩目的热门选择&#xf…

【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词

目录 安装所需库编写爬虫代码解释运行脚本结果 在本文中,我将介绍如何使用Python编写一个网络爬虫,从百度学术页面提取研究论文的标题、作者、摘要和关键词。我们将使用 requests和 BeautifulSoup库来实现这一目标。 安装所需库 首先,确保…

(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第3节(特定类约束)

14.3.2 特定类约束 ​ 如果您的泛型类需要使用某个特定子集的类&#xff08;特定层次结构&#xff09;&#xff0c;则可能需要根据给定基类指定约束。 ​ 例如&#xff0c;如果您声明&#xff1a; typeTCompClass<T: TComponent> class​ 则此泛型类的实例仅适用于组…

2024年城市客运安全员考试题库

2024年城市客运安全员考试题库 46.依据《中华人民共和国安全生产法》&#xff0c;关于城市客运企业安全生产管理机构及安全生产管理人员对本单位安全生产工作应承担的职责&#xff0c;下列说法不正确的是&#xff08;  &#xff09;。 A.安全生产管理机构及安全生产管理人员…

uniapp引入uview无代码提示

前提安装正确&#xff1a; 无论是基于npm和Hbuilder X方式安装&#xff0c;一定要配置正确。 解决办法 以前在pages.json里面的写法&#xff1a; "easycom": {"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" }但是现在hbuilderx要求规范ea…

驱动开发之 input 子系统

1.input 子系统介绍 input 就是输入的意思&#xff0c;input 子系统就是管理输入的子系统&#xff0c;和 pinctrl、gpio 子系统 一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备&#xff0c;不同的输入…

Redis到底支不支持事务?

文章目录 一、概述二、使用1、正常执行&#xff1a;2、主动放弃事务3、全部回滚:4、部分支持事务:5、WATCH: 三、事务三阶段四、小结 redis是支持事务的&#xff0c;但是它与传统的关系型数据库中的事务是有所不同的 一、概述 概念: 可以一次执行多个命令&#xff0c;本质是一…

Python爬虫实战:理论基础与源码

在当今信息爆炸的时代&#xff0c;网络爬虫&#xff08;Web Scraping&#xff09;成为了获取网络数据的重要工具。Python语言因其简洁的语法和强大的库支持&#xff0c;成为了编写网络爬虫的首选语言。本文将介绍网络爬虫的基本概念、工作原理&#xff0c;并提供部分Python爬虫…

《解决方案架构师修炼之道》读书笔记

1. 水在前面 第一次看到“解决方案架构师”这个词&#xff0c;就把这本书借回家翻了。最近也在网上看点资料&#xff0c;对比起来发现还是出版物内容更完整和更有体系&#xff0c;而且看书真的能让人安静下来。。。 《解决方案架构师修炼之道》所罗伯死里瓦斯塔瓦&#xff0c;内…

Web应用安全测试-信息泄漏

robots.txt泄漏敏感信息 漏洞描述&#xff1a;搜索引擎可以通过robots文件可以获知哪些页面可以爬取&#xff0c;哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范&#xff0c;其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯&#xff0c;如…

【SpringBoot笔记46】SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据源)

这篇文章,主要介绍SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据源)。 目录 一、SpringBoot多数据源配置 1.1、多数据源介绍 1.2、搭建基础工程 1.3、创建两个数据库 1.4、配置多数据源信息 1.5、创建动态数据源对象 1.6、创建DsContextHolder缓存…

每天五分钟深度学习pytorch:pytorch中的广播机制是什么?

本文重点 在pytorch中经常有张量和张量之间的运算,那么有一点需要注意,那就是维度要匹配,如果维度不匹配就有可能出现问题。如果维度不一致,此时也可以同时进行操作,此时就需要使用pytorch中的广播机制,本节课程就讲解pytorch中的广播机制。 广播机制示意图 如上就是py…

Java等待异步线程池跑完再执行指定方法的三种方式(condition、CountDownLatch、CyclicBarrier)

Java等待异步线程池跑完再执行指定方法的三种方式(condition、CountDownLatch、CyclicBarrier) Async如何使用 使用Async标注在方法上&#xff0c;可以使该方法异步的调用执行。而所有异步方法的实际执行是交给TaskExecutor的。 1.启动类添加EnableAsync注解 2. 方法上添加A…

《青少年编程与数学》课程方案:2、课程内容 4_1

《青少年编程与数学》课程方案&#xff1a;2、课程内容 4_1 一、计算机基础知识&#xff08;一&#xff09;计算机硬件知识&#xff08;二&#xff09;计算机软件知识&#xff08;三&#xff09;计算机系统知识&#xff08;四&#xff09;计算机网络知识&#xff08;五&#xf…