【问题标题】:How would you implement a 'challenge' question?您将如何实施“挑战”问题?
【发布时间】:2011-04-16 15:53:33
【问题描述】:

因此,对于安全性非常重要的应用程序 - 如何实施挑战问题的想法。那就是……你会:

  • 检测计算机 IP 是否已更改并因此提出质询问题。
  • 检测 cookie 是否丢失。
  • 检测计算机名称是否不同。
  • 上述方法的一些组合?

我目前正在开发一个外汇平台...在 asp.net/c# 中,并考虑如何实现该功能以获得最佳效果。我认为最好也是唯一的方法是检查 cookie 更改 - 因为如果我基于 ip - ip 可能是客户端的 isp 动态的 - 如果我指望计算机名称,那么它就不是那么明亮,因为计算机可能被不止一个用户使用...当然,如果我依靠 cookie,那么浏览器可能被不止一个人使用...但这就是为什么这是一项额外的安全措施,而不是非常密码/用户名认证。 除了获取计算机名称(如果可能的话??)+ cookie 更改似乎是最好的方法。我将其标记为 c#/java,因为这两个在认证和安全方面非常普遍。 10 倍!

【问题讨论】:

    标签: algorithm security


    【解决方案1】:

    Facebook 做的一件我认为很好的事情...您可以启用一个选项,让他们在您的浏览器中放置一个 cookie...对于您使用的每台计算机都是唯一的...然后如果有人在浏览器中没有 cookie登录到您的帐户,他们会向您发送一封电子邮件,让您知道...我认为他们会地理定位未知计算机的源 IP 并将其放入电子邮件中...因此,如果您住在美国,您不会期待从俄罗斯登录。不是每个人都接受 cookie,但对于接受 cookie 的人来说,这个可选功能很棒,金融公司也应该这样做......

    我的银行(和许多其他人)依赖某种形式的常量 two factor auth 可能就像您最好朋友的名字一样简单,或者如果他们就像我的在线经纪人,那么超过一定余额阈值的高价值账户就会有时间基于密码令牌。您必须先使用密码登录,然后使用令牌号登录。

    大多数金融网站都使用他们网站上的托管图片,您选择显示该图片用于您的密码登录...这有助于降低网络钓鱼损失的风险。

    【讨论】:

    • 不要认为您的银行总是依赖简单的身份验证。我工作的地方有一个跟踪系统,如果登录是可疑的(例如俄罗斯的事情;我想知道为什么是俄罗斯?我觉得它冒犯了。:P无论如何)。银行只是透明地执行此操作,而不要求用户接受 cookie。
    • Mike Pennington 实际上最有可能就在这里 - 我一直怀疑贝宝做类似的事情......几个月前当我在墨西哥并从同一台笔记本电脑...帐户无缘无故被限制。虽然这是一种类似愚蠢的做法......它有一些优点......从内布拉斯加州登录 5 年的人不太可能突然从尼日利亚阿布贾登录。说到这 - 没有冒犯俄罗斯和尼日利亚,很酷的国家;)。