我正在设计一个系统,它需要通过一个强密码进行访问控制,为此,我将使用密码生成算法A,生成长度为L的强密码,>= 32。系统将检查密码,如果密码在连续几次尝试中不正确,则在一段时间内阻止用户进一步登录。
此外,该系统应:
由于我在安全问题上没有亲身经验,所以我非常感谢安全专家能够对以下简单的,也许是天真的设计进行批判:
评论:
答:一个人似乎可以不费吹灰之力地记住一个介于10亿到10亿之间的数字,因为它的数字比美国的长途电话要少。
只要文件没有丢失(可以复制),用户将始终拥有正确的密码。
可以随时通过重新生成整个文件并在相同位置选择新密码来轻松更改密码。用户将不需要记住新密码--使用相同的号码N将产生新密码。
D.如果攻击者用10亿个密码控制该文件,并多次尝试登录以找到正确的密码,那么很可能需要很长时间(几年或几个世纪),因为只要几次尝试失败,系统就会继续阻止用户。
由于D,密码文件可以用纯文本保存,不需要加密.
问题:
这种制度有什么问题呢?
发布于 2014-11-03 08:40:10
如果假设攻击者拥有该文件,则实际上依赖编号N作为您的密码。您已经说过,这是一个用户选择的数字,很可能用户只会选择(例如)111.111,123,000.000或类似的东西。
这可以通过告诉用户在“生成时”使用N的值来抵消,但是,用户很可能会将它写下来或类似的。人类不再记得长途电话号码了,见鬼,我再也不记得任何电话号码了!
你也说过,数字N可能高达10亿左右,或者大约10^9。这给你的密码方案提供了一个很低的熵。
发布于 2014-11-03 10:04:50
还要考虑的是,隔离使用密码意味着,如果攻击者能够访问密码文件,他们将不需要为特定用户查找密码,他们只需要查找任何授权用户选择的密码,显然,随着用户数量的增加,攻击者选择“实时”密码的概率越大。
从实际的角度来看,您将如何阻止用户?如果您不需要使用其他标识符,我将假定IP地址,如果您知道您的所有用户都将拥有唯一的IP地址,但如果存在共享IP地址(例如通过Internet网关)的可能性,则非常有可能无意地拒绝服务,甚至成功地重新设置失败的登录计数,并允许增加攻击速率。
发布于 2014-11-03 17:13:14
您已经设计了一个密码管理器,与其他成熟产品相比,它的保护和可用性都更低。
为什么不使用实际的密码管理器呢?LastPass,Keepass,1 1Password,等等?他们从一开始就改善了你的系统。
或者是外交部?用户可以有一个低熵的密码,但仍然有保护.
https://security.stackexchange.com/questions/72208
复制相似问题