HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“

这篇具有很好参考价值的文章主要介绍了HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本人是一个普通程序猿!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果你也对编程感兴趣的话,互关一下,以后互相学习,共同进步。这篇文章能够帮助到你的话,劳请大家点赞转发支持一下!


一、HTTPS是什么

HTTPS 也是一个应用层协议, 是在 HTTP 协议的基础上引入了一个加密层。

HTTP 协议内容都是按照文本的方式明文传输的,所以一些别有用心的黑客等,就可以通过一些手段来截获HTTP请求,从而来窃取用户的隐私信息,甚至对内容进行篡改后,再进行发送至原目的地。

在互联网上, 明文传输是比较危险的事情!!!

HTTPS 就是在 HTTP 的基础上进行了加密, 进一步的来保证用户的信息安全。


二、HTTPS加密方法

加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文

解密就是把 密文 再进行一系列变换,还原成 明文

在这个加密和解密的过程中,往往需要 一个或者多个中间的数据 ,辅助进行这个过程,这样的数据称为 密钥

HTTPS的加密方法:
发送方通过密钥将明文转换成密文,进行发送,
接收方收到数据再通过密钥将密文转换成明文。


看似简单的过程,而这其中HTTPS为了保证信息的安全又与窃取篡改者进行了多次博弈,下面的加密流程揭示其中的博弈过程。


三、HTTPS加密流程

既然要保证数据安全, 就需要对数据进行 “加密”。

网络传输中不再直接传输明文了,而是加密之后的 “密文”。

你以为进行加密后,就能万事无忧了? 不正所谓道高一尺魔高一丈,黑客也在想尽办法破解。
世界上没有绝对的安全,只有当破解成本超过了数据本身的价值,那这些数据就安全了。正所谓亏本的买卖没人做。

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


对称加密

对称加密其实就是通过同一个 “密钥” , 把明文加密成密文, 并且也能把密文解密成明文。

HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http
此时就算黑客入侵路由器,截获了密文,他没有密钥解密,因此数据仍是安全的。

但是实际情况可不是这样的。

一个服务器会同时给N个客户端提供服务。 那么所有客户端都用同一个密钥进行加密吗? HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http
如果这样,黑客直接注册一个客户端,就能拿到密钥,就可以窃取篡改所有客户端的信息。
所以是每个客户端都会自己生成一个密钥,然后再将密钥与通过这个密钥加密好的密文一起发送给服务器,服务器拿到密钥和密文,再通过这把密钥解密密文。
HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http
如果密钥进行明文传输的话,那前面的加密操作就没有意义了,因此密钥也需要加密。
且密钥的加密不能再使用对称加密了,因为这个密钥就是为了解决对称加密的安全问题。这里就使用非对称加密解决。


非对称加密

非对称加密要用到两个密钥, 一个叫做 “公钥”, 一个叫做 “私钥”。
有以下两种方法:

公钥进行加密操作,私钥进行解密操作。
私钥进行加密操作,公钥进行解密操作。

须知

1️⃣公钥与私钥一个用来加密,另一个用来解密,可以公钥加密,私钥解密;也可以私钥加密,公钥解密。
2️⃣一个钥匙进行加密,那么这个钥匙就无法将密文解密成明文举例:我用公钥对数据进行加密,此时这个密文使用公钥就解不出来,只有私钥可以正确解密。
形象来说就是,公钥与私钥,一个充当锁的角色,一个充当钥匙的角色。所以无法同时做到又能加密又能解密。

3️⃣公钥私钥就是两把 “钥匙” , 公布出去的叫做公钥,自己留下不告诉别人的叫做私钥
4️⃣公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多。

图解

共涉及到两个个密钥:
服务器的:公钥:pubKey;私钥:priKey


前提:服务器将公钥告诉所有客户端,自己保留私钥。
用来加密的钥匙:key
私钥:priKey(privateKey);公钥pubKey(publicKey)。

HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http

你以为这就安全了吗??
魔高一丈的攻击要来了!!!


中间人攻击

攻击来啦!

