Blog

Blog

PHODAL

基于 Serverless 架构的密码管理器

最近的几年里,每个人在密码上都遇到越来越多的挑战,即需要一个复杂的密码,又需要能记得住它们——两者几乎不可兼得。于是乎,我们开始使用上各式各样的密码管理器,并为之付上了费。又或者是一些开源的、不能同步的密码管理工具——毕竟服务器是要钱的。

然而作为一个程序员,我觉得嘛,他/她们写的代码都不可靠——愈是通用的软件,愈加危险。一旦一个地方出现问题,那么其它地方都会有问题。比如说,你的 Master Password 泄露了,那么相应的所有的密码也就相当于泄露了。以致于我又重新设计了自己的密码管理体系,写了一个自己的密码管理器。

Serverless 架构下的密码管理器:MoPass

在编写我的第三本书的时候,同时编写了我的 markdown 编辑器:Phodit。Phodit 的成功实施,让我在定制个人工具上,有了更坚定的信心和丰富的经验,所以我开始编写我的密码管理器——基于 Serverless 架构的密码管理器。

MoPass C4 Context

系统的组件和关系相对都比较简单:

MoPass C4 Container

大抵就是对于密码的加解密和 CRUD,只是客户端有所不同罢了。

由于设计的初衷是:针对于个人的轻量级密码管理器,所以在最初设计的时候,是根据 Master Password + MD5 来生成后台的授权 Token。当用户数量变多的时候,Master Password 便会出现重复,导致密码重复的问题——由于使用了 Key + Master Password 来对密码进行加密和解密,虽然 Master Password 相同,但是也无法解密别人的密码。

在终端中使用 CLI

一个不习惯用命令行的程序员,不是一个高效的程序员。——Phodal

一个密码管理器,最好是直接输个命令就能获取了,而不是打开某个软件、输入密码、找到对应的条目,再复制密码。对于 MoPass 来说,获取密码,只需要这么一步:

➜  mopass git:(master) mopass --get GitHub
? master password ******
200: Copied to clipboard!

而后,我们就可以直接粘贴我们的密码——为了查看所有的条目,只需要 mopass --list。从这等意义上来说,这个工具更适合于程序员使用。而为了使用更加方便,我还是写了一个 Chrome 上的插件——毕竟,输入密码的场景,主要是在网页上,而不是终端里——我可不习惯用 w3m 来浏览网页。

通过 Chrome 插件中使用

Chrome 插件,只需要输入密码即可——不过,为了安全考虑,不在浏览器上存储密码,而是每次从服务器上获取。这个问题,可以在我稍有余力的时候,再去看看怎么优化——毕竟 CLI 更快。

结论

最后,请不到你的密码贴在笔记本上。

GitHub: https://github.com/phodal/mopass

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签