让我们想象一下,我没有使用SSL,而是在HTTP标头中发送令牌。令牌包含用户ID并已加密。
我可以想象一个中间人攻击者可以捕获令牌并使用它。如果我使用SSL,它应该足够安全吗?但如果我不使用SSL ......
我可以在令牌上添加一些内容,例如用户的IP,这样我就可以检查令牌中的请求IP和加密IP是否相同?
中间人攻击者可以伪造受害者的IP地址吗?生成令牌时,我可以使用任何其他用户相关信息吗?
谢谢!
答案 0 :(得分:5)
中间人攻击者(MITM)可以伪造受害者的IP地址吗?
既然你描述了可能的攻击,那么中间人,"是的,攻击者可以伪造受害者的IP地址。
生成令牌时,我可以使用任何其他与用户相关的信息吗?
当然,让用户生成一个永远不会以明文形式发送的随机数。并且最好确保服务器也这样做,以便中间人攻击者不能重放旧请求。用户如何确定他与真实服务器而不是攻击者进行通信?用证书更好地证明服务器的身份。
在设计一种能够抵御中间人攻击的协议时,会出现许多此类问题。如果你解决所有这些问题,你可能会想出一些与SSL非常相似的东西。对于许多开发人员来说,构建他们自己的安全传输协议并不值得花时间。
答案 1 :(得分:2)
继@ guest的优秀答案:
中间人攻击者可以伪造受害者的IP地址吗?
这取决于MITM的位置:
简而言之,使用SSL(或更专业的TLS)。