专栏首页程序员充电站(itcharge)个人账号密码管理体系(密码篇)

个人账号密码管理体系(密码篇)

1. 前言

在我们的生活中,有各种网站、应用都需要注册和登录。这些网络访问通常需要 「账户」 + 「密码」 的认证方式,于是几乎我们每个人手上都有几十个甚至上百个账号。

一般而言,我们设定和记住密码的方式,就是生日、纪念日、姓名、身份证等等核心内容,然后再加上特定规律。甚至为了便于记忆,很多人习惯只用一个常用的密码。这是非常危险的行为。因为只要有一个网站出现安全事故,密码被泄露,那么几乎所有注册过的网站和服务都会沦陷。但如果使用多个密码,又很可能因为密码过多,在登录的时候出现账号和密码对应不上的情况,极为不便。

那我们应该怎么设置密码,才能做到相对安全,并且方便记忆和使用呢?


2. 密码是如何被泄露的?

在考虑如何设置密码前,我们先来讨论一个问题:我们的密码是如何被泄露的?

一个账号密码的背后,往往涉及到大量的个人信息。如果一旦被泄露或者被破解,黑客会比你爸妈更加了解你自己。

通常来说,密码泄露的位置主要有三个地方:本地网络传输远程数据库

举个例子:你在浏览器上某网站上输入了账号和密码,这个账号在你登录之前,只存在于你 本地电脑 中。一旦你点击了登录按钮,浏览器就会将你的登录名和密码打包成为一个登录请求,发送给远程服务器。这个阶段,你的密码会在 网络传输 过程中经历一段非常短暂的旅程。如果你是第一次注册,那么你的密码还将会以某种形式存储在该网站的 远程数据库 中。

下面来说一下这些常见的密码泄露情况:

2.1 本地泄露

本地电脑上的密码被泄露通常是因为电脑中病毒,被植入了恶意木马,键盘收到恶意程序监听,黑客会在恶意程序后台,将你的个人信息发送到黑客自己的服务器中。

过去破解密码常用的一种手法是使用键盘记录器等工具,记录下键盘的每一次操作,然后在后台发给黑客。在曾经网吧最红火的年代,经常有人在网吧电脑里安装这类工具,用于盗取网吧其他玩家的游戏账号密码,偷走游戏里的装备,或者虚拟 Q 币。

2.2 网络传输过程中泄露

网络传输中的密码被泄露可能是因为网站没有有效的对密码进行加密,导致密码明文传输,或者非加密传输,黑客通过一些工具,拦截登录请求包,就能直接看到你的密码。

在 WiFi 普及之后,黑客可以采用 WiFi 中间人攻击的方式,伪造一个与合法 WiFi 接入点同名的无线信号,骗用户接入后,在用户登录的时候,偷走用户的账号密码、邮箱、手机号等信息。

2.3 远程数据库泄露

远程数据库中的密码被泄露,往往是因为我们所使用的网络服务提供商不可靠,对密码明文保存,未经二次加密,或者加密措施有漏洞,如果服务提供商的数据库泄露(常称为 「拖库」),那么我们的密码也会变得不再安全。

之前提到两种密码破解方式一次只能获取一个账号密码的方式,对于黑客而言效率还是太低了。所以技术高明的黑客会选择直接入侵网站的服务器,直接窃取存储用户账号信息的数据库,一次性获取数百万甚至上千万人的信息。比如 2011 年 12 月,CSDN 网站遭遇拖库,600 万用户的账号密码被明文泄露。

更严重的是,拖库还会影响你在互联网上的其他账户。这是因为黑客在拖库之后,还会进行 「洗库」,将你的个人信息进行变现,比如盗取游戏装备和虚拟 Q 币。或者将你的身份信息变卖给垃圾广告公司,之后你将会不断地收到各种推销骚扰电话。

最后,黑客还会利用你的账号密码信息进行 「撞库」,也就是拿着你的账号密码,去尝试登陆其他网站,如果你多个平台使用的都是一个账号密码的组合。那么,所造成的信息泄露和个人价值损失将不可估量。比如当年的网易邮箱数据泄露,Dropbox 密码外泄,都会引起连锁的账号安全问题。

虽然因为平台原因导致的信息安全问题,我们好像看似无能为力,但是一旦了解到密码是如何被破解和泄露的,将有助于我们更好的设定自己的密码,从而使个人的账号密码更加安全。

