https机制原理

现在网站已经普及https协议,作为开发者,我们知道如何通过代码和操作实现
也有很多学员停在了按照操作手册实现,而对它理解的不够深入,特录制视频和写下这篇科普文,系统通过视频讲解让大家对https大致机制有理解
当然,内部还涉及到证书链等相关知识,我们后面再单独录制视频讲解
讲解视频如下:https://www.bilibili.com/video/BV1Sg411A79a

1.网络传输的安全性

  • http 协议:不安全,未加密

  • https 协议:安全,对请求报文和响应报文做加密

image.png

2.对称加密与非对称加密

2.1 对称加密

  • 特点:

    加解密使用 相同 秘钥 高效,适用于大量数据的加密场景 算法公开,安全性取决于秘钥大小,但秘钥越大效率越低,需要权衡在安全和效率中做权衡

  • 缺点:

    算法本身安全,但使用场景不够安全,因为解密和加密都是同一个秘钥


    image.png

2.2 非对称加密

  • 使用 匹配的一对密钥分别进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)

  • 注意:公钥加密的数据 只能 用 对应的私钥解密,同理,私钥加密的数据 只能用 对应的公钥解密

  • 算法:RSA、ECC、Elgamal、背包算法、Rabin、D-H 等

  • 特点:安全性高

  • 缺点:加解密复杂,效率低,耗时较长

  • 用法概要:

    • 加密:对数据做加密

    • 签名:证明数据是谁发的

2.3 非对称加密用法

  • 准备工作:

    1.生成一对匹配的 私钥 和 公钥 (ps:公钥其实是根据私钥生成的)

    2.将公钥公布给外界

image.png

2.3.1 公钥加密

  • 场景: 用来针对互联网上加密数据传递

    Linda 用 James的公钥 对数据进行加密,然后发给 James,James用自己的私钥解密

image.png

因为一个公钥加密的数据 只有 对应的 私钥才能解密,所以密文很安全
补充:如果要在网络上相互发送密文,可以让对方也发对方的公钥过来,用对方的公钥来加密

2.3.2 私钥签名

  • 场景:目的是为了将明文公布给别人,同时证明是自己发的;可以防止明文被篡改。

    第一步:James 用 James的私钥 对明文的hash值进行加密,把密文(签名)和明文一起发给 Linda

image.png

第二步:Linda 用 James的公钥 进行解密,解密后的明文hash值 和 接收到的明文的hash值进行对比,如果一样则是 James 发的

image.png

3. https协议

  • 端口 443


    image.png

3.1 问题

  • Q1:如何在网络中安全的将数据加密 传给 对方呢?

    • A1:加密
  • Q2:用什么方式加密么?

    • A2:对称加密 -> 秘钥传送安全问题

    • A2:非对称加密 -> 公钥传送安全问题

  • Q3:解决方案

    • A3:使用 权威认证机构(CA) 来证明 网站的公钥没被篡改 -- https

3.2 基本流程

  • 操作系统内置 权威证书认证机构(CA-CertificateAuthority)的 机构证书X

  • 网站A 获取认证证书

    • 生成自己的 公钥A私钥A

    • 找认证机构 生成 网站A证书,并保存在服务器中

      • 证书(SSL)包含信息:

        • 网站的域名,证书有效期,证书颁发机构

        • 网站自己的公钥A

  • 浏览器 请求获取 网站A证书

  • 浏览器 用 机构证书X 解密 网站A证书

    • 解密成功:获取 网站A公钥(只要解密成功,就说明 是 机构认证的)

    • 解密失败:认证失败

  • 浏览器 将自己的秘钥 发给服务器

    • 使用对称加密算法 生成 会话秘钥B

    • 使用网站A公钥会话秘钥B 做加密,并发给 服务器

  • 浏览器和服务器 使用 浏览器会话秘钥B 来对 请求报文 和 响应报文 做加密

image.png

3.2 证书认证机构

  • 如果证书颁发机构过多的话,不容易识别,防伪和管理,于是形成了少数几家国际权威的证书颁发机构,这些机构非常权威,默认是所有人都可信的,它们成为根证书。

  • 但是除了这些机构外,其他的机构也需要被信任,因而,需要这些权威的机构去授信颁发证书,于是就形成了一级证书机构,一级证书机构又可以继续授信下级机构,于是成为树状结构,对于任何一个组织到根证书就是链状结构。

3.3 CA证书的保存

  • 保存在系统中
image.png

你可能感兴趣的:(https机制原理)