图解

共涉及到四个密钥:
服务器的:公钥:pubKey;私钥:priKey
黑客的:公钥:pubKey1;私钥:priKey1


1️⃣客户端先向服务器申请公钥,服务器发送(明文传输)公钥pubKey给客户端
2️⃣黑客截取到公钥,黑客记录这个pubKey,并自己生成了一对非对称密钥,pubKey1与priKey1。
3️⃣然后将pubKey1发送给客户端。

HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http

4️⃣ 客户端拿到公钥,但是他并不知道这个公钥被篡改了,因此仍然使用pubKey1对key进行加密,并发送。
5️⃣此时黑客再次截取客户端发送的数据,使用priKey1将key解密出来,然后再用key将密文解密得到数据。
6️⃣然后再将数据篡改后,用key加密,再用之前记录的pubKey对key加密,然后再发送给服务器。

HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http

上述的中间人攻击,就对数据神不知鬼不觉的完成了截取篡改。

那么HTTPS为了应对中间人攻击,就实施了 “证书” 这一方案


证书

如何破解 “中间人攻击” 呢?

"中间人攻击"的原理
中间人攻击主要就是通过截获服务器发送给客户端的公钥,然后将自己生成的公钥以相同的数据格式发送给客户端,让客户端以为自己拿到了服务器的公钥。

所以破解"中间人攻击"的关键就是服务器的公钥可以安全送达。
而 “证书” 就可以让客户端验证服务器传输过来的公钥有没有被篡改。

证书是什么

证书可以理解成是一个Java中的对象,这个对象中包含许多信息(成员变量)以字符串的形式呈现。

证书包含的信息:

  • 证书发布机构
  • 证书有效期
  • 公钥
  • 证书所有者
  • 签名:签名就是通过算法将整个证书计算出的一个哈希值。可以把签名理解为一个校验和
  • …等等信息

搭建一个 HTTPS 网站要在相关权威机构先申请一个证书,要向权威机构提供一些资料(包括服务器要发送给客户端的公钥),申请下来的 证书的信息中就包括公钥 ,证书中有一个最关键的核心信息: 签名

这个 签名由权威机构先针对证书计算出一个值,然后权威机构再用自己的私钥对这个签名进行加密
电脑操作系统内置了 与权威机构私钥成对的公钥

此时服务器就不会向客户端发送公钥,而是将整个证书发送给客户端。
而证书仍然采用明文传输,其中只有签名这个属性进行了加密!

图解

共涉及到四个密钥:
服务器的:公钥:pubKey;私钥:priKey
黑客的:公钥:pubKey1;私钥:priKey1

HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http
HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“,JavaEE,https,网络协议,http
如果黑客自己 伪造一个证书发给客户端 或者 用系统内置的公钥解密并篡改了签名 ,但是黑客没有权威机构的私钥,无法对签名进行加密,那么系统内置的公钥就无法正确解密签名,就更不会信任这个证书了。

当然,客户端拿到证书后不止是会对签名进行校验。
当客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪造的,或被篡改过)

  • 判定证书的有效期是否过期
  • 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)
  • 验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash 值(称为数据摘要), 设为 hash1,然后计算整个证书的 hash 值,设为 hash2, 对比 hash1 和 hash2 是否相等,如果相等,则说明证书是没有被篡改过的

此时就保证了数据的安全!
黑客将证书中的公钥替换成自己的,客户端可以识别,直接报错,就不会再向外发送数据。
如果黑客不替换,那么他也无法解密出数据,更别说篡改数据了。

证书的目的就是为了保护服务器的公钥可以安全送达客户端,而不被篡改。


以上的 “对称加密”,“非对称加密”,“证书”,都是SSL协议中的内容。
而HTTPS协议 = HTTP协议 + SSL协议。

总结

以上就是今天要讲的内容,本文介绍了HTTPS的是如何保证数据安全传输,以及如何应对中间人攻击!

路漫漫不止修身,也养性。文章来源地址https://www.toymoban.com/news/detail-607029.html

到了这里,关于HTTPS——HTTPS如何加密数据,“证书“为什么可以应对 “中间人攻击“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?

    在上篇文章中,我们了解到 HTTP 在通信过程中,存在以下问题: 通信使用明文(不加密),内容可能被窃听 不验证通信方的身份,因此有可能遭遇伪装 而 HTTPS 的出现正是解决这些问题, HTTPS 是建立在 SSL 之上,其安全性由 SSL 来保证 在采用 SSL 后, HTTP 就拥有了 HTTPS 的加密

    2024年03月19日
    浏览(55)
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍

    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 在密码中一般是:明文+密钥-密文(加密) ,密文+密钥-明文(解密) 那么为什么大家放弃了原有的http换为https呢? 这我们就要先介绍一下H

    2024年02月08日
    浏览(53)
  • 为什么 HTTPS 协议能保障数据传输的安全性?

    HTTP 协议 在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。 HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、

    2024年01月22日
    浏览(52)
  • 什么是HTTPS加密协议?HTTPS安全传输原理,SSL和TLS介绍,NGINX如何配置SSL证书

    HTTPS是超文本传输协议(HTTP)的安全版本。它使用SSL(安全套接层)或TLS(传输层安全)加密协议来保护数据传输的安全性和机密性,以防止未经授权的访问和窃听。HTTPS协议通常用于处理敏感信息,如在线支付或登录凭证等。可以通过URL的前缀来识别一个网站是否使用了H

    2024年02月03日
    浏览(59)
  • 什么是https?https为什么安全?

    随着互联网的发展,HTTPS 协议在互联网通信中的应用越来越广泛,被越来越多的网站采用。相比于 HTTP 协议,HTTPS 协议的安全性更高,使得网络通信更加安全。那么,为什么 HTTPS 协议能够保证通信安全呢? 本文将从以下几个方面进行探讨:HTTPS 协议的基本原理,HTTPS 协议与

    2023年04月09日
    浏览(48)
  • 电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理

    主页 : 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言。 个人辛苦整理,付费内容,禁止私自转载。 内容摘要 1. 硬盘数据丢失场景 2. 硬盘数据丢失可以恢复吗? 3. 数据丢失怎么恢复? 3.1 第一款、嗨格式数据恢复大师  3.2 第二款、360安全卫士 3.3 第三款、

    2024年02月09日
    浏览(63)
  • 表单的总数据为什么可以写成一个空对象,不用具体的写表单中绑定的值,vue3

      from为空对象  在v-model里写form.name,其实就是在form这个空对象里添加了一个键名为name的成员,你不用在script标签的form对象里面特意写name属性。

    2024年01月23日
    浏览(66)
  • 【计算机网络】什么是HTTPS?HTTPS为什么是安全的?

    【面试经典题】 前言: HTTP最初的设计就是用于数据的共享和传输,并没有考虑到数据的安全性,如窃听风险,篡改风险和冒充风险。HTTPS是在 HTTP 的基础上引入了一个加密层。HTTPS通过数据加密,数据完整性检验和身份认证有效的保证了数据传输的安全性。HTTP默认端口号8

    2024年02月08日
    浏览(46)
  • HTTPS为什么安全,流程?

    对称、非对称混合加密 首先,我们先来看 HTTP 为什么 不安全 。 HTTP没有对通信内容进行加密,是 明文传输 ,信息可能会被 劫持、篡改 等,相当于在互联网上裸奔,所以是不安全的。 那么HTTPS主要就是为了解决这个问题,而解决这个问题肯定要对传输的明文进行 加密 ,让

    2023年04月20日
    浏览(51)
  • 神经网络为什么可以学习

    本资料转载于B站up主:大模型成长之路,仅用于学习和讨论,如有侵权请联系 动画解析神经网络为什么可以学习_哔哩哔哩_bilibilis 1.1 也可以是一层,也可以是多层  2.1 每两个神经元之间有两个参数,我们称之为权重 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 16.1  17.1 18.1

    2024年02月12日
    浏览(131)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包