我正在使用RSA来加密服务器和客户端之间的通信。假设我们有2个不对称密钥,密钥1和密钥2。这种情况是否安全?
服务器从一开始就KEY1(私人)和客户有KEY1(公共)
因此,这里的情景:
- 客户端生成密钥2
- 客户端连接到服务器
- 发送从key1(public)加密的key2(public)
- 从现在开始服务器将发送所有用key2加密的数据(public)
- 客户端发送一些随机数据到服务器
- 服务器发回相同的数据散列
- 客户端验证数据是正确的
至于我可以看到这应防止一个人在中间的攻击,还是我错过了什么? 在第7点,客户端应该知道是否有人试图给服务器加密的错误密钥,因为除了服务器之外没有其他人可以解密密钥2(公共)。
如果有任何事情可以改善安全性,请告诉我。
只要你是对的,你的公认的MITM可以在任何情况下做到这一点,没有客户。 – MarkusQ 2009-03-04 18:37:08
很确定他可以,但他然后会松开客户端,那么做MITM没有意义,因为没有什么可以偷看的。 – Peter 2009-03-05 07:14:15