适用于 Linux 和 Android 的密码管理器

软件推荐 linux 安卓 开源的 密码管理器
2021-10-24 19:46:39

我正在寻找一个密码管理器,它可以作为 Android 应用程序和 Linux 桌面应用程序使用。我知道有例如 KeePassDroid(参见:Password manager for Linux with just working in-browser autotype),但这不符合我的要求,因为它在“密码形式”方面具有“固定布局”。

我需要的:

  • 必须可作为原生 Android 应用程序原生 Linux 桌面应用程序使用
  • 不同“密码”类型的特定表格,例如信用卡、登录信息等。
  • 类似文件夹的组织(或至少以某种方式分类)
  • 安全存储(即良好的加密)
  • 数据文件位置应该是可配置的(下一项的要求)
  • 必须通过简单地同步数据库文件来实现桌面和移动设备之间的同步
  • Android 应用必须不需要网络访问(同步将单独完成)

首选选项(非强制性)

  • 漂亮的图形用户界面
  • 用于为文件夹和“叶子”选择图标的图标集
  • 包含在 Ubuntu 存储库中(PPA 很好,可以,但是如果它是现成的或随时可用的.deb,则没有问题,或者如果没有太多的依赖项(我觉得足够适合;)我目前正在运行 Ubuntu 12.04 ,但计划在我的下一次安装中切换到 Debian——不过这不会太早).jar.tar.gzconfigure && make && check-install

候选人尝试过,但失败了:

  • KeePassDroid / KeePassDroidX:在为多个平台提供客户端时,“网络登录”(名称、网址、登录名、密码、评论)的格式是固定的,不适合信用卡或借记卡等。
  • Pocket:虽然提供 Android 应用程序和 Java 桌面,以及适用于信用卡、登录等的不同“表单”,但 Android 应用程序需要 Internet 权限,并且它希望通过 Dropbox 进行同步。此外,我无法让桌面应用程序正常工作(它需要一个现有的数据库,当然不是从那里开始的),在两端使用相同的数据库涉及永久重命名文件(两端都固定为不同的文件名),再加上桌面在区分大小写的文件系统上存在混合大小写的目录名称问题。
2个回答

关于您的标准的简单之处在于您实际上并不需要匹配的集合。只要数据文件完全可互操作,任何不相关应用程序的组合都可以工作。

TL;博士

KeepassX 2 + Keepass2Android使用相同的数据格式,并且是我所知道的唯一满足您所有标准的一对,即使有几个“陷阱”。

数据格式

就可互换的密码管理器数据格式而言,房间里基本上有一只 800 磅的大猩猩。最初为KeePass构思的数据格式既成熟又得到广泛支持。所使用的密码学也经过了广泛的同行评审,因此可以说它比许多小型参与者或使用专有格式的商业解决方案更安全。

诀窍是您需要使用数据格式 (kdbx) 的版本 2。您的标准包括几个项目,包括需要在版本 1 数据库格式 (kdb) 中不可能的自定义数据字段,该格式将条目限制为一组预定义的字段,这些字段适合严格的“登录凭据管理器”滚动,但不是您正在寻找的“私人数据管理员”角色。

历史

