HTTP与HTTPS

参考文档:https://mp.weixin.qq.com/s/geepUXBRFXK6X8Xocp3YPw

 
        HTTPS是在HTTP上 增加SSL加密层,对传输数据进行加密 ,是HTTP协议的安全版。 HTTP加上加密认证处理和认证以及完整性保护后即是HTTPS 广泛应用于安全敏感的通讯,例如交易支付。
 
HTTP S = HTTP + TLS/SSL
 
        主要作用:
  1. 对数据进行加密,建立信息安全通道来保证传输过程中的数据安全。
  2. 对网站服务器进行真实身份认证。
  • 无连接
        每次连接只处理一个请求,服务端处理完客户端一次请求等到客户端做出回应以后便断开连接。
 
  • 无状态
        服务端对于客户端每次发送的请求都认为它是一个新的请求,上一次会话和下一次会话没有联系。
 
  • 持久连接
        本质上是客户端与服务器通信的时候,建立一个持久化的TCP连接,这个连接不会随着请求结束而关闭,通常会保持连接一段时间。所以刷新页面TCP不需要重新建立,SSL也是原来的。
        现在的持久连接类型有两种:
  1. HTTP/1.0+的keep-alive
  2. HTTP/1.1的persistent
  • 一个TCP连接请求中多个HTTP发送接收的问题
  1. HTTP1.1中,每个TCP只能同时处理一个HTTP请求,也就是说两个请求的周期不能重叠,HTTP1.1中用了Pipelining来解决这个问题。Pipelining中规定,请求是什么顺序返回就是什么顺序。这就导致了一个问题,如果前面有一个卡住了,后面的都得等待,可能会阻塞。所以它默认在浏览器中是关闭的。
  2. HTTP2提供了Multiplexing多路传输特性,可以同时完成多个HTTP请求,互不干扰。
  • Pipelining:一个支持持久连接的客户端可以在一个连接中发送多个请求(不需要等待任意请求的响应)。收到请求的服务器必须按照请求收到的顺序发送响应。
  • 浏览器对同一HOST建立TCP连接数量限制
        Chrome对一个HOST最多可以建立6个TCP连接,不同的浏览器限制可能会不同。
 

HTTP与HTTPS比较

  •   HTTP存在的问题:
  1. 通信使用明文,内容可能被监听。
  2. 无法证明报文的完整性,所以可能遭到篡改。
  3. 不验证通信方的身份,因此有可能遭遇伪装。
  • HTTPS相比较所拥有的优势:
  1. 数据隐私性:内容经过对称加密,每个连接生成一个唯一的加密秘钥。
  2. 数据完整性:内容传输经过完整性校验。
  3. 身份认证:第三方无法伪造服务端(客户端)身份。
  • HTTPS的功能实现主要依靠TLS/SSL协议,TLS/SSL协议的功能主要依靠三种算法来实现:
  1. 对称加密采用协商的密钥对数据加密
  2. 散列函数(HASH函数)验证信息的完整性
  3. 非对称加密实现身份认证和密钥协商
 

加密方式

  • 对称加密:该方式加密和解密 共用一个密钥
         优点:解密的效率比较快,传输信息效率更高
         缺点:
  1. 如何安全的转交密钥给接受信息的对方是个问题
  2. 还需要安全的保管接收到的密钥
  • 非对称加密:两把密钥,一把 公开密钥可以随意发布,一把 私有密钥不能让其他人知道。发送者用对方公开的密钥加密后发送给对方,对方用自己的私钥解密。
        点:
  1. 信息传输一对多,只需要维持一个密钥就可以和多个客户端进行加密沟通
  2. 不需要发送解密用的密钥,也就不用担心密钥被攻击者窃听而盗走, 安全性更高
         缺点:
  1. 在数据加密解密过程中消耗了很多时间, 数据传输效率相对低下
  2. 公钥不包含服务器的信息 无法保证服务器身份的合法性,存在中间人攻击的风险,服务器发送给客户端的公钥可能在传送过程中被黑客截获并篡改,然后黑客就可以对客户端加密的信息进行解密了。
  • 非对称加密+对称加密(HTTPS使用的混合加密机制): 交换密钥的过程中使用 非对称加密,之后的 建立信息传递报文阶段使用 对称加密
           发送信息端:A    接受信息端:B
           具体过程:A用B公布的公钥对“对称密钥”进行加密,然后传输给B,B用自己的私钥解密了“对称密钥”。然后双方就开始用对称密钥进行信息传递。
 
 

数字签名

解决报文遭篡改(信息完整性)的问题: 校验数字签名
 
比较的是信息摘要
 
数字签名的作用:
  1. 确定消息的完整性,证明数据是否被篡改。
  2. 能确定发送方的身份,其他人无法假冒发送方签名。
 
数字签名的生成过程:
 
                                 哈希函数                                        发送者的 私钥加密
传递的信息     ====== ==========>     信息摘要     ======= ======= ===>     数字签名
 
 
校验过程:(两个信息摘要相比较)
 
                                 哈希函数
接受到的原文     == == == == == == >    信息摘要
 
                                              发送者的公钥解密
数字签名(无法篡改)     ==== === === === =====>     信息摘要
 
 

HTTP和HTTPS的区别

  • HTTPS 标准端口是443HTTP 标准端口是80
  • HTTPS需要SSL证书验证, HTTP不需要
  • HTTPS更安全,也更利于SEO(搜索引擎优化), 谷歌和百度都会优先索引HTTPS网页
  • HTTPS基于 传输层HTTP基于 应用层
  • HTTPS在网页上会显示安全锁, HTTP不会
  • HTTPS缓存不如 HTTP高效,会增加数据开销
  • HTTPS握手阶段比较费时,会使页面加载时间延长,耗电增加。
  • SSL证书需要绑定IP,不能在同一个IP上绑定多个域名,ipv4资源支持不了这种消耗。
 

为什么不是所有网页都使用HTTPS请求?

  • HTTPS门槛高,需要申请SSL证书,购买证书也会增加开销
  • 普遍认为HTTPS性能消耗要大于HTTP,因为与纯文本通信相比,加密通信会消耗更多CPU和内存资源,不过实际上,HTTPS经过优化以后并不慢,甚至有些页面性能还会高于HTTP
  • 安全意识国外更强,安全技术应用领域也更成熟
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值