基于这三个地方的密码泄露问题,我有一些关于密码安全的建议如下:

  • 尽量不在公共或有潜在安全风险的设备上进行密码操作;
  • 技术不足的情况,尽量不要越狱,对设备不进行 Root;
  • 不安装未知来源的(盗版)软件。
  • 不使用不可信的 WiFi 网络,特别是公共场合的陌生、免费 WiFi。
  • 如果可能,使用 SSL 加密访问网站;
  • 保持浏览器在最新版本;
  • 检查网站证书是否可信(一般浏览器都会有提示)。

3. 密码制定要求和策略

3.1 密码制定要求

总体来说,个人的密码安全需要遵循以下几个简单要求:

  1. 密码长度最好 8 位或以上,不宜过短 / 过于简单(例如:abc12345);
  2. 没有明显的组成规律,尽量不要与个人信息相关(例如生日、身份证号);
  3. 尽可能的使用三种以上符号,比如「字母」+「数字」+「特殊符号」组合;
  4. 按照平台重要程度,将密码进行至少三级分类:普通密码、重要密码、安全密码等等。

3.2 密码级别分类

对于不同的平台,我们应该使用不同的密码,以免一个平台账号泄密,引起连锁的账号安全问题。

一个较好的做法是:对不同的平台按照重要程度进行分类,不同重要程度的平台使用不同层级的密码。

对于支付宝、微信、网银等涉及财产安全、可以信任的、安全的平台,设定为 「安全密码」 级别;对于常用的网站、论坛、博客、云盘,设定为 「重要密码」 级别;对于偶尔登录的论坛、网站,或者一次性注册登陆的账号,可以设置为 「普通密码」 级别。如果自己对账号还有其他需求,还可以设置更多级别的密码,比如临时给朋友分享的密码可以设置为 「临时密码」 级别。

通过对不同重要程度的平台的账号密码进行分级,这样至少我们在泄露一个密码的时候,不会导致其他级别的密码也跟着泄露,一定程度上保证了账号安全。

此外,建议同一级别的密码,也不要完全相同。推荐使用「基础密码」+「网站名称」+「一套密码变化规则」组合的方式,对同一级别不同平台的密码进行不同的设定。这样,即便是一个平台的密码泄露了,也不会导致这一级别其他账号密码泄露。当然,一旦发生密码泄露,最好的做法是立即修改本级别下的所有账号密码。

3.3 密码制定方法

上边我们讲了密码级别的分类,下边我们来讲解一下某一级别密码的具体制定方法。

首先,密码 「被破解难易」 跟密码的 「长度和难易程度」 正相关。所以,强烈建议大家使用高强度的密码。比如 Dr4%*DyaZoHPz^ 就是一个高强度的好密码,只是记下来不大容易背。

网络上的大神对制定密码的策略和记忆密码的方法有各种独到有效的见解。比如下面几个:

  • 利用诗词的密码:Fhl3yjsd10000j —— 烽火连三月,家书抵万金
  • 利用顺口溜的密码:cptbtptpbcptdtptp—— 吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮

但是诗词和顺口溜用的知道的人多了,也变得不那么安全了。那有什么方式,才能使密码变得既安全,又方便记忆和使用呢?

我推荐使用 「基础密码」 + 「网站名称」 + 「一套密码变化规则」 组合的方式。

1. 选取一个基础密码

首先,我们要选择一个基础密码。这个基础密码可以是一句诗句,也可以是一句话,保证尽可能无规则。比如:「大脸猫爱吃鱼」,取其拼音首字母组成密码:dlmacy

2. 对基础密码进行一些变化

接下来,我们要对基础密码进行一些变化。比如:「改变字母大小写」、增加「特殊数字」、「特殊字符」等等。

  • 改变字母大小写后:DLMacy
  • 增加特殊数字后:DLMacy618
  • 增加特殊字符后:DLM#acy618

经过这些变化之后,DLM#acy618 就成为了我们的基础密码,这也是一个强密码。现在,这个密码的被破解难度已经很高了,但是还不够好,我们还可以在这个基础上,增加不同网站的名称,为密码增加一些变化。

3. 不同网站增加变化

不同网站应该增加不同的变化。比如:

  • DLM#acy*Zfb618:中间加了 *Zfb,代表支付宝。
  • DLM#acy*Zh618:中间加了 *Zh,代表知乎。
