Interview preparation--Https 工作流程

HTTP 传输的弊端
  • 如上图,Http进行数据传输的时候是明文传输,导致任何人都有可能截获信息,篡改信息
  • 如果此时黑客冒充服务器,或者黑客窃取信息,则其可以返回任意信息给客户端,而且不被客户端察觉,所以我们经常会听到"劫持"这个词
改进HTTP传输-对称加密传输
  • 改进版本之后,Client和Service端在进行通信的时候,用对称加密,Client与Servic端分别保存密钥A,通信加密,解密都用A
  • 问题点:
    • 对称加密一般约定加密算法与密钥A,每个客户端不一样,因此维护困难,一般都维护在Service或者Client某一端,由Service 或者Client生成密钥A后传递给另外一端口, 这样密钥A在传输过程存在泄漏可能
改进HTTP传输-非对称加密
  • 以上Client 保存公钥,公开的,所有人可见,Service保存私钥。
  • Client发信息用公钥加密发给Service用私钥解密
  • Service 发信息用私钥加密发给Client用公钥解密
  • 问题:
    • 公钥公开的,黑客也能能通过公钥解密获取到的所有Service端发送到Client的信息,造成信息泄漏
改进HTTP传输-对称加密和非对称加密结合使用
  • Client持有公钥,Service 持有私钥,第三步开始Client 生成一个对称密钥A,用公钥加密A得到加密后的字符B

  • Client将B 以及 用A加密后的密文 一起 发送给Service ,Service 用 私钥解密 B 得到A,利用A解密密文的到原文

  • 同样Service用A加密要传输的数据得到密文传输给Client用A解密得原文

  • 优点:

    • 密文安全性,公钥即使泄漏,但是密文是 A加密的,公钥无法解密
    • 密钥安全性,A传输过程用公钥加密的,即使被截获,没有私钥也无法解密得不到对称密钥
    • 对称加密的优势:对称加密如果能保证秘钥不被黑客获取,那么他是安全的,并且对称加密的速度具有很大优势,用在蜜文加密上
    • 非对称加密优势:非对称加密请求发起时候尽管使用的是公钥加密,但是因为必须使用私钥解密的特点,因此能够保证消息体在向服务器用在对称密钥加密上
  • 风险点:

  • 第一步 公钥获取的时候被截获,公钥不是Service给的,是黑客给的,之后所有请求都是黑客伪造的,Client得到的公钥 和黑客的私钥是匹配的,完犊子
改进HTTP传输- 对称加密+非对称加密+SSL证书(HTTPS实现)
  • 首先说明证书作用:如上图,2步骤时候服务器发送了一个SSL证书给客户端,SSL证书中包含的具体内容有:

    • 证书发布机构CA
    • 证书有效期
    • 公钥
    • 证书所有者
    • 签名
  • 客户端在接受服务器发来的SSL证书会对证书进行校验,以浏览器为例说明如下:

    • 首先浏览器读取证书中的证书所有者,有效期信息进行校验
    • 浏览器开始查找操作系统中已内置的收信人的证书发布机构CA,与服务器发来的证书中的颁发者CA对比,用于校验证书是否为合法机构颁发
    • 如果找不到,浏览器报错,说明服务器发来的证书是不可信的。
    • 如果找到,浏览器会从操作系统中取出颁发者CA的公钥,然后对服务器发来的证书里面的签名进行解密
    • 浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
    • 对比结果一致,则证明服务器发来的证书核发,没有被冒充。
    • 此时浏览器就可以读取证书中公钥,用于后续加密了。
  • 通过SSL证书,完成了公钥的安全获取,安全性由第三方保证。接下来就是走上一个步骤中说明的:对称加密和非对称加密结合使用过程

  • 总的来说,HTTPS实现如下图

  • 红色钥匙--私钥
  • 绿色钥匙--公钥
  • 黄色钥匙--对称密钥
  1. Client发起请求(443接口)
  2. Service 返回公钥SSL证书
  3. Client解析SSL得到公钥
  4. Client生成对称密钥,并且用得到的公钥给对对称密钥加密传给Service
  5. Service端的到加密后对称密钥,用私钥解密
  6. C/S双方用对称密钥
    • 加密明文并发送
    • 解密密文的到明文
相关推荐
石牌桥网管7 小时前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl
阿尔帕兹13 小时前
构建 HTTP 服务端与 Docker 镜像:从开发到测试
网络协议·http·docker
FeelTouch Labs14 小时前
Netty实现WebSocket Server是否开启压缩深度分析
网络·websocket·网络协议
千天夜15 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
follycat16 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
earthzhang202117 小时前
《深入浅出HTTPS》读书笔记(5):随机数
网络协议·http·https
xiaoxiongip66617 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao17 小时前
HTTPSOK:SSL/TLS证书自动续期工具
服务器·网络协议·ssl
JaneJiazhao17 小时前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW17 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0