在現(xiàn)實(shí)中,黑客攻擊Intranet目標(biāo)的時(shí)候,90%會(huì)把破譯普通用戶的口令作為第 一步。先用“finger 遠(yuǎn)端主機(jī)名”找出主機(jī)上的用戶賬號(hào),然后用字典窮舉法進(jìn)行攻擊。因?yàn)槭聦?shí)上,很多用戶都把自己常用的英文單詞或者自己的姓名作為口令。通過一些程序,自動(dòng)地從計(jì)算機(jī)字典里面去找單詞作為用戶的口令輸入給遠(yuǎn)端的主機(jī),嘗試進(jìn)入系統(tǒng)。這個(gè)破譯過程是由程序來完成的。大概十幾個(gè)小時(shí)就可以把字典里的單詞都完成。這類程序的典型代表是LetMeIn version 2.0。
如果這種方法不能奏效,黑客就會(huì)仔細(xì)地尋找目標(biāo)的薄弱環(huán)節(jié)和漏洞,伺機(jī)奪取目標(biāo)中存放口令的文件shadow或者passwd。在現(xiàn)代的Unix系統(tǒng)中,用戶的基本信息都是存放在passwd文件中的,所有的口令都經(jīng)過DES加密后專門放在shadow文件中,處于嚴(yán)密的保護(hù)下。老版本的Unix的口令都在passwd文件中。一旦獲得了這個(gè)文件,就可以用專用的破解DES加密算法的程序來解析口令。
口令的取值范圍
在Unix下,可以當(dāng)作口令來用的字符一共有:
10(數(shù)字)+33(標(biāo)點(diǎn)符號(hào))+26×2(大小寫字母) =95個(gè)
如果口令取任意5個(gè)字母+1 位數(shù)字或符號(hào)的可能性是:
52×52×52/×52×52×43=163億。
但是如果5個(gè)字母是常用的詞,那么假設(shè)常用的詞是5000個(gè),考慮到大小寫,可能性將有:
5000×(2+2+2+2+2)×43= 688萬(wàn)種可能性。
這已經(jīng)可以利用微機(jī)來進(jìn)行窮舉了,這樣的簡(jiǎn)單口令用不了3分鐘就能破譯,如果有人用P200進(jìn)行攻擊,那么一周內(nèi)可以進(jìn)行200次攻擊,所以6位的口令都是很不安全的。
遺憾的是許多用戶都是這么設(shè)定的,而黑客不需要破解所有用戶的口令,他們只需要一個(gè)普通用戶的口令就足夠了,只要潛入系統(tǒng),就可以利用系統(tǒng)的漏洞而獲得系統(tǒng)的控制權(quán),所以使用簡(jiǎn)單口令是對(duì)整個(gè)主機(jī)安全的不負(fù)責(zé)任,這是首先我們應(yīng)該重視的問題。
為什么口令的解密是相對(duì)容易的事呢?這是因?yàn)槟壳皬V泛使用口令加密算法是完全公開的DES算法,這種算法之所以公開,是因?yàn)橐恢睕]有人能找到一種方法逆向解開它加密的信息。
DES現(xiàn)在的加密算法在Unix下的生成程序叫Crypt,它的源碼在標(biāo)準(zhǔn)GUN分布式系統(tǒng)C庫(kù)中可以找到。
Crypt的版本可能不同,但是它的一般過程如下:
·以明碼正文(或密碼術(shù)語(yǔ))形式取出口令?! ?nbsp;
·把口令作為關(guān)鍵字,用一系列的“0”進(jìn)行加密(共64位),編碼結(jié)果成為加密正文?! ?nbsp;
某些Crypt版本,尤其是Cryp(3),采用將上述結(jié)果再進(jìn)行加密,可以說是相當(dāng)堅(jiān)固的。
密碼算法(DES)把一個(gè)64位的二進(jìn)制值轉(zhuǎn)變成以56位變量為基礎(chǔ)的、唯一的64位二進(jìn)制值。如果只用全64位輸入,并且如果56位變量是隨機(jī)選取的,則除了用已知的DES輸入輸出值去嘗試所有可能的關(guān)鍵字外,是沒有什么技術(shù)能夠發(fā)現(xiàn)DES選擇的關(guān)鍵字的,因?yàn)?6位的關(guān)鍵字存在超過 7×1016種可能性?! ?nbsp;
新聞熱點(diǎn)
疑難解答
圖片精選