网站模板定制,app产品开发公司,如何做微信电子书下载网站,商城网站模板免费【网络协议】【http】【https】ECDHE-TLS1.2
ECDHE算法
1.客户端和服务器端事先确定好使用哪种椭圆曲线#xff0c;和曲线上的基点G#xff0c;这两个参数都是公开的#xff0c; 双方各自随机生成一个随机数作为私钥d#xff0c;并与基点 G相乘得到公钥Q(QdG)#xff0c…【网络协议】【http】【https】ECDHE-TLS1.2
ECDHE算法
1.客户端和服务器端事先确定好使用哪种椭圆曲线和曲线上的基点G这两个参数都是公开的 双方各自随机生成一个随机数作为私钥d并与基点 G相乘得到公钥Q(QdG)此时客户端的公钥Q1 私钥 d1服务器的公钥 Q2私钥d2 双方交换各自的公钥最后客户端计算点(x1y1)d1Q2服务器计算点(x2y2)d2Q1由于椭 圆曲线上是可以满足乘法交换和结合律所以 d1Q2d1d2Gd2d1Gd2Q1 因此双方的x坐标是一样的所以它是共享密钥也就是会话密钥生成材料。会话密钥根据客户端随机数服务器端随机数 以及x生成
ECDHE生成会话密钥
1.客户端 客户端向服务器发送一个“ClientHello”消息 客户端支持的协议版本。 客户端支持的密码套件密钥交换算法签名算法对称加密算法摘要算法列表。 客户端生成的一个随机数(Client Random)
2.服务器 服务器收到客户端消息后返回一个“ServerHello”消息 服务器选择的协议版本。 服务器从客户端提供的密码套件列表中选定的密码套件。 服务器生成的一个随机数(Server Random) 服务器会发送自己的数字证书供客户端验证服务器的身份。 服务器发送【server key Exchange】消息这里的消息会进行签名 因为这个数据不能出错需要证明可靠性生成椭圆曲线Diffie-HellmanECDH的公钥(d2),私钥(Q2)对并将公钥Q2发送给客户端。
3.客户端身份验证与密钥生成 客户端收到服务器的数字证书后会验证证书的有效性确保服务器的身份可信。 客户端也有自己的ECDH密钥公钥(d1),私钥(Q1)并将公钥Q1发送给服务端。通过ECDHE算法与服务器的公钥Q2以及双方的私钥数生成一个共享的秘密密钥x。 密钥派生 客户端和服务器各自基于双方生成的共享密钥x以及客户端随机数服务端随机数生成最终的会话密钥。 消息认证 客户端使用会话密钥加密之前发送的所有数据的摘要并发送给服务器进行验证。 4.服务器同样验证摘要确认无误后双方进入安全的数据通信阶段。
后续会说明一下session ticketsession id 和TLS1.3以及基于TLS1.3的QUIC 但是由于TLS1.3及其后续资料没有确切规范说什么的都有如有问题希望大佬指出并能给出我参考资料 那将万分感谢
部分转自https://zhuanlan.zhihu.com/p/686461033 部分转自https://www.cnblogs.com/ToTigerMountain/articles/18220849