4. 增加密码变化规则

上边对不同网站简单增加了一些小变化,但是根据一个网站密码还是可以间接猜测到其他平台密码(可能性较小)。如果为了更加保险,我们可以对「不同网站变化」的部分,再增加一层加密。比如对字母进行移位运算。假设我们自定义的规律为:(字母 - 3) % 26,即每个字母向前移动三位。比如 Z 向前移动三位是 Wh 向前移动三位是 e。那么 Zh 就变成了WeZfb 就变成了 Wcy。这样一来,我们的密码就变成了这样:

  • DLM#acy*Wcy618:支付宝密码
  • DLM#acy*We618:知乎密码

到此为止,我们的密码制定就结束了。单就密码而言, DLM#acy*Wcy618 怎么看也不像是一个好记的密码。我们在输入密码的时候,可以这样提示自己:「大脸猫爱吃鱼」、「特殊字符」、「字母移位」、「特殊数字」。多练几次,自然而然就记住了这套密码体系。

这套密码用的是强密码,不同平台之间的密码既有规律,又有唯一性,安全性已经得到了保障。在输入密码的时候,也不需要再随性地思考自己用的是什么密码了。

这样我们就得到了一套既安全,又方便记忆的密码体系。但是似乎使用起来还不是那么方便。

因为每次使用的时候,我们要先考虑平台的密码等级,然后再想想自己的密码制定规则,最后如果密码过于复杂的话,输入还容易出错。那么有什么方法,能使我们的密码使用起来更加方便呢?

答案是:使用 「密码管理工具」


4. 使用密码管理工具

说起密码管理工具,最原始的管理工具是:「密码本」。就是将个人的账号密码记录在某一页纸上,好好保存起来,等到忘记密码的时候拿出来看看。这种方式看起来十分原始,但至少从物理上保证了密码的安全性。只要没有人知道你的密码本放在哪里,那么它就是安全的。当然这种方法的缺点也很明显,一个是记录起来比较麻烦,二是使用起来也不太方便。比如说我在公司需要登录一个账号密码,结果记录账号密码的本子落在了家里这种情况。

「密码本」的升级密码管理工具是 「电子文档」。其实就是将以前存在纸上的账号密码保存在了 Excel 表格文档中,或者一些笔记软件类(例如印象笔记)。像 Chrome 浏览器中的密码保存也可以归为这类工具。这样保存密码比起上边提到的「密码本」来说,确实方便了不少。用的时候随用随查就好了。但是,缺点也十分明显。账号和密码都是明文保存,没有进行二次加密。如果文件或者笔记泄露了,那么记录的所有密码就都泄露了。这样反而更加不安全。

专业的事情,就应该交给专业的人去做。 产品也是这样,「密码管理」 就应该交给专业的 「密码管理工具」 去做。之前我们针对不同平台设置了不同的密码,这些密码想要记住也并不是一件容易事,还好现在有许多专业密码管理工具可以帮助我们记住这些密码,并且还可以进行自动填充,以及跨平台使用等等。

这些常见的密码管理工具有:1PasswordLastPassEnpassKeePassBitwarden

密码管理软件的设计思路比较一致,你可以在软件中添加记录自己所有的密码,然后为软件设置一个主密码。你只需要掌握一个主密码,所有其他密码和重要信息都会被主密码保护,并且能安全快速的访问所有账号密码。同时,这些软件还增加了一些好用的功能。比如:

  • 跨平台同步:你可以在多个不同设备(Mac、Windows、Linux、iOS、Android 等)之间无缝同步。
  • 自动填充:不用再手动输入密码,一键自动输入。
  • 自动生成密码:不用自己考虑怎么制定密码,软件自动生成强密码。
  • 附件功能:可以添加文档/文件,以及将其他的各种会员信息、社保号码、路由器密码、驾照护照、证件复印件交给密码管理器保管。

这几个软件具体的区别如下表所示:

工具

费用

加密方式

支持平台

数据存储位置

附件功能

同步功能

密码自动填充

1Password

个人:2.99 美元/月;家庭版:4.99 美元/月

AES-256 算法加密

Mac、iOS、Windows、Android 及主流浏览器

本地数据库模式

付费版可添加

支持 iCloud、Dropbox、1Password Account 同步、WiFi 同步、保险库文件同步

支持

LastPass