最初的KeePass软件是为 Windows 编写的。并且 1.x 系列只能在该平台上运行(尽管它在 WINE 下运行,所以我们中的一些人在有替代品之前就已经从它中获得了 Linux 里程。2.x 系列基本上是一个具有许多改进的重写,其中包括一个将在 Mono 下运行,支持 Linux、OSX 和 BSD。

我实际上建议不要使用原始客户端软件,而是使用一些替代品。我使用的这对似乎完全符合您的所有标准,但有一个警告。keepass 数据库格式允许随每个条目存储任意键/值对。虽然理论上这可以与智能界面一起使用,该界面可以智能地适应不同的条目类型(例如网站登录、信用卡数据、护照等),但据我所知,还没有客户这样做。您可以做的是使用任意字段来组织您自己的数据。

除了这个警告之外,当我选择自己的解决方案并且无法找到更好的一对时,我尝试了很多替代方案。如果有其他东西更符合您的标准,我也想听听它,因为我们的需求似乎相似。这是我能安排的最好的设置。

Linux 客户端推荐

KeePassX项目已经存在了相当长的一段时间。它最初被设想为与 Windows 项目并行,实际上称为 KeePass/Linux。在原始项目获得了自己的端口后,KeePassX 的名称被改编,代码实际上已经被移植到也可以在 Windows 和 OSX 上运行。正如您从提交日志中看到的那样,它正在积极开发,但不幸的是,该项目总是遭受非常长的发布周期和犹豫是否将任何未经受多年测试的稳定称为稳定。

出于您的目的,您将需要使用 2.x 系列如果您的发行版仍然具有 0.4.x 系列,则此建议中的数据格式将无法与 Android 应用程序互换。

由于您将在这样的系统中放入的任何东西显然很重要并且如果您要破坏它,则无法恢复,因此您绝对应该放置一个故障安全备份系统。我喜欢将我的数据库保留为一个私有的 git 存储库,因此它的版本历史分布在我的许多机器上,以及一些特殊的备份规定。您说您将自己同步和管理数据库文件。这很好,只要做好你的功课,把它做好。如果损坏的数据库副本在您的所有设备上同步并破坏了您的备份,这不是客户端软件的错!

截至撰写本文时,最新的 KeepassX 2 发布标签是 2.0.3,但请查看项目新闻源代码标签以获取新标签。该源可以从公告页面下载、编译和安装,或者您可以从项目的Github 镜像下载最新的 zip

安卓客户端推荐

您提到您尝试过KeePassDroid,这是将 KeePass 1 软件移植到 Android 的尝试。我发现界面很笨拙,并且(当我上次尝试时)它不支持自定义字段。支持 kdbx 格式文件(标记为 beta),但并非所有功能都被利用。

相反,我使用Keepass2Android并发现该界面比任何其他可用的 KeePass 兼容客户端都要好。如果您更愿意自己进行同步,那么有一个离线版本会去掉所有连接选项,从而满足该标准。还支持自定义字段,界面甚至使这相对简单。13 MB 的下载量有点重,但实际上前端干净且快速,并且定期更新以跟上最新的 Android UI 指南。后端很重,因为它包含了其他广泛使用的代码以进行实际加密,但这确实意味着您可以非常确定加密技术比某些一次性设计正确完成。

奖金

假设您在 Linux 机器(或几乎任何其他桌面平台)上,需要进入您的密码数据库,但不必费心从源代码安装程序或摆弄自定义软件包存储库。有一个开源 JavaScript 客户端,它对 KeePass(仅限 kdbx)文件具有只读支持,称为BrowsePass此处为 Chrome 扩展)。

另一对非常接近(似乎没有符合我所有要求的)是这样的:

Revelation是 GNOME 桌面的密码管理器,在 GNU GPL 许可下发布。它将您的所有帐户和密码存储在一个安全的地方,并允许您通过用户友好的图形界面访问它。

它包含在大多数Linux发行版的存储库中,并具有用户友好的 GUI(不完美,但很好)。为不同的“密码”类型提供特定的表格,例如信用卡、登录信息等,具有类似文件夹的组织结构当然,数据库是加密存储的——虽然我不知道这种加密有多好,但该软件声称已通过其最新版本改进了这一点(我被要求更新到最新格式)。数据文件的位置是可配置的(系统会询问您将其存储在哪里),并且可以通过简单地同步数据库文件来实现桌面和移动设备之间的同步如前所述,它有一个不错的 GUI(不完美,但我比 KeePassX 更喜欢它)。没有图标集可以从文件夹和“叶子”中选择图标——图标是预定义的,不能更改(不幸的是,对于模板也是如此)。包含在 Ubuntu 存储库中——但旧版本的 Ubuntu 12.04 与 Android 挂件不兼容(受影响的用户可以查看此 PPA)。

启示录视图条目 启示录新条目
启示:查看一个条目,添加一个新条目(见模板)。资料来源:启示录(点击图片查看更大的变体)

到目前为止,所有要求都以某种方式得到满足;我的警告是:

  • 模板不可调整(也不能添加我自己的)。不是一个显示停止器,因为现有的几乎足够了(并且未使用的字段未在“查看模式”中显示)
  • 上一个版本是在 2013 年发布的,他们源代码仓库中的最后一次活动是一年前(Bitbucket;在 Github 甚至是 2 年前)——所以不清楚该软件是否仍在维护。

Android 对应部件可在 F-Droid:aRevelation 获得它很小(只有 80 kB 的.apk文件),目前只有一个阅读器——所以密码等的维护必须在 Linux 桌面上完成,Android 应用程序只能用于浏览数据库。该应用程序的 Github 存储库中的最后一次活动仅在 4 个月前 - 所以这可能会改变(我昨天明确要求它,答案待定)。唯一请求的权限是“存储”,因此要求Android 应用程序不得要求网络访问

更新:在长时间不活动之后,aRevelation已被分叉。Github 上提供的 fork不再是只读的,它的 GUI 也得到了很好的提升。感兴趣的人也可以在我的 F-Droid 存储库中找到此应用程序。一旦它“达到鼻烟”,它的开发人员也计划在 Revelation 分支上工作。

结论:并不完美,但我可以接受——只要 Android 客户端在不久的将来添加一些编辑功能(同时它的 fork 会添加)。这两个组件都是开源的并且免费提供,这是一个很大的优势(审计等)。期待这将如何发展——如果情况发生变化,我会更新这个答案。


另一个潜在的“未来候选人”:NS Wallet根据他们的网站,正在计划一个 Linux 客户端(他们已经为 Mac 和 Windows 提供了桌面客户端,所以这个将更加跨平台)。将密切关注它并在它可用并充分满足要求时发布单独的答案。