密码管理的最佳实践

通密之所以不应该被过分指责,是因为有其存在的道理,没有哪种方案的管理成本比它更低,它不需要购买昂贵的1password,不需要担心临时用的时候突然想不起来,而且,只要这个密码足够强壮并且使用环境足够安全,大多数情况下也不会有什么问题。通密的问题在于它的风险成本太高,一旦一处泄漏,所有使用这个密码的地方都不安全。

另一个极端是,使用很复杂的密码,每个账号都不同,甚至用密码生成工具生成完全没有规律的随机字符串。这种方案的安全性很高,高到连你自己都记不住。

所以我需要这样一套好的方案,它应该在安全性和易用性之间取得一个比较好的平衡,并且随着方法论和工具链的进化,这个平衡可以无限逼近黄金分割点。

首先,密码应该是复杂但容易记住的。密码的复杂度和记忆负担并不成正比,例如如果你实在记不住“ppnn13%,dkstFeb1st”,那么这样呢——“娉娉袅袅十三余,豆蔻梢头二月初”。密码只是一个字符串,如果不去死记最终的值,而是字符串背后的规律,记忆的压力就会小很多。

但考虑到每个账号都想一个这样的密码是不现实的,而且怎么解决记忆密码和账号的对应关系的问题?所以进一步,可以用这样的密码当前缀,每个密码的前缀都一样,然后针对每个账号创造一个后缀,这个后缀应该是每个账号都不同的,且和账号有某种只有你自己才知道的关联,这样你可以随时根据账号计算出它的后缀。例如,可以用账号拼音首字母(当然,实际的规则应该更复杂一点)。

这样你就有了足够复杂、每个账号都不同并且很容易记住的密码。进一步地,在私有设备上可以利用文本替换功能(例如:Alfred for Mac的Snippets功能)快速输入通用前缀,某些支持按键编程的机械键盘会有更好的体验。

不过好记性不如烂笔头,为防万一,还是需要一个Plan B。主流的密码管理工具主要有这么几种:

浏览器的账号记忆功能

操作系统的keychain

在线密码管理工具

离线密码管理工具

浏览器一般是把密码以明文存储在本地的,firefox虽然有个主密码,但只是个幌子,别人仍然可以拿到它记录密码的数据库文件。这种做法的逻辑在于,设备上存储的数据的安全性由操作系统和用户负责,换句话说,用户不应该允许他人用自己的权限登录设备。但实际上很难避免这种情况,而且还要考虑到系统被入侵的可能。所以,只应该让浏览器记住那些最不重要的账号。

相对来说,操作系统的keychain一般有自动锁定的功能,会更安全一些。但是仍无法完全避免上述问题。而且keychain只能记录账号和密码,无法存储更多的附加信息。所以这种工具也只应该存储一些不重要的账号。

最著名的在线密码管理工具应该是Lastpass。关于它的安全性有很多种说法,不过我觉得但凡是敏感数据都不要存储到线上,所以这种方式不予考虑。

我倾向于使用离线的密码管理工具。1password据说很好用,但是太贵了,而且开源免费的keepass已经完全够用了。我在Mac上用KeePassXC,在iOS中用MiniKeePass,私钥文件离线存储,然后数据库文件用Dropbox同步就可以了。

此外,对于重要的账号,如果支持两步验证,一定要开启,然后用Authy管理即可。

最终的方案是:

方法论:统一的复杂但有规律的前缀+根据账号计算出来的后缀

工具链:KeePass + Authy + Dropbox

本文来自企鹅号 - 司马门下走狗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

我是如何用Python获取整个学校女生电话和QQ?技术撩妹

前言: 这个没什么技术难度,懂爬虫的人和程序员都可以用学的语言写出来 只是很多安全问题的存在,的确影响着我们的生活, 希望大家可以认识到一些网站的后台密码的规则...

2617
来自专栏腾讯DevOps

Git Code Review设置与使用

自从转到git上之后,已经一年多没有code review了(哈哈,捂住无辜的小脸)。但是坦白来说,code review绝对是利大于弊的。不仅可以让自己把控代...

7924
来自专栏腾讯云数据库团队的专栏

用分布式技术轻松化解数据库容量和性能瓶颈

我们的目标是您的业务仅需要 2 个数据库就够了,一个用来部署正式业务,不增加存储成本基础上,能涵盖 OLTP&OLAP 场景,且可以覆盖多种数据类型;另一个,一...

2K0
来自专栏北京马哥教育

Linux 下的两种分层存储方案

在存储设备中,使用分层技术,将冷热数据自动分层存放在具有不用读写性能的存储介质上,已经是很普遍的做法,比如 IBM 的 DS8K 中使用的 Easy Tier。...

3476
来自专栏顶级程序员

谈谈互联网后端基础设施

作者:飒然Hang 原文:www.rowkey.me/blog/2016/08/27/server-basic-tech-stack/ (点击文末阅读原文即可...

4016
来自专栏领域驱动设计DDD实战进阶

微服务实战(五):落地微服务架构到直销系统(构建高性能大并发系统)

在现代系统中,特别是互联网软件,通常会涉及到大量用户的并发访问,我们的系统一定要在架构上支持高性能、大并发的访问。一个高性能的系统通常由很多的方面组成,包括数据...

901
来自专栏智能计算时代

「大数据系列」Apache NIFI:大数据处理和分发系统

简单地说,NiFi就是为了实现系统间数据流的自动化而构建的。虽然术语“数据流”用于各种上下文,但我们在此处使用它来表示系统之间的自动和管理信息流。这个问题空间一...

2263
来自专栏小白课代表

小白课代表的使用说明(必读)

2012
来自专栏FreeBuf

某搜索引擎Self-XSS点击劫持案例分享

在AI横飞的今天,网站页面不挂个聊天机器人都会觉得low,笔者在某搜索引擎的页面上就发现了这样一个聊天AI,无聊一试发现了一个xss。

1043
来自专栏Android群英传

沪江学习Android端重构实践

853

扫码关注云+社区

领取腾讯云代金券