IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 深入浅出HTTPS(密码套件) -> 正文阅读

[网络协议]深入浅出HTTPS(密码套件)

深入浅出HTTPS(密码套件)

密钥交换算法(RSA,DH,ECDH,DHE,ECDHE,PSK)

RSA

  • 客户端发送连接请求
  • 服务端分发公钥RSA的公钥给客户端
  • 客户端生成预备主密钥,通过公钥进行加密并发送给服务端
  • 服务端解密,如果正确解密,则证明共同协商出一个预备主密钥

DH

  • 客户端向服务器端发起连接请求。
  • 服务器端生成一个RSA密钥对,并将公钥发送给客户端。
  • 服务器端生成DH参数和服务器DH密钥对,用RSA私钥签名DH参数和服务器DH公钥,最后将签名值、DH参数、服务器DH公钥发送给客户端。
  • 客户端通过服务器RSA的公钥验证签名,获取到DH参数和服务器DH公钥。
  • 客户端通过DH参数生成客户端的DH密钥对,并将客户端DH公钥发送给服务器端。
  • 客户端通过客户端DH私钥和服务器端DH公钥计算出预备主密钥。
  • 服务器端接收到客户端的DH公钥,结合服务器的DH私钥计算出预备主密钥。
  • 最终客户端和服务器端计算出的预备主密钥能够保持一致。
    特征:客户端生成DH密钥对,服务端生成RSA密钥对,DH属于非对称加密

DHE

通信双方每次连接的时候,服务器通过DH参数生成的服务器DH密钥对是不一样的,在会话结束后,服务器DH密钥对也会失效,这种方式能提供前向安全性。

ECDH

https://zhuanlan.zhihu.com/p/107599962

ECDHE

DHE 算法由于计算性能不佳,因为需要做大量的乘法,为了提升 DHE 算法的性能,所以就出现了现在广泛用于密钥交换算法 —— ECDHE 算法。

ECDHE 算法是在 DHE 算法的基础上利用了 ECC 椭圆曲线特性,可以用更少的计算量计算出公钥,以及最终的会话密钥。

小红和小明使用 ECDHE 密钥交换算法的过程:

双方事先确定好使用哪种椭圆曲线,和曲线上的基点 G,这两个参数都是公开的;

  • 双方各自随机生成一个随机数作为私钥d,并与基点 G相乘得到公钥Q(Q = dG),此时小红的公私钥为 Q1 和 d1,小明的公私钥为 Q2 和 d2;
  • 双方交换各自的公钥,最后小红计算点(x1,y1) = d1Q2,小明计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换和结合律,所以 d1Q2 = d1d2G = d2d1G = d2Q1 ,因此双方的 x 坐标是一样的,所以它是共享密钥,也就是会话密钥。

这个过程中,双方的私钥都是随机、临时生成的,都是不公开的,即使根据公开的信息(椭圆曲线、公钥、基点 G)也是很难计算出椭圆曲线上的离散对数(私钥)。

认证/数字算法(RSA,ECDSA,DSA)

RSA

在这里插入图片描述
在这里插入图片描述

ECDSA

在这里插入图片描述

  1. 使用消息摘要算法将要发送数据加密生成信息摘要。
  2. 发送方用自己的DSA私钥对信息摘要再加密,形成数字签名。
  3. 将原报文和加密后的数字签名一并通过互联网传给接收方。
  4. 接收方用发送方的公钥对数字签名进行解密,同时对收到的数据用消息摘要算法产生同一信息摘要。
  5. 将解密后的信息摘要和收到的数据在接收方重新加密产生的摘要进行比对校验,如果两者一致,则说明在传送过程中信息没有破坏和篡改;否则,则说明信息已经失去安全性和保密性。

ECDSA

https://www.jianshu.com/p/899077117ff8?msclkid=8178e60eb87d11eca3644df5c7595e09

批量加密算法(AES,CHACHA20,Camellia,ARIA)

CHACHA20

https://jaminzhang.github.io/network/understanding-ChaCha20/?msclkid=c19ee2fcb87d11ec90e88e6a9a36661e

Camellia

https://www.jiamisoft.com/blog/20807-came.html?msclkid=1ca30a3cb87f11ecb98e7fdfb5c2d9a8

消息验证码算法(SHA-256,POLY1305)

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:40:35  更:2022-04-15 00:45:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:46:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码