一张图讲清楚对称性/非对称性加密、安全证书内涵以及应用场景
对称性加密和非对称性加密,其应用场景如何?
为什么在非对称性加密中,要使用数字证书来承载密钥信息?
数字签名和数字证书的关系是什么?
本人不是安全专业出身,对上述问题,虽然皆能回答,但是一直未能全面细致了解,近期因为某些缘故,找时间仔细分析了SSL协议传输过程,才得以窥其全貌于一斑。
下面以SSL协议的握手过程这张图,试图讲解在SSL协议中使用数字证书的缘由,数字签名的应用,以及对称性和非对称性加密的使用场景问题。
SSL握手过程(只验证服务器)
上图是标准的SSL握手过程,在详细了解其流程含义之前,让我们先学习解牛的庖丁先生,分析一些关于安全的故事。
来看一个例子,假设“服务器”和“客户端”是网络的两个通信端点,并且他们打算使用RSA这种公钥密码体制,“服务器”需要对外发布公钥,而自己留着私钥。我们稍后再讨论客户如何获得公钥(记住这个问题哦),下面看一下双方如何进行保密的通信:
Round 1:
1)“客户端”->“服务器”:Hello,我是客户端
2)“服务器”->“客户端”:Hello,我是服务器
3)“客户端”->“服务器”:真的吗?
很明显在上述的消息交互过程中,“客户端”无法肯定这个消息就是由“服务器”发出的,因为“黑客”也可以冒充“服务器”发出这个消息。
有聪明人想出来好办法,采用非对称性加密方法,给“服务端”分配一个私钥,给“客户端”分配一个公钥,只要“服务端”用私钥加密传输信息,“客户端”就可以用公钥解密传输信息,流程如下:
Round 2:
1)“客户端”->“服务器”:Hello,我是客户端
2)“服务器”->“客户端”:Hello,我是服务器
3)“客户端”->“服务器”:真的吗?证明给我看
4)“服务器”->“客户端”:我就是服务器{我就是服务器}[私钥|RSA]
上述流程第四步,{我就是服务器}[私钥|RSA]的意思是服务端使用自己的私钥,对“我就是服务器”这部分内容进行RSA加密之后的内容;
由于黑客无法得知“服务器”的私钥信息,所以“客户端”收到服务端发送的“我就是服务器{我就是服务器}[私钥|RSA]”信息后,使用自己持有的公钥对“{我就是服务器}[私钥|RSA]”部分的内容进行解密,然后跟明文信息“我就是服务器”进行对比,如果解密出来的内容是能够对得上的,那说明信息一定是从“服务器”发过来的。
看上去万事大吉哦,元芳,你怎么看?
考虑下面的业务流程:
Round 3:
1)“客户端”->“服务器”:Hello,我是客户端
2)“服务器”->“客户端”:Hello,我是服务器
3)“客户端”->“服务器”:真的吗?证明给我看
4)“服务器”->“客户端”:我就是服务器{我就是服务器}[私钥|RSA]
5)“客户端”->“服务器”:{这是张三的用户名和密码,请把他的银行账户余额告诉我}[公钥|RSA]
6)“服务器”->“客户端”:{张三的银行账户余额是一亿元}[私钥|RSA]
看出问题了吗?当服务端使用自己的私钥将张三的银行余额返回到客户端的时候,客户端可以使用公钥对加密的信息进行解密查阅,然后很悲剧的是:公钥是向所有人公开的,这意味着李四可以悄悄截取并查看张三的银行账户余额。
所以我们可以得出结论:非对称性加密不能解决信息的安全传输问题。事实上正是如此,SSL协议中信息的安全传输,是通过对称性加密来实现的,流程如下:
Round 4:
1)“客户端”->“服务器”:Hello,我是客户端
2)“服务器”->“客户端”:Hello,我是服务器
3)“客户端”->“服务器”:真的吗?证明给我看
4)“服务器”->“客户端”:我就是服务器{我就是服务器}[私钥|RSA]
5)“客户端”->“服务器”:{我证实了你的身份,这是后面我们传递消息使用的对称性加密密钥和加密算法}[公钥|RSA]
6)“服务器”->“客户端”:{哥们,我收到你的加密密钥和算法了 }[对称性加密密钥|加密算法]
7)“客户端”->“服务器”:{这是张三的用户名和密码,请把他的银行账户余额告诉我}[对称性加密密钥|加密算法]
8)“服务器”->“客户端”:{张三的银行账户余额是一亿元}[对称性加密密钥|加密算法]
上述解决问题的思路是:当客户端认证了服务器的身份之后,它来选择一个对称性加密密钥和加密算法,然后将这 些信息使用服务器的公钥加密并送回服务器,服务器使用自己的私钥解密之后即可获得客户端选择的对称性加密密钥和加密算法。并在后续的通信过程中,双方采用 这个密钥和算法进行消息的加密与解密。
听说每一页泡泡糖都应该有一个鲜明的观点,现在我们也应该来总结一下目前为止我们的一些观点:
1)在通信过程中,信息的安全传输是通过对称性加密来实现的;
2)非对称性加密的目的是让客户端使用公钥来验证拥有私钥的服务器的真实身份
篇幅所限,我们将在另外一篇文章中讨论接着讨论安全证书在上述流程的作用。

浙公网安备 33010602011771号