为什么需要HTTPS

HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。

举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。

用户登陆 --> 代理服务器(做手脚)--> 实际授权服务器

在发送端对密码进行加密?没用的,虽然别人不知道你原始密码是多少,但能够拿到加密后的账号密码,照样能登陆。

什么是HTTP

HTTP 是一种协议,全称叫作:超文本传输协议(HTTP,HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。

同样 HTTPS 也是一种超文本传送协议,(HTTPS,Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。用于安全的 HTTP 数据传输。

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

为了解决 HTTP 协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议 HTTPS。为了数据传输的安全,HTTPS 在 HTTP 的基础上加入了 SSL 协议,SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTP有什么问题

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据加密传输,网景公司设计了SSL(Sercure Socket Layer)协议用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS。

缺点:

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法证明报文的完整性,所以有可能已遭篡改

优点:

  • 简单
  • 传输速度快

什么是HTTPS

HTTPS 可以认为是 HTTP + TLS。

Https并非是应用层的一种新协议。只是http通信接口部分用SSL(安全套接字层)和TLS(安全传输层协议)代替而已。即添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure).

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

HTTP和HTTPS协议的区别

  1. HTTPS更安全:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议的信息明文传输安全;
  2. HTTPS需要申请证书:HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费,费用大概与.com域名差不多,每年需要大约几十元的费用。而常见的HTTP协议则没有这一项;
  3. 端口不同:HTTP使用的是大家最常见的80端口,而HTTPS连接使用的是443端口;
  4. 状态不同:HTTP的连接很简单,是无状态的。而HTTPS协议是SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全;

从上面可看出,HTTPS和HTTP协议相比提供了

  • 数据完整性:内容传输经过完整性校验
  • 数据隐私性:内容经过对称加密,每个连接生成一个唯一的加密密钥
  • 身份认证:第三方无法伪造服务端(客户端)身份

HTTPS是如何保障安全的

HTTPS这个多出来的S就是secure的意思,也就是HTTP的安全升级版。

HTTP是应用层协议,位于HTTP协议之下是传输协议TCP。TCP负责传输,HTTP则定义了数据如何进行包装。

HTTP --> TCP (明文传输)

其实就是在HTTP跟TCP中间加多了一层加密层TLS/SSL

什么是TLS/SSL?

通俗的讲,TLS、SSL其实是类似的东西,SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。

SSL/TLS简单介绍

TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 1995 年发布,1999 年经过 IETF 讨论和规范后,改名为 TLS。如果没有特别说明,SSL 和 TLS 说的都是同一个协议。

HTTP 和 TLS 在协议层的位置以及 TLS 协议的组成如下图:

SSL/TLS作用

不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。

  1. 窃听风险(eavesdropping):第三方可以获知通信内容。
  2. 篡改风险(tampering):第三方可以修改通信内容。
  3. 冒充风险(pretending):第三方可以冒充他人身份参与通信。

SSL/TLS协议是为了解决这三大风险而设计的,希望达到:

  1. 所有信息都是加密传播,第三方无法窃听。
  2. 具有校验机制,一旦被篡改,通信双方会立刻发现。
  3. 配备身份证书,防止身份被冒充。

SSL/TLS是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下

原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。

将数据加密后再传输,而不是任由数据在复杂而又充满危险的网络上明文裸奔,在很大程度上确保了数据的安全。这样的话,即使数据被中间节点截获,坏人也看不懂。

SSL/TLS协议提供的服务主要有:

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

TLS与SSL区别

简单理解TLS是SSL的升级版,一般都把他们两个当作一个东西

为什么要使用HTTPS

1、HTTP/2协议只支持HTTPS加密连接

我们终于在网络技术方面取得了一次大飞跃,推出了HTTP/2协议取代已经使用了超过15年的HTTP/1.1协议。使用HTTP/2有一大堆的好处,但是在这篇文章里我们需要关注的关键点就是:所有主流浏览器只支持使用TLS1.2协议安全连接的HTTP/2协议。Chrome、火狐、Safari、Opera、IE和Edge都要求使用HTTPS加密连接,才能使用HTTP/2。这对网站所有者来说是另一个有利的推动因素。

2、HTTP页面将标记“不安全”

当用户访问网站时,没人想要浏览器上的红色警告,但是如果你的网站采用HTTP链接来传输数据,那红色警告将成为常态。

以前浏览器对不安全的HTTP页面没有任何标记,而只含有部分不安全因素的HTTPS页面却显示安全警告,让人们误以为含有不安全因素HTTPS页面不如HTTP页面安全,这是非常错误的。谷歌和火狐将在标识上做进一步优化,区分HTTP不安全连接和HTTPS安全连接,谷歌Chrome将为所有HTTP网站打红叉,用户可以在Chrome 48或者部分更老版本中体验到这项全新的功能;火狐浏览器将从 Firefox 的开发版 46 开始,对"使用非HTTPS提交密码"的页面进行警告。网站所有者将有更充分的理由让网站支持HTTPS加密。

3、HTTPS加密提升搜索排名

所有人都希望得到很好的搜索引擎排名,网站使用HTTPS加密连接可以帮助你的网站提升搜索引擎排名!谷歌早在2014年就宣布,将把HTTPS加密作为影响搜索排名的重要因素,并优先索引HTTPS网页。百度也表示,开放收录HTTPS站点,同一个域名的HTTP版和HTTPS版视为一个站点,优先收录HTTPS版;百度还表示,网站HTTPS加密不会对流量产生负面影响。在搜索引擎巨头的倡导和实践下,我们可以预见HTTPS加密将在未来产生越来越大的影响力。

4、HTTPS加密防止中间人流量劫持

当你的网站通过HTTP连接传输网页内容时,WiFi节点、运营商、路由器等任何传输节点都可以对网站传输内容进行劫持、篡改、恶意注入等,比如早已见惯的广告弹窗。很多人已经对此麻木,并认为流量劫持不会造成什么损失,但是服务器采取HTTP不安全连接,其实是给黑客留下一道后门,可以向你的网页注入任意恶意内容,如盗号木马等,通过多种你无法觉察的方式窃取网站数据或向您的终端用户下手。HTTPS加密可以有效阻止流量劫持,尤其是全站HTTPS加密,封装所有流量加密传输,让中间人没有可乘之机。

5、iOS和安卓都要求使用HTTPS加密

苹果iOS的App Transport Security和谷歌安卓的usesCleartextTraffic manifest attribute,都推动移动APP默认使用HTTPS加密连接进行通信。苹果iOS强制APP使用HTTPS加密连接,并且要求非常严格,包括只使用TLS1.2协议,必须使用RSA2048位或ECC256位的公钥算法及SHA256签名算法等。如果你的内容或API接口需要在移动APP上使用,那么必须按要求使用HTTPS加密连接。

6、某些权限禁止使用HTTP连接

谷歌Chrome安全团队宣布,采用不安全连接访问浏览器特定功能将被禁止访问,例如地理位置应用、应用程序缓存、获取用户媒体等。

采用不安全的HTTP连接访问用户位置信息并发送,可能造成用户信息的泄漏,确保这类超级权限功能全程使用HTTPS安全连接是使用这些功能的重要步骤。如果你最近使用了一些这样的功能并且希望继续在你的网站上使用,那么你必须让这些页面使用HTTPS加密连接。同样,如果你想增加这些功能,你需要首先设置HTTPS加密连接。

理解HTTPS加密的误区

1、HTTPS加密降低网站性能

虽然TLS的计算量较大,但以目前的设备性能和硬件技术来说,已经不成问题。淘宝、天猫于2015年实现全站HTTP加密,涉及数百个应用、超百万个页面,并顺利通过“双十一”海量流量考验。淘宝分享全站HTTPS技术改造细节时,阿里巴巴技术保障部技术专家李振宇介绍,阿里电商在启用全站HTTPS后,性能不降反升,用户访问网站和移动端更为流畅。

2、启用HTTPS加密成本昂贵

启用HTTPS加密需要向CA机构申请SSL证书,国内CA机构沃通WoSign提供免费SSL证书,可以一次性申请2年期,支持5个多域名,中文申请界面,申请非常快捷方便。此外还有国外机构Startcom等也可提供免费SSL证书。个人站长的博客站点可以申请免费SSL证书,零成本实现HTTPS加密,而企业级网站建议还是付费申请企业级以上的SSL证书,如OV SSL证书或EV SSL证书。沃通CA不仅提供免费SSL证书外,付费SSL证书价格也很优惠,并提供全天候的官方服务。

任何新站点或新的web应用都应该上线前启用HTTPS加密,这是最经济有效的方式。已经上线但尚未启用HTTPS加密的网站,可以向沃通CA咨询HTTPS加密改造方案,尽早开启HTTPS加密,迎接全球HTTPS加密浪潮。

参考:
https://zhangzifan.com/https-http-tls-ssl.html

https://www.wosign.com/faq/faq2016-0309-01.htm

https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E6%80%A7%E5%8D%94%E5%AE%9A

http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

https://segmentfault.com/a/1190000002554673

https://ziyuan.baidu.com/college/articleinfo?id=1022

https://segmentfault.com/a/1190000004523659

http://www.techug.com/post/https-ssl-tls.html

HTTP与HTTPS区别相关推荐

  1. HTTP与HTTPS区别/HTTPS知识点

    2019独角兽企业重金招聘Python工程师标准>>> 关于2017年AppStore新提交应用必须打开ATS的要求只剩下一个多月了,相信大部分开发者都已经完成了从http到http ...

  2. HTTP协议简介,数据安全 如何保证http传输安全性,http与https区别

    目前大多数网站和app的接口都是采用http协议,但是http协议很容易就通过抓包工具监听到内容,甚至可以篡改内容,为了保证数据不被别人看到和修改,可以通过以下几个方面避免. 重要的数据,要加密,比如 ...

  3. Http与Https区别及404状态码

    一.HTTP 与 HTTPS 区别 HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好. 使用 HTTPS 协议需要到 CA(Certi ...

  4. Http与Https区别,加密,证书

    1.HTTP与HTTPS区别 https与http相比,其在数据传输过程中对数据进行了加密,加密技术主要有对称加密和非对称加密两种. 2.对称加密/非对称加密 对称加密是指数据发送方和接收方在对数据进 ...

  5. 简述http 和 https区别

    HTTP与HTTPS的区别 安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性.简单来说,HTTPS是使用TLS/SSL加密的HTTP协议 申请证书上,HTTPS需要使用ca申请证书 ...

  6. scheme http https 区别 tls_HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系

    一.HTTPS与HTTP介绍 二.TLS/SSL工作原理 三.TSL/SSL握手过程 四.HTTPS性能优化 五.PKI体系 一.HTTPS与HTTP介绍 1.Https(Secure Hypetex ...

  7. http 与https 区别浅析

    2019独角兽企业重金招聘Python工程师标准>>> HTTP协议请求响应过程和HTTPS工作原理 HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服 ...

  8. 面试必看之浅谈HTTP与HTTPS区别

    1.HTTP与HTTPS的定义 HTTP: 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守 ...

  9. HTTP和HTTPS区别

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

  10. 简述http和https区别

    http协议和https协议的区别主要是:传输信息安全性不同.连接方式不同.端口不同.证书申请方式不同 一.传输信息安全性不同 http协议:是超文本传输协议,信息是明文传输.如果攻击者截取了Web浏 ...

最新文章

  1. [JSOI2009]密码——AC自动机+记忆化搜索(状压)
  2. Go从入门到精通(一)go语言初识
  3. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现...
  4. 不定长内存池之apr_pool
  5. CVPR 2020 顶会 AI学术检索工具
  6. java 内部类 作用_java内部类的作用分析
  7. iPhone 13凌晨发布,电池容量较iPhone 12最高有望提升20%(文末有福利)
  8. OpenSessionInViewFilter 的配置及作用
  9. SAP License:对煤化工行业的几点思考
  10. django rest_framework
  11. ubuntu 设置tab键自动补全
  12. 基于Java的智能问答系统
  13. 实战react技术栈+express前后端博客项目(3)-- 后端路由、代理以及静态资源托管等配置说明...
  14. 程序设计中的基本概念
  15. 短信服务器和运营商的区别,什么是短信服务商?与短信运营商的区别
  16. Activiti学习之根据条件判断流程走向
  17. SQL Server之——SQL Server 2005 sa 登录失败,该用户与可信SQL Server连接无关联
  18. 计算机信息系统安全管理的主要原则有哪些,网络系统安全性设计原则有哪些
  19. 新入职百度某员工发飙:前人代码写得像一坨屎,不能忍受,颠覆了对大厂的认知,...
  20. 使用Nuxt.js框架开发(SSR)服务端渲染项目

热门文章

  1. 天津科技大学Oracle试题,oracle期末考试题及答案
  2. linux和python学哪个好一些-作为一个Python自学者,怎样学好Python?
  3. 2021-04-20 独立看门狗实验
  4. python自动化的实践笔记
  5. json动态过滤某些属性 之@jsonignore
  6. Eclipse查看文件的本地历史记录
  7. Java Container——Collection
  8. 云端自动化运维学习笔记
  9. 我们的隐私如何成了别人的商品——315消费者权益保护日的个人数据隐私与安全问题
  10. webrtc技术名词和关键技术要点:SVC,REMB,SVC...