返回顶部
首页 > 资讯 > 精选 >为什么HTTPS是安全的
  • 384
分享到

为什么HTTPS是安全的

2023-06-15 16:06:31 384人浏览 八月长安
摘要

这篇文章主要介绍“为什么https是安全的”,在日常操作中,相信很多人在为什么HttpS是安全的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么HTTPS是安全的”的疑惑有所帮助!接下来,请跟着小编一起来

这篇文章主要介绍“为什么https安全的”,在日常操作中,相信很多人在为什么HttpS是安全的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么HTTPS是安全的”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

 1. HTTP 协议

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

1.1 HTTP 协议介绍

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

为什么HTTPS是安全的

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>

1.2 HTTP 中间人攻击

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

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

  1.  小明在 JAVA 贴吧发帖,内容为我爱JAVA:   

为什么HTTPS是安全的

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

为什么HTTPS是安全的

  3.  小明被群嘲(手动狗头)

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

1.3 防止中间人攻击

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

  1.  双方约定加密方式   

为什么HTTPS是安全的

  2.  使用 AES 加密报文   

为什么HTTPS是安全的

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

为什么HTTPS是安全的

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

在约定加密方式的时候由服务器生成一对公私钥,服务器将公钥返回给客户端,客户端本地生成一串秘钥(AES_KEY)用于对称加密,并通过服务器发送的公钥进行加密得到(AES_KEY_SECRET),之后返回给服务端,服务端通过私钥将客户端发送的AES_KEY_SECRET进行解密得到AEK_KEY,最后客户端和服务器通过AEK_KEY进行报文的加密通讯,改造如下:

为什么HTTPS是安全的

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

所谓道高一尺魔高一丈,中间人为了对应这种加密方法又想出了一个新的破解方案,既然拿不到AES_KEY,那我就把自己模拟成一个客户端和服务器端的结合体,在用户->中间人的过程中中间人模拟服务器的行为,这样可以拿到用户请求的明文,在中间人->服务器的过程中中间人模拟客户端行为,这样可以拿到服务器响应的明文,以此来进行中间人攻击:

为什么HTTPS是安全的

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

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

2. HTTPS 协议

2.1 HTTPS 简介

HTTPS 其实是SSL+HTTP的简称,当然现在SSL基本已经被TLS取代了,不过接下来我们还是统一以SSL作为简称,SSL协议其实不止是应用在HTTP协议上,还在应用在各种应用层协议上,例如:FTP、websocket

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

为什么HTTPS是安全的

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

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

2.2 CA 认证体系

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

  •  权威认证机构

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

为什么HTTPS是安全的

  •  签发证书

我们的应用服务器如果想要使用 SSL 的话,需要通过权威认证机构来签发CA证书,我们将服务器生成的公钥和站点相关信息发送给CA签发机构,再由CA签发机构通过服务器发送的相关信息用CA签发机构进行加签,由此得到我们应用服务器的证书,证书会对应的生成证书内容的签名,并将该签名使用CA签发机构的私钥进行加密得到证书指纹,并且与上级证书生成关系链。

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

为什么HTTPS是安全的

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

  •  如何验证服务器证书

那么客户端(浏览器)又是如何对服务器证书做校验的呢,首先会通过层级关系找到上级证书,通过上级证书里的公钥来对服务器的证书指纹进行解密得到签名(sign1),再通过签名算法算出服务器证书的签名(sign2),通过对比sign1和sign2,如果相等就说明证书是没有被篡改也不是伪造的。

为什么HTTPS是安全的

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

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

总结

首先先通过对 HTTP 中间人攻击的来了解到 HTTP 为什么是不安全的,然后再从安全攻防的技术演变一直到 HTTPS 的原理概括,希望能让大家对 HTTPS 有个更深刻的了解。

到此,关于“为什么HTTPS是安全的”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 为什么HTTPS是安全的

