【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

这篇具有很好参考价值的文章主要介绍了【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
大家好,我是良辰丫,这篇文章我们就来学习一下Https协议,了解Https的工作原理,对称加密以及非对称加密.💞💞💞

🧑个人主页:良辰针不戳
📖所属专栏:javaEE初阶
🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。
💦期待大家三连,关注,点赞,收藏。
💌作者能力有限,可能也会出错,欢迎大家指正。
💞愿与君为伴,共探Java汪洋大海。

1. 初识Https

1.1 走进https

Https和Http看起来大同小异,有什么区别呢?
其实,Https是在Http上进行衍生的,Https相比于Http,只是在其基础上加了一个加密层.

那么,为什么要有Https呢?

  • 在网络上进行传输数据,很容易被运营商劫持,因为以前网络上的数据是明文传输的,有被篡改的风险.
  • 百度在自己的浏览器打一个广告,广告主会根据一定的规则支付百度广告费,但是由于运营商劫持,本应该给百度的广告费,成了运营商的了.这样显然是不合理的.
  • 为什么会出现上述的问题呢?
    http没有加密层,很容易被篡改数据,咱们的https主要的内容是为了防止篡改,而不是防止被查看.
  • 因此呢,我们就引入了https,可以有效的改善上述的问题.

1.2 http存在的问题

  • 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
  • 篡改风险,比如强制植入垃圾广告,视觉污染。
  • 冒充风险,比如冒充淘宝网站,个人账户会有安全风险。

1.3 https的优点

HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:

  • 信息加密:交互信息无法被窃取,但有时候你在浏览器里面的登录信息可能没有以前保存的那么深。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示。
  • 身份证书:相关机构证明该网站是否被篡改过。

HTTPS 是如何解决上面的三个风险的?(简单了解即可,毕竟密码学很难,学习不是轻而易举的.)

  • 混合加密的方式实现信息的机密性,解决了窃听的风险。
  • 摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完整性,解决了篡改的风险。
  • 将服务器公钥放入到数字证书中,解决了冒充的风险。

2. 运营商劫持

上述提到了运营商劫持,但是大家获取对这个概念还有一些陌生,那么我们就来详细的说明一下.

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

有时候咱们明明下载A软件,下载下来却不是我们要的软件, 其实大多数情况下这就是一种运营商劫持.

  • 客户端获取一个下载A软件的链接,在这个过程中被运营商劫持了,运营商知道了客户端的需求.
  • 运营商为了不让自己被怀疑,把客户端的获取需求(下载A软件链接)发送给A软件服务器.
  • A软件服务器返回一个A软件的链接,这个时候,又被运营商劫持了,运营商把A软件的链接替换成自己的,然后返回给客户端,客户端就会收到下载B软件的链接.
  • 客户端不知道会这样,下载之后,发现不是自己要的软件.

3. Https的工作过程

3.1 对称加密

所谓对称加密只有一个秘钥key,加密和解密使用同一个秘钥key(私钥).对称加密速度比较快.

  • 明文 + key = 密文
  • 密文 + key = 明文

下图简单描述了一个对称加密解密的过程.

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

下图引入了黑客,黑客虽然获取了密文,但是如果黑客没有私钥key,是不能进行解密,也就无法篡改数据,这样数据的安全性就大大提高了.

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

对称加密中那么多客户端使用的秘钥是否是相同的?
每个客户端使用不同的秘钥,如果秘钥相同,黑客也可以伪装客户端获取秘钥,那样数据就不安全了.

客户端需要自己生成一个秘钥,那么生成的秘钥如何告诉服务器呢?

  • 这个时候就需要网络传输秘钥,一旦通过网络进行传输,那么黑客就可能截获到秘钥.
  • 那么给秘钥key进行加密,加密的话还需要一个新的秘钥key2,那么key2也需要进行加密,要不然很容易就被破解了,这样套娃显然是不科学的.

对称加密有很多的缺陷,因此呢,我们引入了非对称加密.

3.2 非对称加密

所谓非对称加密需要两个秘钥,一个公钥,一个私钥.

  • 明文 + 公钥 = 密文
  • 密文 + 私钥 = 明文

3.2.1 普通非对称加密

那么怎么理解非对称加密呢?两个秘钥,一个公钥,一个私钥.完全不一样的两个秘钥,为什么可以一个用来加密,一个用来解密呢?

  • 这是密码学里的知识,我们也不做过多的讨论.
  • 只是简单的举个例子方便大家理解.我们可以想象成公钥是一个人可以给很多锁上锁,但是解锁需要自己那把匹配的钥匙才可以,私钥就是那把匹配的钥匙,只有拥有了那把匹配的钥匙才能对密文进行解密.

