freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0Password,忘记密码管理器的主密码怎么办?
2021-02-26 10:33:48

本文转自 InfoQ,作者:神锁离线版

v2-00887bf636f4df79824336a57efd12ae_720w.jpg

如果忘记密码管理器的主密码,那会发生什么?Scott Stein 在 cnet 上发表了一篇文章描述这种事:主密码忘记后,再也打不开密码管理器,结果存储的密码都丢失了。这种痛苦经历让人久久难忘。

相信不少人都深有体会,对于像微信这种平时都不需要输入密码的平台,久而久之就忘记密码了(记得自己微信密码的小伙伴可以点个赞,看看有多少)。密码管理器也是如此。如果用户习惯用指纹识别解锁,或者一段时间没有输入主密码,就很容易忘记。

一、为什么需要主密码

最早的第一代密码管理器,仅仅能够帮用户保存密码,以免遗忘,并不具备保护密码的能力。

直到大约 20 年前,PBKDF2(Password-Based Key Derivation Function 2)被推荐为标准算法,它能将用户输入的密码转换成复杂随机的密钥,满足用户对数据加密的要求。

在这个技术的推动下,第二代和第三代密码管理器纷纷诞生,给密码存储带来了真正的保护。其原理都是先要求用户设置一个主密码,然后把主密码转换成密钥,再使用高强度加密算法(如 高级加密标准 AES )来加密用户保存的密码。如下图所示,

v2-36394a6b7909f373ff760eba5e0cd02f_720w.jpg使用主密码加密的技术原理

密码学中,
plaintext表示要被加密的原始数据 ;
ciphertext表示加密后的密文。

解密过程第一步是相同的,第二步则是调用加密算法的解密操作,得到原文plaintext,如下图,

v2-a8ae67e5074a35016e8b5ecd1f5617db_720w.jpg使用主密码解密的技术原理

具体技术原理在 密码管理器的进化史(上)中有详细讲解,这里不再展开。

本质而言,密码管理器加密数据,必须依赖于只有用户自己可以控制的秘密信息,以防止被黑客盗取。

我们的密码管理器——神锁离线版,不依赖主密码生成加密密钥,而是直接使用存储在安全芯片内部的密钥。即使加密数据被黑客偷取,也无法解密。技术原理在 密码管理器的进化史(下)一文中有详细讲解,这里也不展开。

v2-19a3676fe309c6061d7e4b9310356aeb_720w.jpg

安卓手机钱包模拟银行卡原理

注:现代智能手机的中高端机型都配备了安全芯片。Apple Pay、安卓手机的钱包应用(可以模拟银*行*卡、公交卡等 NFC 支付),都是基于安全芯片的安全能力。

除了使用安全芯片加密保护外,神锁离线版还为用户提供了额外一层主密码保护(用户可以自己选择是否使用)。如果用户选择再加一层主密码保护,那他们可能也会遇到 CNet 作者 Scott Stein 分享过的问题——忘记主密码导致丢失了所有保存的密码。我们团队认为,密码可用性与保密性是同等重要的,所以此问题必须要重视。

一些密码管理器服务商(比如谷歌),允许用户在忘记主密码时重置主密码,然后继续查看存储的数据。这说明用户设置的主密码实际上只是用来限制访问,并没有用于保护数据。

我们团队不会在安全性上作出妥协,因此也决不会采用这样的技术。既然不能够直接重置密码,那么在用户忘记主密码的时候,能不能找回密码呢?

二、找回密码的设计

(一)技术原理

一些社交服务允许用户,在忘记密码导致无法登录时,通过好友协助找回账号。其原理是,让用户利用社交关系,邀请好友完成一些操作,以确认用户的真实*身份。

受此启发,我们有了一个简单的想法:请好友协助找回密码,然后依此出发,逐步完善。

1. 好友代保存密码

一开始最容易想到的方法是:请好友帮忙保存密码;恢复时,找好友要回密码,就可以解锁了。这就好比在生活中,将家里的钥匙交给好友临时保管。

v2-eb7efef69001579566fb28feb9c8d5e4_720w.jpg

显然,把密码直接发给好友,并不安全。很多用户有重用密码的习惯,一个密码泄露,可能危及用户诸多账号的安全。

2. 加密后请好友代保存

这是一个好主意,问题是加密密钥该如何选取,让用户再设置一个密码来生成密钥?那就变成无限套娃了。

v2-19c84ff02424775f4eb20dcea5bf383f_720w.jpg

如果不依赖其他秘密信息进行加密,就只能写死密钥,这是某些密码管理器曾经犯过的错误,我们不能重蹈覆辙。

3. 使用安全芯片内部密钥加密密码,将密文发送给好友

如下图所示,

v2-75ed24b8a8acf3be3d7e91cd4b12f6a4_720w.jpg请好友保存密码文件

由好友保存密码文件(ciphertext),密钥key保存在安全芯片内部。找回密码的时候,请好友将密码文件发送回来,再通过安全芯片就可以将密码原文解密了。如下图所示:

v2-a051884266d9c3c95a69e9ed7dca02ac_720w.jpg找回主密码解锁 App