本文链接: https://lsjlt.com/news/281041.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 为什么HTTPS是安全的
    这篇文章主要介绍“为什么HTTPS是安全的”,在日常操作中,相信很多人在为什么HTTPS是安全的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么HTTPS是安全的”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-15
  • 为什么说HTTPS比HTTP安全
    本篇内容介绍了“为什么说HTTPS比HTTP安全”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTTP 协议HTTP(Hyper Text ...
    99+
    2023-06-17
  • HTTPS是安全的吗
    这篇文章主要介绍“HTTPS是安全的吗”,在日常操作中,相信很多人在HTTPS是安全的吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTTPS是安全的吗”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!「一...
    99+
    2023-06-19
  • HTTPS是怎么保证安全的
    本篇内容介绍了“HTTPS是怎么保证安全的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、安全特性在什么是HTTP这篇文章中,我们了解到H...
    99+
    2023-06-17
  • 网站https安全证书为什么会过期
    网站的https安全证书会过期是因为证书有一个固定的有效期限,通常为一年或两年。一旦证书到期,网站就会失去https加密保护,用户在...
    99+
    2024-05-08
    服务器
  • 什么是https?http升级为https需要什么?
      一、什么是https?    https是一种加密传输协议,网站使用https后可以避免敏感信息被第三方获取。https加密协议=SSL / TLS+http协议,也就是说,在传统的http协议上加上SSL成就可以实现数据传输加密。  ...
    99+
    2023-06-04
  • 为什么https比http慢
    https比http慢的原因https与http都是建立在TCP协议上的,但不同的是,其中http使用三个握手数据包建立连接后,就可以直接传输数据内容;而https在使用三个握手数据包建立连接后,还需要一个SSL握手的步骤,且SSL握手阶段...
    99+
    2024-04-02
  • 将全站进行HTTPS化优势是什么
    本篇文章为大家展示了将全站进行HTTPS化优势是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在HTTPS项目的开展过程中明显感觉到目前国内互联网对HTTPS并不是很重视,其实也就是对用户隐私和...
    99+
    2023-06-10
  • 什么是HTTPS证书?HTTP与HTTPS的区别
      一、什么是HTTPS证书    HTTPS证书(即SSL证书)。HTTPS证书是颁发给标识互联网域名的数字证书,证书作用为建立SSL加密通道。    二、HTTPS证书作用    HTTPS主要是为敏感数据和交易(如账单明细、信用卡交易...
    99+
    2023-06-04
  • 电脑https证书安装的方法是什么
    电脑https证书安装的方法如下:1. 下载证书文件:在网站上下载证书文件(通常是以.crt或.pem为扩展名的文件),将其保存到你...
    99+
    2023-06-06
    https证书安装
  • Java基础:为什么hashmap是线程不安全的?
    原因 HashMap 是线程不安全的主要原因是它的内部结构和操作不是线程安全的。下面是一些导致 HashMap 线程不安全的因素: 非同步操作:HashMap 的操作不是线程同步的,也就是说,在多线...
    99+
    2023-09-17
    java
  • 你可知HashMap为什么是线程不安全的
    目录HashMap 的线程不安全HashMap 中的 put() 方法数据的覆盖一数据的覆盖二    HashMap 的线程不安全 HashMap 的线程不安全主...
    99+
    2022-11-13
    HashMap线程 HashMap线程不安全 HashMap线程安全
  • https为什么劫持不了
    https无法被劫持的原因https协议是用于解决传输层安全问题的网络协议,其核心是基于公钥密码学理论实现了对服务器身份认证、数据的私密性保护以及对数据完整性的校验等功能,https可以提供对服务器的身份进行认证,所以劫持导致连接错误服务器...
    99+
    2024-04-02
  • 为什么无法访问https
    无法访问https站点的原因有以下几点SSL证书有误无法访问https网站,可能是SSL证书出现了问题,重新安装SSL证书即可。网站不可信网站不可信,导致被浏览器拦截,进入浏览器Internet选项,将网站设置为可信任网站即可。浏览器设置有...
    99+
    2024-04-02
  • 什么是https劫持
    https劫持攻击中,攻击者会伪装成一个网站并且提供带有攻击者公钥的假证书,通过这些假证书,攻击者可以模仿任何网站,进而可以篡改网站内容、记录用户在网站上的操作或发表的内容等。...
    99+
    2024-04-02
  • HTTPS的优缺点是什么
    这篇文章将为大家详细讲解有关HTTPS的优缺点是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HTTPS的优缺点是什么现在有很多人在进行网站搭建时会考虑网站要不要加HTTPS,这是因为大...
    99+
    2023-06-07
  • 为什么无法显示https的图片
    无法显示https图片的解决方法首先,计算机中打开浏览器;进入到浏览器后,在浏览器页面点击右上角“菜单”选项;在弹出的菜单栏中,选择“工具”,并进入“Internet选项”;进入到Internet选项页面后,在页面切换到“安全”选项卡;在安...
    99+
    2024-04-02
  • https为什么不怕dns劫持
    HTTPS是在HTTP明文通道的基础上增加了一层SSL加密通道。SSL协议是用于解决传输层安全问题的网络协议,其核心是基于公钥密码学理论实现了对服务器身份认证、数据的加密保护以及对数据完整性的校验等功能,确保传输数据的机密性和完整性,以及服...
    99+
    2024-04-02
  • 小程序为什么要用https
    小程序需要使用https的原因https是在http的基础上加入SSL证书后形成的安全协议,https可以对信息进行加密保障数据传输的安全,还能认证服务器的真实性,防止“钓鱼”网站。微信小程序都需要先设置一个通讯合法域名,并通过https请...
    99+
    2024-04-02
  • 如何安全的使用https代理
    如何安全的使用https代理?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。就网络协议而言,代理ip也根据网络协议的不同划分出不同的类型供大家选择。HTTP是因特网上使用最广泛的...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作