关于http与https之间的区别

  • A+
所属分类:成长之路

前言

谷歌在2018年2月9日宣布从今年的7月起,Chrome浏览器将在地址栏把所有的HTTP网址标示为不安全网站。

谷歌早在2017年1月发布的Chrome56,开始把要求用户输入密码或信用卡信息的HTTP网页标为不安全;2017年10月发布的Chrome62,开始把需要输入数据的HTTP网页和在Incognito模式下浏览的HTTP网站标为不安全。

http与https的概念

http超文本传输协议,是一个客户端和服务端请求和应答的标准,用于WWW服务器传输超文本到本地浏览器的传输协议,可以使浏览器更加高效,减少网络传输。

https超文本传输安全协议,就是http的安全版本,https是由http进行通信,但利用SSL/TLS来加密数据包。

HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据隐私与完整性。这个协议由网景公司在1994年首次提出,随后扩展到互联网。

http存在的问题

  • 易被监听

http通信是明文,数据在客户端与服务器通信的过程中,任何一点都可能被劫持。比如,发送了银行卡号和密码,hacker劫取到数据,就可以看到卡号和密码,这是很危险的;

  • 易被伪装

http通信时,无法保证通行双方是合法的,通信方可能是伪装后的。比如你请求birdteam.net,你怎么知道返回的数据就是来自本站,中间人可能返回数据伪装成本站;

  • 易被篡改

hacker中间篡改数据后,接收方并不知道数据已经被更改。

https解决的问题

https恰好解决了上述三个问题,https不是一种新协议,它是由http+SSL的结合体,由之前http到tcp,改为了http到SSL到tcp。

  • 防止监听

因为数据是加密的,黑客监听得到的是密文,看不懂的;

  • 防止伪装

https在通信的过程中,客户端和服务器端都是携带证书,证书相当于身份证,有证书就是合法的,没有就是非法,证书由第三方颁布,很难伪造;

  • 防止篡改

https对数据进行摘要处理,即使被篡改也是会被感知的,改了数据也没有用。

http与https的区别

  • https比http更安全

http协议传输的数据时未经过加密的,就是明文;

https在使用http进行通信时,利用SSL进行了加密传输、身份认证的网络协议http+SSL,比http更加安全。

  • https使用需要CA证书,大部分都是付费使用的

CA是Certificate Authority的缩写,也叫证书授权中心,也是需要第三方公司进行授权的。

  • 端口不同

HTTP的URL是由http://起始且默认使用80端口;

HTTPS的URL是由https://起始且默认使用443端口。

https的工作原理

如图所示,https工作原理可以细分为八个步骤:

关于http与https之间的区别

  • 客户端发起HTTPS请求

用户在浏览器里输入一个https网址,然后连接到server的443端口;

  • 服务端的配置

就是指上述提到的数字证书;

  • 传送证书

Web服务器收到客户端请求后,会将网站的证书信息中包含公钥传送一份给客户端;

  • 客户解析证书

客户会对证书进行判断,验证公钥是否有效,存在问题弹出警告;若没问题,生成一个秘钥,后用证书继续进行加密;

  • 传送加密信息

客户端将上加密后的随机值(私钥)提供给服务端,服务端会对其进行解密;

  • 服务器端解密信息

服务端解密后得到私钥,然后把内容通过该值进行对称性加密。对称加密就是指把要返回的信息和随机值(私钥)混合加密,这样除非知道私钥,不然无法获取数据;

  • 传输加密后的信息

继续将加密后的信息传递给客户;

  • 客户解密信息

客户端用之前生成的秘钥解密服务端传过来的信息,于是获取解密后的内容。

https的缺点

https虽然安全性比http高出很多但是也有一些缺点。

  • 握手阶段费时

因为SSL的缘故,HTTPS协议握手阶段会比较费时,会使页面加载时间延长近50%;

  • SSL证书要花钱

便宜没好货好货不便宜;

  • HTTPS连接缓存不如HTTP高效

HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;

  • SSL证书通常需要绑定IP

SSL证书通常需要绑定IP,不可以在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗;

  • 有局限性

HTTPS协议加密范围也比较有限,黑客攻击、拒绝服务攻击、服务器劫持方面几乎起不到什么作用。最关键的,SSL证书信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间攻击一样可行。

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:15   其中:访客  9   博主  6

    • avatar 大师兄 5

      签到成功!签到时间:今日的上午10:08:16,每日打卡,生活更精彩哦!

      • avatar Penn Admin

        签到成功!签到时间:今日的下午8:46:27,每日打卡,生活更精彩哦!

        • avatar treenewbee 5

          签到成功!签到时间:今日的下午6:53:26,每日打卡,生活更精彩哦!

          • avatar wys 1

            言之有理,博客已上ssl。

              • avatar Penn Admin

                @wys 其实对于个人用户来说不需要开通https,我是因为要和微信公众号关联所以没办法!

              • avatar 护栏熊 6

                签到成功!签到时间:今日的上午10:29:55,每日打卡,生活更精彩哦!

                • avatar 鲁哆蜜 4

                  我有个站点也用了https了,

                  • avatar 西点培训班 0

                    感觉HTTPS很强大啊,不过自己的服务器不会配置 学习中

                      • avatar Penn Admin

                        @西点培训班 如果不是硬性需求,强烈建议不要使用!

                          • avatar 笛声 1

                            @Penn 为啥不建议?HTTP/2不是有速度加成吗?

                              • avatar Penn Admin

                                @笛声 HTTP/2只是比HTTPS耗时降低20%而已!

                          • avatar Galen 4

                            签到成功!签到时间:今日的下午12:58:09,每日打卡,生活更精彩哦!