首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于一个简单强密码管理系统的问题

关于一个简单强密码管理系统的问题
EN

Security用户
提问于 2014-11-03 08:16:55
回答 3查看 921关注 0票数 3

我正在设计一个系统,它需要通过一个强密码进行访问控制,为此,我将使用密码生成算法A,生成长度为L的强密码,>= 32。系统将检查密码,如果密码在连续几次尝试中不正确,则在一段时间内阻止用户进一步登录。

此外,该系统应:

  • 生成一个长的强密码
  • 密码必须是世界上唯一的,
  • 允许简单地更改密码,
  • 不需要身份验证(即用户只提供密码,但不需要用户名),
  • 在实现和使用上都要简单。

由于我在安全问题上没有亲身经验,所以我非常感谢安全专家能够对以下简单的,也许是天真的设计进行批判:

  1. 调用相同的已知算法A(例如,一个好的单向哈希函数、一个UUID生成算法等)T倍,其中T是一个很大的数字,至少10亿。
  2. 在一个文件中记录所有T生成的不同密码,每行一个密码。
  3. 用户应该在1和T之间选择一个数字N(可能是随机生成的),并在他或她的头脑中记住这个数字。
  4. 当询问密码时,用户会在N位置查看文件,在该位置复制密码并将其粘贴到请求密码的程序中。

评论:

答:一个人似乎可以不费吹灰之力地记住一个介于10亿到10亿之间的数字,因为它的数字比美国的长途电话要少。

只要文件没有丢失(可以复制),用户将始终拥有正确的密码。

可以随时通过重新生成整个文件并在相同位置选择新密码来轻松更改密码。用户将不需要记住新密码--使用相同的号码N将产生新密码。

D.如果攻击者用10亿个密码控制该文件,并多次尝试登录以找到正确的密码,那么很可能需要很长时间(几年或几个世纪),因为只要几次尝试失败,系统就会继续阻止用户。

由于D,密码文件可以用纯文本保存,不需要加密.

问题:

这种制度有什么问题呢?

EN

回答 3

Security用户

发布于 2014-11-03 08:40:10

如果假设攻击者拥有该文件,则实际上依赖编号N作为您的密码。您已经说过,这是一个用户选择的数字,很可能用户只会选择(例如)111.111,123,000.000或类似的东西。

这可以通过告诉用户在“生成时”使用N的值来抵消,但是,用户很可能会将它写下来或类似的。人类不再记得长途电话号码了,见鬼,我再也不记得任何电话号码了!

你也说过,数字N可能高达10亿左右,或者大约10^9。这给你的密码方案提供了一个很低的熵。

票数 7
EN

Security用户

发布于 2014-11-03 10:04:50

还要考虑的是,隔离使用密码意味着,如果攻击者能够访问密码文件,他们将不需要为特定用户查找密码,他们只需要查找任何授权用户选择的密码,显然,随着用户数量的增加,攻击者选择“实时”密码的概率越大。

从实际的角度来看,您将如何阻止用户?如果您不需要使用其他标识符,我将假定IP地址,如果您知道您的所有用户都将拥有唯一的IP地址,但如果存在共享IP地址(例如通过Internet网关)的可能性,则非常有可能无意地拒绝服务,甚至成功地重新设置失败的登录计数,并允许增加攻击速率。

票数 2
EN

Security用户

发布于 2014-11-03 17:13:14

您已经设计了一个密码管理器,与其他成熟产品相比,它的保护和可用性都更低。

  1. 该文件需要与用户一起旅行。
  2. 访问伪密码管理器的密码是一个仅由数字组成的9字符密码。
  3. 伪密码管理器文件仅适用于单个登录位置。
  4. 文件不以任何方式受到保护。
  5. 如果攻击者知道密码方案,那么在系统上强行强制密码哈希的能力就会变得容易得多。

为什么不使用实际的密码管理器呢?LastPass,Keepass,1 1Password,等等?他们从一开始就改善了你的系统。

或者是外交部?用户可以有一个低熵的密码,但仍然有保护.

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/72208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档