HTTPS 与 HTTP 不同,其在传输层与应用层之间添加了一个 SSL/TLS 的安全层.
机制:所有的 HTTP 请求与响应都要通过 SSL/TLS 先进行加密,再进行传输.

基础知识

密码 cipher:

一套编码的算法,用于编码和以后解码的结合体
工作原理: 通过算法将 plaintext 编码为 ciphertext

密钥 key:

改变密码的工作方式的数字化参数,从而使得密码机有不同的行为.
数字密钥:数字密钥是编/解码算法的数字化参数
工作原理:一个加密算法可产生众多的虚拟加密算法,每一种算法即为一种密钥.

对称密钥技术

定义:在编码时使用的密钥和解码时使用的密钥相同
缺陷:在发送着与接受者互相对话之前,一定要有一个共享密钥;若有 N 个节点进行相互之间的安全对话,那么总共需要的保密密钥数量庞大,不便于管理.

公开密钥加密技术

定义:编码的密钥为公开密钥,所有人都可以对其进行编码;解码的密钥称为私有密钥,只有其私有者惨鞥够对报文进行解码
功能:

  1. 在安全协议下全球范围内发送报文
  2. 解决了对称密钥数量庞大的问题

数字签名

定义:数字签名是用来验证报文未被伪造或篡改的校验和.
机制:

  1. 证明身份:作者拥有私有密钥,因此只有作者能计算出校验和
  2. 防止篡改:当报文被恶意攻击,进行修改了之后,无法计算出正确的校验和

流程:
发送端:

  1. 报文转变为摘要
  2. 应用私有密钥的加密算法对摘要编码,计算出数字签名

接受端:

  1. 接收到明文报文与签名
  2. 把接受到的明文报文计算出其报文摘要 ,同时将签名通过公共密钥的反函数计算出其报文摘要
  3. 将两报文摘要进行对比

数字证书

定义:在 HTTPS 建立一个安全事务之后,浏览器获取其数字证书,它的内容基本如下:

  1. Web 站点的名称和主机名
  2. Web 站点的公开密钥
  3. 签名颁发机构的名称
  4. 数字签名

浏览器会对证书内容进行检查:

  1. 签名颁发机构可信度
  2. 日期检测
  3. 签名检测
  4. 站点身份检测

通过这些检测来判断是否信任这一证书.

SSL 握手

机制:在 HTTPS 中,客户端首先打开一条到 443 服务端口的连接.之后就会初始化 SSL 层,对加密参数进行沟通,并交换密钥.这个流程叫做「握手」,握手完成之后, SSL 初始化就完成了.

握手基本流程如下:

  1. 客户端发送可供选择的密码并请求证书
  2. 服务器发送选中的密码和证书
  3. 客户端发送保密信息;客户端与服务器生成密钥
  4. 客户端与服务器交换密钥,互相告知

转载于:https://www.cnblogs.com/FBsharl/p/10661040.html

《HTTP 权威指南》笔记:第十四章 安全 HTTP相关推荐

  1. R语言实战笔记--第十四章 主成分和因子分析

    R语言实战笔记–第十四章 主成分和因子分析 标签(空格分隔): R语言 主成分分析 因子分析 原理及区别 主成分分析与因子分析很接近,其目的均是为了降维,以更简洁的数据去解释结果,但这两种方法其实是相 ...

  2. Linux(b站视频兄弟连)自学笔记第十四章——日志管理

    Linux(b站视频兄弟连)自学笔记第十四章--日志管理 简介 rsyslogd 日志轮替 简介 rsyslogd 日志轮替

  3. 《Dreamweaver CS6 完全自学教程》笔记 第十四章:使用 CSS 设计网页

    文章目录 第十四章:使用 CSS 设计网页 14.1 CSS 样式表简介 14.2 CSS 的基本语法 14.3 伪类.伪元素以及样式表的层叠顺序 14.3.1 伪类和伪元素 14.3.2 样式表的层 ...

  4. 学习笔记-第十四章 恶意代码分析实战

    第十四章 恶意代码的网络特征 1.网络应对措施. 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全 设备可以利用它们,来提供网络应对措施.根据IP地址和端口,防火墙和路由器可以限 ...

  5. Hadoop权威指南笔记1——第1章:初始Hadoop

    第1章:初识Hadoop 1.1 数据!数据! ​ 我们生活在一个大数据的时代.各处都是数据 1.2 数据的存储与分析 ​ 硬盘容量在扩大,但是读写数据没有改变.就会导致读取大数据,数据变慢 ​ 那么 ...

  6. 《Java编程思想》第四版读书笔记 第十四章 类型信息

    2019独角兽企业重金招聘Python工程师标准>>> 14.2 RTTI运行时类型识别. Class对象包含了与类有关的信息,Java使用Class对象来执行其RTTI.每个类都有 ...

  7. 《linux程序设计》--读书笔记--第十四章信号量、共享内存和消息队列

    信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并 ...

  8. Linux shell编程学习笔记-----第十四章

    14.1别名 bash shell的别名实际上就是为了避免用户使用长命令不方便,所以提出的一种重命名的方法,来帮助用户记录 14.2列表 列表是由一连串命令和与(&&),或(||)运算 ...

  9. 《机器学习》 周志华学习笔记第十四章 概率图模型(课后习题)python实现

    一.基本内容 1.隐马尔可夫模型 1.1. 假定所有关心的变量集合为Y,可观测变量集合为O,其他变量集合为R, 生成式模型考虑联合分布P(Y,R,O),判别式模型考虑条件分布P(Y,R|O),给定一组 ...

最新文章

  1. msp430入门学习16
  2. python获取小时分钟
  3. 力扣——机器人能否返回原点
  4. 智能风控平台核心之风控决策引擎(二)
  5. 用于大数据开发的Centos7操作系统安装过程中遇到的问题总结
  6. 现在也是只能谢谢随笔了,但是在以后收货的日子里会有更多的感想记下
  7. 丘成桐:年轻学者要敢于“无法无天”
  8. 蔚来汽车发布声明:自称“前员工”造谣者已被起诉 查明并非前员工
  9. Linux下添加服务
  10. 机器学习之监督学习(五)——集成学习
  11. CSS 自动居中一列布局
  12. 计算机一级win7操作题,计算机等级考试一级WIN7操作题.docx
  13. 智慧安防体系包括哪些智能化设备?
  14. 如何让微信好友永远拉黑不了你?
  15. 一、万用表使用方法图解
  16. fatal error: ft2build.h: 没有那个文件或目录
  17. KNY团队与“易校”小程序介绍
  18. 网络基础——网络层(ip协议详解)
  19. (转)在路上—Tinyfool的程序员生涯(职业生涯篇一)
  20. python爬虫实例网易云-爬虫实战(二) 用Python爬取网易云歌单

热门文章

  1. tomcat 执行一个web请求的过程
  2. [python]使用virtualenv处理python版本问题
  3. 如何设置SSH访问的时间限制
  4. Oracle学习(1)——BLOCK
  5. Kafka实现MySQL增量同步
  6. 2020Alibaba数学竞赛预选赛第二轮参考答案
  7. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  8. It's highly recommended that you fix the library with 'execstack -c libfile', or link it with '-z
  9. numpy中的clip函數的用法
  10. ubuntu16.04+Virtualenv+python2.7+Caffe安装(CPU版本,无opencv)