一文读懂如何进行密码管理(本教程使用Keepass)
学习通数据库泄露和QQ号被盗的事件影响颇大,这才又让我认识到密码管理的重要性。个人之前一直用的是Keepass管理自己的密码,不过也只用了基本功能,这次正好可以把这个软件深入研究一下。
同时这是一文读懂系列的第一个文章,希望以后一文读懂系列能给读者提供一站式的、清晰简洁的讲解教程。
本文所使用的都是开源密码管理工具,虽说安全性强、使用人数多,但我仍没法100%保证软件本身的安全性。因此,我建议各位读者在参考本教程进行密码管理时务必抱着怀疑的态度进行学习,参考该教程而导致的安全问题本人概不负责。
密码基础
什么是密码
首先要明确的是,密码学里的“密码”和大众眼中的“密码”是两个概念。这里讲讲口令、密码和密钥。
口令:password,用于验证鉴别。在大部分互联网应用中会对不同的用户设置不同的身份和口令。如果你告知应用自己的身份,然后再通过告诉应用口令,那就能证明自己的身份。很明显,这里的口令就是我们平常生活中说的“密码”。
口令有一个基本特征:由可书写可读的字母、数字、符号、词组成,便于头脑记忆。
密码:在密码学里指密码算法,我们可以通俗理解成把可以被大家理解的信息转化成大家不理解的杂乱无章的字符之类的信息。密码算法有许多种,这里就不展开了。
密钥:密码算法可以传入参数,密钥就是这些参数。对于同一种密码算法,传入的密钥参数不同,对应转化的结果也就不同。
但是,这篇文章是面向大众的科普向文章,博主本人也没密码学相关知识背景,所以我们对这些概念不必过分深究。我们就采用大众理解的概念来理解密码。
在此段以后的整篇文章中,我们提到的“密码”,若非特别说明,一律指大众理解的密码,也就是登陆时填的那个口令password。
密码设置的注意事项
密码在使用方便前必须考虑安全性。只有在足够安全的前提下你才能开始考虑怎么方便使用。
以下是推荐做的事情
有一些方法挺不错,你可以采用。
- 有些人采用分级密码管理方法,比如设置三级密码,第一级密码非常重要,用于管理钱财的软件等APP,所以这个密码很复杂、很关键、很保密,只作为固定几个地方的密码;第二级密码用于官方认证的网站,不涉及金钱交易,比较放心,所以在密码的复杂性、保密性上可以稍微妥协,可以有比较多的网站使用这个密码;第三级密码用于野鸡网站,听都没听过的那种,这时设置的密码就可以很随便了。当然,你也可以用五级密码、七级密码或更多级,前提是你要记得住这些密码。
- 大小写结合加数字再加特殊符号更安全哦,而且越长越好。但问题是,对很多人来说,密码越复杂越长,就越倾向于多个地方用同一密码,因为懒得记。既然倾向于多个地方同一个密码,结果风险反而更高了。
- 假设有密码
123456
,那把QQ密码设成QQ123456
,Steam密码设成Steam123456
。不过这也不太安全。如果你两个密码泄露了,那剩下的不难猜出规律。 - 记在小本本上,不过前提是你要保证把小本本放好位置别丢了。
- 一个有名的程序员肯汤普森,他的某个密码散列后的字符串是
ZghOT0eRm4U9s
,快40年后才被暴力破解,明文是p/q2-q4!
,这个明文意思是国际象棋里的一个常见的开局走法:皇后前面的兵向前移动 2 个方格。同样的道理,以下这密码可能给你思路:飞流直下三千尺,疑是银河落九天。密码就是flzx3000c,YSYHL9T. - 你可能不信,但手机验证码是普通人能接触到的最安全的方法了。
- 密码管理软件可以生成随机密码,坏处是你根本难以记住,好处是密码管理软件能管理你的密码。
- 有一种免费的密码管理软件,可以从庞大的数据中快速找到特定的密码,完全不存在数据泄露的可能性,我们一般称这个软件为大脑。
以下是你禁止做的事情
你不能这么做!!!
- 所有网站都用同一个密码
- 把密码告诉妈妈,跟她说不要告诉别人
- 把密码记在一个txt文件里面,然后把名字改成meiyoumima.jpg
- 在一个photoshop文件里面建一个新图层,把账号密码写上去,背景和字体设成白色,想看密码的时候开ps文件看。
- 密码设成123456
- 浏览器问你要不要保存输的密码,你选了要
- 你住在北京,你叫小明,你的生日是2月29日,你的密码设成xiaomingbeijing0229
- 听别人说MD5是加密算法,然后就糊里糊涂用简单的口令进行MD5转换后当密码
- 支持国产!把密码交给百度管理吧!
如何选择密码管理软件
这时你大概已经明白什么样的密码是好密码,什么样的密码是坏密码了。很多人都在用各种各样的密码管理软件,我也推荐你选择一个。
在选择密码管理软件之前,你要知道
先问问自己:
- 想选择的加密算法是什么?这个加密算法安全吗?你可能不知道加密算法安不安全,不过至少不要让密码是明文存储的。至于哪种加密算法更安全,各种专业人士自然有各自的见解。
- 代码开源吗?可能我们不会拿开源代码去魔改,但是既然它开源那就比较良心,不用担心之后收费之类的问题,开发者夹带私货的概率也大大降低。不过注意,开源不意味着完全安全,只是出问题的概率会低那么一点。
- 是离线的软件还是在线的网站?通常来说,我们倾向于认为在线才能用的密码软件或密码网站是有风险的,我们更愿意使用离线的软件来管理密码(除非特殊情况)。
- 免费吗?秉持着白嫖不花一分钱的信念,大家确实更喜欢不交钱的东西。不过通常来说付费软件在某些方面可能更好。这个问题见仁见智。
- 是否有好用的扩展?在需要密码的时候还要再开软件看一看是很麻烦的行为,所以很多密码管理软件通过扩展达到自动填充的简便效果。你当然可能用浏览器保存密码,不过浏览器自动填充密码和密码管理软件自动填充密码是不一样的,后者更安全。
- 麻烦吗?很多小白可能对这些技术不太感兴趣,所以更推荐他们用一些一键安装就完事的软件。不过如果你能找到这篇文章并读到这里,我相信你应该是有一定基础的,所以我们可能不太管上手的难易程度,我们更关心把所有东西都设置好后管理密码方不方便、安不安全。
- 用的人多吗?在选择密码管理软件这件事上可不要自命清高,千万不要选择一些冷门的软件。越多人使用,越多人审查代码安全性,越多的扩展,越舒心的体验。
想好后,下面这张图可以带你了解目前市面上各大密码管理软件优缺点。
相信不同的读者此时心里已经有了不同的选择。
我选择了Keepass。若你和我选择相同,请继续阅读。若你想找其他的密码管理软件,现在就百度/Google吧!
那么废话不多说,开始我们的Keepass的探索之旅吧!
Keepass密码管理软件
最终,来到了我们这篇文章的重头戏。接下来我们会介绍在Windows操作系统、Android移动端设备上如何优雅地使用Keepass来管理密码和使用密码。小提示,普通程序员看懂这篇文章应该没有难度,如果你是电脑小白,可能看懂的话会比较吃力哦!
Keepass介绍
或许你可以看看Keepass官网是如何介绍自己的。Why KeePass?
Today, you have to remember many passwords. You need a password for a lot of websites, your e-mail account, your webserver, network logins, etc. The list is endless. Also, you should use a different password for each account, because if you would use only one password everywhere and someone gets this password, you would have a problem: the thief would have access to all of your accounts.
KeePass is a free open source password manager, which helps you to manage your passwords in a secure way. You can store all your passwords in one database, which is locked with a master key. So you only have to remember one single master key to unlock the whole database. Database files are encrypted using the best and most secure encryption algorithms currently known (AES-256, ChaCha20 and Twofish). For more information, see the features page.
Is it really free?
Yes, KeePass is really free, and more than that: it is open source (OSI certified). You can have a look at its full source code and check whether the security features are implemented correctly.
看得出来,Keepass有以下特点:
- 开源免费
- 可以不用手输密码
- 作为开源软件当然有大量第三方插件支持
- 离线存储、高水平加密算法
- 全平台通用
这篇文章只记录了重要的操作步骤,Keepass还有很多功能,读者可以自行到官网上查阅文档。
Keepass在Windows端如何使用
下载
- 在Keepass官网下载页里找不同版本release下载。你可以看到有安装程序.exe格式和压缩包.zip格式。.exe格式会让Keepass像正常程序装进你的系统中;.zip格式则都在文件夹内部存储数据,你可以把文件夹搬运到不同设备上,很方便。二选一即可。
- 我选择安装程序,运行setup程序。(安装时默认英文)
- 第一步Select Setup Language不选,直接点OK,因为默认不提供中文选项。
- 选择安装路径,除非你是大佬,不然别装C盘。
- 一路点OK或Next。
至此安装完成,第一次打开会提示“是否自动更新?”要不要自动更新取决于你自己。
汉化
怎么设置成中文版呢?
- 打开Keepass,依次点击View->Change Language可以选择语言。第一次打开肯定只有英文,点击Get More能开官方网站,然后下载汉化语言包。
- 打开的官方网站中有各种语言,选择Chinese, Simp.条目对应的Downloads栏,有1.40+和2.51+两个版本,选2.51+的那个。下载后解压得到一个LNGX格式的文件。
- 回到原来Select Language界面,刚刚点击的是Get More,现在点击右边的Open Folder,把刚刚下载的LNGX文件放进我们打开的文件夹里面去。
- 再次回到Keepass界面点击View然后点Change Language,就能看到中文选项。点击后会要求重启Keepass,选是进行重启。
基本使用与第一次配置注意事项
- 创建数据库
- 开始行动前,我们先理一理需要创建的东西。Keepass会把你的密码放进一个kdbx文件的数据库里面的。在创建数据库时Keepass提供了3种可任意组合的加密方式:【管理密码】【密钥文件/提供器】和【Windows 用户账户】,至少选一种加密方式,也就是说一共可以组合出种不同的加密方式。密钥正如之前我们提到的,是一个文件,也要创建一个新的,如果密码被别人知道了但密钥文件不在别人手上,那么也打不开这个数据库,提高了安全性。如果你是小白,我们推荐【管理密码】+【密钥文件/提供器】加密方式,也就是接下来的内容。
- 在Keepass主界面,点击文件->新建,出现新提示窗口,点击OK,然后选择数据库存放的路径并点确定。
- 在“创建组合管理密码”界面里,把“显示高级选项”点开。这个界面里最上面输入的是主密码,你可以理解成“管理密码的密码”,看得出来非常重要,建议每隔半年就要换一次,另外记得一定要深深地把主密码刻在脑海里面。接下来是设置密钥,你当然可以不设,但我们强力推荐你设置一个密钥文件:【密钥文件/提供器】的选项点开,然后点创建,然后在“创建密钥文件”界面点确定。新打开的“收集熵”界面,左边随便按着鼠标拖一拖就好了;右边输入框让你随便输字符,你不用记住你敲了什么键,你输的这些字符是用来当作种子用于高强度加密的,只要乱敲就行
(所以可在这里试看看脸滚键盘) 。接下来点确定,接着就是要将生成的密钥文件保存在你想保存的路径里面。为了防止密钥文件丢失,你可以做备份。黑客拿到密钥文件时没法读取你任何信息的。现在已经设好了主密码,设置好了密钥文件,就可以点确定了。 - 记住,主密码、密钥文件、数据库不要放在同一个地方,不然你白忙活了!黑客看到数据库的同时发现你把密钥文件放在同一个目录下,那你这密钥设和没设没啥差别。主密码推荐写在一个小纸张上,或如下文所说打印应急表单也行,当然如果你非要记脑子里我也不反对。
- 通常来说密钥文件的路径我们是让Keepass自动记住的,也就是说你不移动密钥文件的话我们每次进Keepass只要输主密码就可以。但如果你电脑要借出、或这是公用电脑,那不要让Keepass记得你的密钥路径,你可以在主界面工具→选项→高级的“高级”里关闭记住密钥源(密钥文件路径、提供者名称等)选项。这个选项默认是选中的。
- 接下来进入“配置新数据库”界面。“常规”这一页按需求填写。“安全”这一页,注意【迭代次数】,次数越高数据库越难被暴力破解,但每次打开数据库和保存记录的耗时也越长。默认值为60000。我把它设置为5000000,在我的电脑内大概0.1秒的时间。你也可以点1秒延迟按钮,对应的次数就是你花1秒成功的大概次数。在“高级”一页,有“建议更换管理密钥天数”,也就是你主密码设置成功过了多少天后会为了安全建议你换另一个主密码,你不换的话就会每次打开Keepass都开弹窗烦你。“强制更换管理密钥天数”就是非让你换主密码不可了。这两个按需求配置,我比较懒所以我都没勾选哈哈。
- 创建数据库最后一步就是应急表单了。这个是为了防止哪天你可能就把主密码忘了。推荐打印一份放在你家里或隐蔽的安全的地方。你可能一年的时间都不会碰,但情急时那张纸就是救命稻草。别想着能找回密码,不可能找回的,你忘了那就再也打不开了。所以慎重!!!一定要记得主密码!而且密钥文件放的位置也要记得!
保存好应急表单!主密码一旦忘记无法找回!
- Keepass安全设置
Keepass也可能是很不安全的,这并不是因为Keepass设计的不好,而是因为如果你开了这个软件后就跑开了让别人看到你的密码,那只能怪你自己喽。这只是个例子,接下来就教你怎么设置让你能更安全地使用Keepass。- 密码用了之后就要从剪贴板里清除,电脑长时间没动作时要让Keepass自动锁定。你可以在工具→选项→安全里设置相关选项。全局空闲如下时间后锁定主窗口(秒)强烈建议打开,几秒看你需求调;剪贴板自动清空时间(秒,主记录列表)强烈建议打开,几秒看你需求调,如果有按下文设置自动输入的话可以调短一点,比如10秒左右之类的。另外常规里的锁定Keepass--当锁定Windows或切换用户时和锁定Keepass--当系统挂起时和锁定Keepass--当远程控制模式改变时这三个选项建议勾起来。
- 在工具→选项→高级里,把【启动和退出】里的退出和锁定数据库时自动保存勾上。同样是在高级这个页面,把【文件输入/输出连接】里的写入数据库时使用文件交换处理(先写入临时文件再替换原文件,以防意外)取消勾选。
- 防熊孩子和别有用心的人:打开工具→选项→策略,将以下4个选项进行关闭:导出、导出-不核对密码、打印、打印-不核对密码。
- 原则上,严禁Keepass联网。
- 一定要养成随手锁电脑(win+L)的习惯!
- 基本简单操作:如何设置密码、使用密码
这应该不用我说了吧
进阶设置
- 为使你的主密码更安全,请在keepass的工具→选项→安全的“高级”中勾选在安全桌面输入管理密码,因为几乎没有键盘记录软件能在安全桌面工作。
自动输入
- 这一步要注意,如果目标应用程序要求管理员权限运行,那么keepass也要用管理员权限运行才能使用自动输入。所以你不妨马上试试右键Keepass图标然后点【以管理员身份运行】。自动输入全局热键默认为Ctrl+Shift+A。两种方法使用自动输入:1. 点击输入框→按下自动输入全局热键。2. 点击输入框→切换到Keepass主界面→右键单击记录→执行自动输入。
- 自动输入的匹配规则:当按下自动输入全局热键时,keepass会根据当前活动窗口的标题在数据库中搜索相匹配的记录;如果一条记录的标题或网址包含在活动窗口标题内那么这条记录将被匹配。举个例子:在chrome浏览器中打开淘宝网,当前活动窗口的标题就是“淘宝网 - 淘!我喜欢 - Google Chrome”。那么问题来了:标题为“Google”的记录也会被匹配到,而且在chrome中打开的任何标签页的标题都会包含“Google Chrome”字段。
- 为防止误匹配,上述问题解决方法为:依次点击工具→选项→高级,勾选总是显示全局自动输入记录选取对话框。
- 自动输入的键入规则,默认规则为{USERNAME}{TAB}{PASSWORD}{ENTER}。也就是先输入用户名,tab换行,输密码,回车。但这只适用于英文,当我们使用中文输入法时可能失效,所以推荐使用以下规则:+{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}{ENTER}。解释:按shift键,等100毫秒,清空输入框,输用户名,tab换行,输密码,回车。由于新建记录默认从群组继承输入规则,所以只需修改一次,一劳永逸。
综上,当你遵守以下要求时
- 自动输密码前确保输入法是中文
- 想要自动输入的密码会在你执行这些配置后添加(也就是说在你配置之前就已经设好的密码没法用自动输入)
那么你就可以这么配置来一次性保证以后你添加的密码能够使用自动输入:
- 在Keepass主界面左侧栏右键你的密码数据库→编辑群组→自动输入,选择替代默认规则为,下面填写
+{DELAY 100}{CLEARFIELD}{USERNAME}{TAB}{PASSWORD}{ENTER}
- 我们在上面提到过的,依次点击工具→选项→高级,勾选总是显示全局自动输入记录选取对话框。
- 以后你想使用自动输入时,就是我们已经讲过的两种方法。1. 点击输入框→按下自动输入全局热键。2. 点击输入框→切换到Keepass主界面→右键单击记录→执行自动输入。
- 双通道自动混淆输入
- 原理确实有点让人头大,我把文档贴在这儿吧 简单来说,将要输入的字符分两部分,用模拟按键和复制粘贴两种方式混合输入,输入完成后再还原输入前的剪贴板内容。这样时为了防止单一的键盘记录软件或剪贴板监听软件窃取输入的完整字段。有些软件不支持这个功能,因此这个功能默认不启用。
The Auto-Type feature of KeePass is very powerful: it sends simulated keypresses to other applications. This works with all Windows applications and for the target applications it's not possible to distinguish between real keypresses and the ones simulated by Auto-Type. This at the same time is the main disadvantage of Auto-Type, because keyloggers can eavesdrop the simulated keys. That's where Two-Channel Auto-Type Obfuscation (TCATO) comes into play.
TCATO makes standard keyloggers useless. It uses the Windows clipboard to transfer parts of the auto-typed text into the target application. Keyloggers can see the Ctrl+V presses, but do not log the actual contents pasted from the clipboard.
Clipboard spies don't work either, because only parts of the sensitive information is transferred on this way.
Anyway, it's not perfectly secure (and unfortunately cannot be made by theory). None of the currently available keyloggers or clipboard spies can eavesdrop an obfuscated auto-type process, but it is theoretically possible to write a dedicated spy application that specializes on logging obfuscated auto-type. - 如何使用双通道混淆输入:在添加记录时或编辑记录时,自动输入子界面有个双通道自动输入混淆,把它打开。
- 原理确实有点让人头大,我把文档贴在这儿吧
插件设置
如何进行插件安装?Keepass主界面点击工具->插件管理器->打开文件夹,然后把你想放的plgx文件放进去就行。然后重新打开Keepass。
警告!使用非官方的插件可能有风险!如果插件带来了安全问题,你可能无法承受后果!
Keepass在Android端如何使用
没想到吧!Keepass也能在安卓上使用!手机上使用Keepass会简单得多,我们推荐Keepass2Android这个神器!在Keepass官网下载页里你就能看到Keepass2Android的下载链接!
密码数据库文件
我们现在可能在多个平台都需要密码数据库文件。那么如何做到同步多端数据库文件呢?
- 放在云盘。例如Onedrive等等。
- 在电脑更新,每隔一段时间就把文件备份到手机上。