|
網(wǎng)絡技術是從1990年代中期發(fā)展起來的新技術,它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡、傳感器等。 當前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡則被認為是互聯(lián)網(wǎng)發(fā)展的第三階段。 1.2.1 蠻力攻擊與字典攻擊 構造一個Crack程序,有兩種方法可選擇,一種是使用蠻力攻擊,另一種是字典攻擊。下面,分別估算一下它們的效率。 Unix一共是 [0x00~0xff] 共128個字符,小于0x20 的都是控制符,不能輸入為 口令, 0x7f 為轉義符, 不能輸入。 那么總共128- 32 - 1 = 95 個字符可作為口令的字符。 即10(數(shù)字)+33(標點符號)+26*2(大小寫字母) = 95個。 首先估算蠻力攻擊的嘗試次數(shù)。很顯然,該值為m的n次冪。其中,基數(shù)m為可能使用的字符集的大小;冪次n為口令的長度。分下面幾種情形討論: 僅使用字母的組合序列,則m = 26*2 = 52。 使用字母數(shù)字的組合序列,則m = 52 + 10 = 62。 使用字母數(shù)字以及特殊字符的組合序列,則m = 95 表1.3列舉幾個例子,計算所需的嘗試次數(shù)K,對其數(shù)值大小得到一個較確切的印象。 表1.3 不同字符集與長度的口令嘗試次數(shù) M N K 52 5 38,0204,032 52 6 19,770,609,664 52 7 1,028,071,702,528 62 5 916,132,832 62 6 56,800,235,584 62 7 3,521,614,606,208 95 5 7,737,809,375 95 6 735,091,890,625 95 7 69,833,729,609,375 從該表中可以看出,隨著字符集的擴大與口令長度的增大,所需的嘗試次數(shù)明顯增加。選擇盡量大的字符集和較長的口令,能獲得較高的口令安全。 但如果5個字母是一個常用漢字的拼音或英文單詞,估算一下設常用詞10000條, 從10000個常用詞中取一個詞與任意一個數(shù)字字符組合成口令,即:10000* 10 = 100000 (10萬種可能性)。因此,借助于資料字典的幫助,可以使Crack的效率大大提高。 1.2.2 數(shù)據(jù)字典 目前,在因特網(wǎng)上,有一些數(shù)據(jù)字典可以下載,包含的條目從1萬到幾十萬條。數(shù)據(jù)字典一般囊括了常用的單詞。 也許有人認為:我的口令毫無規(guī)律可言,字典中不會有,因此,計算機是破譯不了的,那就大錯特錯了。有很多專門生成字典的程序,比如:Dictmake、txt2dict等等。以dictmake為例:啟動程序后,計算機會要求輸入最小口令長度、最大口令長度、口令包含的小寫字符、大寫字符、數(shù)字、有沒有空格、含不含標點符號和特殊字符等一系列的問題。當回答完了計算機提出的問題后,計算機就會按照給定的條件自動將所有的組合方式列出來并存到文件中,而這個文件就是資料字典。 1.2.3 讀寫口令文件的一組子程序 為了對/etc/passwd文件進行方便的存取,我編寫了一組訪問/etc/passwd文件的子程序?勺x取文件的用戶條目入口項或?qū)懭胄碌挠脩魲l目等。這組子程序可用于編寫Crack程序。 Getpwuid()函數(shù)即可從/etc/passwd文件中獲取指定的UID的用戶條目。Getpwnam()函數(shù)則對于指定的登錄名,在/etc/passwd文件檢索用戶條目。getpwent(),setpwent(),endpwent()等函數(shù)則可對口令文件作后續(xù)處理。 Getpwuid()與Getpwnam()返回一指向passwd結構的指針,該結構定義如下: struct passwd { char * pw_name; /* 登錄名 */ char * pw_passwd; /* 加密后的口令 */ uid_t pw_uid; /* UID */ gid_t pw_gid; /* GID */ char * pw_age; /* 代理信息 */ char * pw_comment; /* 注釋 */ char * pw_gecos; char * pw_dir; /* 主目錄 */ char * pw_shell; /* 使用的shell */ char * pw_shell; /* 使用的shell */ 首次調(diào)用getpwent(),可打開/etc/passwd文件并返回指向文件中第一個用戶條目的指針,并保持調(diào)用之間文件的打開狀態(tài),再調(diào)用getpwent()便可順序地返回口令文件中的各用戶條目。而調(diào)用setpwent() 又可把口令文件的指針重新置為文件的開始處,最后使用完口令文件后調(diào)用endpwent() 可關閉口令文件。 網(wǎng)絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發(fā)展,這正是網(wǎng)絡迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!