https 原理

粗略概述下加密:html

背景: 简单的举个例子:A 与 B 通讯(英文),内容可能会被截取,从而形成信息泄露。那么是否是能够加密下?A B共同维护一个密码本(设为26英文字母), 加密:字母均向后移动 3 位, 解密:字母向前移动 3 位,这就是简单的“对称加密”了(现实中没这么easy)前端

=> 密码本泄露了怎么办,密码在传输过程当中泄露了怎么办?git

这就引来一个问题,那么非对称加密来啦github

对称加密

一份秘钥,加密者经过该秘钥加密,解密者经过该秘钥解密。算法

A 与 B 通讯,须要A,B均知道秘钥。函数

优点: 传输速度快加密

劣势: 若A 已知密码,要传给B的过程当中,被劫持了怎么办?cdn

非对称加密

  1. 分为公钥、私钥。公钥是公开的,私钥仅一方知道
  2. 秘钥的长度 > 加密内容长度,因此通常用于加密摘要(即:原文 => hash 算法 => 指定长度的摘要 => 加密)

两种形式:htm

私钥加密,公钥解密: 应用场景,https中的,数字签名blog

公钥加密,私钥解密:应用场景,https中

https原理

上一张我的理解图:

问题1:如何作到防篡改呢?

签名 => CA公钥解密 => 摘要1

原文 => hash算法 => 摘要2

判断:摘要1 === 摘要2

问题2: 证书里有什么?

  • 原文:公钥、 hash算法、expired_time、域名...
  • 签名: 原文 => hash算法 => 指定长度的摘要 => CA私钥加密 => 签名

问题3:CA直接认证全部的服务吗?

固然不了,想象一下,若是全部的服务都需CA认证,~~~ CA使用链式认证的; 证书认证机构, CA, 根证书认证的证书较少, => 链式认证

问题4 如何验证证书? 客户端有两个摘要,经过比对是否相同来作验证,下面分别介绍两个摘要~

  • 摘要1: 服务端: 原文 => hash算法 => 摘要1 => CA私钥加密 => 签名

    客户端: 签名 => CA公钥解密 => 摘要1

  • 摘要2: 原文 => hash算法 => 摘要2

相关文章:

【密码学】Hash Function(哈希函数)

前端加密常见场景

https原理

相关文章
相关标签/搜索