得到密码后,再按照前面的技术原理,解密用户保存的其他数据。为了进一步提升安全性,我们要求好友将密码文件保存在神锁离线版中。神锁离线版会采用手机上的安全芯片加密保存的密码文件,确保黑客无法偷取。这样,整体安全性就得到双倍提升,因为:

  • 如果黑客偷了用户的手机,他需要先解锁手机(输入手机锁屏密码或者通过生物验证)。然后再输入主密码才能解锁 App。
    如果黑客不知道主密码,他只能再偷取该用户好友的手机,并且破解好友手机上的神锁离线版,从中将密码文件发送回来,才能解锁 App。
  • 如果黑客只是偷取了好友保存的密码文件,他没有密钥,也无法解密出密码原文,更不能解密 App 数据。

完成这个技术方案的设计后,我们可以允许用户邀请不止一位好友协助找回密码。

(二)实操体验

说了这么多技术原理,可能还是太过抽象,下面结合图片做操作讲解。

1. 进入找回主密码设置界面,输入好友名字,点击发送。如下图:

v2-50f69edfba02aaeffe2355ea2fd8f9a1_720w.jpg

2. 通过邮件或其他通信工具将密码文件发送给好友。好友收到后,需要使用神锁离线版将它保存起来,防止黑客偷取。如下图:

v2-d3e3b29330685563591870346c939ccf_720w.jpg

3. 解锁 App 时,用户如果忘记了主密码,可以查看持有密码文件的好友列表。如下图:

v2-ab5c99586247ecec9918587b02ec2e0d_720w.jpg

4. 请好友 zhangsan 将密码文件发送回来,用神锁离线版打开,就可以解锁 App。出于安全考虑,要求用户立即修改解锁方式。如下图:

v2-60599b63067303a53187ad9c9d73741a_720w.jpg

如果双方都使用iOS系统,可以直接使用AirDrop发送给对方,并使用神锁离线版直接打开,无需其他服务中转,更加安全。

(三)技术对比

1. 社交服务好友协助找回账号

虽然我们借鉴了社交服务的思路,都是邀请好友协助,但是社交服务要求好友非常可信。否则,好友们可以串谋:假冒我忘记密码,一起按照社交服务的找回账号流程完成社交身份确认,然后入侵我的账号。

本技术方案降低了对好友信任度的要求,因为好友们都只有密文,即使一起合谋,也无法解密出原密码,更不可能破解数据。而且,用户如果忘记了密码,只要请一个好友把存储的 密码文件发回来即可找回密码。

2. 可以重置主密码的密码管理器

前面已经对这类密码管理器做过简单分析,二者共同之处是,在忘记密码后,都可以恢复用户保存的数据。但方法完全不同:

这类密码管理器可以重置主密码,只需要验证用户身份,即可重新授权用户访问存储的数据。所以用户存储的数据并不依赖于主密码加密(如果有加密的话),而是完全依赖于服务商的控制和保护。

v2-281ba1783714f9dddfd2b30fc9689822_720w.jpg

本技术方案,不可以直接重置主密码,数据保护仍然依赖于该密码加密。

本技术方案还增加了备选方法,将主密码加密后,交给好友保存。好友协助时,也是先解密出原来的主密码,再使用主密码解密保存的数据。

3. 不可重置主密码的密码管理器

这类密码管理器没有在数据保密性上作出妥协,因此不能够重置主密码。本文提出的技术方案在这点上是完全相同的。

不同之处在于,本技术方案还提供了一个备选方式找回密码。在不泄密的同时,提升了数据的可用性。对比技术原理图 3 和图 8,新技术方案在用户忘记主密码时,可以先从 密码文件中解密出主密码,在解密得到主密码之后,接下来的技术原理完全相同。

(四)安全风险

本技术方案增加了用户找回密码的新选项,这也意味着增加了一个新的攻击面。

之前,黑客获取并破解手机后,还需要输入主密码,才能解密用户的数据。

现在,多了一个可能,黑客如果可以获得好友保存的密码文件,也可以解密用户的数据。

为了降低这个风险,神锁离线版要求好友将密码文件保存在神锁离线版 App 中,使用安全芯片保护。这样,黑客就不能简单地偷取密码文件,而需要完全破解好友的神锁离线版 App。

另外,用户不应该把密码文件保存在自己的手机上,就算要通过手机存储空间或者手机上其他 App 中转才能发给好友,也应该在好友接收后立即删除。如果手机上留有密码文件备份,那么黑客破解手机后就可能直接使用密码文件解锁 App。

三、总结

经过几轮的技术完善,最终方案实现了几个重要目标:

1. 提高了数据可用性

数据可用性,是密码管理器的最重要的关键性能指标之一,与保密性同等重要。通过这个新方法,忘记主密码时,还可以找好友协助,找回密码,恢复数据。

2. 没有在数据保密性上妥协

数据的保护仍然依赖于用户控制的秘密信息,不可直接重置。好友协助找回密码后,使用解密出来的原密码进行下一步解密,没有削弱保护能力。

黑客如果破解了用户的手机,还需要进一步破解好友的神锁离线版并取得密码文件,才能破解用户保存的密码。相当于破解难度加倍。

3. 不会泄露用户主密码

用户设置的主密码仍然保密。使用安全芯片内部的密钥加密主密码,得到密码文件,交给好友保存,好友也无法破解。

同时,该技术方案在安全性上也对用户提出了要求:不能将密码文件保存在自己的手机上,否则,就像把保险柜的钥匙挂在上面一样,失去了主密码这层保护作用。

本文转自 InfoQ,作者:神锁离线版

原文链接:https://www.infoq.cn/article/HB3A1zUxTVdwulq6tHxQ

未经许可不得转载

# 数据安全 # 网络安全技术 # 密码管理器 # 密码管理软件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录