HTTP和HTTPS详解

HTTP和HTTPS详解

一、定义

HTTP 是超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。
HTTPS是一种透过计算机网络进行安全通信的传输协议。它经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。

HTTPS协议的主要作用可以分为两种:
一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

HTTPS 默认工作在 TCP 协议443端口,它的工作流程一般如以下方式:

1TCP 三次同步握手
2、客户端验证服务器数字证书
3DH 算法协商对称加密算法的密钥、hash 算法的密钥
4SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

二、区别

二者区别:

  1. HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。
  2. HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  3. HTTP 连接建立相对简单页面响应速度 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3个包,而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。(HTTPS除了 TCP
    的三个包,还要加上 SSL/TLS握手需要的 9 个包,所以一共是 12 个包)
  4. 二者使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。
  5. 使用 HTTPS 协议需要到 CA申请证书,一般免费证书较少,因而需要一定费用。

三、扩展

(一)https和http相比,就是传输的内容多了对称加密,可以这么理解吗?
1.建立连接时候:https 比 http多了 TLS 的握手过程
2.传输内容的时候:https 会把数据进行加密,通常是对称加密数据

(二)HTTPS 解决了 HTTP 的哪些问题?

HTTP 由于是明文传输,所以安全上存在以下三个风险:
- 窃听风险,比如通信链路上可以获取通信内容。 
- 篡改风险,比如强制植入垃圾广告,视觉污染。
- 冒充风险,比如冒充淘宝网站,用户钱容易没。

补充1-http和https之间的关系:
由于http是明文传输,对数据安全没有保障。为了保证数据传输的安全性,https诞生了。https是在应用层和传输层之间,增加了一层ssl加密。

补充2-https加密原理:

首先浏览器通过使用网站提供的公钥来对数据进行加密,网站受到消息之后,只需要使用私钥就可以进行解密。
并且只有在第一次设定密钥的时候用到非对称加密,当网站受到浏览器随机生成的密钥之后,双方就可以通过对称加密的方式来进行通信,提高传输效率。

问题:
公钥篡改问题,在网站提供公钥时,有可能会被恶意拦截篡改公钥,这样浏览器再向网站发送数据时,就很容易被拦截解密,泄露数据。

解决方法:
CA机构给网站签发数字证书,保证浏览器能够安全的获取到网站的公钥。

1.网站向CA机构申请,将自己的公钥交给CA机构,CA机构会追加部分信息(域名,有效时长等)来制作证书。
2.制作完成以后,CA机构会使用自己的密钥进行加密,将加密后的数据返回给网站,网站此时就只需要将加密数据配置到服务器即可。
3.浏览器请求时,网站会先将加密数据返回给浏览器,浏览器再根据CA机构的公钥来进行解密,解密成功之后就可以获取到证书以及访问网站的公钥了。

补充3-https加密过程:

数字证书:大家都认可的认证中心(CA)
服务器产生数字证书的过程:
1、服务器在给客户端传送公钥的过程中,会把公钥以及服务器的个人信息通过哈希算法生成信息摘要。
2、之后服务器利用CA提供的私钥对信息摘要进行加密,来形成数字签名。
3、将没有经过哈希算法处理的个人信息以及公钥,和数字签名合并在一起,形成数字证书。
客户端拿到数字证书之后:
1、就会利用CA提供的公钥对数字证书里面的数字签名进行解密来得到信息摘要。
2、然后对数组证书里面的服务器公钥以及服务器的个人信息进行hash得到另一份信息摘要。
3、最后把两份信息摘要进行对比,如果一样,则证明是服务器。

(三)HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:

  • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。
  • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。

(四)HTTPS 是如何建立连接的?
SSL/TLS 协议基本流程:
(1)客户端向服务器索要并验证服务器的公钥。
(2)双方协商生产「会话秘钥」。
(3)双方采用「会话秘钥」进行加密通信。

前两步也就是 SSL/TLS 的建立过程,也就是 TLS 握手阶段。SSL/TLS 的「握手阶段」涉及四次通信, 如基于 RSA 握手过程的 HTTPS。

引用

[1]https://www.runoob.com/w3cnote/http-vs-https.html
[2]https://blog.csdn.net/qq_35642036/article/details/82788421
[3]https://blog.csdn.net/qq_41885673/article/details/123431843

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花开盛夏^.^

道阻且长,行者将至!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值