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双方用对称密钥
    • 加密明文并发送
    • 解密密文的到明文
相关推荐
hgdlip1 小时前
主IP地址与从IP地址:深入解析与应用探讨
网络·网络协议·tcp/ip
lwprain2 小时前
安装支持ssl的harbor 2.1.4 docker 19.03.8 docker-compose 1.24.0
网络协议·ssl·harbor
软件技术员2 小时前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
C++忠实粉丝5 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
Gworg6 小时前
创建HTTPS网站
安全·https·ssl
C++忠实粉丝7 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
Estar.Lee7 小时前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
蝶开三月7 小时前
php:使用socket函数创建WebSocket服务
网络·websocket·网络协议·php·socket
G丶AEOM8 小时前
SSL/TLS,SSL,TLS分别是什么
网络·网络协议·网络安全
木子_lishk8 小时前
gateway 支持同时使用 https 和 http访问
https·gateway