转载的地址:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
一、SSL协议的握手过程
开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手
假定客户端叫做爱丽丝,服务器叫做鲍勃,整个握手过程可以用下图说明
握手阶段分成五步:
第一步:爱丽丝给出协议版本号、一个客户端生成的随机数,以及客户端支持的加密方法。
第二步:鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数
第三步:爱丽丝确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发给鲍勃
第四步:鲍勃使用自己的私钥,获取爱丽丝发来的随机数
第五步:爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成“对话密钥”,用来加密接下来的整个对话
二、私钥的作用
(1)生成对话密钥一共需要三个随机数
(2)握手之后的对话使用“对话密钥”加密(对称加密),服务器的公钥和私钥只用于加密和解密“对话密钥”(非对称加密),无其他作用
(3)服务器公钥放在服务器的数字证书之中