个人:3 美元/月;家庭:4 美元/月

AES-256 算法加密

Mac、iOS、Windows、 Linux、Android、Windows Phone 及主流浏览器

LastPass 美国服务器线存储

可添加附件

LastPass 美国服务器同步

支持

Enpass

PC 端免费;手机端收费:173 元/年 | 348 元/终身

AES-256 算法加密

Mac、iOS、Windows、 Linux、Android 及主流浏览器

本地数据库模式

可添加附件

支持 iCloud 同步、Dropbox 同步、Google Drive 同步、OneDrive 同步、WebDAV、box 同步

支持

KeePass

免费

AES-256 算法加密

Mac、iOS、Windows、 Linux、Android 及主流浏览器

本地数据库模式

无法添加附件

支持 WebDAV、支持多种方式云同步(具体看软件)

支持

Bitwarden

普通版免费;个人:10 美元/年;家庭:40 美元/年

AES-256 算法加密

Mac、iOS、Windows、 Linux、Android 及主流浏览器

Bitwarden 服务器

无法添加附件

Bitwarden 服务器同步

支持

我认为一个最好用的密码管理软件,需要做的这几点:

  • 最好使用本地数据库存储;
  • 最好使用安全的加密手段,例如 AES-256 算法加密,端对端加密;
  • 最好可以自定义云同步,而非使用软件官方服务器存储;
  • 跨平台设备支持越多越好;
  • 支持自动填充;
  • 使用方式要简单,体验要友好。
  • 最好免费,其次是一次性购买后可永久使用,最差是付费订阅制。

上面几款软件,做的最好的是 1Password,这也是用户口碑最好的密码管理软件。但是 1Password 改成付费订阅制之后,如果想要长期使用这款软件,又是一笔不小的持续性投入。当然如果是不差钱,追求体验的商务人士,优先选择 1Password。

1Password 之后的替代选项是 Enpass。Enpass 采用的是 PC 端免费,手机端收费的模式。与 1Password 不同的是,Enpass 除了订阅制之外,还增加了一次性购买的服务,以前便宜的时候是 9.9 美元/单一平台终身,现在改成了 348 元/全平台终身。手机端免费版支持 25 个密码存储,可以先下载体验一下,再考虑订阅购买或者直接买断。

LastPass 免费版不支持多设备同步。之前又因为国内应用商店下架,删除了中文语言,导致使用起来并不方便,所以不再考虑。

当然,不考虑付费的话,我们可以选择 KeePass。这是一款开源密码管理系统,最大的优点就是完全免费,各个平台也有不同开发者提供的相关软件。当然,KeePass 的缺点就是有一定的上手难度,不建议新手尝试。当然,如果你愿意折腾,学会使用之后也会很方便。

免费版的另一个推荐是 Bitwarden,开源,免费,跨平台,安全,好管理。不想折腾,又想免费,还想有个良好体验的,可以选择 Bitwarden。这里有个小问题,Bitwarden 的密码库是存储在 Bitwarden 服务器上的,虽说 Bitwarden 服务器存储的密码是经过 AES-256 算法加密的,保证了安全性,但是如果某一天 Bitwarden 倒闭了,或者服务器出问题了,那么我们的密码同步也可能会跟着受影响。不过好在 Bitwarden 还支持自定义部署。强烈建议有 NAS 或者服务器的朋友,在自己的私有服务器上部署 Bitwarden。


5. 总结

现在我们完成了个人密码体系的制定和管理,既保证了账号密码的安全性,又保证了使用的方便性。大大提高了日常中对密码的使用效率。

总的来说,你可以按自己记得住的规律 「设置密码」,然后借助软件为你 「加密保存、自动输入」,把应付密码的时间和精力省下来,去做别的更有价值和意义的事情。


