Code前端首页关于Code前端联系我们

SSL协议工作流程详解(双向HTTPS流程)

terry 2年前 (2023-09-28) 阅读数 78 #未命名

SSL协议工作流程:

服务器认证阶段:

1)客户端向服务器发送启动消息“Hello”开始新的连接session ;

2) 服务器根据客户端的信息确定是否需要生成新密钥。如果有必要,服务器在响应客户端的“Hello”消息时会包含生成主密钥所需的信息;

3)客户端根据收到的服务器响应信息生成主密钥,附加到服务器的公钥中并发送给服务器;

4) 服务器返回主密钥,并将经过主密钥认证的密钥返回给客户端。允许客户端对服务器进行身份验证的信息。

用户认证流程:

在此之前,服务器已经通过了客户端认证。这一步主要完成客户验证。经过身份验证的服务器向客户端发送查询,客户端返回(数字)签名的查询和公钥,从而向服务器提供身份验证。

(协议集:提供在线信用卡支付的国际标准。)

SSL协议握手过程:

SSL协议采用公钥加密技术(非对称加密❀)对称加密技术.SSL采用对称加密技术对传输内容进行加密,然后使用公钥作为加密密钥加密,其优点是对称加密技术比公钥加密技术速度更快,可以用来加密更大的数据传输内容。公钥加密技术public速度相对较慢,提供了一种身份验证技术,可用于加密对称加密过程。使用的密钥。

SSL协议非常有效,可以让客户端和服务器端完成身份验证。主要步骤如下:
①客户端浏览器向服务器传输客户端的SSL协议和加密算法的编号、类型、生成的随机数以及服务器与客户端通信所需的各种信息。

②服务器端向客户端传输SSL协议号、加密算法类型、随机数等相关信息。同时,服务器端也会将自己的证书发送给客户端。

③客户端利用服务器端传来的信息来验证服务器端的合法性。服务器的有效性包括:证书是否过期、颁发服务器证书的CA是否可信、提供者证书的公钥是否可以解锁服务器证书。来自提供商的数字签名”,如果服务器证书中的域名与服务器的实际域名匹配。如果验证失败,则终止连接;如果合法验证通过,则继续第四步。

④客户端为后续连接生成“对称密码”,然后用服务器的公钥进行加密(服务器的密钥是从步骤②中的服务器的证书中获取的),然后进行加密。 “预主密码”被发送到服务器。

⑤ 如果服务器需要对客户端进行身份验证(握手过程中无法完成),用户可以生成一个随机数,然后在其上签名数据,将签名的随机数与客户的个人证书和“预签名”合并起来。 -主密码”也被发送到服务器。

⑥如果服务器需要身份验证,服务器必须验证客户端证书和签名随机数的有效性。具体验证步骤包括:客户端的证书使用日期是否有效,以及颁发客户端证书的CA是否可信。或者,颁发CA的公钥可以正确解码颁发客户端证书的CA的数字签名,并检查客户端证书是否在证书吊销列表(CRL)中。如果认证失败,则立即终止连接;如果验证失败,服务器会使用自己的密钥删除“预主密码”,然后它会执行几个步骤来生成主连接密码(客户端也会以与owner.connection相同的方式生成它)密码)。

⑦服务器端和客户端使用相同的基本密码,即“呼叫密码”。对称密钥用于加密和解密 SSL 协议中的安全数据通信。同时,数据连接的完整性必须在SSL连接过程中完成,以防止数据连接发生任何改变。

⑧客户端向服务器发送消息,说明步骤⑦中的主密码将在下次数据连接中作为对称密钥使用,同时通知服务器已完成客户参与流程。

⑨服务器向客户端发送消息,说明将使用步骤7中的主密码作为下次数据连接的对称密钥,同时通知客户端但服务器端切换过程已完成。 。
⑩SSL 握手部分结束,安全 SSL 通道上的连接开始。客户端和服务器开始在数据连接中使用相同的对称密钥,同时验证连接的完整性。

双因素认证SSL协议的特殊流程


  ①浏览器向安全服务器发送连接请求。

② 服务器将自己的证书以及证书相关信息发送到客户端浏览器。

③ 客户端浏览器检查服务器发送的证书是否由受信任的CA机构颁发。如果是,则继续执行合同;否则,客户端的浏览器会给客户端一个警告信息:警告客户端这个证书不可信,并询问客户端是否需要继续。

④ 客户端浏览器将证书中的信息(例如域名和公钥)与服务器刚刚发送的相应消息进行比较。如果它们匹配,则客户端服务器就知道该服务器是有效的。

⑤ 服务器要求客户端发送客户端特定的证书。服务器收到后,验证客户端的证书。如果认证失败,则拒绝连接;如果认证通过,服务器就会收到公钥。

⑥ 客户端浏览器告诉服务器它可以支持哪些连接对称加密方案。

⑦ 服务器从客户端发送的密码中选择密码级别最高的密码,用客户端的公钥加密后通知浏览器。

⑧ 对于这种密码方案,浏览器选择一个公钥,然后使用服务器的公钥对其进行加密并将其发送到服务器。

⑨ 服务器接收浏览器发送的消息,用自己的密钥解密,得到调用密钥。

⑩ 后续服务器与浏览器之间的通信采用对称加密方案,并对对称密钥进行加密。

以上就是SSL双向认证协议的特殊通信过程。此设置要求服务器和用户都拥有凭据。单点登录SSL协议不需要客户端拥有CA证书。具体步骤与上面的步骤进行对比。只需要去掉服务器端验证客户端证书的过程,当协商好对称加密方案和对称呼叫密钥后,服务器发送给客户端。是一种非加密的密码方案(它不影响SSL过程的安全性)。这样,双方私密通信的内容就是存储的数据。如果发生第三方攻击,则只有存储的数据可用。如果第三方想要获得有用的信息,他们需要删除存储的数据。当前的安全性是依赖于语音方案的安全性。幸运的是,如果通信密钥足够长,今天使用的加密方案是相当安全的。这就是为什么我们强调要求使用128位加密连接。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门