保护密码

由于网路的不断普及、和国际网路的迅猛发展﹐网路安全变得越来越重要了。而保护网路的第一道防线就是使用者帐户和密码的。不过道高一尺﹐魔高一丈﹐许多网路攻击者都能借助简单的工具就可以破解使用者密码了。

密码的存储方法

在 Linux 系统里面﹐所有的使用者名称和密码都存储在 /etc/passwd 这个档案里面﹐不过密码部份则是经过加密(encryption)处理的﹐所以﹐即使你打开了这个档案﹐也不能够直接看到原来的密码的。我们称这样的保密方法为“编码(enconde)”﹕当使用者输入密码之后﹐系统挑选一个随机产生的变化数值(salt),连同使用者输入的文字作编码处理而转换成其它文字﹐而这个 salt 也随著转变后的文字一起存储起来。

所以当您从密码档案看到的字元﹐已经不是原来的密码了。如果使用者重新登录系统﹐其所输入的密码会再被使用相同的方法转码﹐看看其结果是否和存放在密码档的编码一致﹐如果一致﹐则可以通过﹔否则不予放行。

由于用作密码加密的演算法是一种单向的杂凑演算法是不可逆解的:它只能针对输入内容产生杂凑结果,若输入内容一致,那结果就一致。不同的输入透过该演算法所产生的结果是不可能一致的。换而言之,要将这个转变后的字码翻译成原来的样子似乎是件不可能的任务

破解密码的方法之一

若您有机会访问有过入侵系统经验的骇客,或看过他们的心的分享,您或许会讶异:原来许多密码都是靠猜得来的!将帐号名称照打一遍、或倒过来打,或用使用者的姓名或生日,或是对方的配偶、小孩、宠物名称,或是用 password、god、123456、abcdefg、2002、qwerty、等等来 try try 看… 居然有很大机会获得对方的密码呢~~~

破解密码的方法之二

此外,一般的骇客都知道﹕大部份使用者喜欢使用现成的字词来做密码﹐因为他们实在怕忘记了密码之后找网路管理员时候所看到的黑脸。骇客们就可以使用收集有各种常用字的字典﹐然后逐个的进行 salt 采样﹐再用同样的演算法来作杂凑处理,最后一一对照密码档案上面的编码﹐从而猜到原来的密码。当然﹐他们不会笨到用手工来计算和比较啦﹐骇客们通常不是程式高手也会利用别人写的程式来完成这个工作的。这个就是著名的“字典破解法”了。

破解密码的方法之三

假如使用者避免了字典所能找到的词(或变种)来作密码呢?那骇客们难道就没法破解了吗?非也,破解者大可用程式对所有能用来作密码的字元(例如 ASCII 编码)进行所有的组合尝试,再以同样方法作 salt 采样,然后再以同样的演算法来比对结果,那么,总有一天密码还是能破解的。这就是所谓的“暴力破解法”了。

破解密码的方法之四

有些人要努力的工作﹐有些人则聪明的工作。一些骇客不一定要使用到非常高深的破解技能就可以轻易的获得使用者密码了。靠的是什么﹖答案是﹕“靠骗﹗”。试想一下﹕在一些大型的机构里﹐各部门之间并不是经常见面的。比如您在会计部门工作的﹐当电脑坏了﹐通常会先打个电话问 Help Desk ﹐如果能在电话里面解决﹐您根本就不知道对方的模样是怎样的﹐而且下次或许又是另外一个人了﹔就算资讯组需要派人来修理﹐也未必是每次同一个人。

所以﹐假如有一天﹐当某人自称来自资讯部门﹐用非常礼貌而又不显唐突的语调在电话中跟您说﹕“因为公司的网路需要重新调整﹐所有帐号都需要重新设定﹐请求您把旧密码报上来﹐好作安排”诸如此类﹐我想有一半人会老实作答﹐即使有所怀疑﹐也未必到处求证。就算您马上提出质疑﹐对方大不了挂上电话而已﹐恐怕您也不会劳师动众去追查电话来源吧﹖

不如调过来吧﹕您是网路管理员。忽然接到电话﹐对方报称为某某职员﹐使用某某账号﹐昨天刚换了密码﹐不过今天忘记了﹐问说可不可以重新帮他设定密码﹖如果贵公司制度不严﹐或您工作随便﹐搞不好﹐马上大手一挥﹐霹雳吧啦一轮键盘敲击﹐就把对方打发走了。您又几何会想过对方是一个骇客呢﹖

