HTTP和HTTPS的区别详解

1.HTTP的缺点

(点击题目解锁惊喜↑↑)

  • 通信使用明文(不加密),内容可能会被窃听。
  • 不验证通信方的身份,因此有可能遭遇伪装。
  • 无法证明报文的完整性,所以有可能已遭篡改。
  • 某些特定的web服务器和特定的web浏览器在实际应用中存在不足(脆弱性或安全漏网)。

1.1 通信使用明文可能会被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和相应的内容)进行加密,即HTTP报文使用明文(未经过加密的报文)方式发送。

TCP/IP是可能被窃听的网络。

通信时不加密是一个缺点是因为,按TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。窃听相同端上的通信只需要收集在互联网上流动的数据包(帧)。

就可以,对于收集来的数据包的解析工作,可以交给抓包或嗅探器工具。

加密处理可以防止被窃听。

加密的对象可以有:

1)通信加密

HTTP协议中没有加密机制,但可以通过SSL(Secure Socket Layer,,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。

与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)。

2)内容的加密

由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密,即把HTTP报文里所含的内容进行加密处理。客户端需要对HTTP报文进行加密处理后再发送请求。

1.2 不验证通信方的身份就可能遭遇伪装

HTTP协议的实现本身非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方,会存在以下各种隐患。

  • 无法确定请求发送至目标的Web服务器是否是真实意图返回响应的那台服务器,有可能是已伪装的Web服务器。
  • 无法确定响应返回到的客户端是否是按真实意图接受响应的那个客户端,有可能是已伪装的客户端。
  • 无法确定正在通信的对方是否具备访问权限,因为某些Web服务器导航保存着重要的信息,只想要发给特定用户通信的权限。
  • 无法判定请求时来自何方、出自谁手,即使是无意义的请求也会照单全收。

查明对方的证书:

可以使用SSL确定通信方,SSL不仅提供加密处理,而且还是用了一种被称为证书的手段,可用于确定方。证书由值得信赖的第三方机构颁发,另外,伪造证书从技术角度来说是异常困难的一件事,所以,只要能够确认通信方持有的证书,即可判断通信方的真实意图。

1.3 无法证明报文的完整性,可能已遭篡改

所谓完整性是指信息的准确度,也就意味着无法判断信息是否准确。

接收到的内容可能有误:

由于HTTP协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接受之前的这段时间内,即使请求或响应的内容遭到篡改,也没有办法获悉。

如何防止篡改:

虽然有使用HTTP协议确定报文完整性的方法,但事实上并不便捷、可靠,其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。

2.HTTPS介绍

HTTPS(安全套接字超文本传输协议),它是HTTP+加密+认证+完整性保护得来的HTTPS。

2.1 HTTPS是身披SSL外壳的HTTP

HTTPS是HTTP通信接口部分用SSL和TLS协议代替而已。通常是HTTP直接和TCP通信,当使用SSL时,则演变为先和SSL通信,再由SSL和TCP通信了。

在采用了SSL之后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。

SSL是独立与HTTP得协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。

2.2 相互交换秘钥的公开秘钥加密技术

加密方法:SSL采用一种叫作公开秘钥加密的加密处理方式,近代的加密方法中加密算法是公开的,而秘钥是保密的,通过这种方式可以保持加密方法的安全性。

共享秘钥加密:加密和解密使用同一个秘钥的方式,在加密时必须要将秘钥也发给对方,在互联网转发秘钥时,如果通信被监听那么秘钥就可能会落入攻击者之手,同时也失去了加密的意义。

使用两把秘钥的公开秘钥加密:公开秘钥加密使用一堆非对称的秘钥,一把叫做私有秘钥,另一把叫做公开秘钥;发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有秘钥进行解密,利用这种方式,不需要发送用来解密的私有秘钥,也不必担心秘钥被攻击者窃听而盗走;但是他的处理速度相对共享秘钥来说很慢。

HTTPS采用混合加密方式:利用两种加密方式的优点,组合起来进行通信;在交换秘钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享加密方式。

2.3 证明公开秘钥正确性的证书

公开密钥加密方式无法证明秘钥本身就是货真价实的公开密钥;为了解决这个问题,可以使用由数字证书认证机构(CA)和其他相关机构颁发的公开秘钥证书。

故CA认证介入我们的HTTPS连接的过程如下:

  • 服务器拥有自己的私钥与公钥。
  • 服务器将公钥交给CA认证机构,请求给予一份数字证书。
  • CA认证机构生成数字证书,并颁发给服务器。
  • 服务器将带有公钥信息的数字证书发给客户端。
  • 进入客户端生成对称密钥再进行对接的过程。

