徐 暢(湖南安全技術(shù)職業(yè)學院,湖南長沙,410151)
?
基于MD5與隨機數(shù)組合的加密算法在用戶身份驗證中的應(yīng)用
徐 暢
(湖南安全技術(shù)職業(yè)學院,湖南長沙,410151)
摘要:用戶身份驗證是保障信息系統(tǒng)安全的第一道關(guān)卡,本文選取了MD5加密算法,在此算法基礎(chǔ)上將MD5與隨機數(shù)相結(jié)合對用戶信息進行加密,從而增強了用戶身份的識別和驗證,保障了整個系統(tǒng)數(shù)據(jù)信息的安全。
關(guān)鍵詞:信息系統(tǒng);用戶身份驗證;MD5算法改進
隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,現(xiàn)在的軟件信息系統(tǒng)多半都是基于WEB應(yīng)用,但是由于 Internet網(wǎng)絡(luò)協(xié)議本身就存在著許多的安全隱患,所以在互聯(lián)網(wǎng)上進行信息的傳輸存在著很大的風險,因此有關(guān)系統(tǒng)的安全問題變得越來越突出。
基于B/S模式的管理信息系統(tǒng)的登錄模塊,通常采用在系統(tǒng)登錄頁面由用戶輸入用戶名和密碼的方式進行用戶身份認證,而這些用戶名和密碼信息都是存放在后臺數(shù)據(jù)庫的一張用戶信息表中。由于用戶名和用戶密碼信息都是通過Internet網(wǎng)進行傳輸,很容易被有心人盜取,這就意味著用戶的所有信息將都被泄露。因此,如何對系統(tǒng)用戶的身份進行驗證,就變得尤為重要了。
系統(tǒng)一般通過輸入用戶名和密碼的方式對用戶身份的合法性進行認證。具體做法是:在后臺數(shù)據(jù)庫中建立一張用戶信息表,這張表中至少包括兩個字段:用戶名字段和用戶密碼字段。當用戶登錄時,程序?qū)⒂脩糨斎氲挠脩裘兔艽a與數(shù)據(jù)表中的信息進行比對,如果用戶名和密碼都一致,說明這個用戶是一個合法用戶,通過身份驗證,允許進入系統(tǒng);反之,則是一個非法用戶,拒絕進行系統(tǒng)訪問。
由于用戶名和密碼在數(shù)據(jù)表中存儲的時候,通常采用的就是原文保存,所以這一種用戶名加密碼的身份驗證方式存在了很大的風險。首先,由于用戶名和密碼通過開放的互聯(lián)網(wǎng)進行傳輸,很容易被監(jiān)聽軟件竊??;其次,如果有人得到存放用戶信息的數(shù)據(jù)表,這就意味著用戶所有的信息都將泄露無疑;特別是具有系統(tǒng)最高權(quán)限的系統(tǒng)管理員,可以直接查看系統(tǒng)中的任何信息,這些對于系統(tǒng)來說都是很危險的。
對于以上所提到的用戶身份驗證的問題,其實可以采用MD5加密算法來解決。
MD5的全稱是Message一Digest algorithm5(信息一摘要算法),MD5算法是一種單向不可逆的算法,也就是說對于經(jīng)過MD5算法所生成的密文求逆對應(yīng)著無窮個解。
在新用戶注冊的時候,用戶密碼首先進行了一次MD5加密運算,然后才被保存到數(shù)據(jù)庫當中。當用戶在希望登錄系統(tǒng)時,首先進入到登錄頁面,并且在頁面里輸入用戶名和用戶密碼,客戶端會對剛輸入的用戶密碼進行一次MD5加密運算,然后再將用戶名和加密后的用戶密碼傳給服務(wù)器;服務(wù)器根據(jù)接收到的用戶名,查找到數(shù)據(jù)庫當中用戶注冊時保存的加了密的用戶密碼,再和剛接收到的加密用戶密碼進行比較;如果經(jīng)過MD5加密運算后的用戶密碼和數(shù)據(jù)庫中存儲的用戶密碼密文一致,則通過該用戶的身份驗證,否則拒絕訪問。整個認證過程如圖1所示。
圖1 采用MD5算法實現(xiàn)用戶身份認證過程
在這一用戶身份認證過程當中,用戶密碼經(jīng)過MD5加密算法后以密文的形式在網(wǎng)絡(luò)上進行傳送,即使被黑客和監(jiān)聽軟件盜竊,也需要進行解密,才能得到用戶的真實密碼。同時用戶密碼的存儲是以密文的形式保存在數(shù)據(jù)庫當中,這也可以防止有系統(tǒng)管理員權(quán)限的用戶直接查看用戶密碼。
然而這種用戶身份認證方式,卻存在一個很大的安全隱患,那就是如果黑客竊取到了用MD5算法加密后的用戶密碼,他到底能不能解密。而目前對于MD5加密算法的攻擊通常采用以下方式:
1)采用窮舉法解密,也就是平時所講的“暴力破解”。
2)生日攻擊。這是一種應(yīng)用概率統(tǒng)計的方式來對MD5進行破解,本質(zhì)就是嘗試找出一對不同的輸入,對其采用哈希函數(shù)運算后得到產(chǎn)生的輸出是相同的,這樣的一對輸入被稱為匹配對。
3)利用模差分攻擊方法和明文修改技術(shù),在2005年山東大學的王小云教授在國際密碼學會會議上公布了對MD5的碰撞結(jié)果,她利用模差分方法找到了兩個有著相同MD5值的不同數(shù)據(jù)段。
4)利用已有的信息積累的數(shù)據(jù)查找相應(yīng)的MD5結(jié)果值,例如彩虹表。
綜上所述,MD5加密算法還是容易受到攻擊的,如果一旦用戶密碼設(shè)置過短,或者密碼組成太簡單,那么這個密碼就很容易被攻破。
鑒于以上情況,所以為了更好地保護用戶密碼的安全,系統(tǒng)在用戶身份認證的過程中除了使用MD5加密用戶密碼,還增加了一個隨機數(shù)。這使得每次客戶端向服務(wù)器所傳輸?shù)挠脩裘艽a信息變成了一個隨機產(chǎn)生的密文,這在很大程度上抵御了重放攻擊和字典攻擊,使系統(tǒng)更加安全。這種基于MD5與隨機數(shù)組合的加密算法在用戶身份認證過程當中的具體實現(xiàn),如圖2所示。
圖2 采用優(yōu)化后的MD5算法實現(xiàn)用戶認證過程
具體實現(xiàn)步驟:
1)當用戶提出登錄請求時候,服務(wù)器會傳給客戶端一個隨機數(shù)。
2)用戶在登錄頁面中輸入用戶名和用戶密碼,客戶端首先將用戶密碼進行一次MD5加密運算;然后將加密運算以后的結(jié)果和服務(wù)器傳來的隨機數(shù)合并,成為一個新的字符串。接著對這個新字符串再進行一次MD5加密運算,并將最后的結(jié)果連同用戶名一起傳給服務(wù)器。
3)服務(wù)器收到客戶端傳來的用戶名和最后結(jié)果后,首先根據(jù)用戶名在數(shù)據(jù)庫中找到對應(yīng)的用戶密碼密文,并將這一用戶密碼密文和之前產(chǎn)生的隨機數(shù)合并后進行一次MD5加密運算。將這次運算的結(jié)果和客戶端傳來的最后結(jié)果進行比對,如果一致,則設(shè)置一個服務(wù)器端會話變量session返回客戶端,確定用戶認證通過。
這種基于MD5與隨機數(shù)組合的加密算法的用戶身份認證,由于服務(wù)器每一次產(chǎn)生的隨機數(shù)都是不相同的,所以即使被黑客或監(jiān)聽軟件竊取了用戶的密碼,也無法對系統(tǒng)進行重放攻擊和字典攻擊,使得在一定程度上大大地提高了系統(tǒng)的安全性。由于數(shù)據(jù)庫當中的用戶密碼信息經(jīng)過了MD5算法加密后才保存,所以即使是系統(tǒng)管理員也不能直接看到用戶密碼的明文。
本文將MD5與隨機數(shù)相結(jié)合的加密算法的設(shè)計,是對MD5加密算法進行了一定的優(yōu)化;在不改變原有MD5加密算法的基礎(chǔ)上,提高了加密后密文的復雜度。這種加密技術(shù),任何編程語言都能輕松、簡單地實現(xiàn)。其他人在不清楚隨機數(shù)生成方式的情況下,想采用一般的“彩虹表”或“跑字典”的MD5攻擊方式,去破解出密碼值,幾乎是不可能的;從而增強了用戶身份的識別和驗證,保障了整個系統(tǒng)數(shù)據(jù)信息的安全。
參考文獻
[1]王磊,常樂,姜立. 數(shù)字化校園統(tǒng)一身份認證系統(tǒng)設(shè)計研究[J].遼寧高職學報. 2013(05)
[2]孫維國,李浩然.MD5算法在數(shù)據(jù)安全中的應(yīng)用及安全性分析[J]. 微計算機應(yīng)用. 2010(10)
作者簡介
徐暢(1982-)女,湖南安全技術(shù)職業(yè)學院講師,主要研究方向:計算機應(yīng)用
Application of Improved MD5 Algorithm for User Authentication
Xu Chang
(Hunan Vocational Institute of Safety Technology Hunan Changsha,410151)
Abstract:The user authentication is the first hurdle to ensure the security of information system,this paper selected the MD5 encryption algorithm,in this based on MD5 algorithm combined with a random number of user information encryption,thereby enhancing the user identity identification and verification,to ensure the safety of the whole system of data information.
Keywords:information system;The user authentication;The MD5 algorithm to improve