拥有“主”密码是个好主意吗?

信息安全 加密 密码 哈希 密码策略 算法
2021-08-29 06:39:58

虽然我确实对密码记忆力很好,但每个应用程序只有一个密码是完全不可能的。然而,它应该是……我目前处理密码的方法是有五个密码,并根据我对应用程序的信任程度和它的敏感程度选择其中一个。我通常在 6 个月到 2 年内更新我的密码。

我刚刚得到的想法是制作一个脚本,该脚本从主超强密码和应用程​​序名称生成密码。我已经看到了资产和缺点。

资产

  • 只需记住一个密码
  • 每个应用程序使用不同的密码

缺点

  • 如果主密码丢失,其他密码也会丢失。
  • 如果有人找到主密码......找到其他人将是小菜一碟。

我还想知道该算法是否是可逆的(即从应用程序的名称和相关密码中找到主人)。

所以我改进了我的想法:如果脚本生成一个随机密码并将其与其他密码一起存储在相关应用程序名称旁边的文件中怎么办?然后,该文件将使用 4096 位 RSA 密钥加密,该密钥本身受密码保护,该密码可以按月更新。

简而言之,我想知道后者是否是个好主意,或者我目前的方法是否更好。

3个回答

可以从主密码安全地派生特定于站点的密码。它需要一个确定性的单向函数:“确定性”,以便可以重新计算站点密码,“单向”,以便从特定于站点的密码重新计算主密码是不可行的。作为一阶近似,密码散列函数可以解决问题。

可以通过使密码派生(从主密码到特定于站点的密码)可配置地缓慢来增强系统,以避免有效的字典攻击(邪恶的网站可以“尝试”潜在的主密码,以查看它是否获得了您使用的密码)。“慢散列”是具有多次迭代的散列。您还可以添加:一段不是秘密的数据,但随机选择,以便您的主站点密码软件的两个不同用户在碰巧使用相同的站点密码时不会最终使用相同的站点密码主密码。盐可以存储在一个文件中(它们不是秘密的),但这会阻止您仅根据您对主密码的了解来重建所有特定于站点的密码(即记忆问题,您正在添加数据备份的问题)。

这与存储服务器端密码哈希的问题非常相似(通常的解决方案是bcryptPBKDF2)。主密码为“master”使问题变得更容易。既然你只需要记住一个密码,你不妨把它做成一个大的、胖的、随机的、高熵的密码。生成一个由 17 个随机小写字母组成的序列,学习它,你会没事的(因为 26 17大约是 2 80,并且调用 2 80次哈希函数超出了当前技术的可行性)。全小写字母密码易于输入,尤其是在智能手机上。

其他人已经指出了现有的软件就是这样做的。


您使用 RSA 密钥和加密随机密码的想法也有效。但是,它意味着存储如果您正在旅行并且有人偷了您的笔记本电脑(不幸但并非完全不可信的事件),那么您不仅会被剥夺机器,而且还会丢失密码,直到您购买新机器检索加密的备份文件充满密码。这可能很不方便。从主密码确定性地派生密码意味着您在记住主密码时不会丢失它们。

此外,任何新密码(用于新站点)都需要修改文件及其备份,这在旅行时可能会遇到一些困难。

使用中间存储允许密码更新,但你为什么要这样做呢?当您管理一个拥有数百个密码的大型组织并且您认为某些密码会很弱,而某些密码会被破解时,密码更新很有用。这是一种遏制损害的方法,并且只有在始终存在非零比例的破解密码时才有意义。密码更新是野战军的事情。它不会缩小:当您使用单个主密码(您的情况)时,该密码要么完全没有损坏,要么完全损坏。前一种情况,无需更新主密码;在后者中,您有更紧迫的问题需要处理,包括更改您以前所有特定于站点的密码。

简而言之:如果您的主密码需要更新,那么它已被破坏;这意味着您的所有站点密码都是吐司。因此,在不更改站点密码的情况下更新主密码是没有用的。

我曾经有一个类似的系统,不同强度的不同密码但改变了。随着LinkedIn等公司泄露密码,密码丢失是一个真正的问题。鉴于社交媒体帐户可用于冒充自己,我不会将它们归入低安全级别。

KeePass这样的密码管理器是解决这个问题的好方法。DropBox 允许轻松备份。这意味着攻击者必须同时破坏您的主密码和在线存储。

密码管理器还添加了其他功能,例如 TAN 和多个数据库文件,以防您不希望您的银行密码被与常用密码相同的主密码解锁。

我喜欢这样一个事实,即通过摄像头或错误破坏主密码并不足以侵入帐户。它增加了额外的保护层。

当谈到丢失密码的问题时,有一些方法可以备份密码。你可以把两本书借给两个朋友。

在第一本书的随机页面上,您写下备份密码的前半部分。在第二本书的任意一页上,你写下后半部分。

(提前道歉,还没有评论的特权)。我认为这是一个合法的问题,因为基于一个密码的解决方案仍然不完美(我们存储密码的内存也是如此!)。正如您所说的 Antoine,此解决方案存在一些重大缺陷,例如忘记主密码,甚至以某种方式被黑客入侵或解密。

我一直想知道逆转密码生成算法 Antoine 的可能性,如果你想拥有一个非常安全的密码管理器,这是一个公平的问题。

尽管如此,我多年来一直是 1Password 用户以及 Firefox 密码管理器,因为我认为为每个加密的帐户拥有一个唯一的密码比为所有你确定的帐户只使用一个强密码更安全不会忘记。