HTTP与HTTPS

HTTP与HTTPS基本概念

HTTP:超文本传输协议,是互联网上应用最为广泛的一种网络协议。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。它可以使浏览器更加高效。

HTTP特点

HTTP 最突出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」。

1,简单

HTTP 基本的报文格式就是 header + body,头部信息也是 key-value 简单文本的形式,易于理解,降低了学习和使用的门槛。

2,灵活和易于扩展

HTTP 协议里的各类请求方法、URI/URL、状态码、头字段等每个组成要求都没有被固定死,都允许开发人员自定义和扩充。

  • HTTPS就是再HTTP与TCP层之间增加了SSL/TLS安全传输协议
  • 到的HTTPS/3.0传输协议改为了UDP协议

3,应用广泛和跨平台

互联网不断发展,我们平常接触的信息,绝大多数都来源于网络,而我们所浏览的网站、使用的APP都出自于HTTP的帮助,同时天然具有跨平台的优越性。

4,无状态与明文传输
无状态和明文传输是HTTP的天然的双刃剑。
无状态优缺点

优点:无状态可以让服务器不去记录网络的状态,减轻了服务器的负担
缺点:但没有状态也导致了服务器没有记忆能力,无法完成一些关联性的内容。为解决这一问题,这也致使人们之后用cookie、session以及token来解决这一问题
明文传输优缺点
优点:内容可以直接看到,方便阅读,方便调试
缺点:信息裸奔,没有隐私,内容容易被窃取

HTTPS的产生

HTTPS 设计目标:

(1) 数据保密性:保证数据内容在传输的过程中不会被第三方查看。

(2) 数据完整性:保证传输的内容完整,如果内容被篡改,第三方可以知道并拒收。

(3) 身份校验安全性:校验信息发送者的身份,防止冒充。

HTTPS实现原理

保密性实现原理

保密性实现是基于对数据的混合加密:

HTTP采用的是对称加密非对称加机密的混合加密
在通信前:采用非对称机密的方式交换会话密钥
在通信中:采用对称加密的会话密钥进行加密数据
注:会话密钥在下一段HTTPS建立过程中解释

对称加密与非对称加密是什么
对称加密与非对称加密都可以对数据进行加密与解密

  • 对称加密只有一个密钥,密钥为私密的,运行速度快,但无法做到安全交换
  • 非对称加密使用两个密钥,都可以都数据进行加密与解密,公钥为公开的,可以被任何人使用,私钥为私密的。通常对数据采用私钥加密,公钥解密的方式,可以确定发送数据的身份。可以做到密钥交换问题,但运行速度慢。
    在这里插入图片描述

安全性实现原理

实现安全性的原理是采用了摘要算法数字签名的方式
在这里插入图片描述
其过程为:
服务端通过哈希算法计算出该数据的哈希值(A),之后将该哈希值通过私钥加密,得到的加密数值即为数字签名,之后服务器将数字签名与原内容一同发给客户端。客户端对拿到的内容进行哈希运算得到哈希值(B),对拿到的数字签名用公钥解密得到哈希值(A),比较A与B如果一样既能确定数据完整也能确定数据的来源人。

这里的摘要算法采用的是哈希算法,这通常是计算机的一种默认方式

私钥由服务端保存,如果客户端收到的消息可以被服务端发送的公钥解析,则确定数据来自该服务端,即确定了数据的来源人

身份校验的实现原理

如果将公钥和私钥悄悄替换了,当事人并不知道情况,那这也是安全隐患,所以上方过程缺少了身份验证的环节

解决身份验证采用的是数字证书方式
其过程是:

服务器将自己的公钥注册到CA(数字证书认证机构),CA用自己的私钥将服务器的公钥签名并颁发数字证书。那么服务器在发送数据时再加上自己的数字证书,客户端接受道数字证书后使用CA的公钥确定服务器数字证书的真实性,那么就可以确定接受数据的安全性。

HTTPS建立过程

SSL/TLS 协议基本流程:

客户端向服务器索要并验证服务器的公钥。
双方协商生产「会话秘钥」。
双方采用「会话秘钥」进行加密通信。
前两步也就是 SSL/TLS 的建立过程,也就是 TLS 握手阶段。
TLS握手阶段设计四次通信

  1. 客户端向浏览器发送请求,其中包含的信息有:
    1.客户端支持的TLS协议版本号
    2. 支持加密算法的种类,如RSA算法
    3. 一个的随机数
  2. 服务端收到请求后,向客户端做出响应,回应的内容包括
    1.确认TLS版本,如果浏览器不支持,则关闭连接
    2. 一个随机数
    3. 确认机密算法类型,如RSA算法
    4. 服务器的证书
  3. 客户端收到服务器的回应之后,先用CA的公钥验证服务端证书的真实性,如果没有问题,客户端会从数字证书中取出服务器的公钥,之后向服务器发送信息:
    1.一个被服务器公钥加密的随机数
    2.加密算法改变通知,之后就采用会话密钥的方式进行信息加密
    3.(可选)如果服务器要求客户的身份认证,客户端需要发送自己的证书
    4.客户端握手结束通知,把之前所有的数据做一个摘要,用来共服务器检验

会话密钥是由双方约定好的加密算法对生成的三个随机数计算得来

  1. 服务端确认了客户端的结束通知之后,将收到随机数用私钥解开后,由约定的加密算法计算得到会话密钥,之后发送最后的信息:
    1.加密算法改变通知,之后会用【会话密钥】进行数据加密
    2.服务器握手结束通知,接下来服务器和客户端用普通的HTTP协议,用【会话密钥】进行加密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值