美文网首页
HTTPS加密算法和过程

HTTPS加密算法和过程

作者: vivianXIa | 来源:发表于2021-09-18 15:24 被阅读0次

1. HTTP三大风险

  • 1) 窃听风险:黑客可以获取通信内容

  • 2)篡改风险:黑客可以修改通信信息

  • 3)冒充风险:黑客可以冒充他人身份和通信

  • image

2. HTTPS

  • HTTP


    image.png

3.加密算法

3.1对称加密AES

  • 加密和解密使用同一个密钥
  • image

3.2 非对称加密

image

3.3 哈希算法

先算出摘要(hash值),对称进行签名,直接签名的话性能差

哈希函数的作用是给一个任意长度的数据生成一个固定长度的数据

  • 安全性:可以从给定的数据X计算出哈希值Y,但不能从哈希值Y计算数据X

  • 独一无二 不同的数据一定会产出不同的哈希值

  • 长度固定 不管输入多大的数据 输出的长度都是固定的

  • image

3.4 签名

  • 数字签名的基本原理就是用私钥去签名,而用公钥去验证签名

  • image
  • image

3.5 数字证书

  • 数字证书是一个由可信的第三方发出的,用来证明所有人身份以及所有人拥有某个公钥的电子文件
  • image

3.6 密钥交换算法

  • Diffe-Hellman【赫尔曼算法】算法是一种密钥交换协议(交换方式rha和ecc),它可以让双方在不泄露的情况下协商出一个密钥来
  • image

3.7 ECC 是现实Diffe-Hellman(密钥交换)的一种算法

  • 椭圆曲线加密算法(ECC)是基于椭圆曲线数学的一种加密的算法
//这是简化模拟的过程
let basic = 3;//共享basic
let a = 5;
let basicA = basic*a;//15
let b = 7;
let basicB = basic*b;//21

console.log(a*basicB);//105
console.log(b*basicA);//105
实际的ECC算法

4. 加密过程

image

4.1 ClientHello

在一次新的握手流程中,客户端先发送ClientHello

  • Version 协议版本

  • Random 包含32个字节的随机数 28随机数字节+4字节时间戳,随机数是为了保证每一次连接者是独立无二的

  • Cipher Suites 客户端支持的所有密码套件

  • Extensions 扩展的额外数据

  • image

4.2 ServerHello

  • 将服务器选择的连接参数发回给客户端,消息结构和ClientHello类似 ,每个字段只包含一个选项
  • image

4.3 Certificate

  • Certificate消息发送X.509证书
  • image

4.5 Server Hello Done

  • ClientKeyExchange消息携带客户端为密钥交换的所有信息
  • image

4.6 ClientKeyExchange #

  • ClientKeyExchange消息携带客户端为密钥交换的所有信息
  • image

4.7 ChangeCipherSpec

  • ChangeCipherSpec表示客户端已经得到了连接参数的足够信息,已生成加密密钥,并切换到了加密模式
  • image

4.8 EncryptedHandshakeMessage #

  • 这个报文的目的就是告诉对端自己在整个握手过程中收到了什么数据,发送了什么数据,来保证中间没人篡改报文

  • 其次这个报文作用就是确认秘钥的正确性。因为Encrypted handshake message是使用对称秘钥进行加密的第一个报文,如果这个报文加解密校验成功,那么就说明对称秘钥是正确的

  • 计算方法就将之前所有的握手数据(包括接受和发送)计算哈希运算,然后就是使用协商好的对称密钥进行加密

  • 加密(SHA(客户端随机数+服务器随机数))

  • image

4.9 New Session Ticket

  • SSL 中的 session 会跟 HTTP 的 session 类似,都是用来保存客户端和服务端之间交互的一些记录

  • 如果服务端允许使用 Session ID,客户端的 Client Hello 带上 Session ID,服务端复用 Session ID 后,会直接略过协商加密密钥的过程,直接发出一个 Change Cipher Spec 报文,然后就是加密的握手信息报文

  • 在服务器发送New Session Ticket消息

  • Type 类型

  • Version 版本

  • Length长度

  • Session Ticket Lifetime Hint 表示Ticket的剩余有效时间

  • Session Ticket 会话标识

image image

相关文章

  • HTTPS加密算法和过程

    1. HTTP三大风险 1) 窃听风险:黑客可以获取通信内容 2)篡改风险:黑客可以修改通信信息 3)冒充风险:黑...

  • HTTPS加密概述

    HTTPS传输过程 对称加密算法的复杂度低,所以在传输数据的时候,使用的是对称加密算法;但是对称加密算法使用的是相...

  • HTTP和HTTPS

    HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用...

  • HTTPS工作过程及加密算法

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • OPENSSL:RC4用法举例

    RC4是密钥流加密算法,明文长度和密文长度相同,加密过程和解密过程也相同。RC4加解密[https://www.j...

  • 2020-03-18 HTTPS传输过程解析

    HTTPS协议=HTTP协议+SSL/TLS协议 在HTTPS传输数据过程中,分别用到了对称加密、非对称加密算法。...

  • https加密算法

    1,对称加密算法,是指加密和解密使用相同的密钥 2,非对称加密算法:又称为公钥加密算法,是指加密和解密使用不同的密...

  • HTTPS,HTTPS和HTTP的区别以及HTTPS的加密算法

    HTTPS: 超文本传输安全协议.是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 HTTPS,HTTP区...

  • https

    https 作用:防止中间人攻击,防篡改和隐私泄露 一般加密算法 非对称加密算法:RSA,DSA/DSS 对称加密...

  • Android 中签名 加密和HTTPS

    Android 中签名 加密和HTTPS 一 RSA 加密算法 1. 非对称加密算法 1976年,两位美国计算机学...

网友评论

      本文标题:HTTPS加密算法和过程

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