KeePass 插件的可信度如何?

信息安全 密码管理 守望先锋 插件
2021-08-18 12:37:23

KeePass 很棒,我喜欢它,但在使用了几年后,有时我想安装一个插件,但我不这样做,因为我害怕这个插件在未经我同意的情况下真正能做什么。

关于插件开发的文档真的很短。我下载并编译了源代码,但我不明白插件可以访问的 API 列表在哪里。

文档中所述,PLGX 格式是“尚未编译”的格式

无需将插件编译为 DLL 程序集,插件源代码文件可以打包到 PLGX 文件中,KeePass 将在加载插件时自行编译插件

所以应该可以读取这些文件。这个怎么做?

让我们以Favicon 下载器甚至密码计数器为例。这两个插件清楚地表明它们都可以访问互联网和我的密码。那我怎么能确定他们不会偷呢?我的意思是他们可以将我所有的信息发送到服务器,而我永远不会知道。

因此,如果我无法读取 PLGX 文件,那么确保最佳安全性的唯一方法是自己开发自己的插件?

3个回答

所以简而言之,确保 KeePass 插件的最佳安全性的唯一方法是自己查看它们的代码。

唯一的问题是其中一些是开源的,而另一些则不是。此外,在开源插件的情况下,您无法确定您下载的 PLGX 文件是否真正对应于公开的可用源代码。因此,您要么自己生成 PLGX 文件,要么直接查看 PLGX 文件的代码。

我选择了第二种解决方案,因为它还允许查看非开源插件的代码。

为了实现这一点,我稍微修改了 KeePass 2.35 的代码。带有安装说明的项目可在https://github.com/jmevel/KeePassPluginsSourceCode获得

代码非常简单,KeePass/Plugins/PlgxCsprojLoader.cs仅驻留在文件中。

我不会keepass.exe直接给你这个文件,因为它没有意义,你必须自己编译它。否则你怎么知道这个 .exe 文件到底在做什么......?

祝大家代码审查愉快!

KeePass 插件几乎可以做任何 KeePass 本身可以做的事情,它实际上只是一个 .NET 库。AFAIK,KeePass 插件根本没有沙盒。因此,除非您反编译并进行代码审查,否则您必须相信插件的作者、编译插件的人以及插件在传输过程中没有被篡改。如果您以有权执行此操作的用户身份运行 KeePass,则插件几乎能够将您的整个密码列表发送到 Internet,或者格式化您的硬盘。

此外,当您查看 KeePass 插件的源代码时,不要忘记同时查看--plgx-build-pre:--plgx-build-post:代码。任何 shell 命令都可以在插件编译/安装期间使用这些选项运行。

在 Windows 中,您还可以创建阻止 KEEPASS.EXE 进行传出通信的防火墙规则。

它将阻止 KEEPASS 检查更新,但至少它可以防止流氓 PLGX 在编译到 KEEPASS 后发送任何内容的可能性很小。