什么是电子证书##
在了解什么电子证书之前,先让我们来回顾和总结一下SSL的加密方式。
我们用现实生活中的信件传递,来模拟一次客户端与服务器的通信过程。
1:客户端向服务端发起一次SSL通信请求。
用户A准备开始给用户B写一封加密信件。并且通过邮差(网络)通知用户B。
2:服务端接收到本次SSL通信请求,将准备好的公钥(pbk),通过网络(邮差)传递给客户端。
用户B得知用户A要给自己写信后,将公钥,通过邮差邮寄给用户A
3:用户A(客户端)得到公钥后,通过公钥,将一个对称加密密钥加密(比如密码123),然后再发送给服务器。
用户A用收到的公钥,将密钥“123”,用公钥加密。加密后的文字不可读。就像这样:54%$#I0X87FE00&*。加密后,再将本串文字,拜托邮差,邮寄给用户B。
4:服务器收到“54%#I0X87FE00&”后,用自己的私钥将它还原成"123"。至此服务器和客户端都拿到了密码123,并且,就算在通信过程中被,窃贼也无法得知“54%#I0X87FE00&”表示什么含义。*
用户B收到用户A的信件后,用私钥将内容解密得到密码“123”,于是接下来用户B与用户A之间的信件传递就会使用密码123,对内容进行加密。这样即使信件被邮差偷看,邮差也无法了解信件的具体含义。
整个过程的流程图如下:
客户端(A)->服务端(B): 请求开始进行一次SSL通信
服务端(B)->客户端(A): 服务器收到请求,回送公钥pbk
客户端(A)->服务端(B): 使用pbk将对称密钥(密码123)加密,发送给服务器
服务端(B)->客户端(A):收到公钥加密信息,使用私钥解密,得到密码123,通知客户端准备工作完成
客户端(A)->服务端(B): 从此,开始使用密码123对信息进行加密和服务器进行交流
服务端(B)->客户端(A): ..................
客户端(A)->服务端(B): ..................
SSL加密解密的过程看起来完美无瑕,无懈可击。你根本无法想象它是怎么被设计出来的。ssl证书
但是,美好的愿景总是用来打破的。
下面,就让我们来尝试一下,破解上述加密解密方式。
通过逐步分析以上通信步骤,我们可以发现,用户A与用户B写信回信,总是要先将信件送到邮差手中。那么,如果邮差对A和B双方进行欺骗,会发生什么情况呢?
*1. 邮差C,在收到用户A的第一封信件时,将信件内容,原封不动的交给用户B。
用户B将公钥包装好后打算邮寄给用户A,于是他把信件交给邮差C。邮差C收到找到公钥后,藏起来,然后拿出自己伪造的公钥,交给用户A。
用户A收到邮差C的公钥后,用邮差C的公钥,对密码123进行加密,然后将信件再给邮差C
邮差C拿到用户A的信件后,用自己的私钥对信件解密,获取到密码123,再用之前私藏起来的用户B的公钥,对信件进行加密,然后将加密后的信件,交给用户B
用户B拿到信件后,用私钥解密,得到密码123。然后通知用户A准备工作完成,开始正式写信。
最后,用户A和用户B的信件,都能被邮差C窃取。因为邮差C通过之前的步骤掌握了密码123.*
用实际通信过程结合图片,来还原和说明上述过程:
客户端(A)->骇客(C): (1)
骇客(C)->服务端(B): (2)
服务端(B)->骇客(C): (3)
骇客(C)->客户端(A): (4)
客户端(A)->骇客(C): (5)
骇客(C)->服务端(B): (6)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-59333-2.html
Repost