又假如﹐某天您获得自称某 ISP 发来的 email ﹐恭喜您被选中获得终身免费帐号﹐要求回报帐号和密码﹐好为您转换帐号类型。我想﹐您这么聪明是不会上当的啦~~~ 但您难保九十九个聪明人之外﹐还有一个大笨蛋会和盆托出哦。

你看﹖是不是很容易就获得密码了呢﹖虽然通常这样获得的密码都不具备什么权限﹐但既然通向网路之门已经打开了﹐再稍作努力点﹐获得密码档案﹐然后使用字典或暴力破解﹐再获得管理员密码﹐只不过是时间与耐性的问题而已。前面所描述的,您或许已经听过了,它叫“社交工程”。

正确的使用密码

要对付第一种破解方法很简单:避免用您身边的事物或其变种作密码就行了。我相信您的银行提款卡不是用您的生日作密码的吧? ^_^

对付第二种及第三种方法﹐可以使用 shadow password 来限制使用者接触到密码档案。同时﹐您最好别使用现成的词语做密码﹐任何连贯的字串都不可取。最好使用字母(伴随一两个大小写)﹑数字﹑符号的混合﹐横看竖看都看不出个意思就好。而且﹐密码长度不能太短,也要定期更换密码﹐更换时也不要重复以前的密码。

至于对付第四种方法﹐只能要求您任何时候都保持高度警觉性﹐永远不对任何人说出您的密码﹐不管对方说得如何动听和诱惑。要记住一点﹕就算是网路管理员﹐也无权获得您的密码。而且﹐永远用脑子来记密码﹐不要用笔写出来。假如您是一个网路管理员﹐更加要小心保护好自己的密码和经常转换密码﹔而且永远不信任任何人的电话要求去更改密码﹐一定要按照严格的程序进行。

设定/记忆密码的技巧

您或许觉得这样很难记住密码吧﹖哈哈﹐这就对了﹕越难记住就越好﹗不过﹐您却不要把密码写在便条上﹐然后贴在屏幕顶端﹐还大大个字的提示著﹕“密码”﹗这样和设不设密码有什么分别呢﹖如果密码忘了﹐也不用怕难为情﹐多数网路管理员在接到申请表后都很乐意帮您进行修改﹐并且会通知和提示您重新设定好密码的。假如您碰到个爱摆黑脸的家伙﹐如果他是我管的话﹐直接向我投诉好了﹐我保证您以后也不会碰到他再给脸色您看。

如前所见,一个良好的密码最好是这样子的:自己易记、别人难猜。要作到这点并不难,下面我为大家介绍几种方法:

  • 用句子作密码:没错,自己随便想一句您认为好记的句子,例如:i wanna win a lotto tonight! 。稍作一下变化就是一个很好的密码了:I Wanna Win A $Lotto 2night! ,虽然打起来很慢,但是,这样的密码是绝对安全及好记的。
  • 找一些与你心上人或你们的罗漫史相关的资料,然后稍加变化,例如:你的男朋友叫 netman ,他的生日是 1971/1/8 ,那麽下面的密码将是不错的:Net1970@maN0108 。方法是:将 net 与 man 拆开,并将 n 作大写,再将生日的年与月日拆开,最后将各部件兜在一块,并在中间加个 @ 的符号。这样的密码不但好记,而且绝对不会忘了 buy your darling a birthday gift ^_^ ,尤其是那些经常换男/女朋友的人来说,最好用不过了 ^_^ 当然,除了生日,甚麽第一次相遇、接吻、失身、结婚、外遇、等等的地点/日期,都是您的密码好材料!
  • 用您习惯的中文输入法打一串字,如:老板是猪八戒!然后挑一两个大写、加两个标点符号,那就成了一个上佳的密码了。
  • 或再偷懒一些,用您的机车车牌号码,如:ABC567 ,然后将字母往后拨、数字往前调:BCD456 ,再打散组合:B4C5D6 ,再插两个符号:B4C#$5D6 ,那也勉强是个密码了…

总之,方法很多,自己抓出一套方法就好(千万别告诉别人您所用的公式),然后随便抓些好记的来作种子,再代入公式,那就是您的好密码了…

发表评论