HTTPS

为什么需要HTTPS??

  • 窃听风险:第三方获知通信内容
  • 篡改风险:第三方可以修改通信内容
  • 冒充风险:第三方可以冒充他人身份参与通信

SSL/TLS协议作用

  • 所有信息加密传播
  • 校验机制,一旦篡改,通信双方会立刻发现
  • 配备身份证书,防止身份冒充

如何保证公钥不被篡改?

公钥放在数字证书中,证书可信,公钥可信

公钥加密计算量太大,如何减少耗用的时间?

每一次对话,客户端和服务端都生成一个对话密钥,用它来加密信息。对话密钥是对称加密,用它来加密信息。由于“对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密“对话密钥”本身,减少了加密运算的消耗时间。

握手详细过程

(1)客户端向服务器端索要并验证公钥
(2)双方协商生成“对话密钥”
(3)双方采用“对话密钥”进行加密通信
前两步为握手

握手涉及四次通信,“握手阶段”的所有通信都是明文的
1.客户端(ClientHello)

(1)支持的协议版本,比如TLS1.0
(2)客户端生成的随机数
(3)支持的加密方法
(4)支持的压缩方法

2.服务器回应(ServerHello)

(1)确认使用协议版本
(2)服务器生成的随机数
(3)确认使用的加密方法
(4)服务器证书

3.客户端回应

(1)一个是使用服务器证书公钥加密的随机数(pre-master-key)
(2)编码改变通知
(3)客户端握手结束通知
客户端会根据三个随机数和商量好加密方法生成对称会话密钥

4.服务器的最后回应

(1)编码改变通知
(2)服务器握手结束通知
服务端会根据三个随机数和商量好加密方法生成对称会话密钥

至此,整个握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的HTTP协议,只不过用"会话密钥"加密内容。

重点总结

HTTPS中非对称加密加密的是客户端生成的随机数用来搭配其余两个随机数生成后续http协议使用对称会话密钥而不是直接加密通信内容,加密通信内容靠的是对称会话密钥

总结自 阮一峰博客

HTTPS阮一峰博客总结相关推荐

  1. 借鉴--阮一峰博客之Jquery设计思想

    jquery常用方法--阮一峰博客借鉴 由于自身以前一直只是止步于看别人的博客,这是我的第一篇博客(感觉好高大上),这次博客我是借鉴于阮一峰网络日志关于Jquery设计思想的部分. 首先关于此篇博客我 ...

  2. React 入门实例 参考阮一峰博客

    React 入门实例 参考阮一峰博客 http://www.ruanyifeng.com/blog/2015/03/react.html React 可以在浏览器运行,也可以在服务器运行.服务器的用法 ...

  3. xargs命令学习,转载于阮一峰博客

    一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数. $ cat /etc/passwd | grep root 上面的代码使用了 ...

  4. 前端知乎:关于阮一峰博客《学习Javascript闭包》章节中最后两个思考题

    阮一峰博客:<学习Javascript闭包>章节中最后有个思考题: 如果你能理解下面两段代码的运行结果,应该就算理解闭包的运行机制了. 代码片段一 var name = "The ...

  5. Javascript 面向对象编程(一):封装 ——转自阮一峰博客

    Javascript 面向对象编程(一):封装 作者: 阮一峰 日期: 2010年5月17日 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的 ...

  6. 阮一峰博客里面css3的display:flex的布局

    转载于:https://www.cnblogs.com/shixingwen/p/5966792.html

  7. websocket阮一峰博客地址教学

    http://www.ruanyifeng.com/blog/2017/05/websocket.html WebSocket 教程

  8. 【阮一峰博客学习记录1】追踪用户点击

    使用普通异步的方式发送用户点击日志会不成功,使用同步的方式发送会导致网页延迟.所以有了这个API--navigator.sendBeacon() 作用与优势 就算是关闭浏览器的操作,都可以腾出时间进行 ...

  9. css实现阮一峰博客的进度条

    原理:利用css渐变 代码参考: <!DOCTYPE html> <html lang="en"><head><meta charset= ...

最新文章

  1. Autodesk 产品二次开发技术研讨会将在上海广州北京相继举行
  2. vbs用mysql语句查询数据库_vbs脚本实现window环境下的mysql数据库的备份及删除早期备份...
  3. java jdbc 增删改封装_JAVA JDBC 常规增删改查简单封装
  4. Visual Studio的下载安装
  5. mysql yum安装包下载_yum 下载安装包
  6. jsp九大内置对象和四种属性范围介绍
  7. 树莓派安装mysql并设置远程访问
  8. 在propreties文件中引用另一个properties文件中的内容
  9. 企业API接口设计之token、timestamp、sign具体实现
  10. 图片、图标、代码资源网站
  11. excel表格换行快捷键_excel常用快捷键分享
  12. 浅谈:百度竞价恶意点击汇总及处理方法
  13. linux学习第二周总结
  14. 联通服务器光信号亮红灯移动,光纤猫los红灯闪什么原因
  15. TableOne数据分析工具
  16. [蓝桥杯python] 印章:共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率
  17. 自己搭建一个前后端的项目-适合新手学习
  18. read write file
  19. 关键字与保留词,ES2020版
  20. 抖音服务器带宽有多大,才能每天6亿人同时刷?

热门文章

  1. jforg和nexus安装
  2. 用python编写录音机——通过输入控制录音的开始和结束
  3. 图像语义分割方法研究
  4. WIN10 打印机“需要用户干预”-HP LaserJet Professional M1213nf MFP
  5. 使用Qt5开发桌面程序
  6. CRC-8/MAXIM校验算法(C语言实现)
  7. mysql函桌为之一的_MYSQL必知必会读书笔记第十和十一章之使用函数处
  8. ORACLE SQL 实现IRR的计算
  9. 前端安全-CSRF攻击,sql注入,点击劫持
  10. 江苏省地理国情质检处理系统使用说明