2011-03-09 45 views
3

我开始规划一个项目,我觉得安全需要离家近一点。当使用有效的登录名时,我可以使用哪些工具和技术来尝试发出警报,但登录名的所有者已将其泄露或已被盗用。我更喜欢ASP.NET,然后是MVC 3,面向东西。如何检测滥用有效密码

回答

1

这不是一颗银色的子弹,但也许你应该考虑采用某种双因素身份验证。例如:当用户与您建立账户时,您需要她提供一个电话号码,以便她可以在注册过程中接收短信。然后,当她尝试登录时,将向她发送一个临时验证码,以便与她的用户名和密码结合使用。

此广告为系统增加了额外的安全层,因为攻击者必须知道她的用户名和密码对她的手机有实际访问权限才能破坏她的帐户。

我希望这很有帮助。

1

似乎你会得到很多误报...但是你可能会尝试检查登录是从哪个IP地址来的。大多数人大部分时间都会从同一个IP地址登录,所以当这种变化发生时,这至少是一个警告信号。如果您想对安全性要求非常严格,则可以维护白名单(针对每个帐户),并要求他们在登录之前将其IP地址添加到白名单。

+0

尼斯技术,但在SA中,大量的人在公共网络上使用间歇性的3G连接,所以我将其视为IP地址重置频率很高的标志。 – ProfK 2011-03-09 19:43:44

+0

有时您仍然可以通过使用IP范围而不是特定IP地址来获得正确的效果。 – Brilliand 2011-03-10 17:47:06

0

实现您自己的成员资格提供程序并将字段锁定添加到模型, 检查用户被锁定登录并执行一些操作

+0

这将保护一些,但只有当合法用户登录时,或发现他已经登录。在两者之间仍然是一个相当大的风险。 – ProfK 2011-03-09 19:28:09

+0

你是什么意思?所有身份验证操作都将通过您的自定义会员供应商 – vittore 2011-03-10 01:33:14

1

我的银行(Chase)通过在我的用户名/密码登录期间检查安全cookie来完成此操作。如果cookie丢失或损坏,他们需要第二种形式的身份验证,这是通过文本发送到我的电话号码上的代码,或通过电子邮件发送到我的电子邮件地址。一旦第二种认证形式完成,他们就设置了安全cookie,然后我只能用该用户名和密码从该浏览器登录。

+0

我的银行实际上也是这样做的,他们向您发送他们需要登录的号码。 – ProfK 2011-03-09 19:36:29

0

考虑身份验证过程的因素可能很有用,以便您确定自己足够覆盖事物。你可以很容易地得到保证层的荒谬,但我碰巧发现,大多数银行现在有一个简单模型的变体。所有这些当然都是通过SSL

  1. 用户提交帐户名称。此外,您可以要求提供次要信息,最后4个账号或年份的部分出生日期。
  2. 可选,但一个好主意:向用户显示一个计数器符号,这是验证服务器身份的一种方式。用户在注册时选择此选项,每次尝试登录时都应该查找此内容。这有助于防止网上诱骗。
  3. 系统检查当前使用IP查找或cookie的系统是否与该帐户相关联。如果不是,则随密码输入一起提出质询问题。否则,只显示密码输入。

复杂,但实际上可以在2页内完成,并且比通常需要的更安全。

我已将此工作流程呈现给少数银行客户,他们通常会移除一个或两个检查以获得用户友好平衡。

随着手机的文字功能如此普遍,其他人提到的短信验证码的想法也是一个不错的主意,尽管我个人尚未在系统中实现这一点。