2.4 HTTPS的通信步骤

  • 客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
  • Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
  • 客户端的浏览器与Web服务器开始协商SSL/TLS连接的安全等级,也就是信息加密的等级。
  • 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
  • Web服务器利用自己的私钥解密出会话密钥。
  • Web服务器利用会话密钥加密与客户端之间的通信。

2.5 HTTPS的优点

  • 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全,可防止数据在传输过程中不被窃取、修改、确保数据的完整性。
  • HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但他大幅度增加了中间人攻击的成本。

2.6 HTTPS的缺点(对比优点)

  • 慢,HTTPS未经任何优化的情况下要比HTTP慢几百毫秒以上,特别在移动端可能要慢500毫秒以上,关于HTTPS慢和如何优化已经是一个非常系统和复杂的话题。
  • 贵,特别在计算性能和服务器成本方面。HTTPS为什么会增加服务器的成本?相信大家也都清楚HTTPS要额外计算,要频繁地做加密和解密操作,几乎每一个字节都需要做加解密,这就产生了服务器成本。
  • 大量的计算.SSL的每一个字节都涉及到较为复杂的计算。即使是clientHello,也需要在握手完成时做校验。
  • TLS协议的封装和解析。HTTPS所有数据都是按照TLS record格式进行封装和解析的。
  • 协议的网络交互。从TLS的握手过程可以看出,即使不需要进行任何计算,TLS的握手也需要至少1个RTT(round trip time)以上的网络交互。RTT(Round-Trip Time): 往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
  • HTTPS降低用户访问速度(需多次握手)。
  • 网站改用 HTTPS 以后,由 HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用 301、302 跳转)。
  • HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加服务器资源(https 访问过程需要加解密)。

3.HTTPS和HTTP的区别

https协议需要到CA申请证书,一般免费整数较少,因而需要一定费用。

http是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议。

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

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

4.SSL和TLS

  • SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
  • TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

4.1 SSL提供服务

  • 认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • 加密数据以防止数据中途被窃取。
  • 维护数据的完整性,确保数据在传输过程中不被改变。

4.2 工作流程

服务器认证阶段:

1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接。

2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息。

3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器。

4)服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。

用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

4.3 SSL协议提供的安全通道有以下三个特性

  • 机密性:SSL协议使用密钥加密通信数据。
  • 可靠性:服务器和客户都会被认证,客户的认证是可选的。
  • 完整性:SSL协议会对传送的数据进行完整性检查。

服务器证书(server certificates)是SSL数字证书的一种形式,意指通过提交数字证书来证明您的身份或表明您有权访问在线服务。再者简单来说,通过使用服务器证书可为不同站点提供身份鉴定并保证该站点拥有高强度加密安全。是组成Web服务器的SSL安全功能的唯一的数字标识。通过相互信任的第三方组织获得,并为用户提供验证您Web站点身份的手段。服务器证书包含详细的身份验证信息,如服务器内容附属的组织、颁发证书的组织以及称为公开密钥的唯一的身份验证文件。

5.如何优化HTTPS的速度

1)HSTS重定向技术:将http自动转换为https,减少301重定向。

2)TLS握手优化:在TLS握手完成前客户端就提前向服务器发送数据。

3)会话标识符:服务器记录下与某客户端的会话ID,下次连接客户端发ID过来就可以直接用之前的私钥交流了。

4)OSCP Stapling:服务器将带有 CA 机构签名的 OCSP 响应在握手时发给客户端,省的客户端再去CA查询。

5)完全前向加密PFS:使用更牛逼复杂的秘钥算法。

推荐阅读

>>>新手必备-Linux入门之云计算是什么

>>>红帽认证入门-Linux系统介绍及企业版本选型

>>>新手必备-Linux系统安装配置+Xshell远程连接

>>>Linux常用命令行合集之绝对路径和相对路径

>>>软连接与硬连接

运维界升职加薪必备的云计算技术,你学了吗?

学完高级运维云计算课程之后,你可以:

  • 跨越90%企业的招聘硬门槛
  • 增加70%就业机会
  • 拿下BAT全国TOP100大厂敲门砖
  • 体系化得到运维技术硬实力
  • 技术大佬年薪可达30w+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253621.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP和HTTPS请求的整个过程详解

HTTP和HTTPS请求的整个过程详解 小橙子 小橘子的日记 4月17日 HTTP和HTTPS的请求流程也是面试的时候一大考点,如果不掌握的话,容易丢失印象分。这两种请求都是基于TCP/IP,不明白的请看上一篇文章。这里总结HTTP/HTTPS请求的整个过程&#xf…

http和https协议有什么区别

1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。) 2、http是超文本传输协议,信息是明文传…

浅谈 HTTP 和 HTTPS

很多前端伙伴问题有没有体系的面试题? 今天为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 浅谈 HTTP 和 …

