Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

SSL加密的详细过程(难得找到一个讲得好的)

$
0
0
SSL/TLS协议

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

SSL/TLS协议(HTTPS 也是这样的)的基本过程是这样的:

1.客户端生成【随机数1】,客户端(通常是浏览器)先向服务器发出加密通信的请求,发送【随机数1】,向服务器端索要公钥; 2.服务器收到客户端请求后,生成【随机数2】,向客户端发出回应,回应信息包括【随机数2】,服务器证书(包含公钥) 3.客户端收到后,验证服务器证书的有效性,取出公钥,生成【随机数3】,使用公钥加密【随机数3】,发给服务器。 4.服务器回应, 至此,服务器和客户端都有3个随机数,使用3个随机数生成这次的会话秘钥(即对称秘钥),二者开始使用对称加密通讯。服务器通知客户端:编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验(对称加密)。5.之后二者将通过对称加密来通讯。

解释:为啥使用3个随机数。

不管是客户端还是服务器,都需要随机数,这样生成的密钥才不会每次都一样。由于SSL协议中证书是静态的,因此十分有必要引入一种随机因素来保证协商出来的密钥的随机性,三个随机数通过一个密钥导出器最终导出一个对称密钥,增加随机性

之前很多讲HTTPS原理的(包括下面的https),都只有1个随机数,为啥?因为毕竟是讲原理,并没有讲清细节;

简单来说,一开始使用的非对称加密,就是为了安全的传递对称秘钥,毕竟对称加密的速度快。

refer:

SSL/TLS协议运行机制的概述

https 非对称+对称
SSL加密的详细过程(难得找到一个讲得好的)
refer:

图解HTTPS 无网不剩


Viewing all articles
Browse latest Browse all 12749

Trending Articles