SSL/TLS学习(二)

假想的非对称加密的网络通信过程

假定A是服务器,B是用户,A与B的通信过程如下:

1. B用明文发送消息给A请求通信。

2. A生成一对**。

3. A把公钥用明文发送给B。(因为目前无法加密。)

4. B用公钥加密消息,并发送给A。

5. A用私钥解密A发来的消息。

6. A用私钥加密要发送给B的信息,并发送给B。

7. B用公钥解密A发来的信息。

8. 回到步骤4,循环往复。

SSL/TLS学习(二)

采用这种方式的前提是B要确定A的身份,而A不需要确认B的身份。因为在A发送公钥的时候,无法确定公钥发送给了谁。而这也是通常互联网上的信任关系,用户在向网站发送信息的时候,一定要确认是把信息发送给了他信任的网站,而不是黑客。而网站并不介意是用户还是黑客在浏览网站。

嗅探攻击对这种加密方式是无效的。

首先,如果攻击者是在步骤2以后发起嗅探攻击。那他即使能获取通信中的完整信息,也由于缺少公钥和私钥,所以无法加密或者解密任何信息。

其次,如果攻击者在步骤2已经发起了攻击,并且截获了了公钥,那他也只能解密A发送给B的信息,而不能解密B发送给A的信息。(因为只有A在步骤1生成的私钥,才能解密B发送给A的信息。)而这种加密方式应用的前提就是B发送给A的才是私密信息,而A发送给B的都是公共信息,因此被截获也无关紧要。