广告
返回顶部
首页 > 资讯 > 精选 >为什么说HTTPS比HTTP安全
  • 834
分享到

为什么说HTTPS比HTTP安全

2023-06-17 02:06:30 834人浏览 独家记忆
摘要

本篇内容介绍了“为什么说https比Http安全”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTTP 协议HTTP(Hyper Text

本篇内容介绍了“为什么说httpsHttp安全”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

HTTP 协议

HTTP(Hyper Text Transfer  Protocol)协议是超文本传输协议的缩写,它是从WEB服务器传输超文本标记语言(html)到本地浏览器的传送协议,位于 OSI 网络模型中的应用层

为什么说HTTPS比HTTP安全

HTTP 是一个基于tcp/IP通信协议来传递数据的协议,传输的数据类型为 HTML 文件、图片文件、查询结果等。

HTTP协议一般用于 B/S 架构。浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。

为什么说HTTPS比HTTP安全

HTTP 特点

  • HTTP 协议支持客户端/服务端模式,也是一种请求/响应模式的协议

  • 简单快速: 客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST

  • 灵活: HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。

  • 无连接:  限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。

  • 无状态: 无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。

HTTP 中间人攻击

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

我们知道 HTTP 协议中的报文都是以明文的方式进行传输,不做任何加密,这样会导致中间人攻击

例如:小明 JAVA 贴吧发帖,内容为 我爱JAVA:

为什么说HTTPS比HTTP安全

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

为什么说HTTPS比HTTP安全

服务器接收到的就是错误的信息:我爱php

除此之外,请求信息也容易被窃听截取、冒充

如何防止中间人攻击

既然 HTTP 是明文传输,那我们家加密不就好了

对称加密

对称加密 很好理解,即加密和解密使用的同一个密钥,是 对称 的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性。

举个例子,你想要登录某网站,只要事先和它约定好使用一个对称密钥,通信过程中传输的全是用密钥加密后的密文,只有你和网站才能解密。黑客即使能够窃听,看到的也只是乱码,因为没有密钥无法解出明文,所以就实现了机密性。

为什么说HTTPS比HTTP安全

缺点:  这种加密方式固然很好,但是问题就在于如何让双方知道秘钥,术语叫“密钥交换”。因为传输数据都是走的网络,如果将秘钥通过网络的方式传递的话,一旦秘钥被截获就没有加密的意义的。

非对称加密

也叫公钥加密算法,它有两个密钥,一个叫 公钥(public key),一个叫 私钥(private  key)。两个密钥是不同的,不对称,公钥可以公开给任何人使用,而私钥必须严格保密。

公钥和私钥有个特别的 单向 性,虽然都可以用来加密解密,但公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。

非对称加密可以解决 密钥交换  的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。

为什么说HTTPS比HTTP安全

这种加密方式就可以完美解决对称加密存在的问题。假设现在两端需要使用对称加密,那么在这之前,可以先使用非对称加密交换秘钥。

简单流程如下:首先服务端将公钥公布出去,那么客户端也就知道公钥了。接下来客户端创建一个秘钥,然后通过公钥加密并发送给服务端,服务端接收到密文以后通过私钥解密出正确的秘钥,这时候两端就都知道秘钥是什么了。

那么这样做就是绝对安全了吗?

中间人为了对应这种加密方法又想出了一个新的破解方案,既然拿不到 私钥 ,我就把自己模拟成一个客户端和服务器端的结合体,

  • 在 用户->中间人 的过程中,中间人模拟服务器的行为 ,这样可以拿到用户请求的明文

  • 在 中间人->服务器 的过程中中间人模拟客户端行为,这样可以拿到服务器响应的明文

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

还是没有彻底解决中间人攻击问题,怎么办喃?接下来我们看看 HTTPS 是怎么解决通讯安全问题的。

HTTPS

为什么说HTTPS比HTTP安全

HTTPS并非是应用层的一种新协议,其实是 HTTP+SSL/TLS 的简称

HTTP 和 HTTPS 的区别:

  • HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的TLS(SSL)加密传输协议

  • HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

  • HTTP 的连接很简单,是无状态的;HTTPS协议是由 HTTP+SSL/TLS 协议构建的可进行加密传输、身份认证的网络协议,比 HTTPS  协议安全。

SSL/TSL

SSL 即安全套接层(Secure Sockets Layer),在 OSI 模型中处于第 5 层(会话层),SSL 发展到 v3 时改名为  TLS(传输层安全,Transport Layer Security),正式标准化,版本号从 1.0 重新算起,所以 TLS1.0 实际上就是 SSL  v3.1。

到今天 TLS 已经发展出了三个版本,分别是 2006 年的 1.1、2008 年的 1.2 和去年(2018)的 1.3。1.2 版本用的最广泛

HTTPS 通过了 HTTP 来传输信息,但是信息通过 TLS 协议进行了加密

TLS 协议位于传输层之上,应用层之下。首次进行 TLS 协议传输需要两个 RTT ,接下来可以通过 Session Resumption 减少到一个  RTT

在 TLS 中使用了两种加密技术,分别为:对称加密和非对称加密,内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段:

为什么说HTTPS比HTTP安全

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

CA 认证体系

权威认证机构

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

签发证书

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

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

为什么说HTTPS比HTTP安全

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

如何验证服务器证书

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

为什么说HTTPS比HTTP安全

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

使用 HTTPS 会被抓包吗?

HTTPS 的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看。

但是,正如前文所说,浏览器只会提示安全风险,如果用户授权仍然可以继续访问网站,完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下,便可以组建中间人网络,而抓包工具便是作为中间人的代理。通常  HTTPS  抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。

既然 HTTPS 不能防抓包,那 HTTPS 有什么意义?HTTPS  可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓包操作是不提供防护的,因为这个场景用户是已经对风险知情。要防止被抓包,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被破解。

总结

我们由 HTTP 中间人攻击的来了解到 HTTP 为什么是不安全的,然后再从安全攻防谈到 HTTPS 的原理概括,最后谈一下 HTTPS  抓包问题,希望能让大家对 HTTPS 有个更深刻的了解。

“为什么说HTTPS比HTTP安全”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 为什么说HTTPS比HTTP安全

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 为什么说HTTPS比HTTP安全
    本篇内容介绍了“为什么说HTTPS比HTTP安全”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTTP 协议HTTP(Hyper Text ...
    99+
    2023-06-17
  • 为什么https比http慢
    https比http慢的原因https与http都是建立在TCP协议上的,但不同的是,其中http使用三个握手数据包建立连接后,就可以直接传输数据内容;而https在使用三个握手数据包建立连接后,还需要一个SSL握手的步骤,且SSL握手阶段...
    99+
    2022-10-13
  • 为什么HTTPS是安全的
    这篇文章主要介绍“为什么HTTPS是安全的”,在日常操作中,相信很多人在为什么HTTPS是安全的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”为什么HTTPS是安全的”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-15
  • 什么是https?http升级为https需要什么?
      一、什么是https?    https是一种加密传输协议,网站使用https后可以避免敏感信息被第三方获取。https加密协议=SSL / TLS+http协议,也就是说,在传统的http协议上加上SSL成就可以实现数据传输加密。  ...
    99+
    2023-06-04
  • 为什么说HashMap线程不安全
    目录1. 并发修改导致数据不一致2. 并发扩容导致死循环或数据丢失3. 非线程安全的迭代器4. 非线程安全的比较器在Java中,HashMap是一种常用的数据结构,它以键值对的形式存...
    99+
    2023-05-18
    HashMap线程不安全
  • 为什么说单线程的Redis比较快
    这篇文章主要为大家展示了“为什么说单线程的Redis比较快”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“为什么说单线程的Redis比较快”这篇文章吧。单线程的 ...
    99+
    2022-10-19
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍
    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 引言 在密码中一般是:明文+密钥->密文(加密)...
    99+
    2023-10-10
    https 网络协议 http
  • 云服务器为什么比传统服务器更加安全
    云服务器比传统服务器更加安全的原因有:1、云服务器拥有完善的监控措施和丰富的安全经验,安全性和监控能力更强;2、云服务器能保证用户的业务数据存储在不同的云端集群中,能解决单点硬件故障所造成的问题;3、云服务器提供24小时的严密监控,能防止黑...
    99+
    2022-10-12
  • linux比windows安全的原因是什么
    这篇文章主要介绍“linux比windows安全的原因是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux比windows安全的原因是什么”文章能帮助大家解决问题。六大原因:1、Win自动...
    99+
    2023-06-30
  • 为什么在Java中使用HTTP比使用Shell和NPM更好?
    在现代的软件开发中,HTTP已经成为了一个普遍的协议。Java作为一种流行的编程语言,自然也有许多方法来使用HTTP。但是,为什么在Java中使用HTTP比使用Shell和NPM更好呢?本文将探讨这个问题,并为您展示如何在Java中使用HT...
    99+
    2023-11-12
    shell npm http
  • Web安全的HTTP协议有什么作用
    这篇文章主要讲解了“Web安全的HTTP协议有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web安全的HTTP协议有什么作用”吧!超文本传输协议(HTTP,Hyper Text T...
    99+
    2023-06-17
  • http代理ip的安全性指的是什么
    这篇文章主要介绍http代理ip的安全性指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!HTTP代理是介于浏览器和web服务器之间的一个服务器,当连接上代理之后,浏览器不再直接从web服务器获取网页,而是将r...
    99+
    2023-06-15
  • http免费代理ip有什么安全隐患
    本篇内容介绍了“http免费代理ip有什么安全隐患”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!伴随着因特网的发展,网站的各种限制越来越多,...
    99+
    2023-06-20
  • Java中为什么HashMap线程不安全
    本篇内容主要讲解“Java中为什么HashMap线程不安全”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中为什么HashMap线程不安全”吧!01、多线程下扩容会死循环众所周知,Hash...
    99+
    2023-06-25
  • 为什么Podman运行容器更安全?
    Podman 使用传统的 fork/exec 模型(相对于客户端/服务器模型)来运行容器。在进入本文的主要主题 Podman 和容器之前,我需要了解一点 Linux 审计功能的技术。什么是审计?...
    99+
    2023-06-04
  • 什么是 HTTP shell?它是否会危及网站安全?
    HTTP shell是一种通过HTTP协议执行的shell,它可以在服务器上执行命令。HTTP shell通常是通过Web应用程序中的漏洞注入的,攻击者可以使用HTTP shell执行任意命令,并获取服务器的访问权限。本文将介绍HTTP s...
    99+
    2023-09-30
    索引 http shell
  • win11为什么不能关闭安全防护
    Win11的安全防护功能是为了保护计算机免受恶意软件和网络威胁的攻击。这些安全防护功能包括Windows Defender防病毒软件...
    99+
    2023-09-06
    win11
  • 为什么win11不能关闭安全防护
    Windows 11的安全防护功能是为了保护用户的计算机免受恶意软件和网络攻击的影响。关闭安全防护功能可能会导致计算机的安全性受到威...
    99+
    2023-08-22
    win11
  • 做亚马逊多个账号用什么网络比较安全
    如果您需要同时管理多个亚马逊账号,建议使用虚拟专用网络(VPN)来保护您的网络安全。VPN可以为您提供一个安全的网络连接,使您的互联网流量得到加密和保护,从而保护您的隐私和数据安全。 在选择VPN时,您需要考虑以下几个因素: 安全性:选...
    99+
    2023-10-27
    亚马逊 多个 账号
  • 云服务器数据安全性高吗为什么
    云服务器是一种虚拟服务器,它允许客户将数据存储在服务器上,并通过公共互联网共享。因此,云服务器具有高度的数据安全性,因为数据不会被黑客攻击。 云服务器的数据安全性包括以下几个方面: 防止数据丢失:在云服务器上,数据始终存储在同一个位置,...
    99+
    2023-10-27
    性高 服务器 数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作