SSL/TLS密钥协商(握手)过程

SSL/TLS密钥协商过程


背景

某公司考试有道题目让说明SSL/TLS协商密钥过程。一看到这题我立马就想起当初网络信息安全课期末复习的时候碰到过这个问题,那时候刚接触这些加密解密什么的东西,对很多概念是很模糊的,所以查找资料后,在自己的头脑里,给这个问题整理出了答案:

1、建立安全能力
2、服务器端进行认证,交换密钥
3、客户端进行认证,交换密钥
4、结束

之后就算再有遇到SSL相关的东西,也就只是按这样的思路去想它了,没有进行更多的探索(就像上边说的,之前对密码学方面的东西认知是很混乱的,想深入搞定SSL,就要先去扎实地搞定密码学其它基础,包括加密算法、签名、证书什么的(后话——借口!))。。。

然后,那天考试看到这道题,一想起自己上边那个答案。。。我擦,这是什么GS啊,这样回答下去会有分吗??!!就是这时候,我突然发现我根本不明白 SSL的机制。


回来马上查资料,这次一定会把它深入(一点)弄明白的。并且,为了加深记忆,这里整理一遍。下次再遇到这题目,就是满分。


正文

首先,为了速度(或者还有其它原因),SSL/TLS通信CLIENT和SERVER之间的通信数据本身是用对称加密体系的,具体是怎么回事,后边了解了整个协商过程就明白了。但是,协商过程,使用的是非对称加密体系。

1、CLIENT向SERVER发送协议版本、自己支持的加密算法、一个随机数(Client Random)
2、SERVER收到后,返回选好的加密算法、自己的证书、一个随机数(Server Random)
3、 CLIENT验证SERVER的证书。通过后生成另一个随机数(Premaster Secret),并用证书中的公钥加密该数,发送给SERVER
4、SERVER用自己的私钥解密,得到Premaster Secret
-----------------------------------------------------------
5、到了这里,双方的交流已经结束了。之后双方根据约定好的加密算法对上边的三个随机数进行加密,得到一个会话密钥。接下来的通信就用这个会话密钥做对称加密。

reference (with thanks)

http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

猜你喜欢

转载自blog.csdn.net/AlimSah/article/details/52555754