1Password 和 LastPass 在原理上来说谁更安全? – 作者:idguardoffline

要判断一个密码管理器的安全性如何,应该从保密性和可用性两个角度去分析。很多人在提到安全的时候立马就能想到保密性,比如:开发者会不会给软件留后门偷我的数据?黑客能不能黑进服务器拿到我的密码?所以保密性就是“我的密码会不会泄露”的问题。而可用性就是“我的密码会不会丢失”的问题,比如:忘记主密码是不是数据都找不回来了?数据存在云端那云服务商跑路了怎么办?

比较1Password和LastPass的安全性,在这里就先重点说说保密性。

一个软件的安全设计是渗透到多个方面的,因此安全性也是表现在多个方面的,要非常深入分析的话,恐怕讲好久都讲不完惹,现在就从几个大方面去大概对比一下吧。

先抛结论:总的来说,1Password 比 LastPass 安全。涉及到具体的使用情境的话, 就要看具体的设计对比了。

v2-a7ef624bd5bc9ba3dcf47a11b58eca56_720w.jpg?source=1940ef5c

表格信息经汇总LastPass官网, 1Password官网, 第三方测评平台, 神锁离线版安全研究团队等各方资料得出

加密设计

密码管理器的数据加密设计非常重要,它就像是一栋大楼的基底,如果这个基底都没打好,其他方面再怎么搞,也是白搭。

v2-d82ed7939ce8ce5f0436f871aec1dfc7_720w.jpg?source=1940ef5c

从加密设计来看,LastPass属于第二代密码管理器,安全性取决于用户设置的主密码。一旦主密码泄露,可能导致所有密码被盗。

可以看看我们的硬核技术文章,深入了解第二代密码管理器

神锁离线版:密码管理器进化史(2/4)​zhuanlan.zhihu.com图标

LastPass使用了最高等级的加密算法 AES-256,也就是宣传中常说的军事级别加密算法。这个算法很难被破解,黑客通常也不会去破解加密算法,而是会尝试获得用来加密用户数据的加密密钥 key所以,怎么生成并保护好加密密钥才是密码管理器的关键安全技术。

目前推荐的生成加密密钥的算法是 PBKDF2,bcrypt、scrypt等其他算法也有应用,尽管每个算法的具体细节不尽相同,但基本原理其实都是差不多的。LastPass也使用了 PBKDF2算法,基于用户设置的主密码来生成加密密钥。使用LastPass的用户,只需设置并记住一个主密码。第二代密码管理器的算法原理图大概如下:

v2-09201be2a1fb941670034221a13789e2_720w.jpg?source=1940ef5c

AES加密算法本身很安全,只要选取了合适的密钥生成算法(如 PBKDF2) + 真正随机的 salt+ 合理的迭代次数 count,第二代密码管理器就极难被破解,除非黑客能够破解主密码。

v2-fac8e51baa19106ce0c19e9edffcca05_720w.jpg?source=1940ef5c

从加密设计来看,1Password属于第三代密码管理器,与第二代相比,增加了主密钥保护,提升了云端安全性。设备终端的安全性仍然取决于主密码。

可以看看我们的硬核技术文章,深入了解第三代密码管理器

神锁离线版:密码管理器进化史(3/4)​zhuanlan.zhihu.com图标

与LastPass一样,1Password也使用了最高等级的加密算法 AES-256。不同的是,1Password设计了two-secret key derivation (2SKD)来生成加密密钥 。使用1Password的用户,除了要设置主密码外,还需要把主密钥SecretKey保存起来。第三代密码管理器的算法原理图大概如下:

v2-4663880b3ee8f68dc068847fb5317635_720w.jpg?source=1940ef5c

第二代和第三代生成加密密钥的算法原理图看起来是不是很像? 好像只是把salt换了个名字叫Secret Key。但其实,通过网络同步时,这两者的处理方式不一样。

v2-1d71ddef9988de47e7662beafdfdce8d_720w.jpg?source=1940ef5c

第二代通过网络同步时,会把生成加密密钥的参数salt一起同步,而第三代并不会同步Secret Key。这个小改动极大提升了云端同步的安全性。

第二代密码管理器在登录新设备时,只需要输入账号密码,就可以解密云端同步下来的数据。第三代密码管理器在登录新设备时,除了账号密码外,还需要输入Secret Key

所以, 由于有了Secret Key,第三代密码管理器可以保证:即使云端被入侵、主密码被泄露,黑客依然无法获取用户存储的账号密码。

v2-ae8638e60ffa678f4360c0ac0e2e553e_720w.jpg?source=1940ef5c

总结:在云端,1Password比LastPass更安全。在设备端,两者的安全性都依赖于用户设置的主密码,主密码泄露可能导致所有密码泄露。

其他设计

除了最基础的加密设计外,1Password和LastPass都通过更多功能设计来提升产品的安全性,包括身份验证、安全审计等等。可以参考一下第三方的对比测评以及1Password和LastPass官网的介绍。

放几个链接作参考:

