迫于密码遗忘,做了个特别的 密码管理 小程序,希望也能带来便利。

2019-09-17 01:10:24 +08:00
 claymore94

原因

相关产品

用过的不是很多,主要是有点疑惑,它存储了我们的密码,是不是很有可能获得解密后的密码?

1Password, 收费,数据存在本地。拼车的话据说管理员误操作会被删等。

lastPass, 分免费和收费,数据存在云端。

他们都很方便,通过浏览器插件等可以一键补全,功能丰富的同时学习成本会高一点

当然每个产品都有缺点,只是它的优点是不是能够让你不计较它的缺点。

我的小程序

输入

一个表格来输入你的平台,账户,密码:

键盘右下角的 next 或下一项是可以跳到下个输入框的,相关的键盘反复弹起是小程序官方待修复的问题,我是没找到解。

加密

通过手势加密:

说明:

加密后上传到云端,我只用了腾讯小程序云开发的数据库,没有其他服务器:

解密

查看密码时,我们可以解密来查看,解密的手势和加密一致:

当然解密逻辑是当前 asicc 码减相应数字

如果其他人用暴力的方式去试解密,尝试后并不轻易这次解密后的字符是不是正确的,因为看起来好像都像正确。 正确的手势只有加密的你自己知道。

其他

我只存储加密后的内容,加密手势不会存储,忘了的话只有自己试。 可以多次加密来增加复杂性。 也可以在表格中故意设置几个错误字符,记得就好。 如果自己还是比较谨慎,大家都可以尝试抓该微信小程序的包。

个人认为最主要的优点是借助微信平台的便利,没有学习成本,安装成本,它只是个记录表格

todo:

如果大家测试出来 bug 向我反映呀。。

最后

如果你有需要,欢迎添加我的小程序或提出意见:

8435 次点击
所在节点    分享创造
91 条回复
wolfan
2019-09-17 15:04:55 +08:00
emmmm
每月要求更密的话,为什么不用 花密 非常适合你→_→需求啊,站点+年月日,天天换都能记的下😬
falcon05
2019-09-17 15:15:43 +08:00
操作略繁琐,而且很难集成到浏览器
claymore94
2019-09-17 15:29:27 +08:00
@falcon05 小程序咋集成到浏览器。。 除非等后续微信 pc 端升级 再看。
@pmispig 从不觉得,所以我公开出来加密方式和后端存储。那个图挂了,后续没放。
libook
2019-09-17 15:30:10 +08:00
一直在用 Lastpass,感觉完全满足需求。

云安全的关键点在于加解密都在本地进行,让云端没有任何解密能力。

基本思路就是用用户提供的主密码,做不可逆的 Hash 运算,使用生成的 Hash 串以固定算法生成对称加密秘钥,然后对整个密码库进行加密,再上传云端。

这时候即便云端有解密算法,但没有用户的主密码做为引子是无法解密的。

解密的时候从云端拉取加密过的密码库,用户输入主密码,做不可逆的 Hash 运算,再用同样的固定算法生成对称加密秘钥,用对称加密的解密算法把密码库解密,取出密码。

这个应该可以解决云安全的问题,但还有很多其他安全问题需要解决,比如本地安全问题、钓鱼。

Hash 步骤可有可无,加上可以某种程度上提高安全等级(因为 Hash 串通常都比主密码长很多,增加暴力破解难度,即便暴力破解了也不知道主密码是什么,避免撞库)。

还要考虑多种解密方式,因为主密码可能会忘记,不清楚 Lastpass 是如何实现的,一种思路是把主密码 Hash 生成的对称秘钥导出来,让用户在安全的地方妥善保存,一旦用户忘记了主密码,就直接使用秘钥来解密密码库+改密码。

其他的就是便利性,商业的密码管理工具都是提供跨平台密码输入工具的,有的还提供团队共享密码的机制。

最后:
不要自己造加密算法!
不要自己造加密算法!
不要自己造加密算法!

除非你自己是个密码学博士,发的 Paper 经过几家顶级安全实验室验证 OK~
qiutianaimeili
2019-09-17 15:31:22 +08:00
同情楼主,其实楼主只是好心分享,我之前也做过这种类似的密码管理,不过一发出来就是各种讥讽,瞧不上。后来也不敢发了。。。
HeiXiaoBai
2019-09-17 15:36:18 +08:00
@claymore94 #63 所以明明有现成的多平台终端(Win\Linux\Android\iOS 等),自动输入,多浏览器插件集成,高安全性防爆破的密码管理器,就不需要这个小程序实现了
ww940521
2019-09-17 15:36:30 +08:00
Google 自带的密码管理多方便。
claymore94
2019-09-17 15:50:08 +08:00
@libook 不能用手势后的内容做引子 做 salt,因为它的组合情况较少, 算一遍所有 hash 情况就出来了。 按你说这种,主密码的话会涉及用户输入,个人感觉不方便,还是要证明个人没有存储用户的主密码。。。
@qiutianaimeili 握手, 哎,早知道就不发出来了,自己用就挺好。

