可记忆的密码管理方案 —— 花密
花密新版独立网站已经上线,请访问: http://FlowerPassword.com/
“花密”在线版访问地址:http://flowerpassword.com/ ,另外还有离线版|chrome插件版
同一密码管理不同账号的窘境
6月份的时候月光博客的小龙被黑,许多账号被破解。随着互联网的发展,大家需要管理的账号也越来越多,邮箱、网银、社交网站……相信很多人的密码管理方式是同一个密码管理所有账号,这也意味着,如果某天你的某个账号像小龙样被黑,甚至被获取了密码,那么你所有的账号安全也将受到威胁。
除了网站被钓鱼、小站点的信息安全不到位密码被泄露外,生活中也会有自己需要主动将密码暂时告知别人的情景。比如我妈要求我把淘宝账号给她,方便她收藏商品给我付款;老妈偷菜、女友视察需要交出QQ密码等。如果管理不当,在这种情形下,密码极易被泄露给第三人。
目前的解决方案
可是给每个账号设置一个不同的密码意味增加了记忆难度。于是我们开始需要一个密码管理工具,比如LastPass。可是把密码储存在人家那里,总是觉得不那么靠谱,这事可是又佐证的,今年五月份LastPass密码服务器遭入侵,LastPass建议客户修改访问其服务的密码。
当然也有KeePass这样的不错的本地密码管理软件,可是又会遇到其他问题。比如去了网吧,想看下MySQL密码……好吧,我们还有同步工具,可以把KeePass同步到云端,然后……等等,这不是在“重蹈覆辙”么。
还有密码强壮程度的问题,好的密码应该是大小写字母、数字、符号的混合。有很多可以生成随机密码的网站和软件,这种密码是很难被记忆的。当然也有可能吧的jasonNg32这样的“休闲”人士说自己曾记忆过随机密码。
花密 —— 新型的密码管理方案
“花密”旨在提供一个可记忆、非储存的密码管理方案。
如上图:
“记忆密码”是用户唯一需要记忆的密码,使用“记忆密码”为不同的账号计算出不同的密码。
“区分代号”是用来区别不同账号的名称,可以用中文、英文数字等。比如淘宝账号可以用“淘宝”、“taobao”或“tb”,具体的看你自己的理解,甚至可以直接用网站账号的域名作为区分代号。
“记忆密码”加上“区分代号”通过一个基于HMAC的算法计算出一个长度16位由大小写字母、数字组成的密码,这个密码的首位一定是一个字母。(之所以长度为16,是因为部分网站的密码长度限制在16位以下)这个算法的示意图如下:
目前“花密”是一个网络应用,访问地址:http://kisexu.com/huami
“花密”的特点和优势
1.只需记忆一个密码为所有账号分配不同的强壮密码;
2.单网页应用,获取方便,只要联网即可使用,使用javascript,密码的计算在本地浏览器内进行,无需担心网络安全;
3.防止暴力破解、社会工程学猜解,再简单的“记忆密码”通过计算后也会变得异常强大。通过HSMP估计,单机破解16位码的时间是6万亿年……
4.不可逆,“花密”算法具有不可逆性。某账号密码被泄露后,无法通过密码反推“记忆密码”,保证其他账号密码的安全;
5.非储存,既不在云端也不在本地储存密码,“记忆密码”只存在你的大脑中;
6.可扩展,通过“区分代号”可以简单设置密码版本。如将“区分代号”为“taobao1”的淘宝密码临时告知他人后,将“区分代号”改为“taobao2”即可获得新的一组密码。
“花密”的发展计划
1.使用单独域名推出单独站点;
2.项目页面的使用指南;
3.英文版本;
4.提供高级用户版本和离线版本;
5.移动版本。
写在最后
信息安全是一个长远的话题,LastPass和Keepass都为我们提供了不错的密码管理服务。其实和LastPass的理念“the last password you’ll have to remember”一样,“花密”也希望提供一个简单轻松管理密码的新思路。如果你有什么建议,可以在本页面下留言,或者前往GuruDigger社区参与讨论,或者直接发邮件和我联系:kisexu(at)gmail.com。