为什么 HTTPS 协议能保障数据传输的安全性?

这篇具有很好参考价值的文章主要介绍了为什么 HTTPS 协议能保障数据传输的安全性?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP 协议

在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。

HTTP 协议介绍

HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下:

请求:

POST http://www.baidu.com HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Content-Length: 7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

wd=HTTP

响应:

HTTP/1.1 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
Date: Thu, 14 Feb 2019 07:23:49 GMT
Transfer-Encoding: chunked

<html>...</html>

HTTP 中间人攻击

HTTP 协议使用起来确实非常的方便,但是它存在一个致命的缺点:不安全。

我们知道 HTTP 协议中的报文都是以明文的方式进行传输,不做任何加密,这样会导致什么问题呢?

下面来举个例子:

小明在 Java 贴吧发帖,内容为我爱 java:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

被中间人进行攻击,内容修改为我爱 PHP:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

小明被群嘲(手动狗头)

可以看到在 HTTP 传输过程中,中间人能看到并且修改 HTTP 通讯中所有的请求和响应内容,所以使用 HTTP 是非常的不安全的。

防止中间人攻击

这个时候可能就有人想到了,既然内容是明文那我使用对称加密的方式将报文加密这样中间人不就看不到明文了吗,于是如下改造:

双方约定加密方式,如下图:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

使用 AES 加密报文,如下图:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

这样看似中间人获取不到明文信息了,但其实在通讯过程中还是会以明文的方式暴露加密方式和秘钥,如果第一次通信被拦截到了,那么秘钥就会泄露给中间人,中间人仍然可以解密后续的通信,如下图:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

那么对于这种情况,我们肯定就会考虑能不能将秘钥进行加密不让中间人看到呢?答案是有的,采用非对称加密,我们可以通过 RSA 算法来实现。

在约定加密方式的时候由服务器生成一对公私钥,服务器将公钥返回给客户端,客户端本地生成一串秘钥(AES_KEY)用于对称加密,并通过服务器发送的公钥进行加密得到(AES_KEY_SECRET),之后返回给服务端。

服务端通过私钥将客户端发送的 AES_KEY_SECRET 进行解密得到 AEK_KEY,最后客户端和服务器通过 AEK_KEY 进行报文的加密通讯。

改造如下图:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

可以看到这种情况下中间人是窃取不到用于 AES 加密的秘钥,所以对于后续的通讯是肯定无法进行解密了,那么这样做就是绝对安全了吗?

所谓道高一尺魔高一丈,中间人为了对应这种加密方法又想出了一个新的破解方案,既然拿不到 AES_KEY,那我就把自己模拟成一个客户端和服务器端的结合体。

在用户→中间人的过程中中间人模拟服务器的行为,这样可以拿到用户请求的明文,在中间人→服务器的过程中中间人模拟客户端行为,这样可以拿到服务器响应的明文,以此来进行中间人攻击:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

这一次通信再次被中间人截获,中间人自己也伪造了一对公私钥,并将公钥发送给用户以此来窃取客户端生成的 AES_KEY,在拿到 AES_KEY 之后就能轻松的进行解密了。

中间人这样为所欲为,就没有办法制裁下吗,当然有啊,接下来我们看看 HTTPS 是怎么解决通讯安全问题的。

HTTPS 协议

HTTPS 简介

HTTPS 其实是 SSL+HTTP 的简称,当然现在 SSL 基本已经被 TLS 取代了,不过接下来我们还是统一以 SSL 作为简称。

SSL协议其实不止是应用在 HTTP 协议上,还在应用在各种应用层协议上,例如:FTP、WebSocket。

其实 SSL 协议大致就和上一节非对称加密的性质一样,握手的过程中主要也是为了交换秘钥,然后再通讯过程中使用对称加密进行通讯。

大概流程如下:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

这里我只是画了个示意图,其实真正的 SSL 握手会比这个复杂的多,但是性质还是差不多,而且我们这里需要关注的重点在于 HTTPS 是如何防止中间人攻击的。

通过上图可以观察到,服务器是通过 SSL 证书来传递公钥,客户端会对 SSL 证书进行验证,其中证书认证体系就是确保 SSL 安全的关键,接下来我们就来讲解下 CA 认证体系,看看它是如何防止中间人攻击的。

CA 认证体系

上一节我们看到客户端需要对服务器返回的 SSL 证书进行校验,那么客户端是如何校验服务器 SSL 证书的安全性呢。

权威认证机构在 CA 认证体系中,所有的证书都是由权威机构来颁发,而权威机构的 CA 证书都是已经在操作系统中内置的,我们把这些证书称之为CA根证书:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

签发证书我们的应用服务器如果想要使用 SSL 的话,需要通过权威认证机构来签发 CA 证书,我们将服务器生成的公钥和站点相关信息发送给 CA 签发机构,再由 CA 签发机构通过服务器发送的相关信息用 CA 签发机构进行加签。

由此得到我们应用服务器的证书,证书会对应的生成证书内容的签名,并将该签名使用 CA 签发机构的私钥进行加密得到证书指纹,并且与上级证书生成关系链。

这里我们把百度的证书下载下来看看:

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

可以看到百度是受信于 GlobalSign G2,同样的 GlobalSign G2 是受信于 GlobalSign R1。

当客户端(浏览器)做证书校验时,会一级一级的向上做检查,直到最后的根证书,如果没有问题说明服务器证书是可以被信任的。

如何验证服务器证书那么客户端(浏览器)又是如何对服务器证书做校验的呢?

首先会通过层级关系找到上级证书,通过上级证书里的公钥来对服务器的证书指纹进行解密得到签名(sign1),再通过签名算法算出服务器证书的签名(sign2)。

通过对比 sign1 和 sign2,如果相等就说明证书是没有被篡改也不是伪造的。

为什么 HTTPS 协议能保障数据传输的安全性?,Web安全,网络协议,网络安全,HTTPS,中间人攻击,安全攻防,https原理,图解HTTP,OSI网络模型,应用安全

这里有趣的是,证书校验用的 RSA 是通过私钥加密证书签名,公钥解密来巧妙的验证证书有效性。

这样通过证书的认证体系,我们就可以避免了中间人窃取 AES_KEY 从而发起拦截和修改 HTTP 通讯的报文。

总结

首先先通过对 HTTP 中间人攻击的来了解到 HTTP 为什么是不安全的,然后再从安全攻防的技术演变一直到 HTTPS 的原理概括,希望能让大家对 HTTPS 有个更深刻的了解。文章来源地址https://www.toymoban.com/news/detail-814907.html

到了这里,关于为什么 HTTPS 协议能保障数据传输的安全性?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 服务器数据传输安全如何保障?保障意义是什么?

           数据安全,是指通过采取必要措施确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。数据安全应保证数据生产、存储、传输、访问、使用、销毁、公开等全过程的安全,并保证数据处理过程的保密性、完整性、可用性。无论是互联网,大

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

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

    2023年04月09日
    浏览(40)
  • 【计算机网络】什么是HTTPS?HTTPS为什么是安全的?

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

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

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

    2023年04月20日
    浏览(44)
  • 为什么HTTPS是安全的?

    1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。  HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下: 请

    2024年02月08日
    浏览(39)
  • 为什么说 HTTPS 是安全的?

    在这个数字化高速发展的时代,网络安全变得前所未有的重要。 个人信息、金融交易、国家安全乃至民生便捷,几乎每一个环节都与网络安全息息相关。 HTTPS作为当今网络传输协议中的重要一员,是保障网络传输安全的基石之一。 本文将深入探讨HTTPS的安全性,解析其背后的

    2024年01月19日
    浏览(37)
  • 为什么 HTTPS 比 HTTP 安全

    HTTP(超文本传输协议)是目前互联网应用最广泛的协议,伴随着人们网络安全意识的加强,HTTPS 被越来越多地采纳。不论是访问一些购物网站,或是登录一些博客、论坛等,我们都被 HTTPS 保护着,甚至 Google Chrome、Firefox 等主流浏览器已经将所有基于 HTTP 的站点都标记为不安全

    2024年02月19日
    浏览(44)
  • 为什么 https 比 http 更安全?

    http 和 https 在许多网站都有用到,但是现在都是极力倡导使用 https ,究其原因就是 http 的安全性不够高,在数据传输过程中可能会遭到黑客窃取。 本篇文章会先讲解 http 缺点,然后再讲解 https 是如何解决这些问题来保证安全的。 一、http 缺点 通信使用明文(不加密),内容

    2024年01月24日
    浏览(41)
  • HTTPS 为什么是安全的 _ (下)

    有了这些前置知识,下面就来深入剖析 HTTPS 。 为什么需要 HTTPS ? 因为 HTTP 在裸奔 。 针对上篇文章中提到过的安全传输信息的几个要素: 保证传输内容的安全,即不传输明文 防止传输内容被篡改,即可以识别篡改 确认对方真的是对方,即通信双方身份的认证 由于 HTTP 是

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

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

    2024年02月08日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包