参考链接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 个人账号密码管理体系(账号篇)

    在这个信息化爆炸的年代里,我们拥有的网络社交账号越来越多。像 QQ、微信、微博、淘宝、京东、知乎、豆瓣、人人、抖音、快手、网易云音乐,甚至 Facebook、T...

    程序员充电站
  • 一次 WordPress 管理员账号密码泄露事件

    昨天明月经历了一件有关 WordPress 站点安全意识的奇葩事儿,很是凸显现在互联网甚至个人电脑的安全形势,今天就给大家分享一下这个经历,希望可以提高大家对站...

    明月云服务
  • 部署 bitwarden 管理个人密码

    用户可以直接下载软件使用,用的就是官方的服务器。它也可以以 docker 形式运行在自己的服务器上。

    饶文津
  • PassWord:一个简单的记录和管理多个账号密码的工具!

    我们有时候在很多网站都有账号,而且单个网站就有不少,这时候就很容易忘记了,而且有时候密码都喜欢搞一样,这样是很不安全的,这里就分享个很简单的工具,由吾爱的cc2...

    FreeRonin
  • PostgreSQL远程连接配置管理/账号密码分配 转

    说明:这个是由于没有配置远程访问且认证方式没改造成的,只需要更改使用账号密码认证即可。

    双面人
  • PHP 开源软件《个人管理系统》——修改密码

      现在有了登录功能,但是没有修改密码的功能。这次就把修改密码功能添加上去。

    全栈程序员站长
  • selenium配置有账号密码验证的代理

    小小咸鱼YwY
  • 铂链第3课 BOTTOS账户体系(密钥对/账号/钱包)的创建和管理

    通过前一课《铂链第2课 如何部署节点并加入BOTTOS测试网络?》的学习,同学们知道了如何搭建BOTTOS本地节点环境。 本课继续讲解BOTTOS账户体系中的...

    辉哥
  • 腾讯云开源应用 | Bitwarden_rs让你管理账号密码不再烦恼

    ? 背景 在互联网盛行的时代,账号密码信息的有效管理和我们的切身利益是紧密关联。随着登录注册过的网站和应用越来越多,账号和密码的管理也渐渐成为了我们上网体验...

    腾讯云DNSPod团队
  • 总是记不住账号密码?这有个贴心操作

    【5分钟玩转Lighthouse】系列文章将为大家分享轻量应用服务器使用教程,提供丰富的实践指南,帮助大家快速上手并获得最佳产品体验。本期主要介绍如何借力 L...

    腾讯云计算产品团队
  • Tomcat7配置管理员帐号密码及权限

    在使用tomcat时,若要使用管理监控功能,需要用用户名密码登录使用,而tomcat7默认是将用户是注释的,所以需要配置后使用,

    流柯
  • 强制找回GitLab管理员账户密码的方法

    为了开发运维工具,我们采用自行搭建的GitLab来管理所有代码。悲催的是最近忘记了管理员账户的密码,而且没有邮件服务器,因此无法接收密码找回的邮件,导致无法新建...

    bisal
  • 【超详细入门教程】通过xss获取管理员明文账号密码

    本文所讲的知识点很早就有,只是因为最近小伙伴讨论的比较多,而且很多小伙伴不太明确流程,故有了此文,大佬请忽略

    字节脉搏实验室
  • 使用Python编写自己的个人密码管理器

    只需要记住一个加解密密钥即可,对于各平台的密码,使用密钥加密后存储到数据库,查询时使用同一个密钥进行解密。

    Python小屋屋主
  • 低代码实现 IT 系统账号同步管理

    “低代码”是近两年来逐渐升温的概念,指企业的开发人员可以使用标准化的低代码产品和服务,通过在界面化和可视化的配置操作完成应用构建,如图形拖拽、参数配置、逻辑规则...

    玉符IDaaS
  • 【5分钟玩转Lighthouse】搭建bitwarden个人密码管理器

    现在各种网站和手机APP都要求设置密码和输入密码,每个人都要设置大量的密码。如果都设为统一密码,就存在一旦一个密码被攻破,其他密码都失效的情况。如果要分别设置为...

    风之泪
  • 我不改密码能怎样?

    文章大意是:昨天某媒体爆料说国内某大型电子商务平台发生了用户信息外泄事件。黑市上该数据集被明码标价进行交易。今日凌晨,该平台已经作出回应,承认因2013年的系统...

    王树义
  • typecho管理员帐号密码忘记的修改方法

    步骤1: 登录你的PHPMYADMIN账户,如果连PHPMYADMIN账户的密码都忘了请直接点屏幕右上角的X。 打开typecho安装数据库,找typecho_...

    xcsoft
  • 人事管理系统为你解剖JSP

    之前写过两篇学习JSP的博客,《Java匹马行天下之JavaWeb核心技术——JSP》https://www.cnblogs.com/zyx110/p/1092...

    泰斗贤若如

扫码关注云+社区

领取腾讯云代金券