@HeiXiaoBai 那有一些安装和学习成本呀,我说了,它们很好,我这个就是个表格
annielong
2019-09-17 16:24:34 +08:00
花密就够用了
geelaw
2019-09-17 16:53:14 +08:00
@Raymon111111 #4 楼主的错误还没发展到这么高级的阶段,他的错误在于选择一个非主流的 **算法**,而不是选择一个非主流的 **实现**。

@claymore94 #27 评论是否安全不需要知道怎么做才安全。

此外,证明一个东西不安全是一件非常容易的事情。
具体到楼主的方案,你可以参考任何一个本科生密码学课程的前两节课的内容。
一个简单的提示是这样的:QQ 号码是多位数字,因此可以把位移量缩小到一个非常小的范围内,接下来再结合其他用户名的有意义性就差不多可以算出位移量,因此可以从楼主的密文中还原出所有的密码。
这是一个惟密文攻击下不安全的方案——现代安全工具通常使用的是选择密文攻击下安全的方案。

@claymore94 #48 加密算法的安全性不应当依赖于明文(这里就是你需要加密的密码)的随机性,任何选择明文攻击下安全的加密方案,加密 1111111111111 和 s$Kf5%i&e?gfu 之后都是无法辨别的。
至于密码本身是弱密码容易被攻破,那并不是通过你的密码管理器攻破的,和你的密码管理器没有关系。

@claymore94 #63 我没有用过任何密码管理器,但我相信几乎所有的密码管理器的算法都是公开的,云端存储并不会包括密钥,加上加密算法的安全性,可以相信厂商并没有解密的能力。

@libook #64 并不需要是密码学博士,需要的是密码学知识,以及能够在久经考验的假设下形式化证明安全性。

最后回复附言:
> 我自己用吧,用自己的作品还是很开心的。

我在 1 楼的建议也适用于楼主本人。或许用自己写的密码管理器很开心,但是这个密码管理器非常不安全。当然本身的不安全性也不是什么巨大的实际威胁,只要你愿意相信 Tencent 不会偷看你的内容;真正的威胁是虚假的安全感。
baojie223
2019-09-17 17:25:53 +08:00
佩服楼主,我也想自己做点东西
ily433664
2019-09-17 17:50:50 +08:00
之前密码基本是某几个常用的字母+数字
现在的新密码都改成了,当前使用的产品+数字+特殊字符
只要记住了规律就可以了,实在不行就重置密码
leeton
2019-09-17 17:54:42 +08:00
我发现我现在最怕撞库了,我各个地方的密码都是一样的,有一天撞库我就完蛋了,唉
Colis
2019-09-17 18:21:10 +08:00
手机安装软件, 密码保存在本地, 同时禁止这个软件联网
dingyaguang117
2019-09-17 18:37:42 +08:00
@claymore94 你没懂我说的,问题在于手势密码太复杂自己记不住,太简单被暴力破解概率大大提高,还不如设置一个文本秘钥
msg7086
2019-09-17 22:47:53 +08:00
做东西很好啊。
但是请你自己也不要用。太危险了。

这就像一个门外汉纯手工打造了一辆跑车,看上去非常酷,但是你敢 200 公里速度飙一把吗?
msg7086
2019-09-17 22:49:35 +08:00
(如果对自己的安全措施有自信的话,不妨把你自己密码库的密文信息贴出来。我们用的 AES 根本不怕暴露密文,你怕吗?
zpvip
2019-09-17 23:08:16 +08:00
@claymore94 建议把你加密后的密码库发出来,看看多久被攻破。当然要真实的密码库,用户名是 Email 或 V2EX 这种字母数字组合。
mdb
2019-09-17 23:16:09 +08:00
自己写了一个 winform 版的加密工具,原理就是把账号密码相关信息用 AES 加密然后保存到一个文件里,目前只在 PC 端上用,接下来想把它弄成多端同步的,因为密码都是加密后的字符,所以存到哪都不用怕,当然自己写的工具安全性怎么样只有自己知道...
mozutaba
2019-09-18 08:59:37 +08:00
掏个笔记本写下来也比你这个方便可靠啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/601346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX