SSL协议的大致流程

背景:最近看了一本名为《计算机网络》的书籍,看到安全篇后有点感触,决定记录下来
接下来我们用例子谈一谈我们日常通信的安全性及缺陷
例子1:客户A向服务器B通信,假设B是一个网站,在没什么安全防护的网站中,可能仅仅只是要求用户输入账号密码进行登录,其实这时A通信的并不是B而是黑客C,A的账号密码信息也就流失了。注意,就算账号和密码加不加密其实都是一样的,黑客C并不需要知道你的账号密码是多少,在下次登录时直接投放加密后的账号密码就可以起到相同的效果。

从例子1我们可以看出鉴别B的身份的重要性
我们再看例子2:客户A向服务器B通信,A向B发送一个请求,B将他的CA的数据证书返回给A,A获得数字证书后用CA的公钥解密数字证书,获得B的公钥以及服务器B的信息,然后A用B的公钥加密一短信息发送给正在通信的服务器并等待服务器将该信息返回,如果通信的是服务器B,B就可以用他的私钥解密信息并正确返回,如果通信的是第三方,则由于没有服务器B的私钥而不能正确返回。这样就可以很好的验证B的身份了。
例子2中我们已经能够正确鉴别通信方的身份了,可能有人会有疑问,如果该信息被黑客截获后不做任何处理的移交信息呢?其实这并不影响身份的鉴别,但会导致其他安全问题,就像快递员帮你送快递一样,其实发送货物的仍是商家。

黑客在中间做一个透明的传输数据时,虽然不能影响身份的鉴别,但是会导致其他问题
例子3:在例子2中我们只是鉴别的服务器B的身份,然而却没有对信息进行加密和信息的完整性鉴别,所以,如果黑客截获到这些请求数据后,数据就被黑客得到了,或的黑客对其中的数据进行篡改,这就会导致很严重的问题了。
从这里我们就认识到了数据保密性和数据完整性的重要性了

如何保证数据的保密性和完整性呢?
例子4:客户A向服务器B通信,A向B发送一个请求,请求中带着A支持的一些加密算法,发送给B,B收到后就将B的数字证书和B支持的加密算法信息响应给A,A从数字证书中或的B的公钥,并生成一个对称密钥Kab,用B的公钥将Kab加密,连同学则的加密算法一起发送给B,B收到后用私钥获得对称密钥Kab,保存起来然后发送一个确认响应给A,之后A与B的通信就用Kab进行加密通信,实现了数据的保密性,在数据加密过程中,如A向B发送请求时,会获得请求数据的摘要,将摘要拼在数据之后,一起用Kab加密发送给B,B收到后将数据解密然后分离出摘要,并用同样的摘要算法对请求数据进行摘要,在与A发送过来的摘要对比,这样就能鉴定请求数据是否被篡改了。
以上就是现在流行的SSL加密协议的大致流程了

猜你喜欢

转载自blog.csdn.net/qq_25744595/article/details/82415633