美文网首页
HTTPS密钥交换过程学习笔记0

HTTPS密钥交换过程学习笔记0

作者: sydneywhatever | 来源:发表于2019-10-21 22:10 被阅读0次

HTTPS = HTTP + TLS

建立TCP连接后,开始TLS认证和协商加密密钥,然后传输数据。

TLS从1.0、1.1、1.2到1.3。除了减少RTT,还有安全性上的升级。

TLS:认证、保密性、完整性。

TLS使用非对称密钥算法交换用于加密的对称密钥。

TLS1.2及之前使用RSA交换密钥,TLS1.3使用DH算法升级版交换密钥。

RSA密钥交换不是前向安全算法(私钥泄漏后,之前抓包的报文都能被解密)。前向不安全,私钥参与了密钥交换,安全性取决于私钥是否安全保存。

一、RSA密钥交换过程

客户端发送client_hello,包含一个随机数random1;

服务器回复server_hello,包含一个随机数random2,同时回复certificate,携带了证书公钥P;

客户端验证证书有效性后,使用随机数算法生成pre-master key,用服务器公钥P将pre-master key加密后发给服务器;

服务器使用私钥解密得到pre-master key;

客户端和服务器根据pre-master key、random1、random2生成session key。

(初始化向量IV)XOR(session key)= 一次性密钥1

初始化向量IV)XOR(一次性密钥1)= 一次性密钥2

……

问题:

1、RSA的IV如何生成的,明文or密文传输?

2、假设私钥泄露,如何解密所有历史报文?

3、密钥协商过程需要2个RTT?说好的1.5和1?

二、DH密钥交换过程

客户端根据私钥a生成公钥A,将公钥A和random1发送给服务器;

服务器根据私钥b和公钥A生成公钥B,将公钥B和random2发送给客户端;

服务器和客户端根据自己的私钥和对方的公钥,以及random值,生成相同的session key;

后续步骤同RSA。

DH密钥交换时,服务器私钥仅用于签名,不参与密钥交换过程。也就是说,私钥即使泄漏,也不会导致会话加密密钥S被第三方解密。

DH算法有一个比较大的缺陷就是需要提供足够大的私钥来保证安全性,所以比较消耗CPU计算资源。ECC椭圆曲线算术能够很好的解决这个问题,224位的密钥长度就能达到RSA2048位的安全强度。 所以常用ECDHE进行密钥协商。

问题:

1、为什么根据自己的私钥和对方的公钥,以及random值,生成相同的session key?

        DH算法原理:https://blog.csdn.net/mrpre/article/details/52608867

2、RSA密钥分发+RSA认证,DH密钥分发+RSA认证?

3、为什么DH私钥泄露只影响当前会话,历史会话不会泄露?

        一次一密


学习资料来源:

1、公众号车小胖谈网络

2、mrpre的CSDN博客

相关文章

  • HTTPS密钥交换过程学习笔记0

    HTTPS = HTTP + TLS 建立TCP连接后,开始TLS认证和协商加密密钥,然后传输数据。 TLS从1....

  • HTTPS-密钥交换

    2.3 密钥交换 2.3.1 RSA密钥交换 RSA密钥交换的过程十分直截了当。客户端生成预主密钥(46字节随机数...

  • HTTPS的协议需求与密钥交换过程

    协议需求: 搞这么个协议是为了干嘛,这个协议需要具备什么样的特性。前三点非常重要,也是HTTPS协议的主要作用。 ...

  • Java DH密钥交换及加解密

    描述 DH算法的作用:只能用于密钥的交换,而不能进行消息的加密和解密。密钥交换的过程:image.png具体步骤:...

  • HTTPS ECDHE 握⼿解析

    HTTPS常⽤的密钥交换算法有两种,分别是RSA和ECDHE算法。 其中,RSA是⽐较传统的密钥交换算法,它不具备...

  • Https:TLS 握手协议

    一、相关知识 (一) 密钥交换算法 TLS 中密钥交换算法有6种:无效(没有密钥交换)、RSA、匿名Diffie-...

  • Diffie-Hellman算法

    0x0 Diffie-Hellman介绍 Diffie-Hellman简称DH算法,用于密钥交换,两端使用相同p,...

  • TLS/SSL握手过程

    1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).cli...

  • 密码之浅析Diffie–Hellman

    转:https://www.cnblogs.com/hyddd/p/7689132.html 这个密钥交换方法,由...

  • 扫盲 HTTPS 和 SSL/TLS 协议[3]:密钥交换(密钥

    https://program-think.blogspot.com/2016/09/https-ssl-tls-...

网友评论

      本文标题:HTTPS密钥交换过程学习笔记0

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