HTTP和HTTPS的区别

HTTP部分的传送门:https://mp.csdn.net/mdeditor/100921051#


在介绍HTTP和HTTPS的区别之前我们先观察以下两张图:

这是我用google访问校园网时,url地址栏旁边会有不安全的提示。下面的是百度的主页(湖人球迷(●'◡'●))

自2017年1月,Chrome把收集密码或信用卡数据的HTTP页面标记为不安全,自2017年10月,Chrome将带有输入数据的HTTP页面和所有以无痕模式浏览的HTTP页面都会被标记为不安全,此外,苹果公司强制所有iOS App在2017年1月1日前使用HTTPS加密。(也就是为什么IOS某些应用需要配置描述文件后才能使用)
 

HTTPS简介

从上图可以看出,HTTPS就是身披SSLorTLS外壳的HTTP,是一种通过计算机网络进行安全通信的传输协议,通过HTTP进行通信,利用SSL/TLS建立安全信道,加密数据包。总的来说,HTTPS就是提供网站服务器的身份认证,同时保护交换数据的隐私和完整性。

 

SSL

安全套接层,它是一个位于TCP与各应用层之间的安全协议,3.0版本后被成为TLS。

采用身份验证数据加密保证网络通信的安全以及数据的完整性

 

加密方式

最初消息仅通过HTTP传输时,只需要通过嗅探软件抓取HTTP报文就可以截获用户的请求信息,那么为了消息的安全性,便有了以下几种对消息的加密方式:

对称加密:加密解密共享同一个密钥,速度快,安全性不高

非对称加密:加密通过公钥,解密通过私钥,性能较低,安全性很高

哈希算法:将任意长度信息转换为固定长度值,算法不可逆,如MD5加密

数字签名:在信息后加一串签名一起发送(消息或文件的哈希值),以证明某个消息或者文件是某个人发出/认同的。

 

而实际生产场景中,人们发现仅靠以上加密方式并不能满足需求,要么非对称加密性能过低,要么对称加密容易泄露密钥,因此HTTPS采用的是证书配合加密的方式取长补短。

 

HTTPS数据传输流程

1. 浏览器将本地支持的加密算法信息发送给服务器

2. 服务器选择一套浏览器支持的加密算法,以证书的形式回发给浏览器(证书中包含了证书发布的CA机构,证书所有者,签名等)

3. 浏览器接收后,验证证书合法性(也就是确定对方身份),并结合证书公钥将信息+hash值一起加密后发送给服务器

4. 服务器接收后,通过私钥进行解密,验证哈希(确定接收端身份),加密响应消息回发给浏览器。

5. 浏览器解密响应消息并验证,之后进行加密交换数据

 

二者区别

1. HTTPS需要到CA申请证书,也就是要花钱;HTTP不需要

2. HTTPS密文传输;HTTP明文传输

3. HTTPS默认采用443端口,HTTP默认采用80端口

4. HTTPS=HTTP+加密+身份认证+完整性保护,更加安全

 

那么HTTPS真的就坚不可破了么?

答案当然是否定的。大部分用户在URL地址栏中只会输入一个域名,比如我妈访问百度就直接输入www.baidu.com,她是不会去管什么http和https之类的,而当前大部分浏览器默认都是域名前添加http://,网站管理员是通过跳转的方式实现http跳转到https,这个过程中会使用http,也就是也可能会出现被劫持的风险。

 

这时就需要HSTS了,但目前该技术并未普及...

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值