• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Linux 系統(tǒng)中的口令加密函數(shù)及其應(yīng)用

      2016-03-07 12:08:45吳艷婷方賢進(jìn)
      電腦知識(shí)與技術(shù) 2015年35期
      關(guān)鍵詞:操作系統(tǒng)

      吳艷婷 方賢進(jìn)

      摘要:操作系統(tǒng)以及各種應(yīng)用系統(tǒng)中的賬戶口令(password)是不能以明文形式存放在數(shù)據(jù)中的,這是因?yàn)閿?shù)據(jù)庫(kù)安全一旦出現(xiàn)問(wèn)題,口令泄露會(huì)造成很大的損失。操作系統(tǒng)及各種應(yīng)用系統(tǒng)的賬戶口令都是加密的。該文詳細(xì)地論述Linux系統(tǒng)中用戶口令的加密機(jī)制及相關(guān)知識(shí),通過(guò)實(shí)例研究了利用函數(shù)crypt( )的加密機(jī)制及其應(yīng)用。

      關(guān)鍵詞:操作系統(tǒng);賬戶口令;Linux系統(tǒng)

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)35-0048-02

      1 口令的保護(hù)機(jī)制

      無(wú)論是操作系統(tǒng)的用戶帳號(hào)還是各種應(yīng)用系統(tǒng)的用戶帳號(hào)都是以加密后保存或求其hash值之后保存的,否則數(shù)據(jù)庫(kù)的泄漏會(huì)導(dǎo)致嚴(yán)重的問(wèn)題。例如CSDN網(wǎng)站因?yàn)橐粋€(gè)漏洞整站數(shù)據(jù)庫(kù)被拖下來(lái),用戶帳戶名和口令全部暴露。這帶來(lái)一個(gè)更嚴(yán)重問(wèn)題,很多人在不同的站點(diǎn)上使用的都是同一個(gè)用戶名和口令,別人拿著這個(gè)被暴露出來(lái)的口令到其他各大網(wǎng)站(如淘寶、支付寶、網(wǎng)銀等)試一下,用戶的損失將非常嚴(yán)重。

      1.1 求用戶口令的Hash值

      Hash值是對(duì)消息(Message)求其單向映射函數(shù)得到消息摘要,比較流行的hash函數(shù)有MD5[1],SHA1[2],SHA256, SHA512, RipeMD等。例如對(duì)消息m=“anhui university of science and technology“,求其MD5和SHA1的消息摘要分別為128bits和160bits的hash值(以16進(jìn)制表示):

      MD5(m)=67198f358ed8cf0db2cce1ccab8005dc

      SHA1(m)=747ec011da942f5bc72a8493cd3d51f5d09bc245

      若對(duì)用戶設(shè)置的口令用其hash值后再放到數(shù)據(jù)庫(kù)中保存,然后每次用戶登錄時(shí)先對(duì)用戶輸入的口令計(jì)算其hash值,再與數(shù)據(jù)庫(kù)中保存的hash值比較進(jìn)行用戶登錄身份的驗(yàn)證,這樣即使數(shù)據(jù)庫(kù)泄露,別人也無(wú)法通過(guò)那個(gè)hash值得到用戶的真實(shí)口令。

      1.2 salt的使用

      在一定程度上別人得到 hash值之后,的確幾乎不可能逆向算出原始口令。但用戶的口令設(shè)置通常比較簡(jiǎn)單、容易構(gòu)造,只要盡可能多地列舉常見(jiàn)密碼然后求其hash值得到對(duì)應(yīng)關(guān)系表(被稱為彩虹表,Rainbow Table)[3],就比較容易得到原始口令,因?yàn)楝F(xiàn)在黑客們已經(jīng)構(gòu)造出TB量級(jí)的彩虹表。因此,采用加鹽(salt)的方法來(lái)加大口令被猜解的難度。具體來(lái)說(shuō)就是在用戶設(shè)置口令后,再隨機(jī)生成一個(gè)字符串(即salt),把口令和salt用某種方式組合起來(lái)(即加salt)然后再計(jì)算hash值后放入數(shù)據(jù)庫(kù)中,同時(shí)把隨機(jī)生成的salt也放入數(shù)據(jù)庫(kù)中。用戶登錄時(shí),從數(shù)據(jù)庫(kù)中取出對(duì)應(yīng)的salt,再和用戶輸入的口令組合一下求 hash值,與數(shù)據(jù)庫(kù)中的 hash 值比對(duì)進(jìn)行用戶登錄身份認(rèn)證。

      Salt的使用還能在一定程度上避免在用戶輸入的口令一樣的情況下,得到同樣的hash值。

      2 Linux系統(tǒng)中用戶口令的加密機(jī)制

      Crypt( )是Unix/Linux操作系統(tǒng)中的口令加密函數(shù),它是基于DES加密的[4]。 Crypt()是單向加密的,因此它只適用于口令加密存儲(chǔ)與驗(yàn)證,不適合文件資料加密。該函數(shù)的調(diào)用格式為:

      char *crypt(const char *key, const char *salt);

      函數(shù)調(diào)用參數(shù)中的key是用戶口令,但只使用key中每個(gè)字節(jié)的低七位,如果口令長(zhǎng)度超過(guò)8字節(jié),則只有前8個(gè)字節(jié)有效。用此方法得到56bits的DES加密密鑰,用來(lái)加密一個(gè)通常是由0組成的常量字符串。得到的加密結(jié)果是由13個(gè)字節(jié)組成的可顯示的ASCII字符,其中包含開(kāi)頭的2個(gè)salt字符。該函數(shù)中的salt使用兩個(gè)字節(jié),每個(gè)字節(jié)可從[a-z A-Z 0-9 ./]共64個(gè)字符中選擇,因此同樣的口令增加了4096種可能性(64*64)。

      對(duì)于Linux系統(tǒng)中crypt( )函數(shù)的加密機(jī)制,我們可以與Linux操作系統(tǒng)所采用的口令加密機(jī)制進(jìn)行比較,看加密結(jié)果是否相同,如果不相同則Linux系統(tǒng)不是使用了簡(jiǎn)單的crypt( )函數(shù),可能加了crypt 插件或使用了不同的加密函數(shù),例如使用了shadow、pam機(jī)制等。此種狀況下加密結(jié)果是不同于cryptword.c程序的。例如圖1中的Linux系統(tǒng)用戶口令的加密結(jié)果為34個(gè)字節(jié),而程序cryptword.c的口令加密結(jié)果為13個(gè)字節(jié)。

      另外也可以將程序cryptword.c與Apache軟件所附帶的htpasswd程序進(jìn)行口令加密結(jié)果比較。先用htpasswd建立口令文件passfile,同時(shí)建立用戶tom,口令設(shè)置為19450815。

      其中的命令行參數(shù)中輸入的”k/”是htpasswd程序進(jìn)行口令加密時(shí)所使用的salt。此驗(yàn)證說(shuō)明Apache軟件附帶的htpasswd程序的加密方法也是使用crypt( )函數(shù)加密的。

      4 總結(jié)

      在Linux系統(tǒng)中crypt( )函數(shù)所使用的口令加密機(jī)制中,由于只使用了用戶的口令56bits作為DES加密算法的密鑰,密鑰空間的大小=256≈7.2*1016,如果用并行計(jì)算機(jī)對(duì)用戶口令的所有值進(jìn)行強(qiáng)力搜索的話,其安全性得不到保障。因此在設(shè)置口令時(shí)應(yīng)盡量避免使用常見(jiàn)的單詞和姓名,即禁止弱口令的使用。另外,Linux系統(tǒng)為了保護(hù)加密后的口令,對(duì)文件/etc/shadow采用了訪問(wèn)控制機(jī)制,該文件只有root賬戶有訪問(wèn)權(quán),并且該文件屬性為400。

      參考文獻(xiàn):

      [1] MD5[EB/OL]. http://baike.baidu.com/view/2313810.htm.

      [2] SHA1[EB/OL]. http://baike.baidu.com/view/1228622.htm.

      [3] RainbowCrack[EB/OL]. http://project-rainbowcrack.com/table.htm.

      [4] 谷利澤,鄭世慧,楊義先. 現(xiàn)代密碼學(xué)教程[M]. 2版. 北京:北京郵電大學(xué)出版社, 2015.

      猜你喜歡
      操作系統(tǒng)
      智能手機(jī)操作系統(tǒng)的分析與比較
      卷宗(2016年10期)2017-01-21 14:04:15
      國(guó)產(chǎn)桌面操作系統(tǒng)中虛擬化技術(shù)應(yīng)用研究
      計(jì)算機(jī)維護(hù)中操作系統(tǒng)還原技術(shù)的分析
      對(duì)計(jì)算機(jī)進(jìn)行操作系統(tǒng)重裝的維護(hù)
      操作系統(tǒng)實(shí)踐教學(xué)改革探索
      基于虛擬機(jī)(VMware)的實(shí)驗(yàn)平臺(tái)構(gòu)建
      基于單片機(jī)的嵌入式系統(tǒng)的開(kāi)發(fā)研究
      計(jì)算機(jī)操作系統(tǒng)中死鎖問(wèn)題研究
      “操作系統(tǒng)原理”實(shí)驗(yàn)教學(xué)設(shè)置初探
      高校操作系統(tǒng)課程教學(xué)改革的研究與實(shí)踐
      油尖旺区| 舒城县| 临夏县| SHOW| 乐山市| 涞水县| 广宗县| 昌邑市| 峡江县| 资兴市| 望江县| 永春县| 高陵县| 海南省| 泽库县| 康乐县| 新和县| 雅安市| 闽清县| 浏阳市| 武义县| 延长县| 肇庆市| 临朐县| 岗巴县| 奉新县| 鹤壁市| 锦州市| 五常市| 甘南县| 莱西市| 新宁县| 新巴尔虎右旗| 黔西| 兰坪| 和田市| 阳西县| 涿州市| 卢氏县| 雅江县| 红安县|