我正在使用RSA加密服务器和客户端之间的通信.假设我们有2个非对称密钥,密钥1和密钥2.
服务器从一开始就有key1(Private),客户端有key1(public)
所以这是场景:
客户端生成key2
客户端连接到服务器
发送用key1加密的key2(public)(公共)
从现在开始服务器将发送用key2加密的所有数据(公共)
客户端将一些随机数据发送到服务器
服务器发送回相同的数据哈希值
客户端验证数据是否正确
据我所知,这可以防止中间人攻击,或者我错过了什么?在第7点,客户端应该知道是否有人试图给服务器提供错误的加密密钥,因为除了服务器之外没有其他人可以解密key2(公共).
如果有任何可以改善安全性的事情请告诉我.
您可以做的最好的事情是提高安全性,使用现有设计,而不是尝试重新发明轮子.我并不是说你所做的事情一定是错的,只是那些比你和我更聪明的人花了很多时间思考这个问题.请改用TLS.