带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(8)

简介: 带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(8)

带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(7)https://developer.aliyun.com/article/1340623?groupCode=taobaotech

image.png基于DH的秘钥协商(依靠秘钥交换算法) 客户端先连上服务端;

服务端生成一个随机数 s 作为自己的私钥,然后根据算法参数计算出公钥 S(算法参数通常是固定的); 服务端使用某种签名算法把“算法参数(模数P,基数G)和服务端公钥S”作为一个整体进行签名;

服务端把“算法参数(模数P,基数G)、服务端公钥S、签名”发送给客户端; 客户端收到后验证签名是否有效;

客户端生成一个随机数 c 作为自己的私钥,然后根据算法参数计算出公钥 C; 客户端把 C 发送给服务端;

客户端和服务端(根据上述 DH 算法)各自计算出 K 作为会话密钥;

image.png

 

 

 

DH协商秘钥协商算法计算性能不佳,因为协商过程中双方都需要做大量的乘法运算,为了提升 DHE算法的性能, 所以就出现了现在广泛用于密钥交换算法 —— ECDHE算法。

 

image.png基于ECDHE的秘钥协商

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

 

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

  1. 双方事先确定好使用的椭圆曲线类型以及曲线上的基点 G,这两个参数都是公开的,一般采用密码学中比较著名的椭圆曲线函数,例如本次会话用到的Curve25519曲线;
  2. 双方各自随机生成一个随机数作为私钥d,并与基点 G相乘得到公钥Q(Q = dG),此时小红的公私钥为 Q1 d1,小明的公私钥为 Q2 d2;
  3. 双方交换各自的公钥Q1和Q2;
  4. image.png通过椭圆曲线特性计算得到相同的x坐标作为协商秘钥K,过程如下: 小红计算点

小明计算点

image.png基于椭圆曲线的特 d1Q2 = d1d2G = d2d1G = d2Q1 ,因此双方 x 是相等的,所以它是共享密钥, 也就是会话密钥。(详细的数学原 :https://www.cnblogs.com/kalafinaian/p/7392505.html)

 

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

 

第三步:Server Hello done,S端已经完成向C端的消息发送;

image.png

 

 

 

带你读《2022技术人的百宝黑皮书》——HTTPS的原理浅析与本地开发实践(9)https://developer.aliyun.com/article/1340621?groupCode=taobaotech

相关文章
|
2天前
|
算法 安全 网络协议
https原理--RSA密钥协商算法
https原理--RSA密钥协商算法
8 0
|
8天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
8天前
|
缓存 安全 算法
网络原理 HTTP _ HTTPS
网络原理 HTTP _ HTTPS
16 0
|
8天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
8天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
27 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
8天前
|
Web App开发 前端开发 Java
SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享
22 0
SpringBoot配置HTTPS及开发调试
|
8天前
|
安全 网络协议 算法
秒懂HTTPS接口(原理篇)
【4月更文挑战第24天】秒懂HTTPS接口(原理篇)
49 4
秒懂HTTPS接口(原理篇)
|
8天前
|
安全 网络协议 网络安全
网络原理(5)--HTTPS是如何进行加密的
网络原理(5)--HTTPS是如何进行加密的
27 0
|
8天前
|
网络协议 网络安全
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
137 0
|
8天前
|
安全 搜索推荐 数据安全/隐私保护
深入探讨HTTPS协议的原理和工作流程
【2月更文挑战第10天】
50 4
深入探讨HTTPS协议的原理和工作流程