我想包括在网站安全登录,并给出的威胁模型,我想知道如果我可以放心地回落到这样一个更快的平原连接:
- 通过安全连接,谈判随机令牌
T
。这存储在一个cookie中。 - 服务器商店
f(T)=hash(private_salt,T,username,password,$_SERVER['REMOTE_ADDR'])
T
稍后在未加密的连接上共享。服务器重新计算f(T)
以验证连接。
这个想法是T代表没有特定的信息,即使它被盗,来自不同始发IP地址的连接也会导致计算不同的f(T)
。
明显的弱点是会话在NAT后面被盗用。假设我们可以在实践中解决这个问题。这个问题基本上归结为:欺骗连接有多容易,保留$_SERVER['REMOTE_ADDR']
?
此网站只需要适度的安全。不会有敏感的流量。 威胁模型基本上是为了应对破坏行为。我只需要阻止无聊的人,而不是俄罗斯黑手党。鉴于这个假设,上述协议是否足够安全?
另外,让我们假设这发生在一个普通的网络浏览器和LAMP - 为了安全的密码传输,是https城里唯一的游戏?似乎Diffie-Hellman密钥交换或类似的就足够了(模拟服务器不在威胁模型中),并且不需要所有签名警报。有大多数浏览器支持的标准apache/php模块吗?
这是一个“大型网络”某种特殊的企业内部设置?还是在家里的用户常见的做法? – spraff 2012-02-24 17:21:39
我当时在大学。然而,问题依然存在,即任何拥有动态IP的人(即大多数人)在登录时都会遇到问题。 – 2012-02-24 17:24:10
如果您的客户端是移动设备,该怎么办?说一台笔记本电脑或手机。然后你会遇到同样的问题。 – diedthreetimes 2012-02-25 06:35:06