SSL/TLS学习(五)
中间人模式攻击可以成功的关键在于,A向B发送公钥的时候只能使用明文。B收到公钥的时候,无法判断公钥是来自A还是攻击者C。而如果A在发送公钥的时候对公钥进行加密,无论是采用对称加密还是非对称加密,都又会涉及密码或**的传递。在通信的过程中已经无法解决这个问题了。
因此,不得不在通信之前引入了另外一个**对,来对握手阶段发送的公钥进行加密和解密。也就是说,通信之前,A已经生成了一个**对,并且把公钥通过某种方式发送给了B(比如:U盘或者预装在操作系统中等等)。
然而,如果B已经持有了A的公钥,那么A就不再需要在通信的开始阶段生成**对,然后把公钥发送给B了。B可以直接使用A的公钥加密自己随机生成的密码,并发送给A。A使用自己的私钥解密得到密码。然后,A和B就可以通信了。
以前的通信方式是这样的。
改进后的通信方式是这样的。
“应答请求”可以是任何内容,只要表示A收到了通信请求即可。可以看到,同以前相比,只是没有用明文发送公钥。但是,仅仅这样一个小小的改变,就可以防御嗅探攻击和中间人攻击了。
但是,这个过程还是存在下面的问题。
因为A(服务器)的数量非常庞大,所以B需要持有的公钥太多。