可能图画的有点乱哈哈,我就简单的用语言描述一下过程.

  • 客户端向服务器索要公钥,这个公钥一般别人都可以获取到,服务器把公钥返回给客户端.
  • 客户端把秘钥key用公钥进行加密,注意这里是加密key,并不是传输的数据.把加密后的密文传输给服务器.
  • 服务器使用私钥对这个密文进行解密,得到key,然后服务器向客户端返回一个已经得到key的消息.
  • 客户端拿key对传输的信息进行加密,因为黑客不知道key是什么,因此不能对数据进行解密.客户端把加密的数据发送给服务器,服务器拿着key对信息进行解密,得到数据.

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

注意:

  • 客户端和服务器进行业务数据传输的时候,仍然是使用对称加密方式,因为对称加密速度快,成本低.
  • 为了保证数据的安全性,咱们采用非对称的加密方式,非对称加密采取公钥加密,私钥解密的方式.这里需要注意的是,我们用公钥加密的是key,并不是数据.
  • 非对称加密在传输完秘钥key之后就不会再使用了,之后就会使用对称加密.

那么,非对称安全之后就绝对安全嘛?办法总比困难多,黑客是非常聪明的,它会自己生成非对称秘钥进行一系列的操作.接下来我们就来看一下中间人攻击.

3.2.2 中间人攻击

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

  • 黑客自己生成一对非对称秘钥,公钥2和私钥2.
  • 客户端向服务器索要公钥,服务器返回公钥后被黑客截取,黑客把公钥替换成自己的公钥2,然后发给客户端.
  • 客户端把秘钥key用公钥2进行加密,把加密后的密文发送出去,黑客获取到密文,通过自己的私钥2解密得到key,然后用服务器的公钥对key进行加密,发给服务器.做到神不知鬼不觉.
  • 服务器使用私钥对这个密文进行解密,得到key.
  • 客户端拿key对传输的信息进行加密,进行传输加密的消息,此时黑客有了秘钥key,可以对消息进行解密.这样客户端的数据就被黑客获取了.

那么如何避免中间人攻击呢?
这里的关键是要让客户端信任公钥,公钥到底是从哪里来的,我们一定要对此有一定的认知.

3.2.3 引入证书的非对称加密

【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密

  • 服务器向权威机构申请一个证书.
  • 客户端向服务器索要证书,客户端拿到证书后,需要对证书进行校验.
    得到初识的签名,客户端的系统中内置了权威机构的公钥2,针对上述证书的加密签名进行解密,这样就得到了初始签名,这个签名是根据权威机构计算出来的.
    计算现在的签名,客户端使用同样的签名计算方法,基于证书中的属性重新计算.
    比较上述两个签名是否相同,如果相同,说明证书中的数据都是未被篡改过的数据;如果签名不相同,那么说明证书中的数据被篡改过,这个时候客户端的浏览器弹框报错.

那么,黑客为什么不能篡改证书的数据呢,黑客如何进行篡改操作呢?

  • 黑客把整数中的服务器公钥替换成自己的公钥.
  • 黑客针对证书中的各个属性,重新计算签名.
  • 这个时候黑客要把签名重新进行加密,要想重新加密,需要知道权威机构的私钥,黑客是没法获取权威机构的私钥.

看了上面的引入证书的非对称加密,是不是有点迷糊呢?不是难,而是所涉及的东西多了一点,那么我们再来描述一下.

  • 我们先来认识一下上面是证书,证书是权威机构的证明,证书上面有很多属性,普通的非对称加密,客户端向服务器获取公钥,这个时候很容易受到中间人攻击;在我们引入证书的非对称加密中,客户端向服务器获取的证书,证书上面包含公钥,签名等属性,几乎没有可能被篡改.
  • 证书上的签名是加密的,针对证书的所有属性,计算一个校验和(签名),再由证书颁布机构使用自己的私钥对这个签名进行加密.
  • 数据相同,按照相同的算法会得到同样的签名.
  • 黑客可以把签名进行解密,但是要想加密需要借助权威机构的私钥,黑客是没有办法获取这个私钥.
  • 权威机构又是什么呢?权威机构是网络办理各种证书的,这样的机构也是相当少的,一般计算机系统会内置这个的证书.

后序:
今天Https协议相关协议的内容到这里就结束了,想必大家学到了很多,我们下一篇文章再见.🚀🚀🚀文章来源地址https://www.toymoban.com/news/detail-498974.html

