初探网路安全(三):怎麽取一个「好」的密码?在不同网站想密码的策略

昨天提到骇客暴力破解密码的方式,我们接着这个话题继续,最後来聊聊怎麽取一个好一些、实用一些的密码吧!

骇客怎麽大量尝试密码?

大家自己在输入密码登入时,应该都有注意到多数网站会限制输入密码错误的次数,那麽骇客要怎麽快速的尝试多组密码呢?

要在 3 次或 5 次之内试出密码,这样走正规的登入显然会被服务器挡住,既然要想方法和服务器周旋,那为何不直接以骇入服务器主机为目标呢?

对耶,这样做只要拿到主机权限,里面所有使用者的帐号密码就全部拿光光了!攻击的目标从众多的使用者被缩小成主机的管理者。但这样做的一个问题是,主机中储存的密码如果被 Hash 过後,骇客也没办法反推回去。

但没关系,有了这串乱码,骇客就没有测试的上限了!

暴力测试密码是否符合 Hash Code
*暴力测试密码是否符合 Hash Code

只要拿常见的密码测、拿字典里的单字测、把有可能的组合都测一测,就有机会攻破某个使用者的密码。

Hash 後的密码就一定安全吗?

那麽密码被 Hash 之後就会是安全的吗?当然不是!

为了要验证密码是否是正确的,当你在登入时输入的密码会再被 Hash 一次,和储存的 Hash Code 来做比对,假如是同一组密码的话,经过 Hash 出来的结果自然就会匹配。

因此拿到所有 Hash Code 的骇客,就可以任意的尝试密码的组合,就像一般使用者登入一样,把要尝试的密码以同样的 Hash 函式跑过一遍,得到 Hash Code 再比对即可。

不过 Hash 过的密码,只要原本取的好,也不是不安全的。因为现在常用的 Hash 函式,例如 SHA256,都有一个特性:就是改了一个字元就会让整个输出结果完全不一样。

也就是说透过观察 Hash Code 几乎无法回推原始密码为何,纵然你手中握有类似的密码。例如 password122password123 被 SHA1 这个 Hash 算法所运算出的结果,是 8dc32b0ebd38d5cc80b0aedb65dee2a96bbdfa76 以及 5eff8bb44b6170d4fd4e8636643c93ad68294982,只差一个字元的密码,输出的结果却截然不同。

怎麽取密码才好?

讲了这些密码如何被骇客所破解的技巧,就知道取一个好密码的重要性了!那麽一个难以破解的密码需要什麽条件呢?

  • 密码尽可能长:由於「试」出密码的难度和密码长度成指数关系,越长的密码就需要花越久的时间才能被破解
  • 密码的特殊符号尽可能多:如果每个字元的可能性不限於英文字母及数字,而包含各种符号(前提是网站允许),则密码组合的可能性也大幅增加
  • 组合尽可能随机:由於「试」密码的方式常被用字典中的字搭配数字等组合,你越不用常见字词而改用越乱的方式组合密码,被试出密码的可能性也就越低

好的,以上提了几点「较难以破解」密码的特徵,但现实上  呢,根本做不到吧!取了一个复杂到难以记忆的密码,下次不但输入慢,更可能会忘记密码。

由於怕忘记密码,可能有些人就把密码写在便条纸上贴在萤幕旁,这岂不是更本末导致了?

怎麽取密码更好?在不同网站怎麽取?

因此好记的密码也会是一个很重要的考量,以下几点供大家参考。

取个长一点的密码其实就很有效了,虽然不用字典中出现的字可以提高难度,但不方便记忆,用多一点的单字组合难度也不会太低,如:it's-a-really-long-password-la 这样的密码就不太容易重复到,并且比较容易记。

再来就是加入自己的规律,例如每 1, 2, 3, 5, 8, ... (Fibonacci number) 个字母大写,像是 IT's-a-ReallY-long-pAssword-la 等等,又或是在某个位置加入特殊符号。把这样的规律运用在每个网站,就不容易忘记了。

说到网站,用一组密码打天下显然不太好,但又要好记怎麽办呢?同样也是加入自己的规律,例如在 Google 注册,可以把 Google 的名称放在密码里,例如 googleit's-a-really-long-password-la;若是在 Yahoo 就取 yahooit's-a-really-long-password-la 这样放在密码前的做法。

如此一来就可以用一组熟悉的密码,配上不同网站专属特性的规律组出不同的密码。除非刚好有两个网站同时被破解,还特地找出你的密码差异为何,不然安全性和实用性应该都是不错的。

小结

想不出好密码的话,也还能用市面一些密码管理软件,例如 1Password、LastPass 等等都是不错的工具。

但在注重密码之外,其实我们更该注意的是资安意识。

往往密码泄漏出去不是透过上述的这些方法被硬找出来的,而可能是不小心点了钓鱼网站、在网站或 Email 中分享密码,甚至是写在便条纸上贴在明显的位置。


<<:  大共享时代系列_021_远端桌面软件(远端连线)

>>:  必然 (2) 形成ing - Becoming

[Day 17] IOCP 实作

前言 今天简单实践了最基本的 IOCP http server , 原则上是用我第二天写的 one2...

Day1 - 序言 - 成为Canvas Ninja ~ 理解2D渲染的精髓

SO Just Who The Hell Am I? 大家好! 首先先介绍一下我自己, 我是Mizo...

铁人赛 Day28 -- AOS.js -- 滚动到元素的位置时,才开始动画

前言 相信很多人都会看到在滑动网站时,滑到一个地方就会出现动画,滑回去再滑回来又会再出现一次, 那这...

【Day6】情蒐阶段的小工具 ─ 另外那篇

哈罗~ 昨天我们介绍了线上可用的情蒐工具, 今天再来介绍几个情蒐工具,请先安装Kali Linux或...

第27天-CSS-影像(3-1)

之前有介绍过在HTML中影像的插入及基本处理 这次的文章内容主要的内容会是使用CSS处理影像的部分 ...