http-https

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

提示:以下是本篇文章正文内容,下面案例可供参考

https 的一些概念

https 和http 不一样;
网络通信模型;
在这里插入图片描述
敌手的攻击方法:
(1)被动攻击(窃听):获取但不改变传输的信息
(2)主动攻击:不仅窃听,而且 还改变传输的信息,目的是实现伪造欺骗
http 的缺点

  1. 通信使用明文(不加密),内容可能被窃听
  2. 不验证通信放的信心,因此有可能遭遇伪装
  3. 无法验证报文的玩这个功能性,所以有可能已遭到篡改。

为了解决http 传输过程中,数据被敌手攻击的问题, 客户端和服务器之间需要对数据进行加解密处理。
在这里插入图片描述
https 不是一个单独的协议;是在http 的基础上用TLS/SSL 进行加密;这样就能避免敌手的攻击。

SSL 和TLS 都是加密安全协议;现在绝大部分浏览器都不支持SSL 协议了,支持TLS 协议。

CA 介绍

CA证书:CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。

在这里插入图片描述

证书里面的一些数据
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

查看windows 的证书
win +r 打开命令行
输入命令

certmgr.msc

在这里插入图片描述

对称密码

模型:
在这里插入图片描述
对称密码的特点是:
加密密钥和解密密钥完全一样;
优点:
速度快,成本低;
’且算法公开、计算量小、加密速度快、加密效率高;
所以它是一种对内容加密非常方便快捷的密码算法‘
缺点:
密钥的更新,管理,分配困难

非对称密码

非对称密码专门负责秘钥的更新,管理,分配的工作。
模型:
在这里插入图片描述
加密密钥和解密密钥不同;
不需要专门的安全信道来传递“密钥”;
人人都可以做加密运算;
只有合法用户才能够对自己的密文做解密运算。

密钥分配

在这里插入图片描述

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

加密通信

一种方式就是将通信加密。HTTP 协议中没有加密机制,但可以通过和 SSL(Secure Socket Layer,安全套接层)或 TLS(Transport Layer Security,安全层传输协议)的组合使用,加密 HTTP 的通信内容。用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP通信了。与 SSL 组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)或 HTTP over SSL。
在这里插入图片描述
但是单单只加密信道是不够的,还是不够安全。需要对每次请求都加密。

http 通信
在这里插入图片描述
https 的s
在这里插入图片描述

通常,HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和SSL 通信,再由 SSL 和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL 协议这层外壳的 HTTP。

加密内容

现在知道了加密的两种方式,对称密码和非对称密码;
使用非对称密码,那么加密的文件非常大。
如果使用对称密码,那么密钥的分配是个问题。
https 就使用两种混合的加密方式,使用对称密码来加密数据的传输,使用非对称加密的方式来解决对称密码的密钥分配的问题。
但是如何验证非对称密码的密钥的是真的呢?那么就使用CA证书来验证密钥的真实性。

https 通信流程

  1. 服务器端采用非对称密码方式,生成一对公私钥;私钥自己保存起来;公钥发送给CA 公司,用作证书签发。
  2. 服务器所属的公司把 公钥,公司信息,组织信息,域名等信息发送给CA公司。
  3. CA 公司,经过线下,线上的调查,对发送过来的信息验证并确认正确后,反馈给服务器所属的公司。
  4. 交钱
  5. 确认收钱了以后,经过对2提交的信息先进行SHA256生成摘要,然后再用CA 自己的私钥进行加密,生成签名证书,颁发给服务器。

在这里插入图片描述

在这里插入图片描述

客户端验证证书的正确性

客户端读取证书里面明文的数据部分,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA的公钥(内置在浏览器中的,电脑出厂就有)解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性即公钥合法;然后验证证书相关的域名信息,有效时间等信息。判断证书是否过期等等。如果CA 不被信任(指的是自己搭建的CA服务器,因为CA 要收费,很多局域网都是自己搭建的CA服务器),那么证书也会被判定非法。

上图的一些解释:

Client Key Exchange:Pre-master key:证书验证通过;利用服务证书种的公钥加密第三个Random;
Change Ciphter Spec: 通知服务器后续的信息都用双发协商的加密算法和密钥加密发送
Encrypted Handshke Message:握手结束通知,发送一个之前发送的所有信息的hash 值,并且使用协商密钥加密算法进行加密供服务端校验。

在这里插入图片描述

步骤1: 客户端通过发送 Client Hello 报文开始 SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(CipherSuite)列表(所使用的加密算法及密钥长度等)。
步骤 2:服务器可进行 SSL通信时,会以Server Hello 报文作为廊答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
步骤 3:之后服务器发送 Certificate 报文。报文中包含公开密钥证书。
步骤 4:最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL 握手协商部分结束。
步骤 5:SSL第一次握手结束之后,客户端以 Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret 的随机密码串。该报文已用步骤3中的公开密钥进行加密。
步骤 6:
接着客户端继续发送Change Cipher Spec 报文。该报文会提示服务器,在此报文之后的通信会采用 Pre-master secret密钥加密。
步骤7:
客户端发送Fimished 报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
步骤 8:服务器同样发送 Change Cipher Spec 报文。
步骤9: 服务器同样发送 Finished 报文。
步骤 10:服务器和客户端的Finished 报文交换完毕之后,SSL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送 HTTP请求。
步骤 11:应用层协议通信,即发送 HTTP 响应。
步骤12:最后由客户端断开链接。断开链接时,发送close_notify 的通信。
在这里插入图片描述

https 的使用成本

  1. 证书费用和更新维护费用
  2. https 会降低访问速度
  3. 消耗CPU

https 对性能的影响

  1. 协议交互所增加的网络RTT(网络时延)
  2. 加解密相关的计算耗时
    浏览器计算耗时
    服务端计算耗时

影响http 网络请求的因素

  1. 带宽
  2. 延迟

http 协议的瓶颈

  1. 一条连接上只可发送一个请求,
  2. 请求只能从客户端开始。客户端不可以接收除响应以外的指令。
  3. 请求/响应首部未经压缩就发送。首部信息越多延迟越大。
  4. 发送冗长的首部。每次互相发送相同的首部造成的浪费较多
  5. 可任意选择数据压缩格式。非强制压缩发送。

解决http 协议瓶颈的方式

  1. ajax
  2. comet
  3. SPDY
  4. websocket

ajax 的解决

ajax 定时请求数据;
虽然ajax 能实时的从服务器获取内容,但是也会导致大量请求产生。
且ajax 本身并没有解决http 协议本身的问题。
在这里插入图片描述

comet

comet技术是服务器推技术的一个总称,但不是具体实现方式。
举例:

  1. 长轮询;
    客户端使用ajax 进行请求,服务端开启一个线程。线程实时监测请求数据的变化;如果有变化,就会给客户端输出最新的消息,并关闭连接。客户端收到消息后,会再次向服务器端请求,如此循环,叫长轮询。

长轮询通常将连接保持一段较长的时间,但是通常是不会高于1分钟;当服务器发生某种事件的时候,响应被发送并立马关闭,轮询重新开始。
2. 流方式:
流方式在客户端请求服务端并建立链接之后,服务器始终不会关闭(直到超时,断电或者其他特殊情况);每次有数据时,就会向客户端进行输出,不会像长轮询那样,每次都想客户端输出之后,都要关闭连接。

comet 能解决服务器servlet线程阻塞问题
在这里插入图片描述

SPDY

在这里插入图片描述
使用SPDY,http 协议额外获取以下功能:

  1. 多路服用流
  2. 赋予请求优先级
  3. 压缩HTTP首部
  4. 推送功能
  5. 服务器提示功能

SPDY能有效的消除http 瓶颈,但是 仍然没有消除Web 瓶颈;因为Web 的瓶颈不单单是由http 导致的。

websocket 单开一章

参考:

https://www.jianshu.com/p/07a1e362e1ba

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。

  • 27
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

jxy9998

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值