首页 > 编程知识 正文

理解https原理有什么用(HTTPS(二) -- SSL/TLS 工作原理和详细握手过程)

时间:2023-05-05 17:04:30 阅读:124081 作者:1859

前面的HTTPS基础知识介绍了对称加密、不对称加密、不对称加密的改进方案、不对称加密对称加密、中间人攻击、数字证书、数字签名和HTTPS的工作原理。 我们知道HTTPS实际上是在HTTP层和TCP之间添加了SSL/TLS层。

现在谈谈SSL握手的过程

正如与TCP的三次握手建立TCP连接一样,SSL握手是用于建立安全套接字层(SSL )的连接。 SSL握手的场景很多,例如最常见的HTTPS,当访问https://www.baidu.com时,需要在进行HTTPS的APP应用数据传输之前建立SSL连接

1 SSL握手有三个目的。 客户端和服务器选择相同的数据保护算法。 确定加密密钥; 握手也可以认证客户端。 2 TLS握手的详细步骤顺序图显示了SSL/TSL握手的详细步骤

SSL/TLS握手的详细流程

"client hello" 消息:客户端发送“client hello”消息,显示客户端支持的TLS版本、支持的算法列表和密码组合,以及

"server hello" 消息:服务器是包含服务器选择的加密算法、服务器选择的密码组合、数字证书和" server random "随机字符串的" server hello "邮件

验证:客户端验证服务器发送的证书,确保对方的合法身份。 验证过程可以细分为以下步骤。

数字签名验证证书链的检查证书的有效期检查证书的撤回状态(撤回代表证书已过期)"premaster secret"字符串)客户端表示只能解密对应私钥的另一随机字符串“premaster secret”

使用私钥:服务器使用私钥解密“预主安全”。

生成共享密钥:客户端和服务器使用客户端random、服务器random和premaster secret,并使用相同的算法生成相同的共享密钥KEY。

客户端就绪:客户端发送用共享密钥KEY加密的“finished”信号,为了防止握手过程被篡改,此消息的内容是前一阶段所有握手的MAC值。

服务器就绪:服务器发送用共享密钥KEY加密的“完成”信号。 此消息的内容是前一阶段所有握手的MAC值。

达成安全通信:握手完成,双方使用对称加密进行安全通信。

步骤8和9是为了防止握手本身被篡改。 攻击者想要控制客户端和服务器使用的算法。 客户端提供多种算法的情况非常普遍,允许与某些强度弱、某些强度强、仅支持弱强度算法的服务进行通信。 攻击者可以删除客户端在步骤1中提供的所有高强度算法,从而允许服务选择弱强度算法。 更换步骤8和步骤9中的MAC可以阻止此攻击。 客户端的MAC是根据原始消息计算的,服务器的MAC是根据攻击者修改的消息计算的,如果选中,就会发现不匹配。

证书链(certificate chain ) :也称为证书路径,是用于验证实体合法id的证书列表。 特别是,HTTPS通信用于验证服务器的合法id。 使用证书链是为了确保根证书(root CA certificate )的安全,中间层可以被视为根证书的代理,如下图所示,作为缓冲区。

证书链从根证书开始,证书链中由各级证书标识的实体对其下级证书签名,根证书本身由证书颁发机构签名。 客户端验证证书链时,必须验证链中所有证书的数字签名,直到到达根证书。

参考: https://segment fault.com/a/119000021559557

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。