简单汇总几点:

  • 身份验证
    LastPass更好。1Password可以通过Authy, Microsoft验证器开启两因素身份验证, 能使用生物验证, 不能使用第三方的验证器或USB令牌。LastPass可以通过OTP应用程序, 物理身份验证器, 智能卡等开启多因素身份验证, 也可以同时开启生物验证, PIN码等等。
  • 安全审计
    1Password更好。1Password已经做过了多次第三方安全审计, 比如 SOC 2 Type 2 认证, Bugcrowd 公司的漏洞赏金项目, 以及 ISE 的代码测试。LastPass在这方面稍微弱一些。
  • 清除粘贴板
    两个都有提供, 差别不大
  • 自动锁屏
    两个都有提供, 差别不大
  • 其他
    1Password提供”旅行模式”, 开启时, 某些保险库将会从设备中删除。LastPass提供”限制特定国家”功能, 防范来自其他国家的恶意访问。

v2-77d38b8f227568a1ac043bb09e1a2f29_720w.jpg?source=1940ef5c

总结:1Password和LastPass都各自有自己的特色功能, 这些功能某种程度上都有帮助提升密码管理器的安全性。

电脑端使用

很多人提到在电脑端使用密码管理器的时候, 通常都只关心便利性而忽略了安全性, 所以在这里我就展开说一下。

电脑端上常见的密码管理器技术方案有两种:桌面客户端,插件密码管理器。LastPass推出了基于浏览器的插件密码管理器,支持Chrome、Safari等多个平台。1Password推出了基于浏览器的插件密码管理器1Password X,桌面客户端,以及搭配桌面客户端使用的插件密码管理器1Password extension。

桌面客户端本身可能会比插件密码管理器更安全一些,因为在一定程度上,插件密码管理器的安全性会受浏览器影响。

v2-d01ad695f33e1be10b672bfd07f73493_720w.jpg?source=1940ef5c

首先,桌面客户端可以采用一些系统底层技术,防止 Keylogger程序偷取主密码,但是基于Web技术的插件密码管理器程序,无法访问操作系统的底层接口,完全依赖浏览器的密码输入框,无法防范 Keylogger 攻击。

其次,浏览器天然联网的特性,让很多漏洞更容易被黑客远程利用。基于浏览器平台的插件密码管理器也很容易被攻击。黑客不论是在操作系统上植入了恶意程序,还是攻破了浏览器的保护,都不难破解插件密码管理器。

v2-2cf72ed2e083eb58cd6c6b5cccf2022b_720w.jpg?source=1940ef5c

数据来源:CVE Details

最后,由于浏览器的插件开发接口基于Web技术,非常开放灵活,所以恶意程序通过 Web DOM/JS(Document Object Model/Javascript),几乎可以访问和控制页面中的任何内容。著名安全研究员 Sean Cassidy 在他的博客 Browser Extension Password Managers Should Not Be Used中认为插件密码管理器风险无法避免。

v2-1b2df1d33d9f250d97c6b1fa21e270d9_720w.jpg?source=1940ef5c

安全研究员Martin Vigo也曾在 Even the LastPass Will be Stolen, Deal with It!中演示了破解LastPass插件的方法,其中基于插件密码管理器的方法就有4种。

当然,桌面客户端也有不安全的表现。比如,Independent Security Evaluators 去年发布的一份研究报告发现,桌面端密码管理器可以通过扫描内存找到主密码。《华-盛顿邮报》报道相关事情并公开了一个演示视频

v2-db71f461d99e6831177c950951174a1c_hd.jpg?source=1940ef5c

安全研究员 Adrian Bednarek 提取1Password 主密码的视频

总结:在电脑端,两者的安全性都不够。但是使用1Password的桌面客户端可能会比使用LastPass插件密码管理器要安全一些。

安全事件

也不知怎的,LastPass老是被爆出存在安全问题。

比如,2015 年,在线密码管理器LastPass被黑。虽然官方宣称存储的密码都已经加密,但保守估计,只要愿意,黑客至少能够破解10%的用户密码。内部“坏员工”同样可以以这种方式破解用户密码。

又比如,2016年,LastPass Password Manager Bug Lets Hackers Steal Your Passwords。IT安全研究员Mathias Karlsson发现,黑客可以通过向用户发送特制的URL来窃取存储在LastPass中的密码。

再比如,2018年,LastPass密码管理器再曝严重漏洞,基于浏览器的密码管理器还能用吗?安全人员发现在 LastPass Chrome 和 Firefox 4.1.42 版本插件中存在三个漏洞,可能会导致用户在使用该组件的过程中泄露密码。

与LastPass相比,1Password爆出的安全问题较少,但不爆出不代表不存在……世界这么魔幻,谁知道呢

v2-04c641052c3c201d53e8c8ffae61fab0_720w.jpg?source=1940ef5c


2021年3月再来补充:最近Lastpass被爆出内置7个第三方跟踪器!相比之下1Password则没有……

v2-247197c1179b6a08a3cc6ba2c8e3c345_720w.jpg?source=1940ef5cv2-8c3b32cfae84dac16cdc334b2b90f808_720w.jpg?source=1940ef5c

你以为内置跟踪器只会影响隐私?当然不,跟踪器还可以影响存储的密码安全

详情请看上一篇文章,我从 权限、威胁、攻击 三方面深入揭秘其安全风险。

来源:freebuf.com 2021-03-25 18:50:51 by: idguardoffline

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论