博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
https通讯流程
阅读量:5292 次
发布时间:2019-06-14

本文共 721 字,大约阅读时间需要 2 分钟。

#什么是https https = http + ssl/tls协议:在https数据传输的过程中,需要用ssl/tls对数据进行加密和解密,然后用http对加密后的数据进行传输。

#秘钥相关概念 对称加密:信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快 非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。

#具体流程 可以分为两个阶段:握手阶段和数据传输阶段

握手阶段

  1. 客户端开始请求:发送自身支持的ssl版本信息、加密算法、一个随机数(random_c)

  2. 服务器收到请求:响应确认ssl版本、确认加密算法、服务器公钥(pubkey_s)、一个随机数(random_s)

  3. 客户端收到了服务器的公钥,开始验证:验证通过后:客户端会根据前面的random_c和random_s生成一个随机数pre-master secret,然后使用pubkey_s进行加密,发给服务端,同时会根据random_c、random_s、pre-master secret通过一定的算法得出session Key

  4. 服务端通过私钥来解密,得到pre-master secret,然后也通过random_c、random_s、pre-master secret通过一定的算法得出session Key

数据传输阶段 采用对称加密,通过上个阶段产生的sessionKey进行加密和解密

转载于:https://juejin.im/post/5d22f34c51882555300fe8c2

你可能感兴趣的文章
JavaScript基础---获取元素的属性(title,style,width)
查看>>
简单了解HashCode()
查看>>
闭包理解
查看>>
asp.net C#后台实现下载文件的几种方法(全)
查看>>
Web前端开发工程师的具备条件
查看>>
为什么要用日志框架 Logback 基本使用
查看>>
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>