前端基础整理 -网络(三)快速了解HTTPS

文章首发在个人我的博客:www.brandhuang.com/article/158…web

若是喜欢本文但愿能点个赞~浏览器

固然能够关注我来获取后续文章安全

也能够关注我我的博客服务器

HTTPS

HTTP 的不足:网站

  • 通讯使用明文(不加密),可能会被窃听
  • 不验证通讯身份,所以可能遭假装
  • 没法证实报文的完整性,可能遭篡改
通讯加密

HTTP 和 SSL(Secure Socket Layer,安全套接层) 或 TLS(Transport Layer Security,安全传输协议)组合使用来加密 HTTP。加密

加密后的内容依然可能被窃听,只是可能让人没法破解报文的实际含义code

HTTP 和 SSL 组合使用就被称为HTTPScdn

内容加密

对 HTTP 协议传输的内容进行加密,须要客户端和服务端同时具备加密和解密的能力。与 SSL 或者 TLS整个通讯线路加密不一样,因此内容任有被篡改的风险。接口

不验证通讯方身份就可能遭遇假装

HTTP 通讯时,不存在确认通讯方的步骤,任何人都能发起请求,服务器收到请求后,也都会返回一个响应(仅限于发送端的 IP 地址和端口没有被 Web 服务器设为限制访问)内存

不确认通讯方会存在如下隐患

  • 没法肯定请求发送至目标的web服务器是不是按真实意图返回响应的服务器,有多是已假装的服务器
  • 没法肯定响应返回的客户端是不是按真实意图接收响应的客户端,有多是已假装的客户端
  • 没法肯定正在通讯的对方是否具有访问权限。(某些重要信息只想发给特定用户通讯的权限)
  • 没法判断请求来自何方,出自谁手
  • 即便无心义的请求也会所有接收,没法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击)

SSL 不只提供加密处理,还使用了一种叫证书的手段,用于确认通讯方

没法证实报文的完整性,可能已遭篡改

HTTP 没法证实通讯报文的完整性,换句话说,没有办法确认,发出的请求/响应和接收到请求/响应是相同的

在传输途中遭攻击者拦截并篡改内容的攻击叫中间人攻击

经常使用的防篡改方式:

MD5SHA-1等散列值校验方法,以及用来确认文件的数字签名方法。

但以上方式仍没法百分百保证结果正确,由于若是 MD5 、数字签名等自己被改写的话,用户是没法感知的,因此有必要使用 HTTPS

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

HTTPS 协议并不是一种新协议,只是 HTTP 通讯接口部分用 SSLTLS 协议替代。

一般 HTTP 直接和 TCP 通讯,当使用 SSL 后,则变成先和 SSL 通讯,再由 SSLTCP 通讯。

SSL 采用的是公开密钥加密的加密处理方式

  • 对称密钥加密:加密和解密同用一个密钥,也称为共享密钥加密
  • 公开密钥加密:使用一对非对称密钥,一把私有密钥(private key),一把公开密钥(public key)。公开密钥随意发布,经过本身的私有密钥进行解密。

HTTPS采用混合加密机制,即公开密钥和共享密钥混合加密的机制

因为公开密钥加密处理速度比共享密钥加密

因此要结合二者优点,将多种方式结合起来用于通讯: 在交换密钥(共享密钥加密的密钥)环节使用「公开密钥加密方式」,以后创建通讯交换报文阶段则使用「共享密钥加密」

证实公开密钥正确性的证书

因为「公开密钥加密」的方式没法证实公开密钥自己是真正的公开密钥,因此采用数字证书认证机构和其相关机构颁发的公开密钥证书来解决上述问题

数字证书认证机构业务流程:

  1. 服务器运营人员向证书机构申请公开密钥
  2. 证书机构识别身份后,对申请的公开密钥作数字签名
  3. 证书机构分配这个签名后的公开密钥,并将其放入公钥证书
  • 服务器将数字证书认证机构签发的公钥证书发送给客户端
  • 接到证书的客户端使用认证机构的公开密钥对公钥证书进行签名验证,若验证经过,则说明:1. 认证服务器的公开密钥是真实有效的数字证书认证机构; 2. 服务器的公开密钥是值得信赖的。

上述的「认证机构的公开密钥」必须安全的转交给客户端,为了保证安全,一般是浏览器厂商发布版本时,一般会事先内置经常使用认证机构的公开密钥。

SSL 速度慢吗?

SSL 速度慢分两种:通讯慢大量消耗CPU、内存等资源致使处理速度慢(由于SSL须要加密处理,在客户端和服务器都须要进行)

为何不一直使用 HTTPS?

既然 HTTPS 那么安全,为何全部的 web 网站不一直使用 HTTPS?

  1. 和纯文本通讯相比,加密通讯会消耗更多 CPU、内存等资源,会致使计算机处理的请求数量减小
  2. HTTPS 通讯,证书是必不可少的,全部的网站都购买证书并不合算

因此一般只有敏感信息进行 HTTPS 通讯。

本文先整理这么多吧,反正一次也消化不完。

还也能够关注我公众号「九零后重庆崽儿」。

相关文章
相关标签/搜索