美文网首页
https机制原理

https机制原理

作者: 前端老邹_伯通 | 来源:发表于2021-11-30 21:00 被阅读0次

    现在网站已经普及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机制原理

          本文链接:https://www.haomeiwen.com/subject/kzxjxrtx.html