到了这里,关于【Https协议】http的孪生兄弟,你了解多少呢,认识Https,Https工作原理之对称加密与非对称加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【http和https】 简单入门了解

    我将从以下几个方面介绍HTTP和HTTPS协议,并通过示例来说明它们的工作原理。 一、HTTP协议 HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的一种网络协议。它是一种请求/响应协议,用于从服务器传输超文本到客户端。 HTTP协议的工作原理 HTTP协议基于请求/响应模型。客户

    2024年01月21日
    浏览(41)
  • HTTP协议,带你了解HTTP协议

    目录 1、HTTP 协议介绍 2、HTTP 协议的工作过程 HTTP 协议的工作过程可以分为以下几个步骤: 3、Fiddler 抓包工具介绍 3.1 抓包工具的使用 3.2 抓包结果 3.3 抓包工具原理 4、HTTP 协议格式总览 5、HTTP 请求(Request) 5.1 认识 URL 5.2 认识“方法”(method) GET 方法: POST 方法: GET 和

    2024年02月09日
    浏览(40)
  • HTTP与HTTPS的工作流程

    (1)解析url,获取 url 中包含的域名; (2)通过DNS服务器查询域名对应的IP; (3)浏览器得到域名对应的IP地址之后,向服务器发起三次握手请求建立TCP链接; (4)TCP链接链接建立起来后,浏览器向服务器发送http请求, (5)服务器接收到请求后,根据路径参数映射到特定

    2024年01月25日
    浏览(44)
  • HTTPS协议详解:基本概念与工作原理

    个人主页: insist--个人主页​​​​​​ 本文专栏 :网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、HTTPS协议的基本概念

    2024年02月10日
    浏览(44)
  • 网络原理 - HTTP / HTTPS(5)——https协议

    目录 一、HTTPS是什么 为什么要进行加密 二、“加密” 是什么 三、HTTPS的工作过程 (1)引入对称加密 对称密钥的特点: (2)引入非对称加密 非对称加密的特点: (3)中间人攻击 (4)引入证书 1、证书的介绍 2、证书验证过程 3、几个关键问题(黑客不能篡改证书的原因)

    2024年04月17日
    浏览(45)
  • 什么是HTTPS协议?与HTTP协议区别?

    HTTP协议(超文本传输协议)是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议,允许客户端通过Web浏览器等方式向服务器发送请求,服务器则返回响应。HTTP协议是构建万维网(WWW)的基础之一,被广泛用于在Web浏览器和Web服务器之间传输HTM

    2024年02月10日
    浏览(62)
  • HTTP、HTTPS协议详解

    HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议。它是互联网上数据传输的基础,用于客户端和服务器之间的通信。HTTP使用TCP/IP协议来传输数据,通常在Web浏览器和Web服务器之间进行通信。 HTTP的主要目标是实现客户端和服务器之间的通信和数据传输。客户端发送

    2024年02月16日
    浏览(44)
  • HTTP/HTTPS协议详解

    目录  一. HTTP详解 ✅1.1 概念 ✅1.2 HTTP的协议格式 1.2.1 HTTP请求体格式: 1.2.2 HTTP响应体格式: ✅1.3 HTTP请求方法 ✅1.4 认识请求报头 ✅1.5 HTTP请求过程  ✅1.6 认识状态码 二. HTTPS详解 ✅2.1 HTTPS简介 ✅2.2 HTTPS加密过程 TCP/UDP是位于传输层的一种协议,而HTTP/HTTPS是位于应用层的

    2024年02月05日
    浏览(51)
  • HTTP&HTTPS协议详解

    目录 一、HTTP是什么? 理解 \\\"应用层协议\\\" 理解 HTTP 协议的工作过程 二、HTTP 协议格式 抓包工具的使用 抓包工具的原理 抓包结果 协议格式总结 三、HTTP 请求 (Request) 认识 URL URL 基本格式  认识 \\\"方法\\\" (method) 认识请求 \\\"报头\\\" (header) Host Content-Length Content-Type   Cookie  四、HTTPS是

    2024年02月10日
    浏览(43)
  • http\https协议

    小亭子正在努力的学习编程,接下来将开启javaEE的学习~~ 分享的文章都是学习的笔记和感悟,如有不妥之处希望大佬们批评指正~~ 同时如果本文对你有帮助的话,烦请点赞关注支持一波, 感激不尽~~ 目录 前言 一、 认识http协议 1.概念 1.1.http 1.1.2http协议的特点 2.抓包工具的介绍

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包