http与https概述

http与https的区别 1 背景2 基本概念3 区别4 工作原理4.1 HTTP工作原理4.2 HTTPS工作原理 5 HTTPS优缺点5.1 优点5.2 缺点 6 HTTP请求消息和响应消息6.1 请求消息6.2 响应消息 1 背景 超文本传输协议(HTTP协议)被用于在Web浏览器和网站服务器之间传递信…

HTTP和HTTPS协议,看一篇就够了

一、前言: 先来观察这两张图,第一张访问域名http://www.12306.cn,谷歌浏览器提示不安全链接,第二张是https://kyfw.12306.cn/otn/regist/init,浏览器显示安全,为什么会这样子呢?2017年1月发布的…

HTTP和HTTPS

1. 前言 近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTT…

HTTP 和 HTTPS 的区别

一、简述 1️⃣HTTP (全称 Hyper Text Transfer Protocol),就是超文本传输协议,用来在 Internet 上传送超文本。是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本…

什么是HTTP协议和HTTPS协议,以及两者的区别

HTTP协议 超文本传输协议(Hyper Text Transfer Protocol),是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以形式给出;而消息内…

HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此&…

HTTP与HTTPS是什么?http和https的区别

一、HTTP是什么? HTTP 是超⽂本传输协议,也就是Hyper Text Transfer Protocol。 HTTP 是⼀个在计算机世界⾥专⻔在「两点」之间「传输」⽂字、图⽚、⾳频、视频等「超⽂本」数据的「约定和规范」。 超⽂本传输协议,它可以拆成三个部分&…

HTTP与HTTPS的区别,详细介绍

需要查看更多的计算机网络相关的知识?点击这里 目录 HTTP与HTTPS介绍 HTTPS和HTTP的主要区别 HTTPS的主干层次介绍 客户端在使用HTTPS方式与Web服务器通信时的步骤 CA证书的申请及其使用过程 SSL与TLS SSL/TLS历史 SSL/TLS协议的基本过程 SSL/TLS 密码套件…

C++ vector与map的结合运用

目录 vector和map的简单介绍: 今天我们用vector容器和map容器实现以下简单的功能: 案例描述: 图解: ​ 实现步骤: 代码实现: 运行结果: vector和map的简单介绍: map和vector都是C STL&…

系统漏洞利用与提权

任务二:系统漏洞利用与提权 任务环境说明: 服务器场景:PYsystem0033 服务器场景操作系统:Ubuntu 服务器场景用户名:未知 密码:未知 1.使用nmap扫描靶机系统,将靶机开放的端口号按从小到大的顺序作为F…

pycharm内置Git操作失败的原因

文章目录 问题简介解决方案DNS缓存机制知识的自我理解 问题简介 最近在pycharm中进行代码改动递交的时候,总是出现了连接超时或者推送被rejected的情况,本以为是开了代理导致的,但是关闭后还是推送失败,于是上网查了以后&#xf…

集群模式下,redis锁的问题,红锁

在使用redis来实现分布式锁的时候,如果redis是集群的,比如1主4从,这种主从模式就会存在延迟问题,导致加锁出现问题。 此时就应该使用红锁的方案,即在代码中不依赖于主从,将这5台机器视为平等的&#xff0c…

redis锁

用django-redis很容易实现redis分布式锁,但本文介绍用另外一种方式redis模块来实现redis锁—过期后自动解锁。 from celery_demo.celery import app import time from celery import Celery, platforms # from django.core.cache import cache import redisplatfor…

深入理解Redis分布式锁

背景 项目中有个场景是做数据分析,然后将目标数据保存在db,有个要求是将同类型的目标数据值保存一次,因此每次保存时需要判断之前是否已经存在了,由于qps较高,之前使用redis来缓存已经保存的数据,来抵挡对db的大部分流…

redis锁的几种实现

1. redis加锁分类 redis能用的的加锁命令分表是INCR、SETNX、SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。 然后其它用户在执行 INCR 操作进行加一时&#xff0…

java redis锁_Java中Redis锁的实现

由于具体业务场景的需求,需要保证数据在分布式环境下的正确更新,所以研究了一下Java中分布式锁的实现。 Java分布式锁的实现方式主要有以下三种: 数据库实现的乐观锁 Redis实现的分布式锁 Zookeeper实现的分布式锁 其中,较常用的是前两种方式,但是数据库实现方式需要较多的…

设计模式之~工厂系列

目录 简单工厂模式 工厂方法模式 简单工厂 VS 工厂方法 抽象工厂模式: 拓展: 利用简单工厂模式优化抽象工厂 利用反射抽象工厂 进行优化 反射配置文件抽象工厂进行优化 简单工厂模式 优点:简单工厂模式的最大优点在于工厂类包含…