首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在密码派生和加密之间进行选择?

如何在密码派生和加密之间进行选择?
EN

Security用户
提问于 2018-11-13 11:32:18
回答 2查看 519关注 0票数 3

假设您使用的密码管理器具有现代密码管理器的所有可能特性:使用从主密码派生的密钥加密、自动填充、云或本地存储、浏览器扩展、web和本地应用程序、随机密码生成器、密码自动更改等。

现在,假设您可以在这两个选项之间进行选择:

  • 将随机生成的强密码直接存储在加密的保险库中(KeePass-like,可以选择保险库可以保持多久未加密,或者何时再次询问主密码:每次使用之前,等等)。
  • 只存储用于从主密码派生强密码的模式(LessPass-like,具有选择何时派生密码的能力:在解密之后,每次使用之前等等)。

最后,假设派生函数(用于加密密钥和强密码)所使用的整数足够高,在大多数设备上大约需要1秒。

如何在这两者之间做出选择?

他们的利弊是什么?

在这种情况下,哪一种是最安全的(涉及密码学和可用性)?

在做出这一选择时,是否需要考虑其他参数(特性、封闭的还是开源的等等)?

EN

回答 2

Security用户

发布于 2018-11-13 13:41:05

我使用确定性密码管理器(pwd散列,您称之为密码派生)已经很长时间了,我不会建议任何人使用确定性密码管理器。我还为此写了一个博客帖子,但我将在这里总结我的主要问题:

  • 很难确定要导出密码的帐户。也许您希望在wikipedia.org和wiktionary.org,或者live.com和microsoft.com中使用相同的密码。根据域名确定要使用的帐户是相当困难的。
  • 很难符合密码要求。有些站点不允许20个字符的密码,有些站点要求您的密码为20个字符。您的派生函数将如何处理这个问题?
  • 求导函数很难改变。使用派生函数后,所有密码都依赖于它。您不能增加派生密码的复杂性或长度,因为这样您就不能再在所有站点上登录了。
  • 如果您使用某个站点派生密码(如lesspass.compwdhash.com ),则每次提供该站点的主密码时,该站点将生成您的帐户密码。这造成了一个巨大的单一故障点。如果该站点被破坏,您的所有帐户都会被破坏。

主要的“优点”是确定性密码管理器不保持状态。然而,在互联网的某个地方存储状态变得越来越容易,无论是在Dropbox中的一个文件中,还是通过某种云服务。

票数 8
EN

Security用户

发布于 2018-11-14 06:34:52

使用基于派生密码函数的密钥管理器没有实际优势。

如果您不能信任保险库正确使用AES和PBKDF2来保护密码数据库,那么您也不能信任它来保护派生算法的参数。在存储主密码或派生算法(当然,假设一个设计正确的密钥管理器)方面没有任何安全差别。

不同的站点和应用程序有不同的要求,如密码长度、特殊字符要求等,因此每个站点仍然需要一些额外的信息存储。它可能不是秘密数据,但仍然需要在这两个系统中进行管理。

密码轮换策略是不同的,并且可能是一个问题(或者至少需要在每个站点上存储更多的信息)。如果您使用多个客户端(例如,膝上型计算机和手机),则仍然必须像存储密码一样同步额外的数据。

仅派生的系统无法存储指定的密码。如果您处理外部系统(如企业密码管理器),则外部管理器可能负责旋转和生成新密码。

您提到的派生函数的按键延迟没有多大意义。密码管理器使用类似于PBKDF2的算法来防止在主密钥的初始解密时猜测主密码;在此之后解密的每个密码都需要微秒。注意,可以将相同的延迟添加到传统的密码管理器中。但是,在不影响攻击者的情况下,减慢您自己的系统是没有好处的。

派生功能在人类中很受欢迎,因为它们可以被记忆:在你的脑海中,很容易计算出你的密码是Cid123!@#googlE等等。但是现代计算机也可以为每个站点生成和存储高质量的随机字符串。在移动电话中的64GB+闪存芯片和计算机中的兆字节存储的时代,成千上万的网站密码所需的十几兆字节的存储空间根本不是一个实际的问题。而在基于云的存储和无处不在的蜂窝数据覆盖下,跨多个设备共享密码也不是问题。

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

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

复制
相关文章

相似问题

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